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 f1c3a633ff619cb8bc43a7d105d8955373ae6275
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Thu Sep 27 11:06:36 2018 +0200

    CAMEL-12828: camel-restdsl-swagger:generate - Add option to generate dto 
objects
---
 tooling/maven/camel-restdsl-swagger-plugin/pom.xml | 13 +++++
 .../src/it/customized/pom.xml                      | 20 ++++++++
 .../src/it/simple-xml/pom.xml                      | 23 +++++++++
 .../src/it/simple/pom.xml                          | 23 +++++++++
 .../generator/swagger/AbstractGenerateMojo.java    | 56 ++++++++++++++++++++++
 .../maven/generator/swagger/GenerateMojo.java      |  4 ++
 .../maven/generator/swagger/GenerateXmlMojo.java   |  4 ++
 7 files changed, 143 insertions(+)

diff --git a/tooling/maven/camel-restdsl-swagger-plugin/pom.xml 
b/tooling/maven/camel-restdsl-swagger-plugin/pom.xml
index 11b0d95..7a99f0a 100644
--- a/tooling/maven/camel-restdsl-swagger-plugin/pom.xml
+++ b/tooling/maven/camel-restdsl-swagger-plugin/pom.xml
@@ -32,6 +32,11 @@
   <name>Camel :: Maven Plugins :: Swagger REST DSL Generator Maven 
plugin</name>
   <description>Maven plugin that generates REST DSL RouteBuilder from Swagger 
specification</description>
 
+  <properties>
+    
<swagger-codegen-maven-plugin-version>2.3.1</swagger-codegen-maven-plugin-version>
+  </properties>
+
+
   <build>
     <plugins>
       <plugin>
@@ -92,14 +97,22 @@
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-core</artifactId>
+      <version>3.5.4</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven</groupId>
       <artifactId>maven-plugin-api</artifactId>
+      <version>3.5.4</version>
+    </dependency>
+    <dependency>
+      <groupId>org.twdata.maven</groupId>
+      <artifactId>mojo-executor</artifactId>
+      <version>2.3.0</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.plugin-tools</groupId>
       <artifactId>maven-plugin-annotations</artifactId>
+      <version>3.5</version>
       <scope>provided</scope>
     </dependency>
   </dependencies>
diff --git 
a/tooling/maven/camel-restdsl-swagger-plugin/src/it/customized/pom.xml 
b/tooling/maven/camel-restdsl-swagger-plugin/src/it/customized/pom.xml
index f6544bc..b91faba 100644
--- a/tooling/maven/camel-restdsl-swagger-plugin/src/it/customized/pom.xml
+++ b/tooling/maven/camel-restdsl-swagger-plugin/src/it/customized/pom.xml
@@ -66,5 +66,25 @@
       <artifactId>camel-swagger-rest-dsl-generator</artifactId>
       <version>@project.version@</version>
     </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-core</artifactId>
+      <version>@project.version@</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-swagger-java</artifactId>
+      <version>@project.version@</version>
+    </dependency>
+    <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+      <version>2.8.5</version>
+    </dependency>
+    <dependency>
+      <groupId>org.threeten</groupId>
+      <artifactId>threetenbp</artifactId>
+      <version>1.3.7</version>
+    </dependency>
   </dependencies>
 </project>
diff --git 
a/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple-xml/pom.xml 
b/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple-xml/pom.xml
index 95307f0..dce6e63 100644
--- a/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple-xml/pom.xml
+++ b/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple-xml/pom.xml
@@ -33,6 +33,29 @@
     <maven.compiler.target>1.8</maven.compiler.target>
   </properties>
 
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-core</artifactId>
+      <version>@project.version@</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-swagger-java</artifactId>
+      <version>@project.version@</version>
+    </dependency>
+    <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+      <version>2.8.5</version>
+    </dependency>
+    <dependency>
+      <groupId>org.threeten</groupId>
+      <artifactId>threetenbp</artifactId>
+      <version>1.3.7</version>
+    </dependency>
+  </dependencies>
+
   <build>
     <plugins>
       <plugin>
