You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2018/02/21 11:12:03 UTC

[camel] 01/02: CAMEL-12266: Maven plugin for restdsl can now generate xml.

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 ca878458def952fc75523b066d9ad8efeac9ee8a
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Feb 21 12:09:43 2018 +0100

    CAMEL-12266: Maven plugin for restdsl can now generate xml.
---
 .../camel-restdsl-swagger-plugin/src/it/simple-xml/pom.xml   |  3 +++
 .../src/main/docs/camel-package-maven-plugin.adoc            |  1 +
 .../camel/maven/generator/swagger/GenerateXmlMojo.java       | 12 +++++++++++-
 .../apache/camel/generator/swagger/RestDslXmlGenerator.java  | 10 ++++++++++
 .../camel/generator/swagger/RestDslXmlGeneratorTest.java     | 10 ++++++++++
 5 files changed, 35 insertions(+), 1 deletion(-)

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 19b22f4..def5610 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
@@ -45,6 +45,9 @@
             <goals>
               <goal>generate-xml</goal>
             </goals>
+            <configuration>
+              <blueprint>true</blueprint>
+            </configuration>
           </execution>
         </executions>
       </plugin>
diff --git a/tooling/maven/camel-restdsl-swagger-plugin/src/main/docs/camel-package-maven-plugin.adoc b/tooling/maven/camel-restdsl-swagger-plugin/src/main/docs/camel-package-maven-plugin.adoc
index 10bd474..7528863 100644
--- a/tooling/maven/camel-restdsl-swagger-plugin/src/main/docs/camel-package-maven-plugin.adoc
+++ b/tooling/maven/camel-restdsl-swagger-plugin/src/main/docs/camel-package-maven-plugin.adoc
@@ -49,6 +49,7 @@ in the `<configuration>` tag.
 | `specificationUri` | `src/spec/swagger.json` | URI of the Swagger specification, loaded using Swagger's resource loading mechanism, supports filesystem paths, HTTP and classpath resources, by default `src/spec/swagger.json` within the project directory
 | `outputDirectory` | `generated-sources/restdsl-swagger` | Where to place the generated source file, by default `generated-sources/restdsl-swagger` within the project directory
 | `fileName` | `camel-rest.xml` | The name of the XML file as output.
+| `blueprint` | `false` | If enabled generates OSGi Blueprint XML instead of Spring XML.
 | `destinationGenerator` | | Fully qualified class name of the class that implements `org.apache.camel.generator.swagger.DestinationGenerator` interface for customizing destination endpoint
 |========================================
 
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 d18c7ee..4910a16 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
@@ -26,7 +26,6 @@ import org.apache.camel.generator.swagger.DestinationGenerator;
 import org.apache.camel.generator.swagger.RestDslGenerator;
 import org.apache.camel.generator.swagger.RestDslXmlGenerator;
 import org.apache.camel.impl.DefaultCamelContext;
-import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
@@ -45,6 +44,9 @@ public class GenerateXmlMojo extends AbstractGenerateMojo {
     @Parameter(defaultValue = "camel-rest.xml", required = true)
     private String fileName;
 
+    @Parameter(defaultValue = "false")
+    boolean blueprint;
+
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
         if (skip) {
@@ -62,6 +64,14 @@ public class GenerateXmlMojo extends AbstractGenerateMojo {
 
         final RestDslXmlGenerator generator = RestDslGenerator.toXml(swagger);
 
+        System.out.println(blueprint);
+        System.out.println(blueprint);
+        System.out.println(blueprint);
+
+        if (blueprint) {
+            generator.withBlueprint();
+        }
+
         if (ObjectHelper.isNotEmpty(destinationGenerator)) {
             final DestinationGenerator destinationGeneratorObject = createDestinationGenerator();
 
diff --git a/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslXmlGenerator.java b/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslXmlGenerator.java
index 8afc963..1b1b944 100644
--- a/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslXmlGenerator.java
+++ b/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslXmlGenerator.java
@@ -23,10 +23,17 @@ import org.apache.camel.model.rest.RestsDefinition;
 
 public class RestDslXmlGenerator extends RestDslGenerator<RestDslXmlGenerator> {
 
+    private boolean blueprint;
+
     RestDslXmlGenerator(final Swagger swagger) {
         super(swagger);
     }
 
+    public RestDslXmlGenerator withBlueprint() {
+        this.blueprint = true;
+        return this;
+    }
+
     public String generate(final CamelContext context) throws Exception {
         final RestDefinitionEmitter emitter = new RestDefinitionEmitter(context);
 
@@ -36,6 +43,9 @@ public class RestDslXmlGenerator extends RestDslGenerator<RestDslXmlGenerator> {
 
         RestsDefinition rests = emitter.result();
         String xml = ModelHelper.dumpModelAsXml(context, rests);
+        if (blueprint) {
+            xml = xml.replace("http://camel.apache.org/schema/spring", "http://camel.apache.org/schema/blueprint");
+        }
         return xml;
     }
 }
diff --git a/tooling/swagger-rest-dsl-generator/src/test/java/org/apache/camel/generator/swagger/RestDslXmlGeneratorTest.java b/tooling/swagger-rest-dsl-generator/src/test/java/org/apache/camel/generator/swagger/RestDslXmlGeneratorTest.java
index 0610b56..fed3779 100644
--- a/tooling/swagger-rest-dsl-generator/src/test/java/org/apache/camel/generator/swagger/RestDslXmlGeneratorTest.java
+++ b/tooling/swagger-rest-dsl-generator/src/test/java/org/apache/camel/generator/swagger/RestDslXmlGeneratorTest.java
@@ -39,6 +39,16 @@ public class RestDslXmlGeneratorTest {
 
         final String xml = RestDslGenerator.toXml(swagger).generate(context);
         assertThat(xml).isNotEmpty();
+        assertThat(xml.contains("http://camel.apache.org/schema/spring"));
+    }
+
+    @Test
+    public void shouldGenerateBlueprintXml() throws Exception {
+        final CamelContext context = new DefaultCamelContext();
+
+        final String xml = RestDslGenerator.toXml(swagger).withBlueprint().generate(context);
+        assertThat(xml).isNotEmpty();
+        assertThat(xml.contains("http://camel.apache.org/schema/blueprint"));
     }
 
     @Test

-- 
To stop receiving notification emails like this one, please contact
davsclaus@apache.org.