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");
             }
         };

Reply via email to