Skip to content

Commit 04ae97a

Browse files
authored
Merge branch 'master' into master
2 parents 6474d79 + bb21c4e commit 04ae97a

File tree

7 files changed

+116
-11
lines changed

7 files changed

+116
-11
lines changed

pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<groupId>io.swagger.codegen.v3</groupId>
1414
<artifactId>swagger-codegen-generators</artifactId>
15-
<version>1.0.23-SNAPSHOT</version>
15+
<version>1.0.24-SNAPSHOT</version>
1616
<packaging>jar</packaging>
1717

1818
<build>
@@ -252,8 +252,8 @@
252252
</dependency>
253253
</dependencies>
254254
<properties>
255-
<swagger-codegen-version>3.0.23-SNAPSHOT</swagger-codegen-version>
256-
<swagger-parser-version>2.0.23-SNAPSHOT</swagger-parser-version>
255+
<swagger-codegen-version>3.0.24-SNAPSHOT</swagger-codegen-version>
256+
<swagger-parser-version>2.0.23</swagger-parser-version>
257257
<swagger-core-version>2.1.4</swagger-core-version>
258258
<jackson-version>2.10.3</jackson-version>
259259
<scala-version>2.11.1</scala-version>

src/main/java/io/swagger/codegen/v3/generators/DefaultCodegenConfig.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1333,6 +1333,8 @@ public CodegenModel fromModel(String name, Schema schema, Map<String, Schema> al
13331333
}
13341334
codegenModel.getVendorExtensions().put(CodegenConstants.IS_ALIAS_EXT_NAME, typeAliases.containsKey(name));
13351335

1336+
codegenModel.discriminator = schema.getDiscriminator();
1337+
13361338
if (schema.getXml() != null) {
13371339
codegenModel.xmlPrefix = schema.getXml().getPrefix();
13381340
codegenModel.xmlNamespace = schema.getXml().getNamespace();
@@ -1398,11 +1400,8 @@ else if (schema instanceof ComposedSchema) {
13981400
// interfaces (intermediate models)
13991401
if (allOf != null && !allOf.isEmpty()) {
14001402

1401-
if (schema.getDiscriminator() != null) {
1402-
codegenModel.discriminator = schema.getDiscriminator();
1403-
if (codegenModel.discriminator != null && codegenModel.discriminator.getPropertyName() != null) {
1404-
codegenModel.discriminator.setPropertyName(toVarName(codegenModel.discriminator.getPropertyName()));
1405-
}
1403+
if (codegenModel.discriminator != null && codegenModel.discriminator.getPropertyName() != null) {
1404+
codegenModel.discriminator.setPropertyName(toVarName(codegenModel.discriminator.getPropertyName()));
14061405
}
14071406

14081407
for (int i = 0; i < allOf.size(); i++) {

src/main/java/io/swagger/codegen/v3/generators/dotnet/AbstractCSharpCodegen.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -752,7 +752,7 @@ public String getSchemaType(Schema propertySchema) {
752752

753753
if (propertySchema.get$ref() != null) {
754754
final Schema refSchema = OpenAPIUtil.getSchemaFromName(swaggerType, this.openAPI);
755-
if (refSchema != null && !isObjectSchema(refSchema) && refSchema.getEnum() == null) {
755+
if (refSchema != null && !isObjectSchema(refSchema) && !(refSchema instanceof ArraySchema || refSchema instanceof MapSchema) && refSchema.getEnum() == null) {
756756
swaggerType = super.getSchemaType(refSchema);
757757
}
758758
}

src/main/resources/handlebars/pythonFlaskConnexion/requirements.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
connexion == 2.2.0
1+
connexion == 2.6.0
22
python_dateutil == 2.6.0
33
{{#supportPython2}}
44
typing == 3.5.2.2
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
flask_testing==0.6.1
1+
flask_testing==0.8.0
22
coverage>=4.0.3
33
nose>=1.3.7
44
pluggy>=0.3.1
55
py>=1.4.31
66
randomize>=0.13
7+
tox==3.20.1
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package io.swagger.codegen.v3.generators.java;
2+
3+
import io.swagger.codegen.v3.ClientOptInput;
4+
import io.swagger.codegen.v3.DefaultGenerator;
5+
import io.swagger.codegen.v3.config.CodegenConfigurator;
6+
import org.apache.commons.io.FileUtils;
7+
import org.junit.rules.TemporaryFolder;
8+
import org.testng.Assert;
9+
import org.testng.annotations.Test;
10+
11+
import java.io.File;
12+
13+
public class JavaPolymorphicAnnotationCodegenTest {
14+
15+
private TemporaryFolder folder = new TemporaryFolder();
16+
17+
@Test(description = "verify that jackson-polymorphism annotations are generated")
18+
public void testParameterOrders() throws Exception {
19+
this.folder.create();
20+
final File output = this.folder.getRoot();
21+
22+
final CodegenConfigurator configurator = new CodegenConfigurator()
23+
.setLang("spring")
24+
.setInputSpecURL("src/test/resources/3_0_0/polymorphicSchema.yaml")
25+
.setOutputDir(output.getAbsolutePath());
26+
27+
final ClientOptInput clientOptInput = configurator.toClientOptInput();
28+
new DefaultGenerator().opts(clientOptInput).generate();
29+
30+
final File petControllerFile = new File(output, "/src/main/java/io/swagger/model/PolymorphicResponse.java");
31+
final String content = FileUtils.readFileToString(petControllerFile);
32+
33+
Assert.assertTrue(content.contains(
34+
"@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = \"type\", visible = true )\n" +
35+
"@JsonSubTypes({\n" +
36+
" @JsonSubTypes.Type(value = Error.class, name = \"Error\"),\n" +
37+
" @JsonSubTypes.Type(value = Success.class, name = \"Success\"),\n" +
38+
"})"));
39+
40+
this.folder.delete();
41+
}
42+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
openapi: 3.0.3
2+
info:
3+
description: This is a simple API
4+
version: "1.0.0"
5+
title: Simple Inventory API
6+
servers:
7+
- description: test definition
8+
url: /
9+
paths:
10+
/provision:
11+
get:
12+
tags:
13+
- provision
14+
summary: inheritanceTest
15+
operationId: provision
16+
description: inheritanceTest
17+
responses:
18+
200:
19+
description: default response
20+
content:
21+
application/json:
22+
schema:
23+
$ref: '#/components/schemas/PolymorphicResponse'
24+
25+
components:
26+
schemas:
27+
PolymorphicResponse:
28+
type: object
29+
required:
30+
- type
31+
properties:
32+
type:
33+
type: string
34+
enum:
35+
- Success
36+
- Error
37+
description: the descriminator
38+
discriminator:
39+
propertyName: type
40+
Success:
41+
allOf:
42+
- $ref: '#/components/schemas/PolymorphicResponse'
43+
- type: object
44+
required:
45+
- target
46+
properties:
47+
target:
48+
type: string
49+
description: some target value
50+
dialogId:
51+
type: string
52+
format: uuid
53+
description: some dialogId
54+
Error:
55+
allOf:
56+
- $ref: '#/components/schemas/PolymorphicResponse'
57+
- type: object
58+
required:
59+
- message
60+
properties:
61+
message:
62+
type: string
63+
description: the message describing the error

0 commit comments

Comments
 (0)