forked from loafle/openapi-generator-original
fix oneOf merging, upgrade dependencies (#16992)
* fix oneOf enums * upgrade jackson dependencies * upgrade openRewrite dependency
This commit is contained in:
parent
a31b38b223
commit
c301004b7e
@ -26,6 +26,7 @@ import com.google.common.collect.ImmutableMap;
|
||||
import com.samskivert.mustache.Mustache;
|
||||
import com.samskivert.mustache.Mustache.Compiler;
|
||||
import com.samskivert.mustache.Mustache.Lambda;
|
||||
import io.swagger.v3.core.util.AnnotationsUtils;
|
||||
import io.swagger.v3.core.util.Json;
|
||||
import io.swagger.v3.oas.models.OpenAPI;
|
||||
import io.swagger.v3.oas.models.Operation;
|
||||
@ -924,12 +925,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the OpenAPI document.
|
||||
* This method is invoked when the input OpenAPI document has been parsed and validated.
|
||||
*/
|
||||
@Override
|
||||
public void setOpenAPI(OpenAPI openAPI) {
|
||||
public boolean specVersionGreaterThanOrEqualTo310(OpenAPI openAPI) {
|
||||
String originalSpecVersion;
|
||||
String xOriginalSwaggerVersion = "x-original-swagger-version";
|
||||
if (openAPI.getExtensions() != null && !openAPI.getExtensions().isEmpty() && openAPI.getExtensions().containsValue(xOriginalSwaggerVersion)) {
|
||||
@ -939,8 +935,16 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
}
|
||||
Integer specMajorVersion = Integer.parseInt(originalSpecVersion.substring(0, 1));
|
||||
Integer specMinorVersion = Integer.parseInt(originalSpecVersion.substring(2, 3));
|
||||
boolean specVersionGreaterThanOrEqualTo310 = (specMajorVersion == 3 && specMinorVersion >= 1);
|
||||
if (specVersionGreaterThanOrEqualTo310) {
|
||||
return specMajorVersion == 3 && specMinorVersion >= 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the OpenAPI document.
|
||||
* This method is invoked when the input OpenAPI document has been parsed and validated.
|
||||
*/
|
||||
@Override
|
||||
public void setOpenAPI(OpenAPI openAPI) {
|
||||
if (specVersionGreaterThanOrEqualTo310(openAPI)) {
|
||||
LOGGER.warn(UNSUPPORTED_V310_SPEC_MSG);
|
||||
}
|
||||
this.openAPI = openAPI;
|
||||
@ -2894,7 +2898,11 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
if (null != existingProperties && null != newProperties) {
|
||||
Schema existingType = existingProperties.get("type");
|
||||
Schema newType = newProperties.get("type");
|
||||
existingProperties.putAll(newProperties);
|
||||
newProperties.forEach((key, value) ->
|
||||
existingProperties.put(
|
||||
key,
|
||||
AnnotationsUtils.clone(value, specVersionGreaterThanOrEqualTo310(openAPI))
|
||||
));
|
||||
if (null != existingType && null != newType && null != newType.getEnum() && !newType.getEnum().isEmpty()) {
|
||||
for (Object e : newType.getEnum()) {
|
||||
// ensure all interface enum types are added to schema
|
||||
|
@ -671,6 +671,15 @@ public class DefaultCodegenTest {
|
||||
}
|
||||
Assert.assertTrue(typeSeen);
|
||||
Assert.assertTrue(typeContainsEnums);
|
||||
|
||||
Assert.assertEquals(
|
||||
((StringSchema) openAPI.getComponents().getSchemas().get("Dog").getProperties().get("type")).getEnum().size(),
|
||||
1
|
||||
);
|
||||
Assert.assertEquals(
|
||||
((StringSchema) openAPI.getComponents().getSchemas().get("Cat").getProperties().get("type")).getEnum().size(),
|
||||
1
|
||||
);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
10
pom.xml
10
pom.xml
@ -1452,9 +1452,9 @@
|
||||
<groovy.version>3.0.9</groovy.version>
|
||||
<guava.version>32.1.3-jre</guava.version>
|
||||
<handlebars-java.version>4.3.1</handlebars-java.version>
|
||||
<jackson-threetenbp.version>2.14.3</jackson-threetenbp.version>
|
||||
<jackson-databind.version>2.14.0</jackson-databind.version>
|
||||
<jackson.version>2.14.0</jackson.version>
|
||||
<jackson-threetenbp.version>2.15.2</jackson-threetenbp.version>
|
||||
<jackson-databind.version>2.15.3</jackson-databind.version>
|
||||
<jackson.version>2.15.3</jackson.version>
|
||||
<jacoco.version>0.8.10</jacoco.version>
|
||||
<jmustache.version>1.15</jmustache.version>
|
||||
<junit.version>4.13.2</junit.version>
|
||||
@ -1470,7 +1470,7 @@
|
||||
<maven-site-plugin.version>4.0.0-M8</maven-site-plugin.version>
|
||||
<maven-surefire-plugin.version>3.0.0</maven-surefire-plugin.version>
|
||||
<mockito.version>4.10.0</mockito.version>
|
||||
<openrewrite.version>7.39.1</openrewrite.version>
|
||||
<openrewrite.version>8.8.3</openrewrite.version>
|
||||
<pmd-plugin.version>3.12.0</pmd-plugin.version>
|
||||
<reflections.version>0.10.2</reflections.version>
|
||||
<rxgen.version>1.4</rxgen.version>
|
||||
@ -1478,7 +1478,7 @@
|
||||
<slf4j.version>1.7.36</slf4j.version>
|
||||
<spotbugs-plugin.version>3.1.12.2</spotbugs-plugin.version>
|
||||
<swagger-parser-groupid.version>io.swagger.parser.v3</swagger-parser-groupid.version>
|
||||
<swagger-parser.version>2.1.14</swagger-parser.version>
|
||||
<swagger-parser.version>2.1.18</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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user