Skip to content

Commit cf3b65d

Browse files
authored
fix #3486: using a common jsonschema2pojo annotator (#4165)
* fix #3486: using checked in generated location * fix #3486: adding generated files * fix #3486: minimizing the built-in changes * fix #3486: adding changelog and migration notes * fix #3486: rerunning the model generation
1 parent d487d69 commit cf3b65d

File tree

1,368 files changed

+229965
-1386
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,368 files changed

+229965
-1386
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ SharedIndexInformer allows for the addition and removal of indexes even after st
2727
And Store.getKey can be used rather than directly referencing static Cache functions.
2828
* Fix #4065: Client.getAPIResources("v1") can be used to obtain the core/legacy resources
2929
* Fix #4142: Added patch() and patch(PatchContext) methods for use with resource and load
30+
* Fix #3486: using a common jsonschema2pojo annotator - see the migration guide for possible changes to extension models.
3031
* Fix #4146: ManagedKubernetesClient and ManagedOpenShiftClient as delayed OSGi services
3132
* Fix #4093: adding a possibility to get a log as an `InputStream` from the `Loggable` resources
3233

doc/MIGRATION-v6.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,8 @@ We've removed setter methods `setIntVal`, `setKind`, `setStrVal` from the class.
210210

211211
- io.fabric8.volumesnapshot.client.internal.XXXResource interfaces moved to io.fabric8.volumesnapshot.client.XXXResource to no longer be in an internal package.
212212

213+
- the jsonschema2pojo logic was consolidated with the built-in models. This introduces some previously excluded fields, such as PipelineSpec._finally. It will also manipulate properties to conform to expectations of the builder logic - so rather than JSONSchemaPropsBuilder.getxDescriptors there will be getXDescriptors.
214+
213215
## Adapt Changes
214216

215217
Client.isAdaptable and Client.adapt will check first if the existing client is an instance of the desired type.

