Skip to content

Commit c868577

Browse files
authored
Merge branch 'master' into kotlin-template-impr
2 parents bf9a3d6 + 219cb45 commit c868577

Some content is hidden

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

53 files changed

+170
-1594
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,8 +248,8 @@
248248
<properties>
249249
<swagger-codegen-version>3.0.12-SNAPSHOT</swagger-codegen-version>
250250
<swagger-parser-version>2.0.15-SNAPSHOT</swagger-parser-version>
251-
<swagger-core-version>2.0.9</swagger-core-version>
252-
<jackson-version>2.9.9</jackson-version>
251+
<swagger-core-version>2.0.10-SNAPSHOT</swagger-core-version>
252+
<jackson-version>2.9.10</jackson-version>
253253
<scala-version>2.11.1</scala-version>
254254
<felix-version>3.3.0</felix-version>
255255
<commons-io-version>2.4</commons-io-version>

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

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import io.swagger.codegen.v3.generators.handlebars.lambda.TitlecaseLambda;
1616
import io.swagger.codegen.v3.generators.handlebars.lambda.UppercaseLambda;
1717
import io.swagger.codegen.v3.utils.ModelUtils;
18+
import io.swagger.codegen.v3.utils.URLPathUtil;
1819
import io.swagger.v3.oas.models.OpenAPI;
1920
import io.swagger.v3.oas.models.Operation;
2021
import io.swagger.v3.oas.models.PathItem;
@@ -33,6 +34,7 @@
3334
import org.slf4j.LoggerFactory;
3435

