You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/04/08 20:18:42 UTC
svn commit: r1585808 - in
/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb:
assembler/classic/Assembler.java
resource/jdbc/managed/JTADataSourceWrapperFactory.java
Author: rmannibucau
Date: Tue Apr 8 18:18:42 2014
New Revision: 1585808
URL: http://svn.apache.org/r1585808
Log:
TOMEE-1172 jta datasource wrapper for custom datasources
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/managed/JTADataSourceWrapperFactory.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1585808&r1=1585807&r2=1585808&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Tue Apr 8 18:18:42 2014
@@ -104,7 +104,6 @@ import org.apache.openejb.quartz.Schedul
import org.apache.openejb.resource.GeronimoConnectionManagerFactory;
import org.apache.openejb.resource.PropertiesFactory;
import org.apache.openejb.resource.jdbc.DataSourceFactory;
-import org.apache.openejb.resource.jdbc.managed.JTADataSourceWrapperFactory;
import org.apache.openejb.resource.jdbc.managed.local.ManagedDataSource;
import org.apache.openejb.spi.ApplicationServer;
import org.apache.openejb.spi.ContainerSystem;
@@ -2299,9 +2298,7 @@ public class Assembler extends Assembler
url = prop.getProperty("jdbcUrl");
}
if (url == null) {
- if (!JTADataSourceWrapperFactory.class.getName().equals(serviceInfo.className)) {
- logger.info("can't find url for " + serviceInfo.id + " will not monitor it");
- }
+ logger.debug("can't find url for " + serviceInfo.id + " will not monitor it");
} else {
final String host = extractHost(url);
if (host != null) {
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/managed/JTADataSourceWrapperFactory.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/managed/JTADataSourceWrapperFactory.java?rev=1585808&r1=1585807&r2=1585808&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/managed/JTADataSourceWrapperFactory.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/managed/JTADataSourceWrapperFactory.java Tue Apr 8 18:18:42 2014
@@ -16,29 +16,39 @@
*/
package org.apache.openejb.resource.jdbc.managed;
+import org.apache.openejb.OpenEJB;
import org.apache.openejb.assembler.classic.Assembler;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.resource.jdbc.DataSourceFactory;
-import org.apache.openejb.resource.jdbc.pool.DataSourceCreator;
+import org.apache.openejb.resource.jdbc.managed.local.ManagedDataSource;
+import org.apache.openejb.resource.jdbc.managed.xa.ManagedXADataSource;
import org.apache.openejb.spi.ContainerSystem;
import javax.naming.NamingException;
+import javax.sql.CommonDataSource;
import javax.sql.DataSource;
+import javax.sql.XADataSource;
+import javax.transaction.TransactionManager;
public class JTADataSourceWrapperFactory {
private String serviceId;
private String delegate = "datasource";
- private String dataSourceCreator = "dbcp-alternative";
private boolean logSql = false;
- public DataSource create() {
- final DataSourceCreator creator = DataSourceFactory.creator(dataSourceCreator, logSql);
- DataSource ds = creator.managed(serviceId, findDelegate());
- DataSourceFactory.setCreatedWith(creator, ds);
+ public CommonDataSource create() {
+ final TransactionManager transactionManager = OpenEJB.getTransactionManager();
+
+ CommonDataSource cds = findDelegate();
+ if (cds instanceof XADataSource) {
+ cds = new ManagedXADataSource(cds, transactionManager);
+ } else {
+ cds = new ManagedDataSource(DataSource.class.cast(cds), transactionManager);
+ }
+
if (logSql) {
- ds = DataSourceFactory.makeItLogging(ds);
+ cds = DataSourceFactory.makeItLogging(cds);
}
- return ds;
+ return cds;
}
private DataSource findDelegate() {
@@ -58,10 +68,6 @@ public class JTADataSourceWrapperFactory
this.delegate = delegate;
}
- public void setDataSourceCreator(final String dataSourceCreator) {
- this.dataSourceCreator = dataSourceCreator;
- }
-
public void setLogSql(final boolean logSql) {
this.logSql = logSql;
}