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 ...");
}
}