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