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;
     }

Reply via email to