CAMEL-8545: camel-swagger-java to run outside servlet - work in progress

Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d975acd2
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d975acd2
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d975acd2

Branch: refs/heads/master
Commit: d975acd2030d672a8843b3fd78d3b6e108b4fd22
Parents: 8fff52a
Author: Claus Ibsen <davscl...@apache.org>
Authored: Wed Sep 23 09:54:38 2015 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Wed Sep 23 09:54:38 2015 +0200

----------------------------------------------------------------------
 .../org/apache/camel/model/rest/RestDefinition.java    |  1 +
 .../org/apache/camel/model/rest/VerbDefinition.java    | 13 +++++++++++++
 .../org/apache/camel/swagger/RestSwaggerReader.java    | 10 +++++++---
 .../org/apache/camel/swagger/RestSwaggerSupport.java   |  2 +-
 .../camel/swagger/RestSwaggerReaderModelTest.java      |  2 +-
 .../apache/camel/swagger/RestSwaggerReaderTest.java    |  2 +-
 6 files changed, 24 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/d975acd2/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
index 7f93637..c004af7 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
@@ -655,6 +655,7 @@ public class RestDefinition extends 
OptionalIdentifiedDefinition<RestDefinition>
                 }
             }
             String routeId = route.idOrCreate(camelContext.getNodeIdFactory());
+            verb.setRouteId(routeId);
             options.put("routeId", routeId);
             if (component != null && !component.isEmpty()) {
                 options.put("componentName", component);

http://git-wip-us.apache.org/repos/asf/camel/blob/d975acd2/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
index 7e119c5..8d1e686 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
@@ -96,6 +96,8 @@ public class VerbDefinition extends 
OptionalIdentifiedDefinition<VerbDefinition>
     private RouteDefinition route;
     @XmlTransient
     private RestDefinition rest;
+    @XmlAttribute
+    private String routeId;
 
     @Override
     public String getLabel() {
@@ -239,6 +241,17 @@ public class VerbDefinition extends 
OptionalIdentifiedDefinition<VerbDefinition>
         this.outType = outType;
     }
 
+    public String getRouteId() {
+        return routeId;
+    }
+
+    /**
+     * The route id this rest-dsl is using (read-only)
+     */
+    public void setRouteId(String routeId) {
+        this.routeId = routeId;
+    }
+
     public RestDefinition getRest() {
         return rest;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/d975acd2/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
----------------------------------------------------------------------
diff --git 
a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
 
b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
index d5eac90..ea8a6a2 100644
--- 
a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
+++ 
b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerReader.java
@@ -68,7 +68,7 @@ public class RestSwaggerReader {
      * @param classResolver     class resolver to use
      * @return the swagger model
      */
-    public Swagger read(List<RestDefinition> rests, String route, BeanConfig 
config, ClassResolver classResolver) {
+    public Swagger read(List<RestDefinition> rests, String route, BeanConfig 
config, String camelContextId, ClassResolver classResolver) {
         Swagger swagger = new Swagger();
 
         for (RestDefinition rest : rests) {
@@ -80,7 +80,7 @@ public class RestSwaggerReader {
                 }
             }
 
-            parse(swagger, rest, classResolver);
+            parse(swagger, rest, camelContextId, classResolver);
         }
 
         // configure before returning
@@ -88,7 +88,7 @@ public class RestSwaggerReader {
         return swagger;
     }
 
-    private void parse(Swagger swagger, RestDefinition rest, ClassResolver 
classResolver) {
+    private void parse(Swagger swagger, RestDefinition rest, String 
camelContextId, ClassResolver classResolver) {
         List<VerbDefinition> verbs = new ArrayList<>(rest.getVerbs());
         // must sort the verbs by uri so we group them together when an uri 
has multiple operations
         Collections.sort(verbs, new VerbOrdering());
@@ -144,6 +144,10 @@ public class RestSwaggerReader {
             // group in the same tag
             op.addTag(pathAsTag);
 
+            // add id as vendor extensions
+            op.getVendorExtensions().put("x-camelContextId", camelContextId);
+            op.getVendorExtensions().put("x-routeId", verb.getRouteId());
+
             Path path = swagger.getPath(opPath);
             if (path == null) {
                 path = new Path();

http://git-wip-us.apache.org/repos/asf/camel/blob/d975acd2/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
----------------------------------------------------------------------
diff --git 
a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
 
b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
index 5790651..4e228a8 100644
--- 
a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
+++ 
b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
@@ -177,7 +177,7 @@ public class RestSwaggerSupport {
         List<RestDefinition> rests = getRestDefinitions(contextId);
         if (rests != null) {
             // read the rest-dsl into swagger model
-            Swagger swagger = reader.read(rests, route, swaggerConfig, new 
DefaultClassResolver());
+            Swagger swagger = reader.read(rests, route, swaggerConfig, 
contextId, new DefaultClassResolver());
 
             ObjectMapper mapper = new ObjectMapper();
             mapper.enable(SerializationFeature.INDENT_OUTPUT);

http://git-wip-us.apache.org/repos/asf/camel/blob/d975acd2/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelTest.java
 
b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelTest.java
index d6293f5..72f8409 100644
--- 
a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelTest.java
+++ 
b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderModelTest.java
@@ -74,7 +74,7 @@ public class RestSwaggerReaderModelTest extends 
CamelTestSupport {
         
config.setLicenseUrl("http://www.apache.org/licenses/LICENSE-2.0.html";);
         RestSwaggerReader reader = new RestSwaggerReader();
 
-        Swagger swagger = reader.read(context.getRestDefinitions(), null, 
config, new DefaultClassResolver());
+        Swagger swagger = reader.read(context.getRestDefinitions(), null, 
config, context.getName(), new DefaultClassResolver());
         assertNotNull(swagger);
 
         ObjectMapper mapper = new ObjectMapper();

http://git-wip-us.apache.org/repos/asf/camel/blob/d975acd2/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderTest.java
 
b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderTest.java
index 20becb4..e1aa9e9 100644
--- 
a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderTest.java
+++ 
b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/RestSwaggerReaderTest.java
@@ -65,7 +65,7 @@ public class RestSwaggerReaderTest extends CamelTestSupport {
         config.setBasePath("/api");
         RestSwaggerReader reader = new RestSwaggerReader();
 
-        Swagger swagger = reader.read(context.getRestDefinitions(), null, 
config, new DefaultClassResolver());
+        Swagger swagger = reader.read(context.getRestDefinitions(), null, 
config, context.getName(), new DefaultClassResolver());
         assertNotNull(swagger);
 
         ObjectMapper mapper = new ObjectMapper();

Reply via email to