diff --git a/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple/pom.xml 
b/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple/pom.xml
index 41216a6..4da5d91 100644
--- a/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple/pom.xml
+++ b/tooling/maven/camel-restdsl-swagger-plugin/src/it/simple/pom.xml
@@ -33,6 +33,29 @@
     <maven.compiler.target>1.8</maven.compiler.target>
   </properties>
 
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-core</artifactId>
+      <version>@project.version@</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-swagger-java</artifactId>
+      <version>@project.version@</version>
+    </dependency>
+    <dependency>
+      <groupId>com.google.code.gson</groupId>
+      <artifactId>gson</artifactId>
+      <version>2.8.5</version>
+    </dependency>
+    <dependency>
+      <groupId>org.threeten</groupId>
+      <artifactId>threetenbp</artifactId>
+      <version>1.3.7</version>
+    </dependency>
+  </dependencies>
+
   <build>
     <plugins>
       <plugin>
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 63f8754..bd993cd 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
@@ -23,11 +23,25 @@ import java.net.URL;
 import java.net.URLClassLoader;
 
 import org.apache.camel.generator.swagger.DestinationGenerator;
+import org.apache.maven.execution.MavenSession;
 import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.BuildPluginManager;
 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 static org.twdata.maven.mojoexecutor.MojoExecutor.artifactId;
+import static org.twdata.maven.mojoexecutor.MojoExecutor.configuration;
+import static org.twdata.maven.mojoexecutor.MojoExecutor.element;
+import static org.twdata.maven.mojoexecutor.MojoExecutor.executeMojo;
+import static org.twdata.maven.mojoexecutor.MojoExecutor.executionEnvironment;
+import static org.twdata.maven.mojoexecutor.MojoExecutor.goal;
+import static org.twdata.maven.mojoexecutor.MojoExecutor.groupId;
+import static org.twdata.maven.mojoexecutor.MojoExecutor.name;
+import static org.twdata.maven.mojoexecutor.MojoExecutor.plugin;
+import static org.twdata.maven.mojoexecutor.MojoExecutor.version;
+
 abstract class AbstractGenerateMojo extends AbstractMojo {
 
     @Parameter
@@ -45,6 +59,21 @@ abstract class AbstractGenerateMojo extends AbstractMojo {
     @Parameter(defaultValue = "${project.basedir}/src/spec/swagger.json", 
required = true)
     String specificationUri;
 
+    @Parameter(defaultValue = "true")
+    boolean dto;
+
+    @Parameter(defaultValue = "2.3.1")
+    String swaggerCodegenMavenPluginVersion;
+
+    @Parameter(defaultValue = "${project}", readonly = true)
+    private MavenProject mavenProject;
+
+    @Parameter(defaultValue = "${session}", readonly = true)
+    private MavenSession mavenSession;
+
+    @Component
+    private BuildPluginManager pluginManager;
+
     DestinationGenerator createDestinationGenerator() throws 
MojoExecutionException {
         final Class<DestinationGenerator> destinationGeneratorClass;
 
@@ -86,4 +115,31 @@ abstract class AbstractGenerateMojo extends AbstractMojo {
         return destinationGeneratorObject;
     }
 
+    void generateDto() throws MojoExecutionException {
+        getLog().info("Generating DTO classes using 
io.swagger:swagger-codegen-maven-plugin:" + swaggerCodegenMavenPluginVersion);
+
+        executeMojo(
+            plugin(
+                groupId("io.swagger"),
+                artifactId("swagger-codegen-maven-plugin"),
+                version(swaggerCodegenMavenPluginVersion)
+            ),
+            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")
+            ),
+            executionEnvironment(
+                mavenProject,
+                mavenSession,
+                pluginManager
+            )
+        );
+
+    }
+
 }
diff --git 
a/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateMojo.java
 
b/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateMojo.java
index 3006b57..1cd48e6 100644
--- 
a/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateMojo.java
+++ 
b/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateMojo.java
@@ -95,6 +95,10 @@ public class GenerateMojo extends AbstractGenerateMojo {
             throw new MojoExecutionException(
                 "Unable to generate REST DSL Swagger sources from 
specification: " + specificationUri, e);
         }
+
+        if (dto) {
+            generateDto();
+        }
     }
 
 }
diff --git 
a/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateXmlMojo.java
 
b/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateXmlMojo.java
index bee62ad..a8b7ed9 100644
--- 
a/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateXmlMojo.java
+++ 
b/tooling/maven/camel-restdsl-swagger-plugin/src/main/java/org/apache/camel/maven/generator/swagger/GenerateXmlMojo.java
@@ -94,6 +94,10 @@ public class GenerateXmlMojo extends AbstractGenerateMojo {
             throw new MojoExecutionException(
                 "Unable to generate REST DSL Swagger sources from 
specification: " + specificationUri, e);
         }
+
+        if (dto) {
+            generateDto();
+        }
     }
 
 }

Reply via email to