Skip to content

Commit f13f114

Browse files
use SerializationContext instead of SerializerProvider
1 parent 4e39fad commit f13f114

131 files changed

Lines changed: 439 additions & 521 deletions

File tree

Some content is hidden

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

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1043,7 +1043,9 @@ public void postProcessModelProperty(CodegenModel model, CodegenProperty propert
10431043
model.imports.add("JsonProperty");
10441044
model.imports.add("JsonValue");
10451045
model.imports.add("JsonInclude");
1046-
model.imports.add("JsonTypeName");
1046+
if (!useJackson3) {
1047+
model.imports.add("JsonTypeName");
1048+
}
10471049
}
10481050
if (additionalProperties.containsKey(SERIALIZATION_LIBRARY_GSON)) {
10491051
model.imports.add("SerializedName");

modules/openapi-generator/src/main/resources/Java/libraries/native/anyof_model.mustache

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import tools.jackson.core.JsonParser;
2727
import tools.jackson.databind.DeserializationContext;
2828
import tools.jackson.databind.DatabindException;
2929
import tools.jackson.databind.JsonNode;
30-
import tools.jackson.databind.SerializerProvider;
30+
import tools.jackson.databind.SerializationContext;
3131
import tools.jackson.databind.annotation.JsonDeserialize;
3232
import tools.jackson.databind.annotation.JsonSerialize;
3333
import tools.jackson.databind.deser.std.StdDeserializer;
@@ -52,8 +52,13 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
5252
}
5353

