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();