From 2f7223ab487a58fd91da4db6cf6865b74d9185f7 Mon Sep 17 00:00:00 2001 From: frantuma Date: Mon, 12 Nov 2018 12:43:36 +0100 Subject: [PATCH] refs #3013 - contextId in maven and gradle plugin --- modules/swagger-gradle-plugin/README.md | 1 + .../v3/plugins/gradle/tasks/ResolveTask.java | 24 +++++++++++++++++ .../v3/jaxrs2/integration/SwaggerLoader.java | 26 +++++++++++++++++-- modules/swagger-maven-plugin/README.md | 1 + .../swagger/v3/plugin/maven/SwaggerMojo.java | 17 ++++++++++-- 5 files changed, 65 insertions(+), 4 deletions(-) diff --git a/modules/swagger-gradle-plugin/README.md b/modules/swagger-gradle-plugin/README.md index 4aa084fd53..52dd0ba121 100644 --- a/modules/swagger-gradle-plugin/README.md +++ b/modules/swagger-gradle-plugin/README.md @@ -66,6 +66,7 @@ Parameter | Description | Required | Default `ignoredRoutes`|see [configuration property](https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Integration-and-Configuration#configuration-properties)|false| `objectMapperProcessorClass`|see [configuration property](https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Integration-and-Configuration#configuration-properties)|false| `modelConverterClasses`|see [configuration property](https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Integration-and-Configuration#configuration-properties)|false| +`contextId`|see [Context](https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Integration-and-Configuration#context)|false| *** diff --git a/modules/swagger-gradle-plugin/src/main/java/io/swagger/v3/plugins/gradle/tasks/ResolveTask.java b/modules/swagger-gradle-plugin/src/main/java/io/swagger/v3/plugins/gradle/tasks/ResolveTask.java index 27fbcb2322..bf93fcccb1 100644 --- a/modules/swagger-gradle-plugin/src/main/java/io/swagger/v3/plugins/gradle/tasks/ResolveTask.java +++ b/modules/swagger-gradle-plugin/src/main/java/io/swagger/v3/plugins/gradle/tasks/ResolveTask.java @@ -62,6 +62,8 @@ public enum Format {JSON, YAML, JSONANDYAML}; private LinkedHashSet modelConverterClasses; private String objectMapperProcessorClass; + private String contextId; + @Input @Optional public String getOutputFileName() { @@ -205,6 +207,23 @@ public void setObjectMapperProcessorClass(String objectMapperProcessorClass) { this.objectMapperProcessorClass = objectMapperProcessorClass; } + /** + * @since 2.0.6 + */ + @Input + @Optional + public String getContextId() { + return contextId; + } + + /** + * @since 2.0.6 + */ + public void setContextId(String contextId) { + this.contextId = contextId; + } + + @Input @Optional public String getScannerClass() { @@ -349,6 +368,11 @@ public void resolve() throws GradleException { method.invoke(swaggerLoader, scannerClass); } + if (StringUtils.isNotBlank(contextId)) { + method=swaggerLoaderClass.getDeclaredMethod("setContextId",String.class); + method.invoke(swaggerLoader, contextId); + } + if (StringUtils.isNotBlank(objectMapperProcessorClass)) { method=swaggerLoaderClass.getDeclaredMethod("setObjectMapperProcessorClass",String.class); method.invoke(swaggerLoader, objectMapperProcessorClass); diff --git a/modules/swagger-jaxrs2/src/main/java/io/swagger/v3/jaxrs2/integration/SwaggerLoader.java b/modules/swagger-jaxrs2/src/main/java/io/swagger/v3/jaxrs2/integration/SwaggerLoader.java index 280f0fb9ed..40368fad74 100644 --- a/modules/swagger-jaxrs2/src/main/java/io/swagger/v3/jaxrs2/integration/SwaggerLoader.java +++ b/modules/swagger-jaxrs2/src/main/java/io/swagger/v3/jaxrs2/integration/SwaggerLoader.java @@ -2,6 +2,7 @@ import io.swagger.v3.core.util.Json; import io.swagger.v3.core.util.Yaml; +import io.swagger.v3.oas.integration.GenericOpenApiContextBuilder; import io.swagger.v3.oas.integration.OpenApiConfigurationException; import io.swagger.v3.oas.integration.SwaggerConfiguration; import io.swagger.v3.oas.models.OpenAPI; @@ -22,6 +23,7 @@ public class SwaggerLoader { private String resourceClasses; private String filterClass; private String readerClass; + private String contextId; private String scannerClass; private Boolean prettyPrint = false; private Boolean readAllResources = Boolean.TRUE; @@ -92,6 +94,21 @@ public void setFilterClass(String filterClass) { this.filterClass = filterClass; } + /** + * @since 2.0.6 + */ + public String getContextId() { + return contextId; + } + + /** + * @since 2.0.6 + */ + public void setContextId(String contextId) { + this.contextId = contextId; + } + + public String getReaderClass() { return readerClass; } @@ -187,8 +204,13 @@ public Map resolve() throws Exception{ .objectMapperProcessorClass(objectMapperProcessorClass) .modelConverterClasses(modelConverterSet); try { - OpenAPI openAPI = new JaxrsOpenApiContextBuilder() - .openApiConfiguration(config) + GenericOpenApiContextBuilder builder = new JaxrsOpenApiContextBuilder() + .openApiConfiguration(config); + if (StringUtils.isNotBlank(contextId)) { + builder.ctxId(contextId); + } + + OpenAPI openAPI = builder .buildContext(true) .read(); String openapiJson = null; diff --git a/modules/swagger-maven-plugin/README.md b/modules/swagger-maven-plugin/README.md index 2b24d0e2ad..3d3780e81c 100644 --- a/modules/swagger-maven-plugin/README.md +++ b/modules/swagger-maven-plugin/README.md @@ -76,6 +76,7 @@ Parameter | Description | Required | Default `ignoredRoutes`|see [configuration property](https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Integration-and-Configuration#configuration-properties)|false| `objectMapperProcessorClass`|see [configuration property](https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Integration-and-Configuration#configuration-properties)|false| `modelConverterClasses`|see [configuration property](https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Integration-and-Configuration#configuration-properties)|false| +`contextId`|see [Context](https://github.com/swagger-api/swagger-core/wiki/Swagger-2.X---Integration-and-Configuration#context)|false|${project.artifactId} *** diff --git a/modules/swagger-maven-plugin/src/main/java/io/swagger/v3/plugin/maven/SwaggerMojo.java b/modules/swagger-maven-plugin/src/main/java/io/swagger/v3/plugin/maven/SwaggerMojo.java index 03f100ec44..0d4f097bea 100644 --- a/modules/swagger-maven-plugin/src/main/java/io/swagger/v3/plugin/maven/SwaggerMojo.java +++ b/modules/swagger-maven-plugin/src/main/java/io/swagger/v3/plugin/maven/SwaggerMojo.java @@ -3,6 +3,7 @@ import io.swagger.v3.core.util.Json; import io.swagger.v3.core.util.Yaml; import io.swagger.v3.jaxrs2.integration.JaxrsOpenApiContextBuilder; +import io.swagger.v3.oas.integration.GenericOpenApiContextBuilder; import io.swagger.v3.oas.integration.OpenApiConfigurationException; import io.swagger.v3.oas.integration.SwaggerConfiguration; import io.swagger.v3.oas.models.OpenAPI; @@ -93,8 +94,12 @@ public void execute() throws MojoExecutionException, MojoFailureException .objectMapperProcessorClass(objectMapperProcessorClass) .modelConverterClasses(modelConverterClasses); try { - OpenAPI openAPI = new JaxrsOpenApiContextBuilder() - .openApiConfiguration(config) + GenericOpenApiContextBuilder builder = new JaxrsOpenApiContextBuilder() + .openApiConfiguration(config); + if (StringUtils.isNotBlank(contextId)) { + builder.ctxId(contextId); + } + OpenAPI openAPI = builder .buildContext(true) .read(); String openapiJson = null; @@ -163,6 +168,9 @@ public void execute() throws MojoExecutionException, MojoFailureException private String readerClass; @Parameter( property = "resolve.scannerClass" ) private String scannerClass; + /** + * @since 2.0.6 + */ @Parameter( property = "resolve.objectMapperProcessorClass" ) private String objectMapperProcessorClass; @Parameter( property = "resolve.prettyPrint" ) @@ -171,6 +179,11 @@ public void execute() throws MojoExecutionException, MojoFailureException private Boolean readAllResources = Boolean.TRUE; @Parameter( property = "resolve.ignoredRoutes" ) private Collection ignoredRoutes; + /** + * @since 2.0.6 + */ + @Parameter(property = "resolve.contextId", defaultValue = "${project.artifactId}") + private String contextId; @Parameter( property = "resolve.skip" ) private Boolean skip = Boolean.FALSE;