3536
import java.io.File;
37+
import java.net.URL;
3638
import java.util.ArrayList;
3739
import java.util.Arrays;
3840
import java.util.HashMap;
@@ -959,6 +961,18 @@ public void setPreserveNewLines(boolean preserveNewLines) {
959961
@Override
960962
public void preprocessOpenAPI(OpenAPI openAPI) {
961963
super.preprocessOpenAPI(openAPI);
964+
965+
final URL urlInfo = URLPathUtil.getServerURL(openAPI);
966+
if ( urlInfo != null && urlInfo.getPort() > 0) {
967+
additionalProperties.put("serverUrl", String.format("%s://%s:%s", urlInfo.getProtocol(), urlInfo.getHost(), urlInfo.getPort()));
968+
969+
if (StringUtils.isNotBlank(urlInfo.getPath())) {
970+
additionalProperties.put("basePathWithoutHost", urlInfo.getPath());
971+
}
972+
} else {
973+
additionalProperties.put("serverUrl", URLPathUtil.LOCAL_HOST);
974+
}
975+
962976
if (this.preserveNewLines) {
963977
Map<String, Schema> schemaMap = openAPI.getComponents() != null ? openAPI.getComponents().getSchemas() : null;
964978
if (schemaMap != null) {
@@ -1056,4 +1070,4 @@ public void postProcessParameter(CodegenParameter parameter) {
10561070
}
10571071
*/
10581072

1059-
}
1073+
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import io.swagger.codegen.v3.CodegenType;
1111
import io.swagger.codegen.v3.SupportingFile;
1212
import io.swagger.codegen.v3.generators.handlebars.ExtensionHelper;
13+
import io.swagger.codegen.v3.utils.URLPathUtil;
1314
import io.swagger.v3.core.util.Json;
1415
import io.swagger.v3.oas.models.OpenAPI;
1516
import io.swagger.v3.oas.models.security.SecurityScheme;
@@ -18,6 +19,7 @@
1819
import org.slf4j.LoggerFactory;
1920

2021
import java.io.File;
22+
import java.net.URL;
2123
import java.util.Arrays;
2224
import java.util.List;
2325
import java.util.Map;

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

Lines changed: 9 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -83,16 +83,14 @@ public JavaClientCodegen() {
8383
cliOptions.add(CliOption.newBoolean(USE_GZIP_FEATURE, "Send gzip-encoded requests"));
8484
cliOptions.add(CliOption.newBoolean(USE_RUNTIME_EXCEPTION, "Use RuntimeException instead of Exception"));
8585

86-
supportedLibraries.put("jersey1", "HTTP client: Jersey client 1.19.4. JSON processing: Jackson 2.9.9. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.");
87-
supportedLibraries.put("feign", "HTTP client: OpenFeign 9.4.0. JSON processing: Jackson 2.9.9");
88-
supportedLibraries.put("jersey2", "HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.9.9");
86+
supportedLibraries.put("jersey1", "HTTP client: Jersey client 1.19.4. JSON processing: Jackson 2.9.10. Enable Java6 support using '-DsupportJava6=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.");
87+
supportedLibraries.put("feign", "HTTP client: OpenFeign 9.4.0. JSON processing: Jackson 2.9.10");
88+
supportedLibraries.put("jersey2", "HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.9.10");
8989
supportedLibraries.put("okhttp-gson", "HTTP client: OkHttp 2.7.5. JSON processing: Gson 2.8.1. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.");
9090
supportedLibraries.put(RETROFIT_1, "HTTP client: OkHttp 2.7.5. JSON processing: Gson 2.3.1 (Retrofit 1.9.0). IMPORTANT NOTE: retrofit1.x is no longer actively maintained so please upgrade to 'retrofit2' instead.");
9191
supportedLibraries.put(RETROFIT_2, "HTTP client: OkHttp 3.8.0. JSON processing: Gson 2.6.1 (Retrofit 2.3.0). Enable the RxJava adapter using '-DuseRxJava[2]=true'. (RxJava 1.x or 2.x)");
9292
supportedLibraries.put("resttemplate", "HTTP client: Spring RestTemplate 4.3.9-RELEASE. JSON processing: Jackson 2.9.9");
9393
supportedLibraries.put("resteasy", "HTTP client: Resteasy client 3.1.3.Final. JSON processing: Jackson 2.9.9");
94-
supportedLibraries.put("vertx", "HTTP client: VertX client 3.2.4. JSON processing: Jackson 2.9.9");
95-
supportedLibraries.put("google-api-client", "HTTP client: Google API client 1.23.0. JSON processing: Jackson 2.9.9");
9694

9795
CliOption libraryOption = new CliOption(CodegenConstants.LIBRARY, "library template (sub-template) to use");
9896
libraryOption.setEnum(supportedLibraries);
@@ -187,14 +185,11 @@ public void processOpts() {
187185
supportingFiles.add(new SupportingFile("StringUtil.mustache", invokerFolder, "StringUtil.java"));
188186
}
189187

190-
// google-api-client doesn't use the Swagger auth, because it uses Google Credential directly (HttpRequestInitializer)
191-
if (!"google-api-client".equals(getLibrary())) {
188+
supportingFiles.add(new SupportingFile("auth/HttpBasicAuth.mustache", authFolder, "HttpBasicAuth.java"));
189+
supportingFiles.add(new SupportingFile("auth/ApiKeyAuth.mustache", authFolder, "ApiKeyAuth.java"));
190+
supportingFiles.add(new SupportingFile("auth/OAuth.mustache", authFolder, "OAuth.java"));
191+
supportingFiles.add(new SupportingFile("auth/OAuthFlow.mustache", authFolder, "OAuthFlow.java"));
192192

193-
supportingFiles.add(new SupportingFile("auth/HttpBasicAuth.mustache", authFolder, "HttpBasicAuth.java"));
194-
supportingFiles.add(new SupportingFile("auth/ApiKeyAuth.mustache", authFolder, "ApiKeyAuth.java"));
195-
supportingFiles.add(new SupportingFile("auth/OAuth.mustache", authFolder, "OAuth.java"));
196-
supportingFiles.add(new SupportingFile("auth/OAuthFlow.mustache", authFolder, "OAuthFlow.java"));
197-
}
198193
supportingFiles.add(new SupportingFile( "gradlew.mustache", "", "gradlew") );
199194
supportingFiles.add(new SupportingFile( "gradlew.bat.mustache", "", "gradlew.bat") );
200195
supportingFiles.add(new SupportingFile( "gradle-wrapper.properties.mustache",
@@ -215,7 +210,7 @@ public void processOpts() {
215210
apiDocTemplateFiles.remove("api_doc.mustache");
216211
}
217212

218-
if (!("feign".equals(getLibrary()) || "resttemplate".equals(getLibrary()) || usesAnyRetrofitLibrary() || "google-api-client".equals(getLibrary()))) {
213+
if (!("feign".equals(getLibrary()) || "resttemplate".equals(getLibrary()) || usesAnyRetrofitLibrary())) {
219214
supportingFiles.add(new SupportingFile("apiException.mustache", invokerFolder, "ApiException.java"));
220215
supportingFiles.add(new SupportingFile("Configuration.mustache", invokerFolder, "Configuration.java"));
221216
supportingFiles.add(new SupportingFile("Pair.mustache", invokerFolder, "Pair.java"));
@@ -250,18 +245,6 @@ public void processOpts() {
250245
} else if("resttemplate".equals(getLibrary())) {
251246
additionalProperties.put("jackson", "true");
252247
supportingFiles.add(new SupportingFile("auth/Authentication.mustache", authFolder, "Authentication.java"));
253-
} else if("vertx".equals(getLibrary())) {
254-
typeMapping.put("file", "AsyncFile");
255-
importMapping.put("AsyncFile", "io.vertx.core.file.AsyncFile");
256-
setJava8Mode(true);
257-
additionalProperties.put("java8", "true");
258-
additionalProperties.put("jackson", "true");
259-
260-
apiTemplateFiles.put("apiImpl.mustache", "Impl.java");
261-
apiTemplateFiles.put("rxApiImpl.mustache", ".java");
262-
supportingFiles.remove(new SupportingFile("manifest.mustache", projectFolder, "AndroidManifest.xml"));
263-
} else if ("google-api-client".equals(getLibrary())) {
264-
additionalProperties.put("jackson", "true");
265248
} else {
266249
LOGGER.error("Unknown library option (-l/--library): " + getLibrary());
267250
}
@@ -397,16 +380,7 @@ && getBooleanValue(another, CodegenConstants.IS_PATH_PARAM_EXT_NAME)){
397380

398381
@Override
399382
public String apiFilename(String templateName, String tag) {
400-
if("vertx".equals(getLibrary())) {
401-
String suffix = apiTemplateFiles().get(templateName);
402-
String subFolder = "";
403-
if (templateName.startsWith("rx")) {
404-
subFolder = "/rxjava";
405-
}
406-
return apiFileFolder() + subFolder + '/' + toApiFilename(tag) + suffix;
407-
} else {
408-
return super.apiFilename(templateName, tag);
409-
}
383+
return super.apiFilename(templateName, tag);
410384
}
411385

412386
/**

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public class Spring2Codegen extends AbstractJavaCodegen implements BeanValidatio
4242
public static final String SPRING_CLOUD_LIBRARY = "spring-cloud";
4343
public static final String IMPLICIT_HEADERS = "implicitHeaders";
4444
public static final String SWAGGER_DOCKET_CONFIG = "swaggerDocketConfig";
45+
public static final String TARGET_OPENFEIGN = "generateForOpenFeign";
4546

4647
protected String title = "swagger-petstore";
4748
protected String configPackage = "io.swagger.configuration";
@@ -58,6 +59,7 @@ public class Spring2Codegen extends AbstractJavaCodegen implements BeanValidatio
5859
protected boolean implicitHeaders = false;
5960
protected boolean swaggerDocketConfig = false;
6061
protected boolean useOptional = false;
62+
protected boolean openFeign = false;
6163

6264
public Spring2Codegen() {
6365
super();
@@ -88,6 +90,7 @@ public Spring2Codegen() {
8890
cliOptions.add(CliOption.newBoolean(SWAGGER_DOCKET_CONFIG, "Generate Spring Swagger Docket configuration class."));
8991
cliOptions.add(CliOption.newBoolean(USE_OPTIONAL,
9092
"Use Optional container for optional parameters"));
93+
cliOptions.add(CliOption.newBoolean(TARGET_OPENFEIGN,"Generate for usage with OpenFeign (instead of feign)"));
9194

9295
supportedLibraries.put(DEFAULT_LIBRARY, "Spring-boot Server application using the SpringFox integration.");
9396
supportedLibraries.put(SPRING_MVC_LIBRARY, "Spring-MVC Server application using the SpringFox integration.");
@@ -200,6 +203,10 @@ public void processOpts() {
200203
this.setUseOptional(convertPropertyToBoolean(USE_OPTIONAL));
201204
}
202205

206+
if (additionalProperties.containsKey(TARGET_OPENFEIGN)) {
207+
this.setOpenFeign(convertPropertyToBoolean(TARGET_OPENFEIGN));
208+
}
209+
203210
if (useBeanValidation) {
204211
writePropertyBack(USE_BEANVALIDATION, useBeanValidation);
205212
}
@@ -316,6 +323,10 @@ public void processOpts() {
316323
additionalProperties.put(RESPONSE_WRAPPER, "Callable");
317324
}
318325

326+
if(this.openFeign){
327+
additionalProperties.put("isOpenFeign", "true");
328+
}
329+
319330
// Some well-known Spring or Spring-Cloud response wrappers
320331
switch (this.responseWrapper) {
321332
case "Future":
@@ -745,4 +756,8 @@ public void setUseBeanValidation(boolean useBeanValidation) {
745756
public void setUseOptional(boolean useOptional) {
746757
this.useOptional = useOptional;
747758
}
759+
760+
public void setOpenFeign(boolean openFeign) {
761+
this.openFeign = openFeign;
762+
}
748763
}

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public class SpringCodegen extends AbstractJavaCodegen implements BeanValidation
6161
public static final String SPRING_CLOUD_LIBRARY = "spring-cloud";
6262
public static final String IMPLICIT_HEADERS = "implicitHeaders";
6363
public static final String SWAGGER_DOCKET_CONFIG = "swaggerDocketConfig";
64+
public static final String TARGET_OPENFEIGN = "generateForOpenFeign";
6465

6566
protected String title = "swagger-petstore";
6667
protected String configPackage = "io.swagger.configuration";
@@ -77,6 +78,7 @@ public class SpringCodegen extends AbstractJavaCodegen implements BeanValidation
7778
protected boolean implicitHeaders = false;
7879
protected boolean swaggerDocketConfig = false;
7980
protected boolean useOptional = false;
81+
protected boolean openFeign = false;
8082

8183
public SpringCodegen() {
8284
super();
@@ -107,6 +109,7 @@ public SpringCodegen() {
107109
cliOptions.add(CliOption.newBoolean(SWAGGER_DOCKET_CONFIG, "Generate Spring Swagger Docket configuration class."));
108110
cliOptions.add(CliOption.newBoolean(USE_OPTIONAL,
109111
"Use Optional container for optional parameters"));
112+
cliOptions.add(CliOption.newBoolean(TARGET_OPENFEIGN,"Generate for usage with OpenFeign (instead of feign)"));
110113

111114
supportedLibraries.put(DEFAULT_LIBRARY, "Spring-boot Server application using the SpringFox integration.");
112115
supportedLibraries.put(SPRING_MVC_LIBRARY, "Spring-MVC Server application using the SpringFox integration.");
@@ -219,6 +222,10 @@ public void processOpts() {
219222
this.setUseOptional(convertPropertyToBoolean(USE_OPTIONAL));
220223
}
221224

225+
if (additionalProperties.containsKey(TARGET_OPENFEIGN)) {
226+
this.setOpenFeign(convertPropertyToBoolean(TARGET_OPENFEIGN));
227+
}
228+
222229
if (useBeanValidation) {
223230
writePropertyBack(USE_BEANVALIDATION, useBeanValidation);
224231
}
@@ -335,6 +342,10 @@ public void processOpts() {
335342
additionalProperties.put(RESPONSE_WRAPPER, "Callable");
336343
}
337344

345+
if(this.openFeign){
346+
additionalProperties.put("isOpenFeign", "true");
347+
}
348+
338349
// Some well-known Spring or Spring-Cloud response wrappers
339350
switch (this.responseWrapper) {
340351
case "Future":
@@ -764,4 +775,8 @@ public void setUseBeanValidation(boolean useBeanValidation) {
764775
public void setUseOptional(boolean useOptional) {
765776
this.useOptional = useOptional;
766777
}
778+
779+
public void setOpenFeign(boolean openFeign) {
780+
this.openFeign = openFeign;
781+
}
767782
}

src/main/resources/handlebars/Java/build.gradle.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ ext {
112112
{{^useOas2}}
113113
swagger_annotations_version = "2.0.0"
114114
{{/useOas2}}
115-
jackson_version = "{{^threetenbp}}2.9.9{{/threetenbp}}{{#threetenbp}}2.6.4{{/threetenbp}}"
115+
jackson_version = "{{^threetenbp}}2.9.10{{/threetenbp}}{{#threetenbp}}2.6.4{{/threetenbp}}"
116116
jersey_version = "1.19.4"
117117
jodatime_version = "2.9.9"
118118
junit_version = "4.12"

src/main/resources/handlebars/Java/libraries/feign/build.gradle.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ ext {
106106
{{^useOas2}}
107107
swagger_annotations_version = "2.0.0"
108108
{{/useOas2}}
109-
jackson_version = "2.9.9"
109+
jackson_version = "2.9.10"
110110
{{#threetenbp}}
111111
threepane_version = "2.6.4"
112112
{{/threetenbp}}

src/main/resources/handlebars/Java/libraries/feign/build.sbt.mustache

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ lazy val root = (project in file(".")).
1919
"com.netflix.feign" % "feign-jackson" % "9.4.0" % "compile",
2020
"com.netflix.feign" % "feign-slf4j" % "9.4.0" % "compile",
2121
"io.github.openfeign.form" % "feign-form" % "2.1.0" % "compile",
22-
"com.fasterxml.jackson.core" % "jackson-core" % "2.9.9" % "compile",
23-
"com.fasterxml.jackson.core" % "jackson-annotations" % "2.9.9" % "compile",
24-
"com.fasterxml.jackson.core" % "jackson-databind" % "2.9.9" % "compile",
25-
"com.fasterxml.jackson.datatype" % "jackson-datatype-{{^java8}}joda{{/java8}}{{#java8}}jsr310{{/java8}}" % "2.9.9" % "compile",
22+
"com.fasterxml.jackson.core" % "jackson-core" % "2.9.10" % "compile",
23+
"com.fasterxml.jackson.core" % "jackson-annotations" % "2.9.10" % "compile",
24+
"com.fasterxml.jackson.core" % "jackson-databind" % "2.9.10" % "compile",
25+
"com.fasterxml.jackson.datatype" % "jackson-datatype-{{^java8}}joda{{/java8}}{{#java8}}jsr310{{/java8}}" % "2.9.10" % "compile",
2626
"org.apache.oltu.oauth2" % "org.apache.oltu.oauth2.client" % "1.0.2" % "compile",
2727
"com.brsanthu" % "migbase64" % "2.2" % "compile",
2828
"junit" % "junit" % "4.12" % "test",

src/main/resources/handlebars/Java/libraries/feign/pom.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@
290290
{{/useOas2}}
291291
<feign-version>9.4.0</feign-version>
292292
<feign-form-version>2.1.0</feign-form-version>
293-
<jackson-version>2.9.9</jackson-version>
293+
<jackson-version>2.9.10</jackson-version>
294294
{{#threetenbp}}
295295
<jackson-threetenbp-version>2.6.4</jackson-threetenbp-version>
296296
{{/threetenbp}}

0 commit comments

Comments
 (0)