5454
@Override
55-
public void serialize({{classname}} value, JsonGenerator jgen, SerializerProvider provider) throws {{^useJackson3}}IOException, JsonProcessingException{{/useJackson3}}{{#useJackson3}}JacksonException{{/useJackson3}} {
55+
public void serialize({{classname}} value, JsonGenerator jgen, {{^useJackson3}}SerializerProvider provider{{/useJackson3}}{{#useJackson3}}SerializationContext serializationContext{{/useJackson3}}) throws {{^useJackson3}}IOException, JsonProcessingException{{/useJackson3}}{{#useJackson3}}JacksonException{{/useJackson3}} {
56+
{{^useJackson3}}
5657
jgen.writeObject(value.getActualInstance());
58+
{{/useJackson3}}
59+
{{#useJackson3}}
60+
serializationContext.writeValue(jgen, value.getActualInstance());
61+
{{/useJackson3}}
5762
}
5863
}
5964

@@ -77,7 +82,12 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
7782
// When the OAS schema includes a discriminator, use the discriminator value to
7883
// discriminate the anyOf schemas.
7984
// Get the discriminator mapping value to get the class.
85+
{{^useJackson3}}
8086
deserialized = tree.traverse(jp.getCodec()).readValueAs(cls);
87+
{{/useJackson3}}
88+
{{#useJackson3}}
89+
deserialized = ctxt.readTreeAsValue(tree, ctxt.constructType(cls));
90+
{{/useJackson3}}
8191
{{classname}} ret = new {{classname}}();
8292
ret.setActualInstance(deserialized);
8393
return ret;
@@ -86,7 +96,12 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
8696
{{#anyOf}}
8797
// deserialize {{{.}}}
8898
try {
99+
{{^useJackson3}}
89100
deserialized = tree.traverse(jp.getCodec()).readValueAs({{{.}}}.class);
101+
{{/useJackson3}}
102+
{{#useJackson3}}
103+
deserialized = ctxt.readTreeAsValue(tree, {{{.}}}.class);
104+
{{/useJackson3}}
90105
{{classname}} ret = new {{classname}}();
91106
ret.setActualInstance(deserialized);
92107
return ret;

modules/openapi-generator/src/main/resources/Java/libraries/native/oneof_model.mustache

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ import tools.jackson.core.JsonToken;
3030
import tools.jackson.databind.DeserializationContext;
3131
import tools.jackson.databind.DatabindException;
3232
import tools.jackson.databind.JsonNode;
33-
import tools.jackson.databind.SerializerProvider;
33+
import tools.jackson.databind.SerializationContext;
3434
import tools.jackson.databind.annotation.JsonDeserialize;
3535
import tools.jackson.databind.annotation.JsonSerialize;
3636
import tools.jackson.databind.deser.std.StdDeserializer;
@@ -55,8 +55,13 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
5555
}
5656

5757
@Override
58-
public void serialize({{classname}} value, JsonGenerator jgen, SerializerProvider provider) throws {{^useJackson3}}IOException, JsonProcessingException{{/useJackson3}}{{#useJackson3}}JacksonException{{/useJackson3}} {
58+
public void serialize({{classname}} value, JsonGenerator jgen, {{^useJackson3}}SerializerProvider provider{{/useJackson3}}{{#useJackson3}}SerializationContext serializationContext{{/useJackson3}}) throws {{^useJackson3}}IOException, JsonProcessingException{{/useJackson3}}{{#useJackson3}}JacksonException{{/useJackson3}} {
59+
{{^useJackson3}}
5960
jgen.writeObject(value.getActualInstance());
61+
{{/useJackson3}}
62+
{{#useJackson3}}
63+
serializationContext.writeValue(jgen, value.getActualInstance());
64+
{{/useJackson3}}
6065
}
6166
}
6267

@@ -76,12 +81,22 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
7681
{{#useOneOfDiscriminatorLookup}}
7782
{{#discriminator}}
7883
{{classname}} new{{classname}} = new {{classname}}();
84+
{{^useJackson3}}
7985
Map<String,Object> result2 = tree.traverse(jp.getCodec()).readValueAs(new TypeReference<Map<String, Object>>() {});
8086
String discriminatorValue = (String)result2.get("{{{propertyBaseName}}}");
87+
{{/useJackson3}}
88+
{{#useJackson3}}
89+
String discriminatorValue = tree.path("{{{propertyBaseName}}}").asText(null);
90+
{{/useJackson3}}
8191
switch (discriminatorValue) {
8292
{{#mappedModels}}
8393
case "{{{mappingName}}}":
94+
{{^useJackson3}}
8495
deserialized = tree.traverse(jp.getCodec()).readValueAs({{{modelName}}}.class);
96+
{{/useJackson3}}
97+
{{#useJackson3}}
98+
deserialized = ctxt.readTreeAsValue(tree, {{{modelName}}}.class);
99+
{{/useJackson3}}
85100
new{{classname}}.setActualInstance(deserialized);
86101
return new{{classname}};
87102
{{/mappedModels}}
@@ -98,7 +113,12 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
98113
boolean typeCoercion = false; // MapperFeature.ALLOW_COERCION_OF_SCALARS was removed in Jackson 3
99114
{{/useJackson3}}
100115
int match = 0;
116+
{{^useJackson3}}
101117
JsonToken token = tree.traverse(jp.getCodec()).nextToken();
118+
{{/useJackson3}}
119+
{{#useJackson3}}
120+
JsonToken token = tree.asToken();
121+
{{/useJackson3}}
102122
{{#oneOf}}
103123
// deserialize {{{.}}}
104124
try {
@@ -117,7 +137,12 @@ public class {{classname}} extends AbstractOpenApiSchema{{#vendorExtensions.x-im
117137
}
118138
}
119139
if (attemptParsing) {
140+
{{^useJackson3}}
120141
deserialized = tree.traverse(jp.getCodec()).readValueAs({{{.}}}.class);
142+
{{/useJackson3}}
143+
{{#useJackson3}}
144+
deserialized = ctxt.readTreeAsValue(tree, {{{.}}}.class);
145+
{{/useJackson3}}
121146
// TODO: there is no validation against JSON schema constraints
122147
// (min, max, enum, pattern...), this does not perform a strict JSON
123148
// validation, which means the 'match' count may be higher than it should be.

samples/client/petstore/java/native-jackson3/src/main/java/org/openapitools/client/model/AdditionalPropertiesClass.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.fasterxml.jackson.annotation.JsonInclude;
2525
import com.fasterxml.jackson.annotation.JsonProperty;
2626
import com.fasterxml.jackson.annotation.JsonCreator;
27-
import com.fasterxml.jackson.annotation.JsonTypeName;
2827
import com.fasterxml.jackson.annotation.JsonValue;
2928
import java.util.Arrays;
3029
import java.util.HashMap;

samples/client/petstore/java/native-jackson3/src/main/java/org/openapitools/client/model/AllOfRefToDouble.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.fasterxml.jackson.annotation.JsonInclude;
2525
import com.fasterxml.jackson.annotation.JsonProperty;
2626
import com.fasterxml.jackson.annotation.JsonCreator;
27-
import com.fasterxml.jackson.annotation.JsonTypeName;
2827
import com.fasterxml.jackson.annotation.JsonValue;
2928
import java.util.Arrays;
3029
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

samples/client/petstore/java/native-jackson3/src/main/java/org/openapitools/client/model/AllOfRefToFloat.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.fasterxml.jackson.annotation.JsonInclude;
2525
import com.fasterxml.jackson.annotation.JsonProperty;
2626
import com.fasterxml.jackson.annotation.JsonCreator;
27-
import com.fasterxml.jackson.annotation.JsonTypeName;
2827
import com.fasterxml.jackson.annotation.JsonValue;
2928
import java.util.Arrays;
3029
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

samples/client/petstore/java/native-jackson3/src/main/java/org/openapitools/client/model/AllOfRefToLong.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.fasterxml.jackson.annotation.JsonInclude;
2525
import com.fasterxml.jackson.annotation.JsonProperty;
2626
import com.fasterxml.jackson.annotation.JsonCreator;
27-
import com.fasterxml.jackson.annotation.JsonTypeName;
2827
import com.fasterxml.jackson.annotation.JsonValue;
2928
import java.util.Arrays;
3029
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

samples/client/petstore/java/native-jackson3/src/main/java/org/openapitools/client/model/Animal.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import com.fasterxml.jackson.annotation.JsonCreator;
2828
import com.fasterxml.jackson.annotation.JsonSubTypes;
2929
import com.fasterxml.jackson.annotation.JsonTypeInfo;
30-
import com.fasterxml.jackson.annotation.JsonTypeName;
3130
import com.fasterxml.jackson.annotation.JsonValue;
3231
import java.util.Arrays;
3332
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

samples/client/petstore/java/native-jackson3/src/main/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnly.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.fasterxml.jackson.annotation.JsonInclude;
2525
import com.fasterxml.jackson.annotation.JsonProperty;
2626
import com.fasterxml.jackson.annotation.JsonCreator;
27-
import com.fasterxml.jackson.annotation.JsonTypeName;
2827
import com.fasterxml.jackson.annotation.JsonValue;
2928
import java.math.BigDecimal;
3029
import java.util.ArrayList;

samples/client/petstore/java/native-jackson3/src/main/java/org/openapitools/client/model/ArrayOfNumberOnly.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.fasterxml.jackson.annotation.JsonInclude;
2525
import com.fasterxml.jackson.annotation.JsonProperty;
2626
import com.fasterxml.jackson.annotation.JsonCreator;
27-
import com.fasterxml.jackson.annotation.JsonTypeName;
2827
import com.fasterxml.jackson.annotation.JsonValue;
2928
import java.math.BigDecimal;
3029
import java.util.ArrayList;

0 commit comments

Comments
 (0)