Skip to content

Commit 44a8400

Browse files
authored
Merge branch 'master' into fix1177
2 parents 33fc185 + f31e101 commit 44a8400

30 files changed

+289
-151
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@
44
# Log file
55
*.log
66

7+
# Temporary files
8+
*.tmp
9+
tmp/
10+
711
# BlueJ files
812
*.ctxt
913

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
## Overview
88
**Swagger Codegen Generators** project is a set of classes and templates ([Handlebars](https://jknack.github.io/handlebars.java)) used by [Swagger Codegen 3.0.0 project](https://github.com/swagger-api/swagger-codegen/tree/3.0.0) in its code generation process for a specific language or language framework. The main differents with **Swagger Codegen 2.x.x** are:
99

10-
- **Handlebars as template engine:** with Handelbars feature is possible to create more logic-less templates.
10+
- **Handlebars as template engine:** with Handlebars feature is possible to create more logic-less templates.
1111
- **OAS 3 support:** generator classes work with OpenAPI Specification V3.
1212

1313
More details about these and more differences are referenced at [https://github.com/swagger-api/swagger-codegen/releases/tag/v3.0.0](https://github.com/swagger-api/swagger-codegen/releases/tag/v3.0.0)
@@ -18,16 +18,16 @@ You need the following installed and available in your $PATH:
1818
* Java 8 (http://java.oracle.com)
1919
* Apache maven 3.0.4 or greater (http://maven.apache.org/)
2020

21-
## How to contribute.
22-
Right now the templates and generators classes are migrated from [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) **3.0.0** branch.
21+
## How to Contribute.
22+
Right now the templates and generators classes are migrated from [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) **3.0.0** branch.
2323
If you want to migrate an existing language/framework, you can follow this [guide](https://github.com/swagger-api/swagger-codegen/wiki/Swagger-Codegen-migration-(swagger-codegen-generators-repository)).
24-
Also you need to keep in mind that **Handlebars** is used as template engines and besides it's pretty similar to **Mustache** there are different that can not be ignored. So you can follow this [guide](https://github.com/swagger-api/swagger-codegen/wiki/Swagger-Codegen-migration-from-Mustache-and-Handlebars-templates.) which explains steps to migrate templates from **Mustaches** to **Handelbars**.
24+
Also you need to keep in mind that **Handlebars** is used as the template engine. It's pretty similar to **Mustache**, but there are differences that can not be ignored. So you can follow this [guide](https://github.com/swagger-api/swagger-codegen/wiki/Swagger-Codegen-migration-from-Mustache-and-Handlebars-templates.) which explains steps to migrate templates from **Mustaches** to **Handlebars**.
2525

26-
## Security contact
26+
## Security Contact
2727

2828
Please disclose any security-related issues or vulnerabilities by emailing [[email protected]](mailto:[email protected]), instead of using the public issue tracker.
2929

30-
## License information on Generated Code
30+
## License Information on Generated Code
3131

3232
The Swagger Codegen project is intended as a benefit for users of the Swagger / Open API Specification. The project itself has the [License](#license) as specified. In addition, please understand the following points:
3333

pom.xml

Lines changed: 13 additions & 13 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.43-SNAPSHOT</version>
15+
<version>1.0.45-SNAPSHOT</version>
1616
<packaging>jar</packaging>
1717

1818
<build>
@@ -68,7 +68,7 @@
6868
<dependency>
6969
<groupId>org.apache.maven.surefire</groupId>
7070
<artifactId>surefire-junit4</artifactId>
71-
<version>3.0.0</version>
71+
<version>${surefire-version}</version>
7272
</dependency>
7373
</dependencies>
7474
<configuration>
@@ -251,33 +251,33 @@
251251
<dependency>
252252
<groupId>com.atlassian.commonmark</groupId>
253253
<artifactId>commonmark</artifactId>
254-
<version>0.9.0</version>
254+
<version>0.17.0</version>
255255
</dependency>
256256
<dependency>
257257
<groupId>org.mockito</groupId>
258258
<artifactId>mockito-core</artifactId>
259-
<version>2.8.47</version>
259+
<version>2.28.2</version>
260260
<scope>test</scope>
261261
</dependency>
262262
</dependencies>
263263
<properties>
264264
<maven.compiler.release>8</maven.compiler.release>
265-
<swagger-codegen-version>3.0.45</swagger-codegen-version>
266-
<swagger-parser-version>2.1.14</swagger-parser-version>
267-
<swagger-core-version>2.2.11</swagger-core-version>
268-
<jackson-version>2.15.1</jackson-version>
269-
<jackson-databind-version>2.15.1</jackson-databind-version>
265+
<swagger-codegen-version>3.0.51-SNAPSHOT</swagger-codegen-version>
266+
<swagger-parser-version>2.1.18</swagger-parser-version>
267+
<swagger-core-version>2.2.17</swagger-core-version>
268+
<jackson-version>2.15.3</jackson-version>
269+
<jackson-databind-version>2.15.3</jackson-databind-version>
270270
<scala-version>2.11.1</scala-version>
271271
<felix-version>3.3.0</felix-version>
272-
<commons-io-version>2.11.0</commons-io-version>
272+
<commons-io-version>2.14.0</commons-io-version>
273273
<commons-cli-version>1.5.0</commons-cli-version>
274274
<junit-version>4.13.2</junit-version>
275275
<maven-plugin-version>1.0.0</maven-plugin-version>
276-
<commons-lang-version>3.12.0</commons-lang-version>
276+
<commons-lang-version>3.13.0</commons-lang-version>
277277
<slf4j-version>1.7.36</slf4j-version>
278278
<scala-maven-plugin-version>3.2.1</scala-maven-plugin-version>
279-
<testng-version>7.7.1</testng-version>
280-
<surefire-version>3.0.0</surefire-version>
279+
<testng-version>7.8.0</testng-version>
280+
<surefire-version>3.1.2</surefire-version>
281281
<jmockit-version>1.49</jmockit-version>
282282
<reflections-version>0.10.2</reflections-version>
283283

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

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1344,6 +1344,9 @@ public CodegenModel fromModel(String name, Schema schema, Map<String, Schema> al
13441344
codegenModel.getVendorExtensions().put(CodegenConstants.IS_ALIAS_EXT_NAME, typeAliases.containsKey(name));
13451345

13461346
codegenModel.discriminator = schema.getDiscriminator();
1347+
if (codegenModel.discriminator != null && codegenModel.discriminator.getPropertyName() != null) {
1348+
codegenModel.discriminator.setPropertyName(toVarName(codegenModel.discriminator.getPropertyName()));
1349+
}
13471350

13481351
if (schema.getXml() != null) {
13491352
codegenModel.xmlPrefix = schema.getXml().getPrefix();
@@ -1404,11 +1407,6 @@ else if (schema instanceof ComposedSchema) {
14041407
final List<Schema> allOf = composed.getAllOf();
14051408
// interfaces (intermediate models)
14061409
if (allOf != null && !allOf.isEmpty()) {
1407-
1408-
if (codegenModel.discriminator != null && codegenModel.discriminator.getPropertyName() != null) {
1409-
codegenModel.discriminator.setPropertyName(toVarName(codegenModel.discriminator.getPropertyName()));
1410-
}
1411-
14121410
for (int i = 0; i < allOf.size(); i++) {
14131411
if (i == 0 && !copyFistAllOfProperties) {
14141412
continue;
@@ -1435,16 +1433,6 @@ else if (schema instanceof ComposedSchema) {
14351433
}
14361434
}
14371435

1438-
final List<Schema> oneOf = composed.getOneOf();
1439-
if (oneOf != null && !oneOf.isEmpty()) {
1440-
if (schema.getDiscriminator() != null) {
1441-
codegenModel.discriminator = schema.getDiscriminator();
1442-
if (codegenModel.discriminator != null && codegenModel.discriminator.getPropertyName() != null) {
1443-
codegenModel.discriminator.setPropertyName(toVarName(codegenModel.discriminator.getPropertyName()));
1444-
}
1445-
}
1446-
}
1447-
14481436
if (parent != null) {
14491437
codegenModel.parentSchema = parentName;
14501438
codegenModel.parent = typeMapping.containsKey(parentName) ? typeMapping.get(parentName): toModelName(parentName);

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

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import io.swagger.codegen.v3.CodegenSecurity;
99
import io.swagger.codegen.v3.CodegenType;
1010
import io.swagger.codegen.v3.SupportingFile;
11+
import io.swagger.codegen.v3.utils.SemVer;
1112
import io.swagger.v3.core.util.Json;
1213
import io.swagger.v3.oas.models.OpenAPI;
1314
import io.swagger.v3.oas.models.security.SecurityScheme;
@@ -30,7 +31,9 @@ public class AspNetCoreServerCodegen extends AbstractCSharpCodegen {
3031
private static final String ASP_NET_CORE_VERSION_OPTION = "--aspnet-core-version";
3132
private static final String INTERFACE_ONLY_OPTION = "--interface-only";
3233
private static final String INTERFACE_CONTROLLER_OPTION = "--interface-controller";
33-
private final String DEFAULT_ASP_NET_CORE_VERSION = "3.1";
34+
private static final String SWASH_BUCKLE_VERSION_OPTION = "swashBuckleVersion";
35+
private static final String TARGET_FRAMEWORK = "targetFramework";
36+
private final String DEFAULT_ASP_NET_CORE_VERSION = "7.0";
3437
private String aspNetCoreVersion;
3538

3639
@SuppressWarnings("hiding")
@@ -162,6 +165,7 @@ public void processOpts() {
162165
supportingFiles.add(new SupportingFile("Filters" + File.separator + "GeneratePathParamsValidationFilter.mustache", packageFolder + File.separator + "Filters", "GeneratePathParamsValidationFilter.cs"));
163166
supportingFiles.add(new SupportingFile("Startup.mustache", packageFolder, "Startup.cs"));
164167
} else {
168+
final SemVer semVer = new SemVer(aspNetCoreVersion);
165169
apiTemplateFiles.put("3.0/controller.mustache", ".cs");
166170
addInterfaceControllerTemplate();
167171

@@ -170,7 +174,20 @@ public void processOpts() {
170174

171175
supportingFiles.add(new SupportingFile("3.0/Startup.mustache", packageFolder, "Startup.cs"));
172176
supportingFiles.add(new SupportingFile("3.0/Program.mustache", packageFolder, "Program.cs"));
173-
if (isThreeDotOneVersion) {
177+
178+
if (semVer.atLeast("5.0")) {
179+
additionalProperties.put(SWASH_BUCKLE_VERSION_OPTION, "6.4.0");
180+
supportingFiles.add(new SupportingFile("3.1/Project.csproj.mustache", packageFolder, this.packageName + ".csproj"));
181+
}
182+
if (semVer.atLeast("7.0")) {
183+
additionalProperties.put(TARGET_FRAMEWORK, "net7.0");
184+
} else if (semVer.atLeast("6.0")) {
185+
additionalProperties.put(TARGET_FRAMEWORK, "net6.0");
186+
} else if (semVer.atLeast("5.0")) {
187+
additionalProperties.put(TARGET_FRAMEWORK, "net5.0");
188+
} else if (semVer.atLeast("3.1")) {
189+
additionalProperties.put(SWASH_BUCKLE_VERSION_OPTION, "5.5.1");
190+
additionalProperties.put(TARGET_FRAMEWORK, "netcoreapp3.1");
174191
supportingFiles.add(new SupportingFile("3.1/Project.csproj.mustache", packageFolder, this.packageName + ".csproj"));
175192
} else {
176193
supportingFiles.add(new SupportingFile("3.0/Project.csproj.mustache", packageFolder, this.packageName + ".csproj"));
@@ -284,7 +301,8 @@ protected void processOperation(CodegenOperation operation) {
284301
List <CodegenContent> contents = operation.getContents()
285302
.stream()
286303
.filter(codegenContent -> !codegenContent.getIsForm())
287-
.collect(Collectors.toList());
304+
.collect(
305+
Collectors.toList());
288306
operation.getContents().clear();
289307
operation.getContents().addAll(contents);
290308
}
@@ -345,7 +363,7 @@ private void addInterfaceControllerTemplate() {
345363
boolean interfaceController = false;
346364
if (StringUtils.isNotBlank(interfaceControllerOption)) {
347365
interfaceController = Boolean.valueOf(getOptionValue(INTERFACE_CONTROLLER_OPTION));
348-
} else {
366+
} else {
349367
if (additionalProperties.get(INTERFACE_CONTROLLER_OPTION.substring(2)) != null) {
350368
interfaceController = Boolean.valueOf(additionalProperties.get(INTERFACE_CONTROLLER_OPTION.substring(2)).toString());
351369
}
@@ -378,7 +396,8 @@ private void setAspNetCoreVersion() {
378396
} else {
379397
this.aspNetCoreVersion = optionValue;
380398
}
381-
if (!this.aspNetCoreVersion.equals("2.0") && !this.aspNetCoreVersion.equals("2.1") && !this.aspNetCoreVersion.equals("2.2") && !this.aspNetCoreVersion.equals("3.0")) {
399+
final SemVer semVer = new SemVer(this.aspNetCoreVersion);
400+
if (semVer.compareTo(new SemVer("2.0")) < 0) {
382401
LOGGER.error("version '" + this.aspNetCoreVersion + "' is not supported, switching to default version: '" + DEFAULT_ASP_NET_CORE_VERSION + "'");
383402
this.aspNetCoreVersion = DEFAULT_ASP_NET_CORE_VERSION;
384403
}

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

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,7 +1052,7 @@ protected void fixUpParentAndInterfaces(CodegenModel codegenModel, Map<String, C
10521052

10531053
for (CodegenProperty codegenProperty : codegenModel.vars) {
10541054
CodegenModel parentModel = codegenModel.parentModel;
1055-
1055+
10561056
while (parentModel != null) {
10571057
if (parentModel.vars == null || parentModel.vars.isEmpty()) {
10581058
parentModel = parentModel.parentModel;
@@ -1677,11 +1677,6 @@ public void setLanguageArguments(List<CodegenArgument> languageArguments) {
16771677
super.setLanguageArguments(languageArguments);
16781678
}
16791679

1680-
@Override
1681-
public boolean defaultIgnoreImportMappingOption() {
1682-
return true;
1683-
}
1684-
16851680
@Override
16861681
public boolean checkAliasModel() {
16871682
return true;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public void addTemplateFiles() {
3030

3131
apiTestTemplateFiles.clear(); // TODO: add test template
3232
// clear model and api doc template as this codegen
33-
// does not support auto-generated markdown doc at the moment
33+
// does not support auto-generated markdown doc at the moment.
3434
// TODO: add doc templates
3535
modelDocTemplateFiles.remove("model_doc.mustache");
3636
apiDocTemplateFiles.remove("api_doc.mustache");

src/main/java/io/swagger/codegen/v3/generators/typescript/AbstractTypeScriptClientCodegen.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040

4141
public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegenConfig {
4242

43-
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractTypeScriptClientCodegen.class);
43+
protected static final Logger LOGGER = LoggerFactory.getLogger(AbstractTypeScriptClientCodegen.class);
4444

4545
private static final String UNDEFINED_VALUE = "undefined";
4646

0 commit comments

Comments
 (0)