You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2014/06/18 09:02:08 UTC
[2/2] git commit: CAMEL-7520 Support to setup the handler even the
Jetty server is created
CAMEL-7520 Support to setup the handler even the Jetty server is created
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/23bb1758
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/23bb1758
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/23bb1758
Branch: refs/heads/camel-2.12.x
Commit: 23bb1758a1ffa0ab7f1c03726ce68da8da8dccfd
Parents: 3c4f98a
Author: Willem Jiang <wi...@gmail.com>
Authored: Wed Jun 18 14:36:46 2014 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Wed Jun 18 15:01:44 2014 +0800
----------------------------------------------------------------------
.../component/jetty/JettyHttpComponent.java | 38 +++++++++++++-------
1 file changed, 25 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/23bb1758/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
index 808f554..ee1b188 100644
--- a/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
+++ b/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
@@ -308,6 +308,13 @@ public class JettyHttpComponent extends HttpComponent {
CONNECTORS.put(connectorKey, connectorRef);
} else {
+
+ if (endpoint.getHandlers() != null && !endpoint.getHandlers().isEmpty()) {
+ // As the server is started, we need to stop the server for a while to add the new handler
+ connectorRef.server.stop();
+ addJettyHandlers(connectorRef.server, endpoint.getHandlers());
+ connectorRef.server.start();
+ }
// ref track the connector
connectorRef.increment();
}
@@ -921,19 +928,7 @@ public class JettyHttpComponent extends HttpComponent {
ServletContextHandler context = new ServletContextHandler(server, "/", ServletContextHandler.NO_SECURITY | ServletContextHandler.NO_SESSIONS);
context.setConnectorNames(new String[] {connector.getName()});
- if (handlers != null && !handlers.isEmpty()) {
- for (Handler handler : handlers) {
- if (handler instanceof HandlerWrapper) {
- ((HandlerWrapper) handler).setHandler(server.getHandler());
- server.setHandler(handler);
- } else {
- HandlerCollection handlerCollection = new HandlerCollection();
- handlerCollection.addHandler(server.getHandler());
- handlerCollection.addHandler(handler);
- server.setHandler(handlerCollection);
- }
- }
- }
+ addJettyHandlers(server, handlers);
CamelServlet camelServlet;
boolean jetty = endpoint.getUseContinuation() != null ? endpoint.getUseContinuation() : isUseContinuation();
@@ -964,6 +959,23 @@ public class JettyHttpComponent extends HttpComponent {
return camelServlet;
}
+ protected void addJettyHandlers(Server server, List<Handler> handlers) {
+ if (handlers != null && !handlers.isEmpty()) {
+ for (Handler handler : handlers) {
+ if (handler instanceof HandlerWrapper) {
+ ((HandlerWrapper) handler).setHandler(server.getHandler());
+ server.setHandler(handler);
+ } else {
+ HandlerCollection handlerCollection = new HandlerCollection();
+ handlerCollection.addHandler(server.getHandler());
+ handlerCollection.addHandler(handler);
+ server.setHandler(handlerCollection);
+ }
+ }
+ }
+
+ }
+
protected Server createServer() throws Exception {
Server server = new Server();
ContextHandlerCollection collection = new ContextHandlerCollection();