Repository: camel
Updated Branches:
  refs/heads/master 72025be03 -> 31a7e4598


CAMEL-10861: camel-hazelcast - route policy should have JMX api


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

Branch: refs/heads/master
Commit: 31a7e45985a0a63fe3611b36d3e8364e78b7c440
Parents: 72025be
Author: Claus Ibsen <davscl...@apache.org>
Authored: Sun Feb 19 13:00:43 2017 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Sun Feb 19 13:00:43 2017 +0100

----------------------------------------------------------------------
 .../hazelcast/policy/HazelcastRoutePolicy.java  | 36 ++++++++++++++++++--
 1 file changed, 34 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/31a7e459/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/policy/HazelcastRoutePolicy.java
----------------------------------------------------------------------
diff --git 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/policy/HazelcastRoutePolicy.java
 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/policy/HazelcastRoutePolicy.java
index 94d332f..d6250d2 100644
--- 
a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/policy/HazelcastRoutePolicy.java
+++ 
b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/policy/HazelcastRoutePolicy.java
@@ -27,21 +27,24 @@ import com.hazelcast.core.HazelcastInstance;
 import com.hazelcast.core.IMap;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
-import org.apache.camel.NonManagedService;
 import org.apache.camel.Route;
+import org.apache.camel.api.management.ManagedAttribute;
+import org.apache.camel.api.management.ManagedResource;
 import org.apache.camel.component.hazelcast.HazelcastUtil;
 import org.apache.camel.support.RoutePolicySupport;
 import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class HazelcastRoutePolicy extends RoutePolicySupport implements 
CamelContextAware, NonManagedService {
+@ManagedResource(description = "Route policy using Hazelcast as clustered 
lock")
+public class HazelcastRoutePolicy extends RoutePolicySupport implements 
CamelContextAware {
     private static final Logger LOGGER = 
LoggerFactory.getLogger(HazelcastRoutePolicy.class);
 
     private final boolean managedInstance;
     private final AtomicBoolean leader;
     private final Set<Route> suspendedRoutes;
 
+    private Route route;
     private CamelContext camelContext;
     private ExecutorService executorService;
     private HazelcastInstance instance;
@@ -88,6 +91,12 @@ public class HazelcastRoutePolicy extends RoutePolicySupport 
implements CamelCon
     }
 
     @Override
+    public void onInit(Route route) {
+        super.onInit(route);
+        this.route = route;
+    }
+
+    @Override
     public void onStart(Route route) {
         if (!leader.get() && shouldStopConsumer) {
             stopConsumer(route);
@@ -196,6 +205,23 @@ public class HazelcastRoutePolicy extends 
RoutePolicySupport implements CamelCon
     // Getter/Setters
     // 
*************************************************************************
 
+    @ManagedAttribute(description = "The route id")
+    public String getRouteId() {
+        if (route != null) {
+            return route.getId();
+        }
+        return null;
+    }
+
+    @ManagedAttribute(description = "The consumer endpoint", mask = true)
+    public String getEndpointUrl() {
+        if (route != null && route.getConsumer() != null && 
route.getConsumer().getEndpoint() != null) {
+            return route.getConsumer().getEndpoint().toString();
+        }
+        return null;
+    }
+
+    @ManagedAttribute(description = "The lock map name")
     public String getLockMapName() {
         return lockMapName;
     }
@@ -204,6 +230,7 @@ public class HazelcastRoutePolicy extends 
RoutePolicySupport implements CamelCon
         this.lockMapName = lockMapName;
     }
 
+    @ManagedAttribute(description = "Whether to stop consumer when starting up 
and failed to become master")
     public boolean isShouldStopConsumer() {
         return shouldStopConsumer;
     }
@@ -212,6 +239,7 @@ public class HazelcastRoutePolicy extends 
RoutePolicySupport implements CamelCon
         this.shouldStopConsumer = shouldStopConsumer;
     }
 
+    @ManagedAttribute(description = "The lock key")
     public String getLockKey() {
         return lockKey;
     }
@@ -220,6 +248,7 @@ public class HazelcastRoutePolicy extends 
RoutePolicySupport implements CamelCon
         this.lockKey = lockKey;
     }
 
+    @ManagedAttribute(description = "The lock value")
     public String getLockValue() {
         return lockValue;
     }
@@ -228,6 +257,7 @@ public class HazelcastRoutePolicy extends 
RoutePolicySupport implements CamelCon
         this.lockValue = lockValue;
     }
 
+    @ManagedAttribute(description = "Timeout used by slaves to try to obtain 
the lock to become new master")
     public long getTryLockTimeout() {
         return tryLockTimeout;
     }
@@ -241,6 +271,7 @@ public class HazelcastRoutePolicy extends 
RoutePolicySupport implements CamelCon
         this.tryLockTimeoutUnit = tryLockTimeoutUnit;
     }
 
+    @ManagedAttribute(description = "Timeout unit")
     public TimeUnit getTryLockTimeoutUnit() {
         return tryLockTimeoutUnit;
     }
@@ -249,6 +280,7 @@ public class HazelcastRoutePolicy extends 
RoutePolicySupport implements CamelCon
         this.tryLockTimeoutUnit = tryLockTimeoutUnit;
     }
 
+    @ManagedAttribute(description = "Is this route the master or a slave")
     public boolean isLeader() {
         return leader.get();
     }

Reply via email to