This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 6452b6c3a921b7f8380f962e04fbde4a7fbd2c72 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Thu Sep 27 11:53:33 2018 +0200 CAMEL-12828: camel-restdsl-swagger:generate - Add option to generate dto objects --- .../src/it/simple-dto/pom.xml | 3 +++ .../src/it/simple-dto/verify.groovy | 2 +- .../main/docs/camel-restdsl-swagger-plugin.adoc | 2 ++ .../generator/swagger/AbstractGenerateMojo.java | 29 ++++++++++++++++------ .../generator/swagger/GenerateWithDtoMojo.java | 2 +- .../generator/swagger/GenerateXmlWithDtoMojo.java | 2 +- 6 files changed, 30 insertions(+), 10 deletions(-) diff --git a/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple-dto/pom.xml b/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple-dto/pom.xml index 29d0953..005ad2a 100644 --- a/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple-dto/pom.xml +++ b/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple-dto/pom.xml @@ -68,6 +68,9 @@ <goals> <goal>generate-with-dto</goal> </goals> + <configuration> + <modelPackage>com.foo</modelPackage> + </configuration> </execution> </executions> </plugin> diff --git a/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple-dto/verify.groovy b/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple-dto/verify.groovy index 8d0e667..87d52d1 100644 --- a/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple-dto/verify.groovy +++ b/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple-dto/verify.groovy @@ -19,6 +19,6 @@ def File restdsl = new File(basedir, "target/generated-sources/restdsl-swagger/i assert restdsl.exists() -def File restdto = new File(basedir, "target/generated-sources/swagger/src/main/java/io/swagger/client/model/Order.java") +def File restdto = new File(basedir, "target/generated-sources/swagger/src/main/java/com/foo/Order.java") assert restdto.exists() diff --git a/tooling/maven/camel-restdsl-swagger-plugin/src/main/docs/camel-restdsl-swagger-plugin.adoc b/tooling/maven/camel-restdsl-swagger-plugin/src/main/docs/camel-restdsl-swagger-plugin.adoc index 542f0d4..a999532 100644 --- a/tooling/maven/camel-restdsl-swagger-plugin/src/main/docs/camel-restdsl-swagger-plugin.adoc +++ b/tooling/maven/camel-restdsl-swagger-plugin/src/main/docs/camel-restdsl-swagger-plugin.adoc @@ -53,6 +53,7 @@ The plugin supports the following *additional* options |======================================== | Parameter | Default Value | Description | `swaggerCodegenMavenPluginVersion` | 2.3.1 | The version of the `io.swagger:swagger-codegen-maven-plugin` maven plugin to be used. +| `modelPackage` | `io.swagger.client.model` | The package to use for generated model objects/classes |======================================== @@ -92,5 +93,6 @@ The plugin supports the following *additional* options |======================================== | Parameter | Default Value | Description | `swaggerCodegenMavenPluginVersion` | 2.3.1 | The version of the `io.swagger:swagger-codegen-maven-plugin` maven plugin to be used. +| `modelPackage` | `io.swagger.client.model` | The package to use for generated model objects/classes |======================================== diff --git a/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/AbstractGenerateMojo.java b/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/AbstractGenerateMojo.java index 4eb403f..5ed1126 100644 --- a/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/AbstractGenerateMojo.java +++ b/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/AbstractGenerateMojo.java @@ -21,6 +21,8 @@ import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; +import java.util.ArrayList; +import java.util.List; import org.apache.camel.generator.swagger.DestinationGenerator; import org.apache.maven.execution.MavenSession; @@ -30,6 +32,7 @@ import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; +import org.twdata.maven.mojoexecutor.MojoExecutor; import static org.twdata.maven.mojoexecutor.MojoExecutor.artifactId; import static org.twdata.maven.mojoexecutor.MojoExecutor.configuration; @@ -62,6 +65,9 @@ abstract class AbstractGenerateMojo extends AbstractMojo { @Parameter(defaultValue = "2.3.1") String swaggerCodegenMavenPluginVersion; + @Parameter + String modelPackage; + @Parameter(defaultValue = "${project}", readonly = true) private MavenProject mavenProject; @@ -112,9 +118,23 @@ abstract class AbstractGenerateMojo extends AbstractMojo { return destinationGeneratorObject; } - void generateDto() throws MojoExecutionException { + void generateDto(String language) throws MojoExecutionException { getLog().info("Generating DTO classes using io.swagger:swagger-codegen-maven-plugin:" + swaggerCodegenMavenPluginVersion); + // swagger-codegen-maven-plugin documentation and its supported options + // https://github.com/swagger-api/swagger-codegen/tree/master/modules/swagger-codegen-maven-plugin + + List<MojoExecutor.Element> elements = new ArrayList<>(); + elements.add(new MojoExecutor.Element("inputSpec", specificationUri)); + elements.add(new MojoExecutor.Element("language", language)); + elements.add(new MojoExecutor.Element("generateApis", "false")); + elements.add(new MojoExecutor.Element("generateModelTests", "false")); + elements.add(new MojoExecutor.Element("generateModelDocumentation", "false")); + elements.add(new MojoExecutor.Element("generateSupportingFiles", "false")); + if (modelPackage != null) { + elements.add(new MojoExecutor.Element("modelPackage", modelPackage)); + } + executeMojo( plugin( groupId("io.swagger"), @@ -123,12 +143,7 @@ abstract class AbstractGenerateMojo extends AbstractMojo { ), goal("generate"), configuration( - element(name("inputSpec"), specificationUri), - element(name("language"), "java"), - element(name("generateApis"), "false"), - element(name("generateModelTests"), "false"), - element(name("generateModelDocumentation"), "false"), - element(name("generateSupportingFiles"), "false") + elements.toArray(new MojoExecutor.Element[elements.size()]) ), executionEnvironment( mavenProject, diff --git a/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateWithDtoMojo.java b/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateWithDtoMojo.java index 42e491f..31cc880 100644 --- a/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateWithDtoMojo.java +++ b/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateWithDtoMojo.java @@ -32,7 +32,7 @@ public class GenerateWithDtoMojo extends GenerateMojo { } super.execute(); - generateDto(); + generateDto("java"); } } diff --git a/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateXmlWithDtoMojo.java b/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateXmlWithDtoMojo.java index 8ba601b..58f9600 100644 --- a/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateXmlWithDtoMojo.java +++ b/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateXmlWithDtoMojo.java @@ -33,7 +33,7 @@ public class GenerateXmlWithDtoMojo extends GenerateXmlMojo { } super.execute(); - generateDto(); + generateDto("java"); } }