CAMEL-8526: Add more EIP as specialized mbeans
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9c1a79f0 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9c1a79f0 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9c1a79f0 Branch: refs/heads/master Commit: 9c1a79f0e3c33845fa9d9d556c4ee68be4c6d653 Parents: 7093be1 Author: Claus Ibsen <davscl...@apache.org> Authored: Fri Jul 24 13:28:49 2015 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Fri Jul 24 13:28:49 2015 +0200 ---------------------------------------------------------------------- .../mbean/ManagedFailoverLoadBalancerMBean.java | 3 +++ .../mbean/ManagedFailoverLoadBalancer.java | 23 ++++++++++++++++++++ .../ManagedFailoverLoadBalancerTest.java | 6 ++++- 3 files changed, 31 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/9c1a79f0/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedFailoverLoadBalancerMBean.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedFailoverLoadBalancerMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedFailoverLoadBalancerMBean.java index 3badab1..2eab3f4 100644 --- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedFailoverLoadBalancerMBean.java +++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedFailoverLoadBalancerMBean.java @@ -32,4 +32,7 @@ public interface ManagedFailoverLoadBalancerMBean extends ManagedProcessorMBean @ManagedAttribute(description = "A value to indicate after X failover attempts we should exhaust (give up).") Integer getMaximumFailoverAttempts(); + @ManagedAttribute(description = "The class names of the exceptions the load balancer uses (separated by comma)") + String getExceptions(); + } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/9c1a79f0/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedFailoverLoadBalancer.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedFailoverLoadBalancer.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedFailoverLoadBalancer.java index 3b7bc1f..2b96229 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedFailoverLoadBalancer.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedFailoverLoadBalancer.java @@ -16,11 +16,14 @@ */ package org.apache.camel.management.mbean; +import java.util.List; + import org.apache.camel.CamelContext; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.api.management.mbean.ManagedFailoverLoadBalancerMBean; import org.apache.camel.model.LoadBalanceDefinition; import org.apache.camel.processor.loadbalancer.FailOverLoadBalancer; +import org.apache.camel.util.CollectionStringBuffer; /** * @version @@ -28,6 +31,7 @@ import org.apache.camel.processor.loadbalancer.FailOverLoadBalancer; @ManagedResource(description = "Managed Failover LoadBalancer") public class ManagedFailoverLoadBalancer extends ManagedProcessor implements ManagedFailoverLoadBalancerMBean { private final FailOverLoadBalancer processor; + private String exceptions; public ManagedFailoverLoadBalancer(CamelContext context, FailOverLoadBalancer processor, LoadBalanceDefinition definition) { super(context, processor, definition); @@ -53,4 +57,23 @@ public class ManagedFailoverLoadBalancer extends ManagedProcessor implements Man public Integer getMaximumFailoverAttempts() { return processor.getMaximumFailoverAttempts(); } + + @Override + public String getExceptions() { + if (exceptions != null) { + return exceptions; + } + + List<Class<?>> classes = processor.getExceptions(); + if (classes == null || classes.isEmpty()) { + exceptions = ""; + } else { + CollectionStringBuffer csb = new CollectionStringBuffer(","); + for (Class<?> clazz : classes) { + csb.append(clazz.getCanonicalName()); + } + exceptions = csb.toString(); + } + return exceptions; + } } http://git-wip-us.apache.org/repos/asf/camel/blob/9c1a79f0/camel-core/src/test/java/org/apache/camel/management/ManagedFailoverLoadBalancerTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedFailoverLoadBalancerTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedFailoverLoadBalancerTest.java index 8e0898c..c7ee461 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedFailoverLoadBalancerTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedFailoverLoadBalancerTest.java @@ -17,6 +17,7 @@ package org.apache.camel.management; import java.io.IOException; +import java.sql.SQLException; import javax.management.MBeanServer; import javax.management.ObjectName; import javax.management.openmbean.TabularData; @@ -63,6 +64,9 @@ public class ManagedFailoverLoadBalancerTest extends ManagementTestSupport { Integer attempts = (Integer) mbeanServer.getAttribute(on, "MaximumFailoverAttempts"); assertEquals(3, attempts.intValue()); + String exceptions = (String) mbeanServer.getAttribute(on, "Exceptions"); + assertEquals("java.io.IOException,java.sql.SQLException", exceptions); + TabularData data = (TabularData) mbeanServer.invoke(on, "explain", new Object[]{false}, new String[]{"boolean"}); assertNotNull(data); assertEquals(3, data.size()); @@ -82,7 +86,7 @@ public class ManagedFailoverLoadBalancerTest extends ManagementTestSupport { @Override public void configure() throws Exception { from("direct:start") - .loadBalance().failover(3, false, true, true, IOException.class).id("mysend") + .loadBalance().failover(3, false, true, true, IOException.class, SQLException.class).id("mysend") .to("mock:foo", "mock:bar"); } };