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"/>