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