Skip to content

Commit 8f55f7e

Browse files
authored
Merge branch 'master' into enable-kotlin-client-helpers
2 parents 7f85e59 + a2ffea4 commit 8f55f7e

File tree

63 files changed

+2461
-116
lines changed

Some content is hidden

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

63 files changed

+2461
-116
lines changed

pom.xml

Lines changed: 5 additions & 5 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.26-SNAPSHOT</version>
15+
<version>1.0.28-SNAPSHOT</version>
1616
<packaging>jar</packaging>
1717

1818
<build>
@@ -252,10 +252,10 @@
252252
</dependency>
253253
</dependencies>
254254
<properties>
255-
<swagger-codegen-version>3.0.26-SNAPSHOT</swagger-codegen-version>
256-
<swagger-parser-version>2.0.23</swagger-parser-version>
257-
<swagger-core-version>2.1.4</swagger-core-version>
258-
<jackson-version>2.11.4</jackson-version>
255+
<swagger-codegen-version>3.0.28-SNAPSHOT</swagger-codegen-version>
256+
<swagger-parser-version>2.0.27</swagger-parser-version>
257+
<swagger-core-version>2.1.10</swagger-core-version>
258+
<jackson-version>2.12.1</jackson-version>
259259
<scala-version>2.11.1</scala-version>
260260
<felix-version>3.3.0</felix-version>
261261
<commons-io-version>2.4</commons-io-version>

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

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -396,21 +396,25 @@ private String findEnumName(int truncateIdx, Object value) {
396396
}
397397

