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() {