Skip to content

Commit 072788a

Browse files
committed
Merge remote-tracking branch 'upstream/master' into ts-fetch-tests
2 parents ceaa2b4 + 614cc91 commit 072788a

File tree

799 files changed

+511
-51053
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

799 files changed

+511
-51053
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.20-SNAPSHOT</version>
15+
<version>1.0.21-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.20-SNAPSHOT</swagger-codegen-version>
256-
<swagger-parser-version>2.0.20-SNAPSHOT</swagger-parser-version>
255+
<swagger-codegen-version>3.0.21-SNAPSHOT</swagger-codegen-version>
256+
<swagger-parser-version>2.0.20</swagger-parser-version>
257257
<swagger-core-version>2.1.2</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: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,6 @@
109109
import static io.swagger.codegen.v3.generators.CodegenHelper.getTypeMappings;
110110
import static io.swagger.codegen.v3.generators.CodegenHelper.initalizeSpecialCharacterMapping;
111111
import static io.swagger.codegen.v3.generators.handlebars.ExtensionHelper.getBooleanValue;
112-
import static io.swagger.codegen.v3.utils.ModelUtils.processCodegenModels;
113112

114113
public abstract class DefaultCodegenConfig implements CodegenConfig {
115114
private static final Logger LOGGER = LoggerFactory.getLogger(DefaultCodegenConfig.class);
@@ -268,11 +267,47 @@ public Map<String, Object> postProcessAllModels(Map<String, Object> processedMod
268267
}
269268
}
270269
if (supportsInheritance) {
271-
processCodegenModels(allModels);
270+
for (String name : allModels.keySet()) {
271+
final CodegenModel codegenModel = allModels.get(name);
272+
fixUpParentAndInterfaces(codegenModel, allModels);
273+
}
272274
}
273275
return processedModels;
274276
}
275277

278+
/**
279+
* Fix up all parent and interface CodegenModel references.
280+
* @param allModels
281+
*/
282+
protected void fixUpParentAndInterfaces(CodegenModel codegenModel, Map<String, CodegenModel> allModels) {
283+
if (codegenModel.parent != null) {
284+
codegenModel.parentModel = allModels.get(codegenModel.parent);
285+
}
286+
if (codegenModel.interfaces != null && !codegenModel.interfaces.isEmpty()) {
287+
codegenModel.interfaceModels = new ArrayList<CodegenModel>(codegenModel.interfaces.size());
288+
for (String intf : codegenModel.interfaces) {
289+
CodegenModel intfModel = allModels.get(intf);
290+
if (intfModel != null) {
291+
codegenModel.interfaceModels.add(intfModel);
292+
}
293+
}
294+
}
295+
CodegenModel parent = codegenModel.parentModel;
296+
// if a discriminator exists on the parent, don't add this child to the inheritance hierarchy
297+
// TODO Determine what to do if the parent discriminator name == the grandparent discriminator name
298+
while (parent != null) {
299+
if (parent.children == null) {
300+
parent.children = new ArrayList<CodegenModel>();
301+
}
302+
parent.children.add(codegenModel);
303+
if (parent.discriminator == null) {
304+
parent = allModels.get(parent.parent);
305+
} else {
306+
parent = null;
307+
}
308+
}
309+
}
310+
276311
// override with any special post-processing
277312
@SuppressWarnings("static-method")
278313
public Map<String, Object> postProcessModels(Map<String, Object> objs) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ public void processOpts() {
149149
supportingFiles.add(new SupportingFile("Filters" + File.separator + "BasePathFilter.mustache", packageFolder + File.separator + "Filters", "BasePathFilter.cs"));
150150
supportingFiles.add(new SupportingFile("Filters" + File.separator + "GeneratePathParamsValidationFilter.mustache", packageFolder + File.separator + "Filters", "GeneratePathParamsValidationFilter.cs"));
151151
supportingFiles.add(new SupportingFile("Startup.mustache", packageFolder, "Startup.cs"));
152-
} else if (aspNetCoreVersion.equals("2.1")) {
152+
} else if (aspNetCoreVersion.equals("2.1") || aspNetCoreVersion.equals("2.2")) {
153153
apiTemplateFiles.put("2.1/controller.mustache", ".cs");
154154
addInterfaceControllerTemplate();
155155

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

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
import io.swagger.codegen.v3.CodegenOperation;
99
import io.swagger.codegen.v3.CodegenParameter;
1010
import io.swagger.codegen.v3.CodegenProperty;
11-
import io.swagger.codegen.v3.generators.handlebars.java.JavaHelper;
1211
import io.swagger.codegen.v3.generators.DefaultCodegenConfig;
12+
import io.swagger.codegen.v3.generators.handlebars.java.JavaHelper;
1313
import io.swagger.v3.oas.models.OpenAPI;
1414
import io.swagger.v3.oas.models.Operation;
1515
import io.swagger.v3.oas.models.PathItem;
@@ -954,6 +954,33 @@ public void postProcessModelProperty(CodegenModel model, CodegenProperty propert
954954
}
955955
}
956956

