Skip to content

Commit ab0c3af

Browse files
authored
Merge branch 'master' into bug/fix-917-python-namespace-package-folders
2 parents 1c00e7a + 7e89e84 commit ab0c3af

File tree

16 files changed

+191
-104
lines changed

16 files changed

+191
-104
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.27-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.27-SNAPSHOT</swagger-codegen-version>
256-
<swagger-parser-version>2.0.26</swagger-parser-version>
257-
<swagger-core-version>2.1.9</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: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1358,12 +1358,7 @@ public CodegenModel fromModel(String name, Schema schema, Map<String, Schema> al
13581358
addParentContainer(codegenModel, name, schema);
13591359
}
13601360
else if (schema instanceof MapSchema) {
1361-
codegenModel.getVendorExtensions().put(CodegenConstants.IS_MAP_CONTAINER_EXT_NAME, Boolean.TRUE);
1362-
codegenModel.getVendorExtensions().put(IS_CONTAINER_EXT_NAME, Boolean.TRUE);
1363-
addParentContainer(codegenModel, name, schema);
1364-
if (hasSchemaProperties(schema) || hasTrueAdditionalProperties(schema)) {
1365-
addAdditionPropertiesToCodeGenModel(codegenModel, schema);
1366-
}
1361+
processMapSchema(codegenModel, name, schema);
13671362

13681363
}
13691364
else if (schema instanceof ComposedSchema) {
@@ -1493,6 +1488,15 @@ else if (schema instanceof ComposedSchema) {
14931488
return codegenModel;
14941489
}
14951490

1491+
protected void processMapSchema(CodegenModel codegenModel, String name, Schema schema) {
1492+
codegenModel.getVendorExtensions().put(CodegenConstants.IS_MAP_CONTAINER_EXT_NAME, Boolean.TRUE);
1493+
codegenModel.getVendorExtensions().put(IS_CONTAINER_EXT_NAME, Boolean.TRUE);
1494+
addParentContainer(codegenModel, name, schema);
1495+
if (hasSchemaProperties(schema) || hasTrueAdditionalProperties(schema)) {
1496+
addAdditionPropertiesToCodeGenModel(codegenModel, schema);
1497+
}
1498+
}
1499+
14961500
/**
14971501
* Recursively look for a discriminator in the interface tree
14981502
*/

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/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);

src/main/java/io/swagger/codegen/v3/generators/kotlin/AbstractKotlinCodegen.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import io.swagger.v3.oas.models.media.Schema;
1212
import org.slf4j.Logger;
1313
import org.slf4j.LoggerFactory;
14+
import com.github.jknack.handlebars.helper.StringHelpers;
15+
import com.github.jknack.handlebars.Handlebars;
1416

1517
import java.io.File;
1618
import java.util.Arrays;
@@ -506,6 +508,12 @@ public String toVarName(String name) {
506508
return super.toVarName(sanitizeKotlinSpecificNames(name));
507509
}
508510

