You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dm...@apache.org on 2020/03/25 08:24:16 UTC

[camel] 01/02: CAMEL-12863: Add configOptions to camel-restdsl-swagger-plugin for swagger-codegen-plugin

This is an automated email from the ASF dual-hosted git repository.

dmvolod pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit f2f68c5e1d18d9d3a2eef3f02cdfebcb30a2346b
Author: Dmitry Volodin <dm...@gmail.com>
AuthorDate: Wed Mar 25 10:47:48 2020 +0300

    CAMEL-12863: Add configOptions to camel-restdsl-swagger-plugin for swagger-codegen-plugin
---
 .../src/it/simple-dto/pom.xml                          |  3 +++
 .../src/it/simple-dto/verify.groovy                    |  4 ++++
 .../maven/generator/swagger/AbstractGenerateMojo.java  | 18 +++++++++++++-----
 3 files changed, 20 insertions(+), 5 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 ce4df46..35325ba 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
@@ -81,6 +81,9 @@
             <configuration>
               <modelPackage>com.foo</modelPackage>
               <modelWithXml>false</modelWithXml>
+              <configOptions>
+                <dateLibrary>java8</dateLibrary>
+              </configOptions>
             </configuration>
           </execution>
         </executions>
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 a7f2bdf..e90cb95 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
@@ -26,3 +26,7 @@ assert data.contains('restConfiguration().component("servlet");')
 def File restdto = new File(basedir, "target/generated-sources/swagger/src/main/java/com/foo/Order.java")
 
 assert restdto.exists()
+
+def String orderData = restdto.text
+
+assert orderData.contains('import java.time.OffsetDateTime;')
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 37767c3..2c384c2 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,10 +23,7 @@ import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 
 import org.apache.camel.generator.swagger.DestinationGenerator;
 import org.apache.camel.util.IOHelper;
@@ -92,9 +89,13 @@ abstract class AbstractGenerateMojo extends AbstractMojo {
     @Parameter(defaultValue = "${project.basedir}/src/spec/swagger.json", required = true)
     String specificationUri;
 
-    @Parameter(defaultValue = "2.3.1")
+    @Parameter(defaultValue = "2.4.12")
     String swaggerCodegenMavenPluginVersion;
 
+    // A map of the language-specific parameters passed to the swagger-codegen-maven-plugin
+    @Parameter(name = "configOptions")
+    Map<?, ?> configOptions;
+
     @Parameter(defaultValue = "${project}", readonly = true)
     private MavenProject mavenProject;
 
@@ -174,6 +175,13 @@ abstract class AbstractGenerateMojo extends AbstractMojo {
         if (modelWithXml != null) {
             elements.add(new MojoExecutor.Element("withXml", modelPackage));
         }
+        if (configOptions != null && !configOptions.isEmpty()) {
+            List<MojoExecutor.Element> options = new ArrayList<>();
+            for (Map.Entry<?,?>  configOption : configOptions.entrySet()) {
+                options.add(new MojoExecutor.Element(configOption.getKey().toString(), configOption.getValue().toString()));
+            }
+            elements.add(new MojoExecutor.Element("configOptions", options.toArray(new MojoExecutor.Element[options.size()])));
+        }
 
         executeMojo(
             plugin(