Updated Branches: refs/heads/camel-2.11.x 3457faa61 -> 0785cac1e refs/heads/camel-2.12.x 3b8d80d2d -> 14a77ae9c refs/heads/master 114ec60f7 -> 79700e1b7
CAMEL-7004: Added jmx attributes for total/started routes on CamelContextMBean Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/79700e1b Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/79700e1b Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/79700e1b Branch: refs/heads/master Commit: 79700e1b7545836fe1887daea5c5e68fceb4e372 Parents: 114ec60 Author: Claus Ibsen <davscl...@apache.org> Authored: Sun Nov 24 11:27:20 2013 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sun Nov 24 11:27:20 2013 +0100 ---------------------------------------------------------------------- .../management/mbean/ManagedCamelContextMBean.java | 6 ++++++ .../org/apache/camel/impl/DefaultCamelContext.java | 7 ++++++- .../camel/management/mbean/ManagedCamelContext.java | 15 +++++++++++++++ .../camel/management/ManagedCamelContextTest.java | 6 ++++++ 4 files changed, 33 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/79700e1b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java index 566f6e0..5ec2a4c 100644 --- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java +++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java @@ -86,6 +86,12 @@ public interface ManagedCamelContextMBean extends ManagedPerformanceCounterMBean @ManagedAttribute(description = "Current number of inflight Exchanges") Integer getInflightExchanges(); + @ManagedAttribute(description = "Total number of routes") + Integer getTotalRoutes(); + + @ManagedAttribute(description = "Current number of started routes") + Integer getStartedRoutes(); + @ManagedAttribute(description = "Shutdown timeout") void setTimeout(long timeout); http://git-wip-us.apache.org/repos/asf/camel/blob/79700e1b/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 9fe8bb1..bf90c7b 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 @@ -636,9 +636,14 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon return routeStartupOrder; } + @SuppressWarnings("unchecked") public List<Route> getRoutes() { // lets return a copy of the collection as objects are removed later when services are stopped - return new ArrayList<Route>(routes); + if (routes.isEmpty()) { + return Collections.EMPTY_LIST; + } else { + return new ArrayList<Route>(routes); + } } public Route getRoute(String id) { http://git-wip-us.apache.org/repos/asf/camel/blob/79700e1b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java index d540428..6bfdfe4 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java @@ -36,6 +36,7 @@ import org.apache.camel.ComponentConfiguration; import org.apache.camel.Endpoint; import org.apache.camel.ManagementStatisticsLevel; import org.apache.camel.ProducerTemplate; +import org.apache.camel.Route; import org.apache.camel.TimerListener; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.api.management.mbean.ManagedCamelContextMBean; @@ -131,6 +132,20 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti return context.getInflightRepository().size(); } + public Integer getTotalRoutes() { + return context.getRoutes().size(); + } + + public Integer getStartedRoutes() { + int started = 0; + for (Route route : context.getRoutes()) { + if (context.getRouteStatus(route.getId()).isStarted()) { + started++; + } + } + return started; + } + public void setTimeout(long timeout) { context.getShutdownStrategy().setTimeout(timeout); } http://git-wip-us.apache.org/repos/asf/camel/blob/79700e1b/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java index ba41132..c25cf1f 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java @@ -65,6 +65,12 @@ public class ManagedCamelContextTest extends ManagementTestSupport { Boolean messageHistory = (Boolean) mbeanServer.getAttribute(on, "MessageHistory"); assertEquals(Boolean.TRUE, messageHistory); + Integer total = (Integer) mbeanServer.getAttribute(on, "TotalRoutes"); + assertEquals(2, total.intValue()); + + Integer started = (Integer) mbeanServer.getAttribute(on, "StartedRoutes"); + assertEquals(2, started.intValue()); + // invoke operations MockEndpoint mock = getMockEndpoint("mock:result"); mock.expectedBodiesReceived("Hello World");