Skip to content

Commit 5acb7cc

Browse files
knikolosKrste Nikoloski
andauthored
fix: disableDiscriminatorJsonIgnoreProperties no working in Spring generator (#23640)
Co-authored-by: Krste Nikoloski <Krste.Nikoloski@netcetera.com>
1 parent 869f58f commit 5acb7cc

2 files changed

Lines changed: 21 additions & 0 deletions

File tree

modules/openapi-generator/src/main/resources/JavaSpring/typeInfoAnnotation.mustache

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
{{#jackson}}
22
{{#discriminator.mappedModels}}
33
{{#-first}}
4+
{{^disableDiscriminatorJsonIgnoreProperties}}
45
@JsonIgnoreProperties(
56
value = "{{{discriminator.propertyBaseName}}}", // ignore manually set {{{discriminator.propertyBaseName}}}, it will be automatically generated by Jackson during serialization
67
allowSetters = true // allows the {{{discriminator.propertyBaseName}}} to be set during deserialization
78
)
89
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "{{{discriminator.propertyBaseName}}}", visible = true)
10+
{{/disableDiscriminatorJsonIgnoreProperties}}
11+
{{#disableDiscriminatorJsonIgnoreProperties}}
12+
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "{{{discriminator.propertyBaseName}}}", visible = true)
13+
{{/disableDiscriminatorJsonIgnoreProperties}}
914
@JsonSubTypes({
1015
{{/-first}}
1116
{{^vendorExtensions.x-discriminator-value}}

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7596,4 +7596,20 @@ void oneOf_issue_14769() throws IOException {
75967596
.isNormalClass()
75977597
.extendsClass("VehicleDto");
75987598
}
7599+
7600+
@Test
7601+
void disableDiscriminatorJsonIgnorePropertiesIsTrueThenJsonIgnorePropertiesShouldBeNotAdded() throws IOException {
7602+
final Map<String, File> files = generateFromContract("src/test/resources/3_0/java/issue12777.yaml", SPRING_BOOT,
7603+
Map.of(DISABLE_DISCRIMINATOR_JSON_IGNORE_PROPERTIES, "true"));
7604+
JavaFileAssert.assertThat(files.get("BaseConfiguration.java"))
7605+
.assertTypeAnnotations().doesNotContainWithName("JsonIgnoreProperties");
7606+
}
7607+
7608+
@Test
7609+
void disableDiscriminatorJsonIgnorePropertiesIsTrueThenJsonIgnorePropertiesShouldBeAdded() throws IOException {
7610+
final Map<String, File> files = generateFromContract("src/test/resources/3_0/java/issue12777.yaml", SPRING_BOOT,
7611+
Map.of(DISABLE_DISCRIMINATOR_JSON_IGNORE_PROPERTIES, "false"));
7612+
JavaFileAssert.assertThat(files.get("BaseConfiguration.java"))
7613+
.assertTypeAnnotations().containsWithName("JsonIgnoreProperties");
7614+
}
75997615
}

0 commit comments

Comments
 (0)