You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jg...@apache.org on 2018/09/17 13:45:47 UTC
[2/2] tomee git commit: Porting JMX changes from master
Porting JMX changes from master
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/f59e9bb9
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/f59e9bb9
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/f59e9bb9
Branch: refs/heads/tomee-1.7.x
Commit: f59e9bb92ae1b66237be1b7bd7d4801a0ca62d77
Parents: 4634c31
Author: Jonathan Gallimore <jo...@jrg.me.uk>
Authored: Mon Sep 17 14:43:36 2018 +0100
Committer: Jonathan Gallimore <jo...@jrg.me.uk>
Committed: Mon Sep 17 14:43:36 2018 +0100
----------------------------------------------------------------------
.../openejb/assembler/classic/Assembler.java | 33 ++++++++++++++++++--
.../openejb/monitoring/MBeanPojoWrapper.java | 4 +--
2 files changed, 33 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/f59e9bb9/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
index 18902d9..e1cd38c 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
@@ -1831,6 +1831,8 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
} catch (final Throwable t) {
logger.fatal("ResourceAdapter Shutdown Failed: " + name, t);
}
+
+ removeResourceMBean(name, "ResourceAdapter");
} else if (ResourceAdapter.class.isInstance(object)) {
final ResourceAdapter resourceAdapter = ResourceAdapter.class.cast(object);
try {
@@ -1844,6 +1846,8 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
} catch (final Throwable t) {
logger.fatal("ResourceAdapter Shutdown Failed: " + name, t);
}
+
+ removeResourceMBean(name, "ResourceAdapter");
} else if (DataSourceFactory.knows(object)) {
int timeout;
@@ -1900,19 +1904,44 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
} catch (final Exception e) {
logger.debug("Not processing resource on destroy: " + className, e);
}
+
+ removeResourceMBean(name, "ConnectionFactory");
} else if (DestroyableResource.class.isInstance(object)) {
try {
DestroyableResource.class.cast(object).destroyResource();
} catch (final RuntimeException e) {
logger.error(e.getMessage(), e);
}
- } else if (logger.isDebugEnabled() && !DataSource.class.isInstance(object)) {
- logger.debug("Not processing resource on destroy: " + className);
+
+ removeResourceMBean(name, "Resource");
+ } else if (!DataSource.class.isInstance(object)) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("Not processing resource on destroy: " + className);
+ }
+
+ removeResourceMBean(name, "Resource");
}
callPreDestroy(name, object);
removeResourceInfo(name);
}
+
+ private void removeResourceMBean(String name, String type) {
+ final ObjectNameBuilder jmxName = new ObjectNameBuilder("openejb.management");
+ jmxName.set("J2EEServer", "openejb");
+ jmxName.set("J2EEApplication", null);
+ jmxName.set("j2eeType", "");
+ jmxName.set("name",name);
+ final MBeanServer server = LocalMBeanServer.get();
+ try {
+ final ObjectName objectName = jmxName.set("j2eeType", type).build();
+ if (server.isRegistered(objectName)) {
+ server.unregisterMBean(objectName);
+ }
+ } catch (final Exception e) {
+ logger.error("Unable to unregister MBean ", e);
+ }
+ }
private void callPreDestroy(final String name, final Object object) {
if (object == null) {
http://git-wip-us.apache.org/repos/asf/tomee/blob/f59e9bb9/container/openejb-core/src/main/java/org/apache/openejb/monitoring/MBeanPojoWrapper.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/monitoring/MBeanPojoWrapper.java b/container/openejb-core/src/main/java/org/apache/openejb/monitoring/MBeanPojoWrapper.java
index 70367f86..85aa872 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/monitoring/MBeanPojoWrapper.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/monitoring/MBeanPojoWrapper.java
@@ -36,7 +36,7 @@ public class MBeanPojoWrapper implements DynamicMBean {
private final Object delegate;
private final String name;
private MBeanInfo info;
- private final Map<String, PropertyDescriptor> attributeMap = new HashMap<>();
+ private final Map<String, PropertyDescriptor> attributeMap = new HashMap<String, PropertyDescriptor>();
private static final Set<Class<?>> SUPPORTED_PROPERTY_TYPES = new HashSet<Class<?>>() {
{
@@ -70,7 +70,7 @@ public class MBeanPojoWrapper implements DynamicMBean {
}
private void scan(Class clazz) {
- final List<MBeanAttributeInfo> mBeanAttributeInfoList = new ArrayList<>();
+ final List<MBeanAttributeInfo> mBeanAttributeInfoList = new ArrayList<MBeanAttributeInfo>();
try {
final BeanInfo beanInfo = Introspector.getBeanInfo(clazz);