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