From efd0983540551a02e39e868ad4f56b789c914e98 Mon Sep 17 00:00:00 2001 From: "joshua.ye" <jj.ye@aftership.com> Date: Wed, 6 Jul 2022 16:07:29 +0800 Subject: [PATCH 1/2] feat: update swagger-core to 2.2.1, swagger-parser to 2.1.0, support openapi 3.1.0 --- .../codegen/confluencewiki/ConfluenceWikiTest.java | 2 +- .../openapitools/codegen/java/JavaModelEnumTest.java | 2 +- .../openapitools/codegen/utils/ModelUtilsTest.java | 2 +- .../oas/OpenApiSchemaValidationsTest.java | 12 ++++++------ pom.xml | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/confluencewiki/ConfluenceWikiTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/confluencewiki/ConfluenceWikiTest.java index 5352c9aa0f8..28ab7d9e4ae 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/confluencewiki/ConfluenceWikiTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/confluencewiki/ConfluenceWikiTest.java @@ -147,7 +147,7 @@ public class ConfluenceWikiTest { discriminator.setPropertyName("model_type"); parentModel.setDiscriminator(discriminator); - final ComposedSchema composedSchema = new ComposedSchema() + final Schema composedSchema = new ComposedSchema() .addAllOfItem(new Schema().$ref(parentModel.getName())); composedSchema.setName("sample"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaModelEnumTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaModelEnumTest.java index eb263d35301..58961d5ac2e 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaModelEnumTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaModelEnumTest.java @@ -146,7 +146,7 @@ public class JavaModelEnumTest { discriminator.setPropertyName("model_type"); parentModel.setDiscriminator(discriminator); - final ComposedSchema composedSchema = new ComposedSchema() + final Schema composedSchema = new ComposedSchema() .addAllOfItem(new Schema().$ref(parentModel.getName())); composedSchema.setName("sample"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java index f962efee4eb..bf2c1aba2a7 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/utils/ModelUtilsTest.java @@ -206,7 +206,7 @@ public class ModelUtilsTest { */ @Test public void testComposedSchemasAreNotUnaliased() { - ComposedSchema composedSchema = new ComposedSchema().allOf(Arrays.asList( + Schema composedSchema = new ComposedSchema().allOf(Arrays.asList( new Schema<>().$ref("#/components/schemas/SomeSchema"), new ObjectSchema() )); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/validations/oas/OpenApiSchemaValidationsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/validations/oas/OpenApiSchemaValidationsTest.java index b2b2070ebef..ba6501cf312 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/validations/oas/OpenApiSchemaValidationsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/validations/oas/OpenApiSchemaValidationsTest.java @@ -83,8 +83,8 @@ public class OpenApiSchemaValidationsTest { }; } - private ComposedSchema getOneOfSample(boolean withProperties) { - ComposedSchema schema = new ComposedSchema().oneOf(Arrays.asList( + private Schema getOneOfSample(boolean withProperties) { + Schema schema = new ComposedSchema().oneOf(Arrays.asList( new StringSchema(), new IntegerSchema().format("int64")) ); @@ -97,9 +97,9 @@ public class OpenApiSchemaValidationsTest { return schema; } - private ComposedSchema getAllOfSample(boolean withProperties) { + private Schema getAllOfSample(boolean withProperties) { // This doesn't matter if it's realistic; it's a structural check - ComposedSchema schema = new ComposedSchema().allOf(Arrays.asList( + Schema schema = new ComposedSchema().allOf(Arrays.asList( new StringSchema(), new IntegerSchema().format("int64")) ); @@ -112,8 +112,8 @@ public class OpenApiSchemaValidationsTest { return schema; } - private ComposedSchema getAnyOfSample(boolean withProperties) { - ComposedSchema schema = new ComposedSchema().anyOf(Arrays.asList( + private Schema getAnyOfSample(boolean withProperties) { + Schema schema = new ComposedSchema().anyOf(Arrays.asList( new StringSchema(), new IntegerSchema().format("int64")) ); diff --git a/pom.xml b/pom.xml index 35c06426b35..ecd9a8f935a 100644 --- a/pom.xml +++ b/pom.xml @@ -1489,9 +1489,9 @@ <spotbugs-plugin.version>3.1.12.2</spotbugs-plugin.version> <maven-surefire-plugin.version>3.0.0-M6</maven-surefire-plugin.version> <openrewrite.version>7.22.0</openrewrite.version> - <swagger-core.version>2.1.12</swagger-core.version> + <swagger-core.version>2.2.1</swagger-core.version> <swagger-parser-groupid.version>io.swagger.parser.v3</swagger-parser-groupid.version> - <swagger-parser.version>2.0.31</swagger-parser.version> + <swagger-parser.version>2.1.0</swagger-parser.version> <testng.version>7.5</testng.version> <violations-maven-plugin.version>1.34</violations-maven-plugin.version> <wagon-ssh-external.version>3.4.3</wagon-ssh-external.version> -- GitLab From 78eb1c7e769cfcc53cff377512832d25ae62afeb Mon Sep 17 00:00:00 2001 From: "joshua.ye" <jj.ye@aftership.com> Date: Mon, 18 Jul 2022 14:08:05 +0800 Subject: [PATCH 2/2] feat: Add import for default go code gen. --- .../codegen/languages/AbstractGoCodegen.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 6dd27a80479..539014707ec 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -314,6 +314,15 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege return name; } + @Override + public CodegenModel fromModel(String name, Schema schema) { + CodegenModel gotcm = super.fromModel(name, schema); + if(schema.getEnum() != null && !schema.getEnum().isEmpty()){ + gotcm.dataType = schema.getType(); + } + return gotcm; + } + @Override public String toApiFilename(String name) { final String apiName; @@ -611,6 +620,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege @Override public ModelsMap postProcessModels(ModelsMap objs) { + List<String> addedbaseType = new ArrayList<String>(); // remove model imports to avoid error List<Map<String, String>> imports = objs.getImports(); final String prefix = modelPackage(); @@ -619,6 +629,7 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege String _import = iterator.next().get("import"); if (_import.startsWith(prefix)) iterator.remove(); + addedbaseType.add(_import); } boolean addedTimeImport = false; @@ -635,6 +646,14 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege imports.add(createMapping("import", "os")); addedOSImport = true; } + + if(!languageSpecificPrimitives.contains(param.dataType)){ + String _import = param.dataType; + if (importMapping.containsKey(_import) && !addedbaseType.contains(importMapping.get(_import))) { + imports.add(createMapping("import", importMapping.get(_import))); + addedbaseType.add(importMapping.get(_import)); + } + } } if (this instanceof GoClientCodegen && model.isEnum) { @@ -663,8 +682,9 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege String _import = listIterator.next().get("import"); // if the import package happens to be found in the importMapping (key) // add the corresponding import package to the list - if (importMapping.containsKey(_import)) { + if (importMapping.containsKey(_import) && !addedbaseType.contains(importMapping.get(_import)) ) { listIterator.add(createMapping("import", importMapping.get(_import))); + addedbaseType.add(importMapping.get(_import)); } } -- GitLab