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(