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