CAMEL-7004: Added jmx attributes for total/started routes on CamelContextMBean
Conflicts:
camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/0785cac1
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/0785cac1
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/0785cac1
Branch: refs/heads/camel-2.11.x
Commit: 0785cac1e37788127ffe9e2396a48d513d900feb
Parents: 3457faa
Author: Claus Ibsen <[email protected]>
Authored: Sun Nov 24 11:27:20 2013 +0100
Committer: Claus Ibsen <[email protected]>
Committed: Sun Nov 24 11:29:07 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/0785cac1/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 002f556..ed6e35e 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
@@ -72,6 +72,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/0785cac1/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 c4dd58a..5e7c0e6 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
@@ -617,9 +617,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/0785cac1/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 4d58660..ef3bae6 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
@@ -32,6 +32,7 @@ import org.apache.camel.CamelContext;
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;
@@ -108,6 +109,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/0785cac1/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 417d7c9..d8c02bc 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
@@ -57,6 +57,12 @@ public class ManagedCamelContextTest extends
ManagementTestSupport {
String status = (String) mbeanServer.getAttribute(on, "State");
assertEquals("Started", status);
+ 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");