Author: davsclaus
Date: Sun Mar 17 08:54:19 2013
New Revision: 1457397

URL: http://svn.apache.org/r1457397
Log:
ManagedCamelContextMBean - Add operation to find components

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java?rev=1457397&r1=1457396&r2=1457397&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java
 Sun Mar 17 08:54:19 2013
@@ -17,6 +17,7 @@
 package org.apache.camel.api.management.mbean;
 
 import java.util.Map;
+import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.api.management.ManagedAttribute;
@@ -160,5 +161,14 @@ public interface ManagedCamelContextMBea
      */
     @ManagedOperation(description = "Removes endpoints by the given pattern")
     int removeEndpoints(String pattern) throws Exception;
-    
+
+    /**
+     * Find information about all the Camel components available in the 
classpath and {@link org.apache.camel.spi.Registry}.
+     *
+     * @return a map with the component name, and value with component details.
+     * @throws Exception is thrown if error occurred
+     */
+    @ManagedOperation(description = "Find all Camel components available in 
the classpath")
+    Map<String, Properties> findComponents() throws Exception;
+
 }
\ No newline at end of file

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java?rev=1457397&r1=1457396&r2=1457397&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
 Sun Mar 17 08:54:19 2013
@@ -21,9 +21,9 @@ import java.util.Collection;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
-
 import javax.management.MBeanServer;
 import javax.management.MBeanServerInvocationHandler;
 import javax.management.ObjectName;
@@ -41,6 +41,7 @@ import org.apache.camel.model.ModelCamel
 import org.apache.camel.model.ModelHelper;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.RoutesDefinition;
+import org.apache.camel.util.CamelContextHelper;
 
 /**
  * @version 
@@ -87,12 +88,10 @@ public class ManagedCamelContext extends
         return context.getProperties();
     }
     
-    @Override
     public String getProperty(String name) throws Exception {
         return context.getProperty(name);
     }
 
-    @Override
     public void setProperty(String name, String value) throws Exception {
         context.getProperties().put(name, value);
     }
@@ -145,7 +144,6 @@ public class ManagedCamelContext extends
         return String.format("%.2f", load.getLoad15());
     }
 
-    @Override
     public void onTimer() {
         load.update(getInflightExchanges());
     }
@@ -251,7 +249,6 @@ public class ManagedCamelContext extends
         context.addRouteDefinitions(def.getRoutes());
     }
 
-    @Override
     public String dumpRoutesStatsAsXml(boolean fullStats, boolean 
includeProcessors) throws Exception {
         StringBuilder sb = new StringBuilder();
         sb.append("<camelContextStat").append(String.format(" id=\"%s\"", 
getCamelId()));
@@ -335,4 +332,8 @@ public class ManagedCamelContext extends
         return removed.size();
     }
 
+    public Map<String, Properties> findComponents() throws Exception {
+        return CamelContextHelper.findComponents(context);
+    }
+
 }

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java?rev=1457397&r1=1457396&r2=1457397&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedCamelContextTest.java
 Sun Mar 17 08:54:19 2013
@@ -18,6 +18,7 @@ package org.apache.camel.management;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Properties;
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
@@ -153,6 +154,23 @@ public class ManagedCamelContextTest ext
         assertFalse("Should not be registered " + seda, registered);
     }
 
+    public void testFindComponentsInClasspath() throws Exception {
+        MBeanServer mbeanServer = getMBeanServer();
+
+        ObjectName on = 
ObjectName.getInstance("org.apache.camel:context=localhost/19-camel-1,type=context,name=\"camel-1\"");
+
+        assertTrue("Should be registered", mbeanServer.isRegistered(on));
+
+        Map<String, Properties> info = (Map<String, Properties>) 
mbeanServer.invoke(on, "findComponents", null, null);
+        assertNotNull(info);
+
+        assertEquals(21, info.size());
+        Properties prop = info.get("seda");
+        assertNotNull(prop);
+        assertEquals("org.apache.camel", prop.get("groupId"));
+        assertEquals("camel-core", prop.get("artifactId"));
+    }
+
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {
         return new RouteBuilder() {


Reply via email to