Skip to content

Commit 0232606

Browse files
authored
Revert "Correct allOf with only one child schema (no discriminator) (#6901)"
This reverts commit 972120c.
1 parent 972120c commit 0232606

File tree

3 files changed

+15
-12
lines changed

3 files changed

+15
-12
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1274,12 +1274,14 @@ public static String getParentName(ComposedSchema composedSchema, Map<String, Sc
12741274
}
12751275
}
12761276

1277-
if (refedWithoutDiscriminator.size() == 1 && hasAmbiguousParents) {
1278-
// allOf with a single $ref (no discriminator)
1279-
// TODO to be removed in 5.x or 6.x release
1280-
LOGGER.info("[deprecated] inheritance without use of 'discriminator.propertyName' has been deprecated" +
1281-
" in the 5.x release. Composed schema name: {}. Title: {}",
1282-
composedSchema.getName(), composedSchema.getTitle());
1277+
// parent name only makes sense when there is a single obvious parent
1278+
if (refedWithoutDiscriminator.size() == 1) {
1279+
if (hasAmbiguousParents) {
1280+
LOGGER.warn("[deprecated] inheritance without use of 'discriminator.propertyName' is deprecated " +
1281+
"and will be removed in a future release. Generating model for composed schema name: {}. Title: {}",
1282+
composedSchema.getName(), composedSchema.getTitle());
1283+
}
1284+
return refedWithoutDiscriminator.get(0);
12831285
}
12841286

12851287
return null;

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1363,6 +1363,7 @@ public void verifyXDiscriminatorValue() {
13631363
assertEquals(cm.discriminator, discriminator);
13641364
}
13651365

1366+
13661367
@Test
13671368
public void testAllOfSingleRefNoOwnProps() {
13681369
final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/2_0/composed-allof.yaml");
@@ -1371,9 +1372,9 @@ public void testAllOfSingleRefNoOwnProps() {
13711372
Schema schema = openAPI.getComponents().getSchemas().get("NewMessageEventCoreNoOwnProps");
13721373
codegen.setOpenAPI(openAPI);
13731374
CodegenModel model = codegen.fromModel("NewMessageEventCoreNoOwnProps", schema);
1374-
Assert.assertEquals(getNames(model.getVars()), Arrays.asList("id","message"));
1375-
Assert.assertNull(model.parent);
1376-
Assert.assertNull(model.allParents);
1375+
Assert.assertEquals(getNames(model.getVars()), Collections.emptyList());
1376+
Assert.assertEquals(model.parent, "MessageEventCore");
1377+
Assert.assertEquals(model.allParents, Collections.singletonList("MessageEventCore"));
13771378
}
13781379

13791380
class CodegenWithMultipleInheritance extends DefaultCodegen {
@@ -1384,6 +1385,7 @@ public CodegenWithMultipleInheritance() {
13841385
}
13851386
}
13861387

1388+
13871389
@Test
13881390
public void testAllOfParent() {
13891391
final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/allOf-required-parent.yaml");

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import io.swagger.v3.oas.models.media.ObjectSchema;
2626
import io.swagger.v3.oas.models.media.Schema;
2727
import io.swagger.v3.oas.models.media.StringSchema;
28-
import java.util.Collections;
2928
import org.apache.commons.lang3.StringUtils;
3029
import org.openapitools.codegen.CodegenModel;
3130
import org.openapitools.codegen.CodegenProperty;
@@ -58,8 +57,8 @@ public void javaInheritanceTest() {
5857

5958
Assert.assertEquals(cm.name, "sample");
6059
Assert.assertEquals(cm.classname, "Sample");
61-
Assert.assertNull(cm.parent);
62-
Assert.assertEquals(cm.imports, Collections.emptySet());
60+
Assert.assertEquals(cm.parent, "Base");
61+
Assert.assertEquals(cm.imports, Sets.newHashSet("Base"));
6362
}
6463

6564
@Test(description = "convert a composed model with discriminator")

0 commit comments

Comments
 (0)