Revert "Correct allOf with only one child schema (no discriminator)" (#7323)

This reverts commit 972120c35a31d20f51295e3ea66363d75304e9b7.
This commit is contained in:
Jim Schubert 2020-08-31 22:46:57 -04:00 committed by GitHub
parent 972120c35a
commit 26bb348354
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 12 deletions

View File

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

View File

@ -1363,6 +1363,7 @@ public class DefaultCodegenTest {
assertEquals(cm.discriminator, discriminator); assertEquals(cm.discriminator, discriminator);
} }
@Test @Test
public void testAllOfSingleRefNoOwnProps() { public void testAllOfSingleRefNoOwnProps() {
final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/2_0/composed-allof.yaml"); final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/2_0/composed-allof.yaml");
@ -1371,9 +1372,9 @@ public class DefaultCodegenTest {
Schema schema = openAPI.getComponents().getSchemas().get("NewMessageEventCoreNoOwnProps"); Schema schema = openAPI.getComponents().getSchemas().get("NewMessageEventCoreNoOwnProps");
codegen.setOpenAPI(openAPI); codegen.setOpenAPI(openAPI);
CodegenModel model = codegen.fromModel("NewMessageEventCoreNoOwnProps", schema); CodegenModel model = codegen.fromModel("NewMessageEventCoreNoOwnProps", schema);
Assert.assertEquals(getNames(model.getVars()), Arrays.asList("id","message")); Assert.assertEquals(getNames(model.getVars()), Collections.emptyList());
Assert.assertNull(model.parent); Assert.assertEquals(model.parent, "MessageEventCore");
Assert.assertNull(model.allParents); Assert.assertEquals(model.allParents, Collections.singletonList("MessageEventCore"));
} }
class CodegenWithMultipleInheritance extends DefaultCodegen { class CodegenWithMultipleInheritance extends DefaultCodegen {
@ -1384,6 +1385,7 @@ public class DefaultCodegenTest {
} }
} }
@Test @Test
public void testAllOfParent() { public void testAllOfParent() {
final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/allOf-required-parent.yaml"); final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/allOf-required-parent.yaml");

View File

@ -25,7 +25,6 @@ import io.swagger.v3.oas.models.media.Discriminator;
import io.swagger.v3.oas.models.media.ObjectSchema; import io.swagger.v3.oas.models.media.ObjectSchema;
import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.media.Schema;
import io.swagger.v3.oas.models.media.StringSchema; import io.swagger.v3.oas.models.media.StringSchema;
import java.util.Collections;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.openapitools.codegen.CodegenModel; import org.openapitools.codegen.CodegenModel;
import org.openapitools.codegen.CodegenProperty; import org.openapitools.codegen.CodegenProperty;
@ -58,8 +57,8 @@ public class JavaInheritanceTest {
Assert.assertEquals(cm.name, "sample"); Assert.assertEquals(cm.name, "sample");
Assert.assertEquals(cm.classname, "Sample"); Assert.assertEquals(cm.classname, "Sample");
Assert.assertNull(cm.parent); Assert.assertEquals(cm.parent, "Base");
Assert.assertEquals(cm.imports, Collections.emptySet()); Assert.assertEquals(cm.imports, Sets.newHashSet("Base"));
} }
@Test(description = "convert a composed model with discriminator") @Test(description = "convert a composed model with discriminator")