You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2011/06/22 10:42:00 UTC
svn commit: r1138337 - in /camel/trunk/camel-core/src:
main/java/org/apache/camel/management/mbean/ManagedCamelContext.java
test/java/org/apache/camel/management/ManagedCamelContextTest.java
Author: davsclaus
Date: Wed Jun 22 08:42:00 2011
New Revision: 1138337
URL: http://svn.apache.org/viewvc?rev=1138337&view=rev
Log:
CAMEL-4122: Added API on ManagedCamelContext to create/remove endpoints.
Modified:
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/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=1138337&r1=1138336&r2=1138337&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 Wed Jun 22 08:42:00 2011
@@ -17,11 +17,13 @@
package org.apache.camel.management.mbean;
import java.io.InputStream;
+import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import org.apache.camel.CamelContext;
+import org.apache.camel.Endpoint;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.ServiceStatus;
import org.apache.camel.model.RouteDefinition;
@@ -238,4 +240,40 @@ public class ManagedCamelContext {
context.addRouteDefinitions(def.getRoutes());
}
+ /**
+ * Creates the endpoint by the given uri
+ *
+ * @param uri uri of endpoint to create
+ * @return <tt>true</tt> if a new endpoint was created, <tt>false</tt> if the endpoint already existed
+ * @throws Exception is thrown if error occurred
+ */
+ @ManagedOperation(description = "Creates the endpoint by the given uri")
+ public boolean createEndpoint(String uri) throws Exception {
+ if (context.hasEndpoint(uri) != null) {
+ // endpoint already exists
+ return false;
+ }
+ // create new endpoint by just getting it
+ context.getEndpoint(uri);
+ return true;
+ }
+
+ /**
+ * Removes the endpoint by the given pattern
+ *
+ * @param pattern the pattern
+ * @return number of endpoints removed
+ * @throws Exception is thrown if error occurred
+ * @see CamelContext#removeEndpoints(String)
+ */
+ @ManagedOperation(description = "Removes endpoints by the given pattern")
+ public int removeEndpoints(String pattern) throws Exception {
+ Collection<Endpoint> removed = context.removeEndpoints(pattern);
+ if (removed == null) {
+ return 0;
+ } else {
+ return removed.size();
+ }
+ }
+
}
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=1138337&r1=1138336&r2=1138337&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 Wed Jun 22 08:42:00 2011
@@ -82,6 +82,50 @@ public class ManagedCamelContextTest ext
mbeanServer.invoke(on, "stop", null, null);
}
+ public void testManagedCamelContextCreateEndpoint() throws Exception {
+ MBeanServer mbeanServer = getMBeanServer();
+
+ ObjectName on = ObjectName.getInstance("org.apache.camel:context=localhost/camel-1,type=context,name=\"camel-1\"");
+
+ assertNull(context.hasEndpoint("seda:bar"));
+
+ // create a new endpoint
+ Object reply = mbeanServer.invoke(on, "createEndpoint", new Object[]{"seda:bar"}, new String[]{"java.lang.String"});
+ assertEquals(Boolean.TRUE, reply);
+
+ assertNotNull(context.hasEndpoint("seda:bar"));
+
+ // create it again
+ reply = mbeanServer.invoke(on, "createEndpoint", new Object[]{"seda:bar"}, new String[]{"java.lang.String"});
+ assertEquals(Boolean.FALSE, reply);
+ }
+
+ public void testManagedCamelContextRemoveEndpoint() throws Exception {
+ MBeanServer mbeanServer = getMBeanServer();
+
+ ObjectName on = ObjectName.getInstance("org.apache.camel:context=localhost/camel-1,type=context,name=\"camel-1\"");
+
+ assertNull(context.hasEndpoint("seda:bar"));
+
+ // create a new endpoint
+ Object reply = mbeanServer.invoke(on, "createEndpoint", new Object[]{"seda:bar"}, new String[]{"java.lang.String"});
+ assertEquals(Boolean.TRUE, reply);
+
+ assertNotNull(context.hasEndpoint("seda:bar"));
+
+ // remove it
+ Object num = mbeanServer.invoke(on, "removeEndpoints", new Object[]{"seda:*"}, new String[]{"java.lang.String"});
+ assertEquals(1, num);
+
+ assertNull(context.hasEndpoint("seda:bar"));
+
+ // remove it again
+ num = mbeanServer.invoke(on, "removeEndpoints", new Object[]{"seda:*"}, new String[]{"java.lang.String"});
+ assertEquals(0, num);
+
+ assertNull(context.hasEndpoint("seda:bar"));
+ }
+
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {