Author: rmannibucau
Date: Tue Jan 1 16:59:16 2013
New Revision: 1427463
URL: http://svn.apache.org/viewvc?rev=1427463&view=rev
Log:
TOMEE-691 better handling of pooling for JCA connectors
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/ConnectorReference.java
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1427463&r1=1427462&r2=1427463&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
Tue Jan 1 16:59:16 2013
@@ -17,6 +17,7 @@
package org.apache.openejb.assembler.classic;
import org.apache.geronimo.connector.GeronimoBootstrapContext;
+import org.apache.geronimo.connector.outbound.AbstractConnectionManager;
import org.apache.geronimo.connector.work.GeronimoWorkManager;
import org.apache.geronimo.connector.work.HintsContextHandler;
import org.apache.geronimo.connector.work.TransactionContextHandler;
@@ -136,6 +137,7 @@ import javax.naming.InitialContext;
import javax.naming.NameAlreadyBoundException;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
+import javax.resource.cci.ConnectionFactory;
import javax.resource.spi.BootstrapContext;
import javax.resource.spi.ConnectionManager;
import javax.resource.spi.ManagedConnectionFactory;
@@ -1208,6 +1210,16 @@ public class Assembler extends Assembler
//Ignore
}
+ } else if (object instanceof ConnectorReference) {
+ final ConnectorReference cr = (ConnectorReference) object;
+ try {
+ final ConnectionManager cm = cr.getConnectionManager();
+ if (cm != null && cm instanceof AbstractConnectionManager) {
+ ((AbstractConnectionManager) cm).doStop();
+ }
+ } catch (Exception e) {
+ logger.debug("Not processing resource on destroy: " +
className, e);
+ }
} else if (logger.isDebugEnabled()) {
logger.debug("Not processing resource on destroy: " + className);
}
@@ -1857,6 +1869,14 @@ public class Assembler extends Assembler
}
logUnusedProperties(unset, serviceInfo);
+ if (connectionManager instanceof AbstractConnectionManager) {
+ try {
+ ((AbstractConnectionManager) connectionManager).doStart();
+ } catch (Exception e) {
+ logger.warning("Can't start connection manager", e);
+ }
+ }
+
// service becomes a ConnectorReference which merges connection
manager and mcf
service = new ConnectorReference(connectionManager,
managedConnectionFactory);
} else if (service instanceof DataSource) {
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/ConnectorReference.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/ConnectorReference.java?rev=1427463&r1=1427462&r2=1427463&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/ConnectorReference.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/core/ConnectorReference.java
Tue Jan 1 16:59:16 2013
@@ -51,4 +51,8 @@ public class ConnectorReference extends
throw (javax.naming.NamingException) (new
javax.naming.NamingException("Could not create ConnectionFactory from " +
mngedConFactory.getClass()).initCause(re));
}
}
+
+ public ConnectionManager getConnectionManager() {
+ return conMngr;
+ }
}
\ No newline at end of file