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/14 15:22:41 UTC
[11/12] tomee git commit: Fix broken test where geronimo connector is
not available (webprofile)
Fix broken test where geronimo connector is not available (webprofile)
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/daa274ca
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/daa274ca
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/daa274ca
Branch: refs/heads/master
Commit: daa274ca40808856fd8f2d040a1fd1950b9f29fe
Parents: 3d33727
Author: Jonathan Gallimore <jo...@jrg.me.uk>
Authored: Thu Sep 13 10:59:21 2018 +0100
Committer: Jonathan Gallimore <jo...@jrg.me.uk>
Committed: Thu Sep 13 10:59:21 2018 +0100
----------------------------------------------------------------------
.../openejb/assembler/classic/Assembler.java | 13 +++++----
.../GeronimoConnectionManagerFactory.java | 30 ++++++++++++++++++++
2 files changed, 37 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/daa274ca/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 396f632..0f4801e 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
@@ -19,7 +19,6 @@ package org.apache.openejb.assembler.classic;
import org.apache.geronimo.connector.GeronimoBootstrapContext;
import org.apache.geronimo.connector.outbound.AbstractConnectionManager;
-import org.apache.geronimo.connector.outbound.GenericConnectionManager;
import org.apache.geronimo.connector.work.GeronimoWorkManager;
import org.apache.geronimo.connector.work.HintsContextHandler;
import org.apache.geronimo.connector.work.TransactionContextHandler;
@@ -108,7 +107,12 @@ import org.apache.openejb.loader.JarLocation;
import org.apache.openejb.loader.Options;
import org.apache.openejb.loader.ProvisioningUtil;
import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.monitoring.*;
+import org.apache.openejb.monitoring.ConnectionFactoryMonitor;
+import org.apache.openejb.monitoring.DynamicMBeanWrapper;
+import org.apache.openejb.monitoring.LocalMBeanServer;
+import org.apache.openejb.monitoring.MBeanPojoWrapper;
+import org.apache.openejb.monitoring.ManagedMBean;
+import org.apache.openejb.monitoring.ObjectNameBuilder;
import org.apache.openejb.monitoring.remote.RemoteResourceMonitor;
import org.apache.openejb.observer.Observes;
import org.apache.openejb.persistence.JtaEntityManagerRegistry;
@@ -3278,7 +3282,7 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
logger.getChildLogger("service").info("createResource.createConnectionManager", serviceInfo.id, service.getClass().getName());
// create the connection manager
- final GenericConnectionManager connectionManager = (GenericConnectionManager) connectionManagerRecipe.create();
+ final ConnectionManager connectionManager = (ConnectionManager) connectionManagerRecipe.create();
String txSupport = "xa";
@@ -3292,9 +3296,6 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
txSupport = "xa";
}
- final ConnectionFactoryMonitor cfm = new ConnectionFactoryMonitor(serviceInfo.id, connectionManager, txSupport);
- registerAsMBean(serviceInfo.id, "ConnectionFactory", new ManagedMBean(cfm));
-
if (connectionManager == null) {
throw new OpenEJBRuntimeException(messages.format("assembler.invalidConnectionManager", serviceInfo.id));
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/daa274ca/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoConnectionManagerFactory.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoConnectionManagerFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoConnectionManagerFactory.java
index cebe9cc..852dc32 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoConnectionManagerFactory.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/GeronimoConnectionManagerFactory.java
@@ -38,9 +38,17 @@ import org.apache.geronimo.connector.outbound.connectionmanagerconfig.XATransact
import org.apache.geronimo.transaction.manager.NamedXAResourceFactory;
import org.apache.geronimo.transaction.manager.RecoverableTransactionManager;
import org.apache.openejb.OpenEJBRuntimeException;
+import org.apache.openejb.monitoring.ConnectionFactoryMonitor;
+import org.apache.openejb.monitoring.LocalMBeanServer;
+import org.apache.openejb.monitoring.ManagedMBean;
+import org.apache.openejb.monitoring.ObjectNameBuilder;
import org.apache.openejb.util.Duration;
+import org.apache.openejb.util.LogCategory;
+import org.apache.openejb.util.Logger;
import org.apache.openejb.util.reflection.Reflections;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
import javax.resource.ResourceException;
import javax.resource.spi.ManagedConnection;
import javax.resource.spi.ManagedConnectionFactory;
@@ -64,6 +72,7 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReadWriteLock;
public class GeronimoConnectionManagerFactory {
+ private final Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP, GeronimoConnectionManagerFactory.class);
private String name;
private ClassLoader classLoader;
@@ -260,6 +269,27 @@ public class GeronimoConnectionManagerFactory {
mcf, name, classLoader);
}
+
+ final ConnectionFactoryMonitor cfm = new ConnectionFactoryMonitor(name, mgr, transactionSupport);
+ final MBeanServer server = LocalMBeanServer.get();
+
+ final ObjectNameBuilder jmxName = new ObjectNameBuilder("openejb.management");
+ jmxName.set("J2EEServer", "openejb");
+ jmxName.set("J2EEApplication", null);
+ jmxName.set("j2eeType", "");
+ jmxName.set("name", name);
+
+ try {
+ final ObjectName objectName = jmxName.set("j2eeType", "ConnectionFactory").build();
+ if (server.isRegistered(objectName)) {
+ server.unregisterMBean(objectName);
+ }
+
+ server.registerMBean(new ManagedMBean(cfm), objectName);
+ } catch (final Exception e) {
+ logger.error("Unable to register MBean ", e);
+ }
+
return mgr;
}