Skip to content

Commit

Permalink
fix #3486: using a common jsonschema2pojo annotator (#4165)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
shawkins authored Jun 3, 2022
1 parent d487d69 commit cf3b65d
Show file tree
Hide file tree
Showing 1,368 changed files with 229,965 additions and 1,386 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ SharedIndexInformer allows for the addition and removal of indexes even after st
And Store.getKey can be used rather than directly referencing static Cache functions.
* Fix #4065: Client.getAPIResources("v1") can be used to obtain the core/legacy resources
* Fix #4142: Added patch() and patch(PatchContext) methods for use with resource and load
* Fix #3486: using a common jsonschema2pojo annotator - see the migration guide for possible changes to extension models.
* Fix #4146: ManagedKubernetesClient and ManagedOpenShiftClient as delayed OSGi services
* Fix #4093: adding a possibility to get a log as an `InputStream` from the `Loggable` resources

Expand Down
2 changes: 2 additions & 0 deletions doc/MIGRATION-v6.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,8 @@ We've removed setter methods `setIntVal`, `setKind`, `setStrVal` from the class.
- io.fabric8.volumesnapshot.client.internal.XXXResource interfaces moved to io.fabric8.volumesnapshot.client.XXXResource to no longer be in an internal package.
- 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.
## Adapt Changes
Client.isAdaptable and Client.adapt will check first if the existing client is an instance of the desired type.
Expand Down
29 changes: 1 addition & 28 deletions extensions/camel-k/model-v1/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -88,33 +88,6 @@
<plugin>
<groupId>org.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
<version>${jsonschema2pojo.version}</version>
<configuration>
<sourceDirectory>${project.basedir}/src/main/resources/schema</sourceDirectory>
<targetPackage>io.fabric8.camelk.api.model</targetPackage>
<includeConstructors>true</includeConstructors>
<includeJsr303Annotations>false</includeJsr303Annotations>
<includeToString>false</includeToString>
<includeHashcodeAndEquals>false</includeHashcodeAndEquals>
<outputDirectory>${project.build.directory}/generated-sources</outputDirectory>
<customAnnotator>io.fabric8.kubernetes.ModelAnnotator</customAnnotator>
</configuration>
<executions>
<execution>
<id>generate</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>io.fabric8</groupId>
<artifactId>model-annotator</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
Expand All @@ -125,7 +98,7 @@
<target>
<!-- removing the generated Schema class -->
<delete
file="${project.build.directory}/generated-sources/io/fabric8/camelk/api/model/CamelKSchemaV1.java"
file="${generate.targetDirectory}/io/fabric8/camelk/api/model/CamelKSchemaV1.java"
verbose="true" />
</target>
</configuration>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@

package io.fabric8.camelk.v1;

import java.util.HashMap;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.fabric8.kubernetes.api.model.Container;
import io.fabric8.kubernetes.api.model.ContainerPort;
import io.fabric8.kubernetes.api.model.EnvVar;
import io.fabric8.kubernetes.api.model.IntOrString;
import io.fabric8.kubernetes.api.model.KubernetesResource;
import io.fabric8.kubernetes.api.model.LabelSelector;
import io.fabric8.kubernetes.api.model.LocalObjectReference;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.fabric8.kubernetes.api.model.ObjectReference;
import io.fabric8.kubernetes.api.model.PersistentVolumeClaim;
import io.fabric8.kubernetes.api.model.PodTemplateSpec;
import io.fabric8.kubernetes.api.model.ResourceRequirements;
import io.fabric8.kubernetes.api.model.Volume;
import io.fabric8.kubernetes.api.model.VolumeMount;
import io.sundr.builder.annotations.Buildable;
import io.sundr.builder.annotations.BuildableReference;
import lombok.EqualsAndHashCode;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

@JsonDeserialize(using = com.fasterxml.jackson.databind.JsonDeserializer.None.class)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"apiVersion",
"kind",
"metadata",
"checksum",
"id",
"location",
"target"
})
@ToString
@EqualsAndHashCode
@Setter
@Accessors(prefix = {
"_",
""
})
@Buildable(editableEnabled = false, validationEnabled = false, generateBuilderPackage = false, lazyCollectionInitEnabled = false, builderPackage = "io.fabric8.kubernetes.api.builder", refs = {
@BuildableReference(ObjectMeta.class),
@BuildableReference(LabelSelector.class),
@BuildableReference(Container.class),
@BuildableReference(PodTemplateSpec.class),
@BuildableReference(ResourceRequirements.class),
@BuildableReference(IntOrString.class),
@BuildableReference(ObjectReference.class),
@BuildableReference(LocalObjectReference.class),
@BuildableReference(PersistentVolumeClaim.class),
@BuildableReference(EnvVar.class),
@BuildableReference(ContainerPort.class),
@BuildableReference(Volume.class),
@BuildableReference(VolumeMount.class)
})
public class Artifact implements KubernetesResource
{

@JsonProperty("checksum")
private String checksum;
@JsonProperty("id")
private String id;
@JsonProperty("location")
private String location;
@JsonProperty("target")
private String target;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();

/**
* No args constructor for use in serialization
*
*/
public Artifact() {
}

/**
*
* @param checksum
* @param location
* @param id
* @param target
*/
public Artifact(String checksum, String id, String location, String target) {
super();
this.checksum = checksum;
this.id = id;
this.location = location;
this.target = target;
}

@JsonProperty("checksum")
public String getChecksum() {
return checksum;
}

@JsonProperty("checksum")
public void setChecksum(String checksum) {
this.checksum = checksum;
}

@JsonProperty("id")
public String getId() {
return id;
}

@JsonProperty("id")
public void setId(String id) {
this.id = id;
}

@JsonProperty("location")
public String getLocation() {
return location;
}

@JsonProperty("location")
public void setLocation(String location) {
this.location = location;
}

@JsonProperty("target")
public String getTarget() {
return target;
}

@JsonProperty("target")
public void setTarget(String target) {
this.target = target;
}

@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}

@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}

}
Loading

0 comments on commit cf3b65d

Please sign in to comment.