Repository: camel Updated Branches: refs/heads/master 31a7e4598 -> 4b81fbbce
camel-consul should use Camels thread pool for its background task. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/53f64944 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/53f64944 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/53f64944 Branch: refs/heads/master Commit: 53f649440aa457d3f27ec704147ac7f87bfda507 Parents: 31a7e45 Author: Claus Ibsen <davscl...@apache.org> Authored: Sun Feb 19 17:23:50 2017 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sun Feb 19 17:23:50 2017 +0100 ---------------------------------------------------------------------- .../consul/policy/ConsulRoutePolicy.java | 30 +++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/53f64944/components/camel-consul/src/main/java/org/apache/camel/component/consul/policy/ConsulRoutePolicy.java ---------------------------------------------------------------------- diff --git a/components/camel-consul/src/main/java/org/apache/camel/component/consul/policy/ConsulRoutePolicy.java b/components/camel-consul/src/main/java/org/apache/camel/component/consul/policy/ConsulRoutePolicy.java index 75683eb..8723992 100644 --- a/components/camel-consul/src/main/java/org/apache/camel/component/consul/policy/ConsulRoutePolicy.java +++ b/components/camel-consul/src/main/java/org/apache/camel/component/consul/policy/ConsulRoutePolicy.java @@ -20,8 +20,6 @@ import java.math.BigInteger; import java.util.HashSet; import java.util.Set; import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; @@ -34,6 +32,8 @@ import com.orbitz.consul.model.ConsulResponse; import com.orbitz.consul.model.kv.Value; import com.orbitz.consul.model.session.ImmutableSession; import com.orbitz.consul.option.QueryOptions; +import org.apache.camel.CamelContext; +import org.apache.camel.CamelContextAware; import org.apache.camel.NonManagedService; import org.apache.camel.Route; import org.apache.camel.support.RoutePolicySupport; @@ -41,7 +41,7 @@ import org.apache.camel.util.ObjectHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ConsulRoutePolicy extends RoutePolicySupport implements NonManagedService { +public class ConsulRoutePolicy extends RoutePolicySupport implements NonManagedService, CamelContextAware { private static final Logger LOGGER = LoggerFactory.getLogger(ConsulRoutePolicy.class); private final Object lock; @@ -52,6 +52,7 @@ public class ConsulRoutePolicy extends RoutePolicySupport implements NonManagedS private final Set<Route> suspendedRoutes; private final AtomicReference<BigInteger> index; + private CamelContext camelContext; private String serviceName; private String servicePath; private int ttl; @@ -83,6 +84,16 @@ public class ConsulRoutePolicy extends RoutePolicySupport implements NonManagedS } @Override + public CamelContext getCamelContext() { + return camelContext; + } + + @Override + public void setCamelContext(CamelContext camelContext) { + this.camelContext = camelContext; + } + + @Override public void onStart(Route route) { if (!leader.get() && shouldStopConsumer) { stopConsumer(route); @@ -116,7 +127,7 @@ public class ConsulRoutePolicy extends RoutePolicySupport implements NonManagedS LOGGER.debug("SessionID = {}", sessionId); if (executorService == null) { - executorService = Executors.newSingleThreadExecutor(); + executorService = getCamelContext().getExecutorServiceManager().newSingleThreadExecutor(this, "HazelcastRoutePolicy"); } setLeader(keyValueClient.acquireLock(servicePath, sessionId)); @@ -136,8 +147,7 @@ public class ConsulRoutePolicy extends RoutePolicySupport implements NonManagedS sessionId = null; if (executorService != null) { - executorService.shutdown(); - executorService.awaitTermination(ttl / 3, TimeUnit.SECONDS); + getCamelContext().getExecutorServiceManager().shutdownGraceful(executorService); } } } @@ -232,14 +242,6 @@ public class ConsulRoutePolicy extends RoutePolicySupport implements NonManagedS this.lockDelay = lockDelay > 10 ? lockDelay : 10; } - public ExecutorService getExecutorService() { - return executorService; - } - - public void setExecutorService(ExecutorService executorService) { - this.executorService = executorService; - } - public boolean isShouldStopConsumer() { return shouldStopConsumer; }