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 2015/09/23 11:35:51 UTC
[15/16] camel git commit: CAMEL-8545: camel-swagger-java to run
outside servlet - work in progress
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/17ef02fe
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/17ef02fe
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/17ef02fe
Branch: refs/heads/master
Commit: 17ef02fe0ac73cff207d2576dee6082ed5b03b04
Parents: f3aed3e
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Sep 23 11:28:02 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Sep 23 11:30:48 2015 +0200
----------------------------------------------------------------------
.../camel/swagger/RestSwaggerProcessor.java | 18 +++++++++-------
.../camel/swagger/RestSwaggerSupport.java | 22 +++++++++++++-------
.../swagger/servlet/RestSwaggerServlet.java | 2 +-
.../camel/example/cdi/UserRouteBuilder.java | 2 +-
4 files changed, 28 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/17ef02fe/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerProcessor.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerProcessor.java
index 58d3205..a83fe25 100644
--- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerProcessor.java
+++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerProcessor.java
@@ -48,7 +48,7 @@ public class RestSwaggerProcessor implements Processor {
@Override
public void process(Exchange exchange) throws Exception {
- String contextId;
+ String contextId = exchange.getContext().getName();
String route = exchange.getIn().getHeader(Exchange.HTTP_PATH, String.class);
RestApiResponseAdapter adapter = new ExchangeRestApiResponseAdapter(exchange);
@@ -56,30 +56,34 @@ public class RestSwaggerProcessor implements Processor {
try {
// render list of camel contexts as root
if (route == null || route.equals("") || route.equals("/")) {
- support.renderCamelContexts(adapter, contextIdPattern);
+ support.renderCamelContexts(adapter, contextId, contextIdPattern);
} else {
// first part is the camel context
if (route.startsWith("/")) {
route = route.substring(1);
}
// the remainder is the route part
- contextId = route.split("/")[0];
+ String name = route.split("/")[0];
if (route.startsWith(contextId)) {
- route = route.substring(contextId.length());
+ route = route.substring(name.length());
}
boolean match = true;
if (contextIdPattern != null) {
- match = EndpointHelper.matchPattern(contextId, contextIdPattern);
+ if ("#name#".equals(contextIdPattern)) {
+ match = name.equals(contextId);
+ } else {
+ match = EndpointHelper.matchPattern(name, contextIdPattern);
+ }
if (LOG.isDebugEnabled()) {
- LOG.debug("Match contextId: {} with pattern: {} -> {}", new Object[]{contextId, contextIdPattern, match});
+ LOG.debug("Match contextId: {} with pattern: {} -> {}", new Object[]{name, contextIdPattern, match});
}
}
if (!match) {
adapter.noContent();
} else {
- support.renderResourceListing(adapter, swaggerConfig, contextId, route);
+ support.renderResourceListing(adapter, swaggerConfig, name, route);
}
}
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/camel/blob/17ef02fe/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 5e9513d..b3d33c3 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
@@ -198,7 +198,7 @@ public class RestSwaggerSupport {
/**
* Renders a list of available CamelContexts in the JVM
*/
- public void renderCamelContexts(RestApiResponseAdapter response, String contextIdPattern) throws Exception {
+ public void renderCamelContexts(RestApiResponseAdapter response, String contextId, String contextIdPattern) throws Exception {
LOG.trace("renderCamelContexts");
if (cors) {
@@ -214,12 +214,20 @@ public class RestSwaggerSupport {
List<String> contexts = findCamelContexts();
// filter non matched CamelContext's
- Iterator<String> it = contexts.iterator();
- while (it.hasNext()) {
- String name = it.next();
- boolean match = EndpointHelper.matchPattern(name, contextIdPattern);
- if (!match) {
- it.remove();
+ if (contextIdPattern != null) {
+ Iterator<String> it = contexts.iterator();
+ while (it.hasNext()) {
+ String name = it.next();
+
+ boolean match;
+ if ("#name#".equals(contextIdPattern)) {
+ match = name.equals(contextId);
+ } else {
+ match = EndpointHelper.matchPattern(name, contextIdPattern);
+ }
+ if (!match) {
+ it.remove();
+ }
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/17ef02fe/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/servlet/RestSwaggerServlet.java
----------------------------------------------------------------------
diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/servlet/RestSwaggerServlet.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/servlet/RestSwaggerServlet.java
index a1381ce..345efc9 100644
--- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/servlet/RestSwaggerServlet.java
+++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/servlet/RestSwaggerServlet.java
@@ -77,7 +77,7 @@ public class RestSwaggerServlet extends HttpServlet {
// render list of camel contexts as root
if (route == null || route.equals("") || route.equals("/")) {
- swagger.renderCamelContexts(adapter, null);
+ swagger.renderCamelContexts(adapter, null, null);
} else {
// first part is the camel context
if (route.startsWith("/")) {
http://git-wip-us.apache.org/repos/asf/camel/blob/17ef02fe/examples/camel-example-swagger-cdi/src/main/java/org/apache/camel/example/cdi/UserRouteBuilder.java
----------------------------------------------------------------------
diff --git a/examples/camel-example-swagger-cdi/src/main/java/org/apache/camel/example/cdi/UserRouteBuilder.java b/examples/camel-example-swagger-cdi/src/main/java/org/apache/camel/example/cdi/UserRouteBuilder.java
index c7657d9..f037444 100644
--- a/examples/camel-example-swagger-cdi/src/main/java/org/apache/camel/example/cdi/UserRouteBuilder.java
+++ b/examples/camel-example-swagger-cdi/src/main/java/org/apache/camel/example/cdi/UserRouteBuilder.java
@@ -39,7 +39,7 @@ public class UserRouteBuilder extends RouteBuilder {
.dataFormatProperty("prettyPrint", "true")
// setup context path and port number that netty will use
.contextPath("/rest").port(8080)
- // add swagger api-doc out of the box, and only allow to docs for this CamelContext
+ // add swagger api-doc out of the box, and only allow the docs for this CamelContext (#name#)
.apiContextPath("/api-doc").apiContextIdPattern("#name#")
.apiProperty("api.title", "User API").apiProperty("api.version", "1.2.3")
// and enable CORS