You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by zr...@apache.org on 2018/10/22 12:26:58 UTC

[camel] branch master updated: CAMEL-12893: OpenAPI REST DSL generator basePat...

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 4ef56e2  CAMEL-12893: OpenAPI REST DSL generator basePat...
4ef56e2 is described below

commit 4ef56e29ae1df8ec038fc2e6cdfb322ea13bbbbd
Author: Zoran Regvart <zr...@apache.org>
AuthorDate: Mon Oct 22 14:20:58 2018 +0200

    CAMEL-12893: OpenAPI REST DSL generator basePat...
    
    ...h handling
    
    Now `basePath` from the OpenAPI specification is considered and added
    as a part of the REST DSL definition.
---
 .../java/org/apache/camel/generator/swagger/PathVisitor.java   | 10 ++++++++--
 .../camel/generator/swagger/RestDslDefinitionGenerator.java    |  2 +-
 .../camel/generator/swagger/RestDslSourceCodeGenerator.java    |  2 +-
 .../apache/camel/generator/swagger/RestDslXmlGenerator.java    |  3 ++-
 .../apache/camel/generator/swagger/RestDslGeneratorTest.java   |  2 ++
 .../camel/generator/swagger/RestDslXmlGeneratorTest.java       |  2 +-
 .../src/test/resources/MyRestRoute.txt                         |  2 +-
 .../src/test/resources/MyRestRouteFilter.txt                   |  2 +-
 .../src/test/resources/SwaggerPetstore.txt                     |  2 +-
 .../src/test/resources/SwaggerPetstoreWithRestComponent.txt    |  2 +-
 .../src/test/resources/SwaggerPetstoreWithRestComponentXml.txt |  2 +-
 .../src/test/resources/SwaggerPetstoreXml.txt                  |  2 +-
 12 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/PathVisitor.java b/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/PathVisitor.java
index ce5054b..2682038 100644
--- a/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/PathVisitor.java
+++ b/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/PathVisitor.java
@@ -18,6 +18,8 @@ package org.apache.camel.generator.swagger;
 
 import io.swagger.models.Path;
 