957+
@Override
958+
protected void fixUpParentAndInterfaces(CodegenModel codegenModel, Map<String, CodegenModel> allModels) {
959+
super.fixUpParentAndInterfaces(codegenModel, allModels);
960+
if (codegenModel.vars == null || codegenModel.vars.isEmpty() || codegenModel.parentModel == null) {
961+
return;
962+
}
963+
CodegenModel parentModel = codegenModel.parentModel;
964+
965+
for (CodegenProperty codegenProperty : codegenModel.vars) {
966+
while (parentModel != null) {
967+
if (parentModel.vars == null || parentModel.vars.isEmpty()) {
968+
parentModel = parentModel.parentModel;
969+
continue;
970+
}
971+
boolean hasConflict = parentModel.vars.stream()
972+
.anyMatch(parentProperty -> parentProperty.name.equals(codegenProperty.name) && !parentProperty.datatype.equals(codegenProperty.datatype));
973+
if (hasConflict) {
974+
codegenProperty.name = toVarName(codegenModel.name + "_" + codegenProperty.name);
975+
codegenProperty.getter = toGetter(codegenProperty.name);
976+
codegenProperty.setter = toGetter(codegenProperty.name);
977+
break;
978+
}
979+
parentModel = parentModel.parentModel;
980+
}
981+
}
982+
}
983+
957984
@Override
958985
public void postProcessParameter(CodegenParameter parameter) { }
959986

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

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public class MicronautCodegen extends AbstractJavaCodegen implements BeanValidat
3535
private static final String BASE_PACKAGE = "basePackage";
3636
private static final String USE_TAGS = "useTags";
3737
private static final String IMPLICIT_HEADERS = "implicitHeaders";
38+
private static final String SKIP_SUPPORT_FILES = "skipSupportFiles";
3839