511+
@Override
512+
public void addHandlebarHelpers(Handlebars handlebars) {
513+
super.addHandlebarHelpers(handlebars);
514+
handlebars.registerHelpers(StringHelpers.class);
515+
}
516+
509517
/**
510518
* Provides a strongly typed declaration for simple arrays of some type and arrays of arrays of some type.
511519
*

src/main/java/io/swagger/codegen/v3/generators/kotlin/KotlinServerCodegen.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
import java.util.Arrays;
1919
import java.util.List;
2020
import java.util.Map;
21-
import com.github.jknack.handlebars.helper.StringHelpers;
22-
import com.github.jknack.handlebars.Handlebars;
2321
import org.apache.commons.lang3.StringUtils;
2422

2523
import static java.util.Collections.singletonMap;
@@ -228,12 +226,6 @@ public void processOpts() {
228226
supportingFiles.add(new SupportingFile("ApiKeyAuth.kt.mustache", infrastructureFolder, "ApiKeyAuth.kt"));
229227
}
230228

231-
@Override
232-
public void addHandlebarHelpers(Handlebars handlebars) {
233-
super.addHandlebarHelpers(handlebars);
234-
handlebars.registerHelpers(StringHelpers.class);
235-
}
236-
237229
@Override
238230
public String getDefaultTemplateDir() {
239231
return "kotlin-server";

src/main/java/io/swagger/codegen/v3/generators/php/PhpClientCodegen.java

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,40 @@
22

33
import io.swagger.codegen.v3.CliOption;
44
import io.swagger.codegen.v3.CodegenConstants;
5+
import io.swagger.codegen.v3.CodegenModel;
56
import io.swagger.codegen.v3.CodegenOperation;
67
import io.swagger.codegen.v3.CodegenParameter;
78
import io.swagger.codegen.v3.CodegenProperty;
89
import io.swagger.codegen.v3.CodegenSecurity;
910
import io.swagger.codegen.v3.CodegenType;
1011
import io.swagger.codegen.v3.SupportingFile;
1112
import io.swagger.codegen.v3.generators.DefaultCodegenConfig;
13+
import io.swagger.v3.oas.models.media.ArraySchema;
14+
import io.swagger.v3.oas.models.media.BooleanSchema;
15+
import io.swagger.v3.oas.models.media.DateSchema;
16+
import io.swagger.v3.oas.models.media.DateTimeSchema;
17+
import io.swagger.v3.oas.models.media.IntegerSchema;
18+
import io.swagger.v3.oas.models.media.MapSchema;
19+
import io.swagger.v3.oas.models.media.NumberSchema;
20+
import io.swagger.v3.oas.models.media.ObjectSchema;
21+
import io.swagger.v3.oas.models.media.Schema;
22+
import io.swagger.v3.oas.models.media.StringSchema;
23+
import io.swagger.v3.oas.models.security.SecurityScheme;
24+
import io.swagger.v3.parser.util.SchemaTypeUtil;
25+
import org.apache.commons.lang3.StringUtils;
26+
import org.slf4j.Logger;
27+
import org.slf4j.LoggerFactory;
1228

1329
import java.io.File;
14-
import java.util.Arrays;
1530
import java.util.ArrayList;
31+
import java.util.Arrays;
1632
import java.util.Collections;
1733
import java.util.HashMap;
34+
import java.util.HashSet;
1835
import java.util.List;
1936
import java.util.Map;
20-
import java.util.HashSet;
2137
import java.util.regex.Matcher;
2238

23-
import io.swagger.v3.oas.models.media.*;
24-
import io.swagger.v3.oas.models.security.SecurityScheme;
25-
import io.swagger.v3.parser.util.SchemaTypeUtil;
26-
import org.apache.commons.lang3.StringUtils;
27-
28-
import org.slf4j.Logger;
29-
import org.slf4j.LoggerFactory;
30-
3139
import static io.swagger.codegen.v3.generators.handlebars.ExtensionHelper.getBooleanValue;
3240

3341
public class PhpClientCodegen extends DefaultCodegenConfig {
@@ -444,6 +452,12 @@ public void setComposerProjectName(String composerProjectName) {
444452
this.composerProjectName = composerProjectName;
445453
}
446454

455+
@Override
456+
protected void processMapSchema(CodegenModel codegenModel, String name, Schema schema) {
457+
super.processMapSchema(codegenModel, name, schema);
458+
addVars(codegenModel, schema.getProperties(), schema.getRequired());
459+
}
460+
447461
@Override
448462
public String toVarName(String name) {
449463
// sanitize name

src/main/java/io/swagger/codegen/v3/generators/python/PythonClientCodegen.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,8 @@ public void processOpts() {
174174
}
175175

176176
if (additionalProperties.containsKey(CodegenConstants.PROJECT_NAME)) {
177-
setProjectName((String) additionalProperties.get(CodegenConstants.PROJECT_NAME));
177+
String projectName = (String) additionalProperties.get(CodegenConstants.PROJECT_NAME);
178+
setProjectName(projectName.replaceAll("[^a-zA-Z0-9\\s\\-_]",""));
178179
}
179180
else {
180181
// default: set project based on package name
@@ -470,6 +471,10 @@ public String toParamName(String name) {
470471

471472
@Override
472473
public String toModelName(String name) {
474+
if (name == null) {
475+
// sanitizeName will return "Object" for null, but this is called "object" in python
476+
return "object";
477+
}
473478
name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
474479
// remove dollar sign
475480
name = name.replaceAll("$", "");

0 commit comments

Comments
 (0)