Updated Branches:
  refs/heads/camel-2.11.x 999e552fa -> 1eb8c1aee

CAMEL-7018: Using custom beans with @ManagedResource shows unavailable standard 
attributes

Conflicts:
        
camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java

Conflicts:
        
camel-core/src/test/java/org/apache/camel/management/ManagedResourceTest.java


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/1eb8c1ae
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/1eb8c1ae
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/1eb8c1ae

Branch: refs/heads/camel-2.11.x
Commit: 1eb8c1aee43df80f818abfcfa9fe3b7feaeab7d8
Parents: 999e552
Author: Claus Ibsen <davscl...@apache.org>
Authored: Wed Nov 27 14:54:28 2013 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Wed Nov 27 15:15:54 2013 +0100

----------------------------------------------------------------------
 .../org/apache/camel/component/seda/SedaEndpoint.java   |  6 ++++++
 .../management/DefaultManagementMBeanAssembler.java     |  2 +-
 .../org/apache/camel/management/MBeanInfoAssembler.java | 12 +++++++-----
 .../camel/management/ManagedSedaEndpointTest.java       |  3 +++
 4 files changed, 17 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/1eb8c1ae/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java 
b/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
index 452c88f..ec3dfb4 100644
--- a/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
@@ -263,6 +263,7 @@ public class SedaEndpoint extends DefaultEndpoint 
implements BrowsableEndpoint,
         this.purgeWhenStopping = purgeWhenStopping;
     }
 
+    @ManagedAttribute(description = "Singleton")
     public boolean isSingleton() {
         return true;
     }
@@ -375,6 +376,11 @@ public class SedaEndpoint extends DefaultEndpoint 
implements BrowsableEndpoint,
         return getCamelContext().getName();
     }
 
+    @ManagedAttribute(description = "Endpoint URI")
+    public String getEndpointUri() {
+        return super.getEndpointUri();
+    }
+
     @ManagedAttribute(description = "Endpoint service state")
     public String getState() {
         return getStatus().name();

http://git-wip-us.apache.org/repos/asf/camel/blob/1eb8c1ae/camel-core/src/main/java/org/apache/camel/management/DefaultManagementMBeanAssembler.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementMBeanAssembler.java
 
b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementMBeanAssembler.java
index 725e418..77749b5 100644
--- 
a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementMBeanAssembler.java
+++ 
b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementMBeanAssembler.java
@@ -59,7 +59,7 @@ public class DefaultManagementMBeanAssembler implements 
ManagementMBeanAssembler
             if (custom != null && 
ObjectHelper.hasAnnotation(custom.getClass().getAnnotations(), 
ManagedResource.class)) {
                 log.trace("Assembling MBeanInfo for: {} from custom 
@ManagedResource object: {}", name, custom);
                 // get the mbean info from the custom managed object
-                mbi = assembler.getMBeanInfo(obj, custom, name.toString());
+                mbi = assembler.getMBeanInfo(null, custom, name.toString());
                 // and let the custom object be registered in JMX
                 obj = custom;
             }

http://git-wip-us.apache.org/repos/asf/camel/blob/1eb8c1ae/camel-core/src/main/java/org/apache/camel/management/MBeanInfoAssembler.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/management/MBeanInfoAssembler.java 
b/camel-core/src/main/java/org/apache/camel/management/MBeanInfoAssembler.java
index a19c65e..898e5f4 100644
--- 
a/camel-core/src/main/java/org/apache/camel/management/MBeanInfoAssembler.java
+++ 
b/camel-core/src/main/java/org/apache/camel/management/MBeanInfoAssembler.java
@@ -90,7 +90,7 @@ public class MBeanInfoAssembler implements Service {
      */
     public ModelMBeanInfo getMBeanInfo(Object defaultManagedBean, Object 
customManagedBean, String objectName) throws JMException {
         // skip proxy classes
-        if (Proxy.isProxyClass(defaultManagedBean.getClass())) {
+        if (defaultManagedBean != null && 
Proxy.isProxyClass(defaultManagedBean.getClass())) {
             LOG.trace("Skip creating ModelMBeanInfo due proxy class {}", 
defaultManagedBean.getClass());
             return null;
         }
@@ -103,10 +103,12 @@ public class MBeanInfoAssembler implements Service {
         Set<ModelMBeanNotificationInfo> mBeanNotifications = new 
LinkedHashSet<ModelMBeanNotificationInfo>();
 
         // extract details from default managed bean
-        extractAttributesAndOperations(defaultManagedBean.getClass(), 
attributes, operations);
-        extractMbeanAttributes(defaultManagedBean, attributes, 
mBeanAttributes, mBeanOperations);
-        extractMbeanOperations(defaultManagedBean, operations, 
mBeanOperations);
-        extractMbeanNotifications(defaultManagedBean, mBeanNotifications);
+        if (defaultManagedBean != null) {
+            extractAttributesAndOperations(defaultManagedBean.getClass(), 
attributes, operations);
+            extractMbeanAttributes(defaultManagedBean, attributes, 
mBeanAttributes, mBeanOperations);
+            extractMbeanOperations(defaultManagedBean, operations, 
mBeanOperations);
+            extractMbeanNotifications(defaultManagedBean, mBeanNotifications);
+        }
 
         // extract details from custom managed bean
         if (customManagedBean != null) {

http://git-wip-us.apache.org/repos/asf/camel/blob/1eb8c1ae/camel-core/src/test/java/org/apache/camel/management/ManagedSedaEndpointTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/management/ManagedSedaEndpointTest.java
 
b/camel-core/src/test/java/org/apache/camel/management/ManagedSedaEndpointTest.java
index 01bb139..cafc656 100644
--- 
a/camel-core/src/test/java/org/apache/camel/management/ManagedSedaEndpointTest.java
+++ 
b/camel-core/src/test/java/org/apache/camel/management/ManagedSedaEndpointTest.java
@@ -46,6 +46,9 @@ public class ManagedSedaEndpointTest extends 
ManagementTestSupport {
         Integer size = (Integer) mbeanServer.getAttribute(name, 
"CurrentQueueSize");
         assertEquals(0, size.intValue());
 
+        Boolean singleton = (Boolean) mbeanServer.getAttribute(name, 
"Singleton");
+        assertEquals(true, singleton.booleanValue());
+
         // stop route
         context.stopRoute("foo");
 

Reply via email to