Author: davsclaus
Date: Sun Mar 27 09:36:57 2011
New Revision: 1085897

URL: http://svn.apache.org/viewvc?rev=1085897&view=rev
Log:
CAMEL-3811: Fixed jmx to not display route policy list as unavailable in jmx 
consoles.

Added:
    
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRoutePolicyTest.java
      - copied, changed from r1085677, 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRegisterRouteTest.java
Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java?rev=1085897&r1=1085896&r2=1085897&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java
 Sun Mar 27 09:36:57 2011
@@ -111,17 +111,22 @@ public class ManagedRoute extends Manage
     @ManagedAttribute(description = "Route Policy List")
     public String getRoutePolicyList() {
         List<RoutePolicy> policyList = 
route.getRouteContext().getRoutePolicyList();
-        if (policyList != null) {
-            StringBuilder sb = new StringBuilder();
-            for (RoutePolicy policy : policyList) {
-                sb.append(policy.getClass().getSimpleName());
-                
sb.append("(").append(ObjectHelper.getIdentityHashCode(policy)).append(")");
+
+        if (policyList == null || policyList.isEmpty()) {
+            // return an empty string to have it displayed nicely in JMX 
consoles
+            return "";
+        }
+
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < policyList.size(); i++) {
+            RoutePolicy policy = policyList.get(i);
+            sb.append(policy.getClass().getSimpleName());
+            
sb.append("(").append(ObjectHelper.getIdentityHashCode(policy)).append(")");
+            if (i < policyList.size() - 1) {
                 sb.append(", ");
             }
-            sb = sb.delete(sb.lastIndexOf(", "), sb.length() - 1);
-            return sb.toString();
         }
-        return null;
+        return sb.toString();
     }
 
     @ManagedOperation(description = "Start route")

Copied: 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRoutePolicyTest.java
 (from r1085677, 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRegisterRouteTest.java)
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRoutePolicyTest.java?p2=camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRoutePolicyTest.java&p1=camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRegisterRouteTest.java&r1=1085677&r2=1085897&rev=1085897&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRegisterRouteTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRoutePolicyTest.java
 Sun Mar 27 09:36:57 2011
@@ -22,11 +22,12 @@ import javax.management.ObjectName;
 
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.impl.ThrottlingInflightRoutePolicy;
 
 /**
  * @version 
  */
-public class ManagedRegisterRouteTest extends ManagementTestSupport {
+public class ManagedRoutePolicyTest extends ManagementTestSupport {
 
     public void testRoutes() throws Exception {
         MBeanServer mbeanServer = getMBeanServer();
@@ -51,15 +52,10 @@ public class ManagedRegisterRouteTest ex
         String state = (String) mbeanServer.getAttribute(on, "State");
         assertEquals("Should be started", ServiceStatus.Started.name(), state);
 
-        // stop the route
-        context.stopRoute(context.getRouteDefinitions().get(0));
-
-        registered = mbeanServer.isRegistered(on);
-        assertEquals("Should be registered", true, registered);
-
-        // should be stopped, eg its removed
-        state = (String) mbeanServer.getAttribute(on, "State");
-        assertEquals("Should be stopped", ServiceStatus.Stopped.name(), state);
+        // should have route policy
+        String policy = (String) mbeanServer.getAttribute(on, 
"RoutePolicyList");
+        assertNotNull(policy);
+        assertTrue("Should be a throttling, was: " + policy, 
policy.startsWith("ThrottlingInflightRoutePolicy"));
     }
 
     @Override
@@ -67,7 +63,8 @@ public class ManagedRegisterRouteTest ex
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("direct:start").to("log:foo").to("mock:result");
+                from("direct:start").routePolicy(new 
ThrottlingInflightRoutePolicy())
+                    .to("log:foo").to("mock:result");
             }
         };
     }


Reply via email to