You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2017/08/08 11:30:38 UTC

[04/10] camel git commit: CAMEL-11583: SupervisingRouteController should honor if a route was explicit set to autoStartup=false

CAMEL-11583: SupervisingRouteController should honor if a route was explicit set to autoStartup=false


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

Branch: refs/heads/master
Commit: 6893a37f28c82dbc70a05b7cebc720fa40c641cf
Parents: 0be3d90
Author: lburgazzoli <lb...@gmail.com>
Authored: Fri Aug 4 17:53:07 2017 +0200
Committer: lburgazzoli <lb...@gmail.com>
Committed: Tue Aug 8 13:29:27 2017 +0200

----------------------------------------------------------------------
 .../apache/camel/impl/DefaultCamelContext.java  | 17 +++++++++++++++-
 .../camel/impl/DefaultRouteController.java      |  5 +++++
 .../camel/impl/SupervisingRouteController.java  | 21 +++++++++++---------
 .../org/apache/camel/spi/RouteController.java   |  9 +++++++++
 .../java/sample/camel/ApplicationRoutes.java    |  5 +++++
 5 files changed, 47 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6893a37f/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index b46b6c2..1856ebd 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -3170,7 +3170,22 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
                         started++;
                     }
                 }
-                log.info("Total " + getRoutes().size() + " routes, of which " + started + " are started.");
+
+                final List<Route> controlledRoutes = getRouteController().getControlledRoutes();
+
+                if (controlledRoutes.isEmpty()) {
+                    log.info("Total {} routes, of which {} are started",
+                        getRoutes().size(),
+                        started);
+                } else {
+                    log.info("Total {} routes, of which {} are started and {} are managed by the route controller ({})",
+                        getRoutes().size(),
+                        started,
+                        controlledRoutes.size(),
+                        getRouteController().getClass().getName()
+                    );
+                }
+
                 log.info("Apache Camel " + getVersion() + " (CamelContext: " + getName() + ") started in " + TimeUtils.printDuration(stopWatch.taken()));
             }
             EventHelper.notifyCamelContextStarted(this);

http://git-wip-us.apache.org/repos/asf/camel/blob/6893a37f/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteController.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteController.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteController.java
index ff51cf3..db10a33 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteController.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteController.java
@@ -17,6 +17,7 @@
 package org.apache.camel.impl;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
@@ -104,4 +105,8 @@ public class DefaultRouteController extends org.apache.camel.support.ServiceSupp
         camelContext.resumeRoute(routeId);
     }
 
+    @Override
+    public List<Route> getControlledRoutes() {
+        return Collections.emptyList();
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/6893a37f/camel-core/src/main/java/org/apache/camel/impl/SupervisingRouteController.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/SupervisingRouteController.java b/camel-core/src/main/java/org/apache/camel/impl/SupervisingRouteController.java
index aaa6796..669532e 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/SupervisingRouteController.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/SupervisingRouteController.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.impl;
 
-import java.util.Collection;
 import java.util.EventObject;
 import java.util.HashMap;
 import java.util.List;
@@ -252,6 +251,13 @@ public class SupervisingRouteController extends DefaultRouteController {
         }
     }
 
+    @Override
+    public List<Route> getControlledRoutes() {
+        return routes.stream()
+            .map(RouteHolder::get)
+            .collect(Collectors.toList());
+    }
+
     // *********************************
     // Helpers
     // *********************************
@@ -432,14 +438,6 @@ public class SupervisingRouteController extends DefaultRouteController {
             routes.forEach((k, v) -> v.cancel(true));
             routes.clear();
         }
-
-        boolean isSupervising(RouteHolder route) {
-            return routes.containsKey(route);
-        }
-
-        Collection<RouteHolder> routes() {
-            return routes.keySet();
-        }
     }
 
     // *********************************
@@ -533,6 +531,11 @@ public class SupervisingRouteController extends DefaultRouteController {
     private class ManagedRoutePolicy implements RoutePolicy {
         @Override
         public void onInit(Route route) {
+            if ("false".equals(route.getRouteContext().getRoute().getAutoStartup())) {
+                LOGGER.info("Route {} has explicit auto-startup flag set to false, ignore it", route.getId());
+                return;
+            }
+
             RouteHolder holder = new RouteHolder(route, routeCount.incrementAndGet());
             if (routes.add(holder)) {
                 holder.getContext().setRouteController(SupervisingRouteController.this);

http://git-wip-us.apache.org/repos/asf/camel/blob/6893a37f/camel-core/src/main/java/org/apache/camel/spi/RouteController.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/RouteController.java b/camel-core/src/main/java/org/apache/camel/spi/RouteController.java
index 0f25a2d..0e55c52 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/RouteController.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/RouteController.java
@@ -16,10 +16,12 @@
  */
 package org.apache.camel.spi;
 
+import java.util.List;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.Experimental;
+import org.apache.camel.Route;
 import org.apache.camel.Service;
 
 @Experimental
@@ -38,4 +40,11 @@ public interface RouteController extends CamelContextAware, Service {
     void suspendRoute(String routeId, long timeout, TimeUnit timeUnit) throws Exception;
 
     void resumeRoute(String routeId) throws Exception;
+
+    /**
+     * Return the list of routes controlled by this controller.
+     *
+     * @return the list of controlled routes;
+     */
+    List<Route> getControlledRoutes();
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/6893a37f/examples/camel-example-spring-boot-routecontroller/src/main/java/sample/camel/ApplicationRoutes.java
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-boot-routecontroller/src/main/java/sample/camel/ApplicationRoutes.java b/examples/camel-example-spring-boot-routecontroller/src/main/java/sample/camel/ApplicationRoutes.java
index bd1473a..7115570 100644
--- a/examples/camel-example-spring-boot-routecontroller/src/main/java/sample/camel/ApplicationRoutes.java
+++ b/examples/camel-example-spring-boot-routecontroller/src/main/java/sample/camel/ApplicationRoutes.java
@@ -39,5 +39,10 @@ public class ApplicationRoutes extends RouteBuilder {
         from("undertow:http://localhost:9011")
             .id("undertow")
             .log("From undertow ...");
+
+        from("undertow:http://localhost:9012")
+            .id("undertow-2")
+            .autoStartup(false)
+            .log("From undertow ...");
     }
 }