+import org.apache.camel.util.ObjectHelper;
+
 class PathVisitor<T> {
 
     private final DestinationGenerator destinationGenerator;
@@ -25,12 +27,16 @@ class PathVisitor<T> {
     private final CodeEmitter<T> emitter;
     private final OperationFilter filter;
 
-    PathVisitor(final CodeEmitter<T> emitter, OperationFilter filter, final DestinationGenerator destinationGenerator) {
+    PathVisitor(final String basePath, final CodeEmitter<T> emitter, OperationFilter filter, final DestinationGenerator destinationGenerator) {
         this.emitter = emitter;
         this.filter = filter;
         this.destinationGenerator = destinationGenerator;
 
-        emitter.emit("rest");
+        if (ObjectHelper.isEmpty(basePath)) {
+            emitter.emit("rest");
+        } else {
+            emitter.emit("rest", basePath);
+        }
     }
 
     void visit(final String path, final Path definition) {
diff --git a/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslDefinitionGenerator.java b/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslDefinitionGenerator.java
index 1e0c493..de6af89 100644
--- a/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslDefinitionGenerator.java
+++ b/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslDefinitionGenerator.java
@@ -30,7 +30,7 @@ public final class RestDslDefinitionGenerator extends RestDslGenerator<RestDslDe
     public RestsDefinition generate(final CamelContext context) {
         final RestDefinitionEmitter emitter = new RestDefinitionEmitter(context);
 
-        final PathVisitor<RestsDefinition> restDslStatement = new PathVisitor<>(emitter, filter, destinationGenerator());
+        final PathVisitor<RestsDefinition> restDslStatement = new PathVisitor<>(swagger.getBasePath(), emitter, filter, destinationGenerator());
 
         swagger.getPaths().forEach(restDslStatement::visit);
 
diff --git a/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslSourceCodeGenerator.java b/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslSourceCodeGenerator.java
index 953c445..a2fe715 100644
--- a/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslSourceCodeGenerator.java
+++ b/tooling/swagger-rest-dsl-generator/src/main/java/org/apache/camel/generator/swagger/RestDslSourceCodeGenerator.java
@@ -111,7 +111,7 @@ public abstract class RestDslSourceCodeGenerator<T> extends RestDslGenerator<Res
             configure.addCode(";\n\n");
         }
 
-        final PathVisitor<MethodSpec> restDslStatement = new PathVisitor<>(emitter, filter, destinationGenerator());
+        final PathVisitor<MethodSpec> restDslStatement = new PathVisitor<>(swagger.getBasePath(), emitter, filter, destinationGenerator());
         swagger.getPaths().forEach(restDslStatement::visit);
 
         return emitter.result();
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 cf74fd3..20b8490 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
@@ -37,7 +37,7 @@ public class RestDslXmlGenerator extends RestDslGenerator<RestDslXmlGenerator> {
     public String generate(final CamelContext context) throws Exception {
         final RestDefinitionEmitter emitter = new RestDefinitionEmitter(context);
 
-        final PathVisitor<RestsDefinition> restDslStatement = new PathVisitor<>(emitter, filter, destinationGenerator());
+        final PathVisitor<RestsDefinition> restDslStatement = new PathVisitor<>(swagger.getBasePath(), emitter, filter, destinationGenerator());
 
         swagger.getPaths().forEach(restDslStatement::visit);
 
@@ -56,6 +56,7 @@ public class RestDslXmlGenerator extends RestDslGenerator<RestDslXmlGenerator> {
                 extra = "<restConfiguration component=\"" + restComponent + "\" contextPath=\"" + restContextPath + "\"/>";
             }
             xml = xml.replaceFirst("<rest>", extra + "\n    <rest>");
+            xml = xml.replaceFirst("<rest ", extra + "\n    <rest ");
         }
 
         return xml;
diff --git a/tooling/swagger-rest-dsl-generator/src/test/java/org/apache/camel/generator/swagger/RestDslGeneratorTest.java b/tooling/swagger-rest-dsl-generator/src/test/java/org/apache/camel/generator/swagger/RestDslGeneratorTest.java
index 579b242..b2d5e57 100644
--- a/tooling/swagger-rest-dsl-generator/src/test/java/org/apache/camel/generator/swagger/RestDslGeneratorTest.java
+++ b/tooling/swagger-rest-dsl-generator/src/test/java/org/apache/camel/generator/swagger/RestDslGeneratorTest.java
@@ -47,6 +47,8 @@ public class RestDslGeneratorTest {
         final RestsDefinition definition = RestDslGenerator.toDefinition(swagger).generate(context);
 
         assertThat(definition).isNotNull();
+        assertThat(definition.getRests()).hasSize(1);
+        assertThat(definition.getRests().get(0).getPath()).isEqualTo("/v2");
     }
 
     @Test
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 4ad6718..5d67eda 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
@@ -72,7 +72,7 @@ public class RestDslXmlGeneratorTest {
         final URI file = RestDslGeneratorTest.class.getResource("/SwaggerPetstoreWithRestComponentXml.txt").toURI();
         final String expectedContent = new String(Files.readAllBytes(Paths.get(file)), StandardCharsets.UTF_8);
 
-        assertThat(xml).isEqualToIgnoringWhitespace(expectedContent);
+        assertThat(xml).isEqualTo(expectedContent);
     }
 
 
diff --git a/tooling/swagger-rest-dsl-generator/src/test/resources/MyRestRoute.txt b/tooling/swagger-rest-dsl-generator/src/test/resources/MyRestRoute.txt
index 1a608ae..7f3a0c5 100644
--- a/tooling/swagger-rest-dsl-generator/src/test/resources/MyRestRoute.txt
+++ b/tooling/swagger-rest-dsl-generator/src/test/resources/MyRestRoute.txt
@@ -17,7 +17,7 @@ public final class MyRestRoute extends RouteBuilder {
 	 * Defines Apache Camel routes using REST DSL fluent API.
 	 */
 	public void configure() {
-		rest()
+		rest("/v2")
 			.put("/pet")
 				.id("updatePet")
 				.consumes("application/json,application/xml")
diff --git a/tooling/swagger-rest-dsl-generator/src/test/resources/MyRestRouteFilter.txt b/tooling/swagger-rest-dsl-generator/src/test/resources/MyRestRouteFilter.txt
index 4f8df4f..0b98821 100644
--- a/tooling/swagger-rest-dsl-generator/src/test/resources/MyRestRouteFilter.txt
+++ b/tooling/swagger-rest-dsl-generator/src/test/resources/MyRestRouteFilter.txt
@@ -17,7 +17,7 @@ public final class MyRestRoute extends RouteBuilder {
 	 * Defines Apache Camel routes using REST DSL fluent API.
 	 */
 	public void configure() {
-		rest()
+		rest("/v2")
 			.put("/pet")
 				.id("updatePet")
 				.consumes("application/json,application/xml")
diff --git a/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstore.txt b/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstore.txt
index 9f2422f..5605621 100644
--- a/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstore.txt
+++ b/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstore.txt
@@ -14,7 +14,7 @@ public final class SwaggerPetstore extends RouteBuilder {
      * Defines Apache Camel routes using REST DSL fluent API.
      */
     public void configure() {
-        rest()
+        rest("/v2")
             .put("/pet")
                 .id("updatePet")
                 .consumes("application/json,application/xml")
diff --git a/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstoreWithRestComponent.txt b/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstoreWithRestComponent.txt
index fbe598b..8664220 100644
--- a/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstoreWithRestComponent.txt
+++ b/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstoreWithRestComponent.txt
@@ -17,7 +17,7 @@ public final class SwaggerPetstore extends RouteBuilder {
 
         restConfiguration().component("servlet").contextPath("/");
 
-        rest()
+        rest("/v2")
             .put("/pet")
                 .id("updatePet")
                 .consumes("application/json,application/xml")
diff --git a/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstoreWithRestComponentXml.txt b/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstoreWithRestComponentXml.txt
index 85bec26..d2ffa0f 100644
--- a/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstoreWithRestComponentXml.txt
+++ b/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstoreWithRestComponentXml.txt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <rests xmlns="http://camel.apache.org/schema/spring">
     <restConfiguration component="servlet" contextPath="/foo"/>
-    <rest>
+    <rest path="/v2">
         <put consumes="application/json,application/xml" id="updatePet" produces="application/xml,application/json" uri="/pet">
             <param description="Pet object that needs to be added to the store" name="body" required="true" type="body"/>
             <to uri="direct:updatePet"/>
diff --git a/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstoreXml.txt b/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstoreXml.txt
index bb87730..8d68e03 100644
--- a/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstoreXml.txt
+++ b/tooling/swagger-rest-dsl-generator/src/test/resources/SwaggerPetstoreXml.txt
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <rests xmlns="http://camel.apache.org/schema/spring">
-    <rest>
+    <rest path="/v2">
         <put consumes="application/json,application/xml" id="updatePet" produces="application/xml,application/json" uri="/pet">
             <param description="Pet object that needs to be added to the store" name="body" required="true" type="body"/>
             <to uri="direct:updatePet"/>