This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit 352483bda8d30f182c13018168cced33bc4e94c7 Author: Claus Ibsen <[email protected]> AuthorDate: Mon Nov 22 16:02:47 2021 +0100 CAMEL-17223: camel-main - durationMaxAction to control whether to shutdown or stop all routes. --- .../java/org/apache/camel/impl/engine/AbstractCamelContext.java | 5 ++++- .../java/org/apache/camel/support/RouteWatcherReloadStrategy.java | 8 ++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java index db84220..bc5b795 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java @@ -1199,7 +1199,10 @@ public abstract class AbstractCamelContext extends BaseService } public void stopAllRoutes() throws Exception { - // TODO: implement me + // stop all routes + if (shutdownStrategy != null) { + shutdownStrategy.shutdown(this, getRouteStartupOrder()); + } } public synchronized void startRoute(String routeId) throws Exception { diff --git a/core/camel-support/src/main/java/org/apache/camel/support/RouteWatcherReloadStrategy.java b/core/camel-support/src/main/java/org/apache/camel/support/RouteWatcherReloadStrategy.java index 7007540..3555d55 100644 --- a/core/camel-support/src/main/java/org/apache/camel/support/RouteWatcherReloadStrategy.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/RouteWatcherReloadStrategy.java @@ -118,8 +118,12 @@ public class RouteWatcherReloadStrategy extends FileWatcherResourceReloadStrateg // should all existing routes be stopped and removed first? if (removeAllRoutes) { for (Route route : getCamelContext().getRoutes()) { - getCamelContext().getRouteController().stopRoute(route.getRouteId()); - getCamelContext().removeRoute(route.getRouteId()); + boolean stopped + = getCamelContext().getRouteController().getRouteStatus(route.getRouteId()).isStopped(); + if (!stopped) { + getCamelContext().getRouteController().stopRoute(route.getRouteId()); + getCamelContext().removeRoute(route.getRouteId()); + } } } Set<String> ids