3940
private String title = "swagger-petstore";
4041
private String configPackage = "io.swagger.configuration";
@@ -66,6 +67,7 @@ private void init() {
6667
cliOptions.add(new CliOption(TITLE, "server title name or client service name"));
6768
cliOptions.add(new CliOption(CONFIG_PACKAGE, "configuration package for generated code"));
6869
cliOptions.add(new CliOption(BASE_PACKAGE, "base package (invokerPackage) for generated code"));
70+
cliOptions.add(new CliOption(SKIP_SUPPORT_FILES, "skip support files such as pom.xml, mvnw, etc from code generation."));
6971
cliOptions.add(CliOption.newBoolean(USE_TAGS, "use tags for creating interface and controller classnames"));
7072
cliOptions.add(CliOption.newBoolean(USE_BEANVALIDATION, "Use BeanValidation API annotations"));
7173
cliOptions.add(CliOption.newBoolean(IMPLICIT_HEADERS, "Use of @ApiImplicitParams for headers."));
@@ -152,6 +154,11 @@ public void processOpts() {
152154
this.setUseOptional(convertPropertyToBoolean(USE_OPTIONAL));
153155
}
154156

157+
boolean skipSupportFiles = false;
158+
if (additionalProperties.containsKey(SKIP_SUPPORT_FILES)) {
159+
skipSupportFiles = Boolean.valueOf(additionalProperties.get(SKIP_SUPPORT_FILES).toString());
160+
}
161+
155162
if (useBeanValidation) {
156163
writePropertyBack(USE_BEANVALIDATION, useBeanValidation);
157164
}
@@ -164,14 +171,15 @@ public void processOpts() {
164171
writePropertyBack(USE_OPTIONAL, useOptional);
165172
}
166173

167-
supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml"));
168-
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
169-
supportingFiles.add(new SupportingFile("mvnw", "", "mvnw"));
170-
supportingFiles.add(new SupportingFile("mvnw.cmd", "", "mvnw.cmd"));
171-
supportingFiles.add(new SupportingFile("unsupportedOperationExceptionHandler.mustache",
174+
if (!skipSupportFiles) {
175+
supportingFiles.add(new SupportingFile("pom.mustache", "", "pom.xml"));
176+
supportingFiles.add(new SupportingFile("README.mustache", "", "README.md"));
177+
supportingFiles.add(new SupportingFile("mvnw", "", "mvnw"));
178+
supportingFiles.add(new SupportingFile("mvnw.cmd", "", "mvnw.cmd"));
179+
supportingFiles.add(new SupportingFile("unsupportedOperationExceptionHandler.mustache",
172180
(sourceFolder + File.separator + configPackage).replace(".", File.separator), "UnsupportedOperationExceptionHandler.java"));
173-
supportingFiles.add(new SupportingFile("mainApplication.mustache", (sourceFolder + File.separator).replace(".", File.separator), "MainApplication.java"));
174-
181+
supportingFiles.add(new SupportingFile("mainApplication.mustache", (sourceFolder + File.separator).replace(".", File.separator), "MainApplication.java"));
182+
}
175183
addHandlebarsLambdas(additionalProperties);
176184
}
177185

src/main/java/io/swagger/codegen/v3/generators/scala/AbstractScalaCodegen.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -254,10 +254,4 @@ protected String stripPackageName(String input) {
254254
int lastIndexOfDot = input.lastIndexOf(".");
255255
return input.substring(lastIndexOfDot + 1);
256256
}
257-
258-
// todo: remove this once handlebar templates for this generator are implemented
259-
@Override
260-
protected void setTemplateEngine() {
261-
templateEngine = new MustacheTemplateEngine(this);
262-
}
263257
}

src/main/resources/mustache/scala/akka-http-server/api.mustache renamed to src/main/resources/handlebars/scala/akka-http-server/api.mustache

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class {{classname}}(
3535
{{#headerParams}} }{{/headerParams}}
3636
{{^queryParams.isEmpty}} }{{/queryParams.isEmpty}}
3737
}
38-
}{{^-last}} ~{{/-last}}
38+
}{{^@last}} ~{{/@last}}
3939
{{/operation}}
4040
}
4141

@@ -50,7 +50,7 @@ trait {{classname}}Service {
5050
{{/responses}}
5151
*/
5252
def {{operationId}}({{#vendorExtensions.paramsWithSupportedType}}{{paramName}}: {{^required}}{{^isBodyParam}}Option[{{/isBodyParam}}{{/required}}{{dataType}}{{^required}}{{^isBodyParam}}]{{/isBodyParam}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/vendorExtensions.paramsWithSupportedType}}){{^vendorExtensions.complexReturnTypes.isEmpty}}
53-
(implicit {{#vendorExtensions.complexReturnTypes}}toEntityMarshaller{{baseType}}{{containerType}}: ToEntityMarshaller[{{dataType}}]{{^-last}}, {{/-last}}{{/vendorExtensions.complexReturnTypes}}){{/vendorExtensions.complexReturnTypes.isEmpty}}: Route
53+
(implicit {{#vendorExtensions.complexReturnTypes}}toEntityMarshaller{{baseType}}{{containerType}}: ToEntityMarshaller[{{dataType}}]{{^@last}}, {{/@last}}{{/vendorExtensions.complexReturnTypes}}){{/vendorExtensions.complexReturnTypes.isEmpty}}: Route
5454

5555
{{/operation}}
5656
}

0 commit comments

Comments
 (0)