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