extensions/camel-k/model-v1/pom.xml

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -88,33 +88,6 @@
8888
<plugin>
8989
<groupId>org.jsonschema2pojo</groupId>
9090
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
91-
<version>${jsonschema2pojo.version}</version>
92-
<configuration>
93-
<sourceDirectory>${project.basedir}/src/main/resources/schema</sourceDirectory>
94-
<targetPackage>io.fabric8.camelk.api.model</targetPackage>
95-
<includeConstructors>true</includeConstructors>
96-
<includeJsr303Annotations>false</includeJsr303Annotations>
97-
<includeToString>false</includeToString>
98-
<includeHashcodeAndEquals>false</includeHashcodeAndEquals>
99-
<outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
100-
<customAnnotator>io.fabric8.kubernetes.ModelAnnotator</customAnnotator>
101-
</configuration>
102-
<executions>
103-
<execution>
104-
<id>generate</id>
105-
<phase>generate-sources</phase>
106-
<goals>
107-
<goal>generate</goal>
108-
</goals>
109-
</execution>
110-
</executions>
111-
<dependencies>
112-
<dependency>
113-
<groupId>io.fabric8</groupId>
114-
<artifactId>model-annotator</artifactId>
115-
<version>${project.version}</version>
116-
</dependency>
117-
</dependencies>
11891
</plugin>
11992
<plugin>
12093
<artifactId>maven-antrun-plugin</artifactId>
@@ -125,7 +98,7 @@
12598
<target>
12699
<!-- removing the generated Schema class -->
127100
<delete
128-
file="${project.build.directory}/generated-sources/io/fabric8/camelk/api/model/CamelKSchemaV1.java"
101+
file="${generate.targetDirectory}/io/fabric8/camelk/api/model/CamelKSchemaV1.java"
129102
verbose="true" />
130103
</target>
131104
</configuration>
Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
2+
package io.fabric8.camelk.v1;
3+
4+
import java.util.HashMap;
5+
import java.util.Map;
6+
import com.fasterxml.jackson.annotation.JsonAnyGetter;
7+
import com.fasterxml.jackson.annotation.JsonAnySetter;
8+
import com.fasterxml.jackson.annotation.JsonIgnore;
9+
import com.fasterxml.jackson.annotation.JsonInclude;
10+
import com.fasterxml.jackson.annotation.JsonProperty;
11+
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
12+
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
13+
import io.fabric8.kubernetes.api.model.Container;
14+
import io.fabric8.kubernetes.api.model.ContainerPort;
15+
import io.fabric8.kubernetes.api.model.EnvVar;
16+
import io.fabric8.kubernetes.api.model.IntOrString;
17+
import io.fabric8.kubernetes.api.model.KubernetesResource;
18+
import io.fabric8.kubernetes.api.model.LabelSelector;
19+
import io.fabric8.kubernetes.api.model.LocalObjectReference;
20+
import io.fabric8.kubernetes.api.model.ObjectMeta;
21+
import io.fabric8.kubernetes.api.model.ObjectReference;
22+
import io.fabric8.kubernetes.api.model.PersistentVolumeClaim;
23+
import io.fabric8.kubernetes.api.model.PodTemplateSpec;
24+
import io.fabric8.kubernetes.api.model.ResourceRequirements;
25+
import io.fabric8.kubernetes.api.model.Volume;
26+
import io.fabric8.kubernetes.api.model.VolumeMount;
27+
import io.sundr.builder.annotations.Buildable;
28+
import io.sundr.builder.annotations.BuildableReference;
29+
import lombok.EqualsAndHashCode;
30+
import lombok.Setter;
31+
import lombok.ToString;
32+
import lombok.experimental.Accessors;
33+
34+
@JsonDeserialize(using = com.fasterxml.jackson.databind.JsonDeserializer.None.class)
35+
@JsonInclude(JsonInclude.Include.NON_NULL)
36+
@JsonPropertyOrder({
37+
"apiVersion",
38+
"kind",
39+
"metadata",
40+
"checksum",
41+
"id",
42+
"location",
43+
"target"
44+
})
45+
@ToString
46+
@EqualsAndHashCode
47+
@Setter
48+
@Accessors(prefix = {
49+
"_",
50+
""
51+
})
52+
@Buildable(editableEnabled = false, validationEnabled = false, generateBuilderPackage = false, lazyCollectionInitEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder", refs = {
53+
@BuildableReference(ObjectMeta.class),
54+
@BuildableReference(LabelSelector.class),
55+
@BuildableReference(Container.class),
56+
@BuildableReference(PodTemplateSpec.class),
57+
@BuildableReference(ResourceRequirements.class),
58+
@BuildableReference(IntOrString.class),
59+
@BuildableReference(ObjectReference.class),
60+
@BuildableReference(LocalObjectReference.class),
61+
@BuildableReference(PersistentVolumeClaim.class),
62+
@BuildableReference(EnvVar.class),
63+
@BuildableReference(ContainerPort.class),
64+
@BuildableReference(Volume.class),
65+
@BuildableReference(VolumeMount.class)
66+
})
67+
public class Artifact implements KubernetesResource
68+
{
69+
70+
@JsonProperty("checksum")
71+
private String checksum;
72+
@JsonProperty("id")
73+
private String id;
74+
@JsonProperty("location")
75+
private String location;
76+
@JsonProperty("target")
77+
private String target;
78+
@JsonIgnore
79+
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
80+
81+
/**
82+
* No args constructor for use in serialization
83+
*
84+
*/
85+
public Artifact() {
86+
}
87+
88+
/**
89+
*
90+
* @param checksum
91+
* @param location
92+
* @param id
93+
* @param target
94+
*/
95+
public Artifact(String checksum, String id, String location, String target) {
96+
super();
97+
this.checksum = checksum;
98+
this.id = id;
99+
this.location = location;
100+
this.target = target;
101+
}
102+
103+
@JsonProperty("checksum")
104+
public String getChecksum() {
105+
return checksum;
106+
}
107+
108+
@JsonProperty("checksum")
109+
public void setChecksum(String checksum) {
110+
this.checksum = checksum;
111+
}
112+
113+
@JsonProperty("id")
114+
public String getId() {
115+
return id;
116+
}
117+
118+
@JsonProperty("id")
119+
public void setId(String id) {
120+
this.id = id;
121+
}
122+
123+
@JsonProperty("location")
124+
public String getLocation() {
125+
return location;
126+
}
127+
128+
@JsonProperty("location")
129+
public void setLocation(String location) {
130+
this.location = location;
131+
}
132+
133+
@JsonProperty("target")
134+
public String getTarget() {
135+
return target;
136+
}
137+
138+
@JsonProperty("target")
139+
public void setTarget(String target) {
140+
this.target = target;
141+
}
142+
143+
@JsonAnyGetter
144+
public Map<String, Object> getAdditionalProperties() {
145+
return this.additionalProperties;
146+
}
147+
148+
@JsonAnySetter
149+
public void setAdditionalProperty(String name, Object value) {
150+
this.additionalProperties.put(name, value);
151+
}
152+
153+
}

0 commit comments

Comments
 (0)