Repository: camel Updated Branches: refs/heads/master 354945e38 -> ce8aac572
CAMEL-7780: ManagedCamelContext - Add operation to check if you can send to an endpoint Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ce8aac57 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ce8aac57 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ce8aac57 Branch: refs/heads/master Commit: ce8aac572936e5f159aa5063c5d65c4c874520d7 Parents: 354945e Author: Claus Ibsen <davscl...@apache.org> Authored: Thu Sep 4 17:57:26 2014 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Sep 4 17:57:26 2014 +0200 ---------------------------------------------------------------------- .../management/mbean/ManagedCamelContextMBean.java | 3 +++ .../camel/management/mbean/ManagedCamelContext.java | 15 +++++++++++++++ .../camel/management/ManagedCamelContextTest.java | 6 ++++++ 3 files changed, 24 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/ce8aac57/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 91ade70..441e301 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 @@ -146,6 +146,9 @@ public interface ManagedCamelContextMBean extends ManagedPerformanceCounterMBean @ManagedOperation(description = "Starts all the routes which currently is not started") void startAllRoutes() throws Exception; + @ManagedOperation(description = "Whether its possible to send to the endpoint (eg the endpoint has a producer)") + boolean canSendToEndpoint(String endpointUri); + @ManagedOperation(description = "Send body (in only)") void sendBody(String endpointUri, Object body) throws Exception; http://git-wip-us.apache.org/repos/asf/camel/blob/ce8aac57/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 45833b7..2ccad19 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 @@ -36,6 +36,7 @@ import org.apache.camel.Component; import org.apache.camel.ComponentConfiguration; import org.apache.camel.Endpoint; import org.apache.camel.ManagementStatisticsLevel; +import org.apache.camel.Producer; import org.apache.camel.ProducerTemplate; import org.apache.camel.Route; import org.apache.camel.TimerListener; @@ -252,6 +253,20 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti context.startAllRoutes(); } + public boolean canSendToEndpoint(String endpointUri) { + try { + Endpoint endpoint = context.getEndpoint(endpointUri); + if (endpoint != null) { + Producer producer = endpoint.createProducer(); + return producer != null; + } + } catch (Exception e) { + // ignore + } + + return false; + } + public void sendBody(String endpointUri, Object body) throws Exception { ProducerTemplate template = context.createProducerTemplate(); try { http://git-wip-us.apache.org/repos/asf/camel/blob/ce8aac57/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 735ee6c..6fc3dd1 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 @@ -106,6 +106,12 @@ public class ManagedCamelContextTest extends ManagementTestSupport { assertEquals("Hello World", reply); assertMockEndpointsSatisfied(); + // test can send + Boolean can = (Boolean) mbeanServer.invoke(on, "canSendToEndpoint", new Object[]{"direct:start"}, new String[]{"java.lang.String"}); + assertEquals(true, can.booleanValue()); + can = (Boolean) mbeanServer.invoke(on, "canSendToEndpoint", new Object[]{"timer:foo"}, new String[]{"java.lang.String"}); + assertEquals(false, can.booleanValue()); + // stop Camel mbeanServer.invoke(on, "stop", null, null); }