398398
/**
399-
* Returns the common prefix of variables for enum naming
399+
* Returns the common prefix of variables for enum naming if
400+
* two or more variables are present.
400401
*
401402
* @param vars List of variable names
402403
* @return the common prefix for naming
403404
*/
404405
public String findCommonPrefixOfVars(List<Object> vars) {
405-
try {
406-
String[] listStr = vars.toArray(new String[vars.size()]);
407-
String prefix = StringUtils.getCommonPrefix(listStr);
408-
// exclude trailing characters that should be part of a valid variable
409-
// e.g. ["status-on", "status-off"] => "status-" (not "status-o")
410-
return prefix.replaceAll("[a-zA-Z0-9]+\\z", "");
411-
} catch (ArrayStoreException e) {
412-
return "";
406+
if (vars.size() > 1) {
407+
try {
408+
String[] listStr = vars.toArray(new String[vars.size()]);
409+
String prefix = StringUtils.getCommonPrefix(listStr);
410+
// exclude trailing characters that should be part of a valid variable
411+
// e.g. ["status-on", "status-off"] => "status-" (not "status-o")
412+
return prefix.replaceAll("[a-zA-Z0-9]+\\z", "");
413+
} catch (ArrayStoreException e) {
414+
// do nothing, just return default value
415+
}
413416
}
417+
return "";
414418
}
415419

416420
/**
@@ -2235,11 +2239,7 @@ public CodegenOperation fromOperation(String path, String httpMethod, Operation
22352239
}
22362240
}
22372241

2238-
for (String i : imports) {
2239-
if (needToImport(i)) {
2240-
codegenOperation.imports.add(i);
2241-
}
2242-
}
2242+
addOperationImports(codegenOperation, imports);
22432243

22442244
codegenOperation.bodyParam = bodyParam;
22452245
codegenOperation.httpMethod = httpMethod.toUpperCase();
@@ -2293,6 +2293,14 @@ public int compare(CodegenParameter one, CodegenParameter another) {
22932293
return codegenOperation;
22942294
}
22952295

2296+
protected void addOperationImports(CodegenOperation codegenOperation, Set<String> operationImports) {
2297+
for (String operationImport : operationImports) {
2298+
if (needToImport(operationImport)) {
2299+
codegenOperation.imports.add(operationImport);
2300+
}
2301+
}
2302+
}
2303+
22962304
/**
22972305
* Convert Swagger Response object to Codegen Response object
22982306
*

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ protected CodegenModel processArrayItemSchema(String codegenModelName, CodegenPr
140140
return null;
141141
}
142142
this.updatePropertyDataType(codegenProperty, composedModel.name, arraySchema);
143+
this.updatePropertyDataType(codegenProperty.items, composedModel);
143144
return composedModel;
144145
}
145146
return null;
@@ -208,6 +209,7 @@ protected void updatePropertyDataType(CodegenProperty codegenProperty, String sc
208209
arraySchema.setItems(refSchema);
209210
codegenProperty.setDatatype(this.codegenConfig.getTypeDeclaration(arraySchema));
210211
codegenProperty.setDatatypeWithEnum(codegenProperty.getDatatype());
212+
codegenProperty.vendorExtensions.put("x-is-composed", true);
211213

212214
codegenProperty.defaultValue = this.codegenConfig.toDefaultValue(arraySchema);
213215
codegenProperty.defaultValueWithParam = this.codegenConfig.toDefaultValueWithParam(codegenProperty.baseName, arraySchema);
@@ -235,5 +237,6 @@ private void updatePropertyDataType(CodegenProperty codegenProperty, CodegenMode
235237
codegenProperty.datatypeWithEnum = composedModel.getClassname();
236238
codegenProperty.baseType = composedModel.getClassname();
237239
codegenProperty.complexType = composedModel.getClassname();
240+
codegenProperty.vendorExtensions.put("x-is-composed", true);
238241
}
239242
}

src/main/java/io/swagger/codegen/v3/generators/examples/ExampleGenerator.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,10 @@ private Object resolveSchemaToExample(String propertyName, String mediaType, Sch
195195
Schema innerType = ((ArraySchema) schema).getItems();
196196
if (innerType != null) {
197197
int arrayLength = schema.getMaxItems() != null ? schema.getMaxItems() : 2;
198+
if (arrayLength > 10) {
199+
logger.warn("value of maxItems of property {} is {}; limiting to 10 examples", schema, arrayLength);
200+
arrayLength = 10;
201+
}
198202
Object[] objectProperties = new Object[arrayLength];
199203
Object objProperty = resolveSchemaToExample(propertyName, mediaType, innerType, processedModels);
200204
for(int i=0; i < arrayLength; i++) {

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

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -187,16 +187,16 @@ public void processOpts() {
187187
this.setInvokerPackage((String) additionalProperties.get(CodegenConstants.INVOKER_PACKAGE));
188188
} else if (additionalProperties.containsKey(CodegenConstants.API_PACKAGE)) {
189189
// guess from api package
190-
String derviedInvokerPackage = deriveInvokerPackageName((String)additionalProperties.get(CodegenConstants.API_PACKAGE));
191-
this.additionalProperties.put(CodegenConstants.INVOKER_PACKAGE, derviedInvokerPackage);
190+
String derivedInvokerPackage = deriveInvokerPackageName((String)additionalProperties.get(CodegenConstants.API_PACKAGE));
191+
this.additionalProperties.put(CodegenConstants.INVOKER_PACKAGE, derivedInvokerPackage);
192192
this.setInvokerPackage((String) additionalProperties.get(CodegenConstants.INVOKER_PACKAGE));
193-
LOGGER.info("Invoker Package Name, originally not set, is now dervied from api package name: " + derviedInvokerPackage);
193+
LOGGER.info("Invoker Package Name, originally not set, is now derived from api package name: " + derivedInvokerPackage);
194194
} else if (additionalProperties.containsKey(CodegenConstants.MODEL_PACKAGE)) {
195195
// guess from model package
196-
String derviedInvokerPackage = deriveInvokerPackageName((String)additionalProperties.get(CodegenConstants.MODEL_PACKAGE));
197-
this.additionalProperties.put(CodegenConstants.INVOKER_PACKAGE, derviedInvokerPackage);
196+
String derivedInvokerPackage = deriveInvokerPackageName((String)additionalProperties.get(CodegenConstants.MODEL_PACKAGE));
197+
this.additionalProperties.put(CodegenConstants.INVOKER_PACKAGE, derivedInvokerPackage);
198198
this.setInvokerPackage((String) additionalProperties.get(CodegenConstants.INVOKER_PACKAGE));
199-
LOGGER.info("Invoker Package Name, originally not set, is now dervied from model package name: " + derviedInvokerPackage);
199+
LOGGER.info("Invoker Package Name, originally not set, is now derived from model package name: " + derivedInvokerPackage);
200200
} else if (StringUtils.isNotEmpty(invokerPackage)) {
201201
// not set in additionalProperties, add value from CodegenConfig in order to use it in templates
202202
additionalProperties.put(CodegenConstants.INVOKER_PACKAGE, invokerPackage);
@@ -492,6 +492,15 @@ private void sanitizeConfig() {
492492
}
493493
}
494494

495+
protected String escapeUnderscore(String name) {
496+
// Java 8 discourages naming things _, but Java 9 does not allow it.
497+
if("_".equals(name)) {
498+
return "_u";
499+
} else {
500+
return name;
501+
}
502+
}
503+
495504
@Override
496505
public String escapeReservedWord(String name) {
497506
if(this.reservedWordsMappings().containsKey(name)) {
@@ -562,11 +571,9 @@ public String toVarName(String name) {
562571
return "propertyClass";
563572
}
564573

565-
if("_".equals(name)) {
566-
name = "_u";
567-
}
574+
name = escapeUnderscore(name);
568575

569-
// if it's all uppper case, do nothing
576+
// if it's all upper case, do nothing
570577
if (name.matches("^[A-Z_]*$")) {
571578
return name;
572579
}
@@ -1233,15 +1240,6 @@ protected void replaceDuplicatedInModelProperties(Map<String, Schema> definition
12331240
schema.set$ref(schema.get$ref().replace(modelName, newModelName));
12341241
});
12351242
}
1236-
/*
1237-
@Override
1238-
public String findCommonPrefixOfVars(List<String> vars) {
1239-
String prefix = StringUtils.getCommonPrefix(vars.toArray(new String[vars.size()]));
1240-
// exclude trailing characters that should be part of a valid variable
1241-
// e.g. ["status-on", "status-off"] => "status-" (not "status-o")
1242-
return prefix.replaceAll("[a-zA-Z0-9]+\\z", "");
1243-
}
1244-
*/
12451243

12461244
@Override
12471245
public String toEnumName(CodegenProperty property) {
@@ -1273,7 +1271,7 @@ public String toEnumVarName(String value, String datatype) {
12731271
if (var.matches("\\d.*")) {
12741272
return "_" + var;
12751273
} else {
1276-
return var;
1274+
return escapeUnderscore(var).toUpperCase();
12771275
}
12781276
}
12791277

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -876,6 +876,11 @@ protected List<Map<String, Object>> modelInheritanceSupport(List<?> allModels) {
876876
Map<String, Object> parent = new HashMap<>();
877877
parent.put("classname", parentModel.classname);
878878
List<CodegenModel> childrenModels = byParent.get(parentModel);
879+
880+
if (childrenModels == null || childrenModels.isEmpty()) {
881+
continue;
882+
}
883+
879884
for (CodegenModel model : childrenModels) {
880885
Map<String, Object> child = new HashMap<>();
881886
child.put("name", model.name);

0 commit comments

Comments
 (0)