Author: rmannibucau
Date: Tue Jul 24 11:14:39 2012
New Revision: 1364978

URL: http://svn.apache.org/viewvc?rev=1364978&view=rev
Log:
datasource plugin independent of commons-dbcp

Modified:
    
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java
    
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java
    
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DataSourcePlugin.java
    
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java
    
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/HsqldbDataSourcePlugin.java
    
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/InstantdbDataSourcePlugin.java

Modified: 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java?rev=1364978&r1=1364977&r2=1364978&view=diff
==============================================================================
--- 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java
 (original)
+++ 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java
 Tue Jul 24 11:14:39 2012
@@ -204,7 +204,11 @@ public class BasicDataSource extends org
 
             // configure this
             if (helper != null) {
-                helper.configure(this);
+                final String currentUrl = getUrl();
+                final String newUrl = helper.updatedUrl(currentUrl);
+                if (!currentUrl.equals(newUrl)) {
+                    setUrl(newUrl);
+                }
             }
 
             // create the data source

Modified: 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java?rev=1364978&r1=1364977&r2=1364978&view=diff
==============================================================================
--- 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java
 (original)
+++ 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java
 Tue Jul 24 11:14:39 2012
@@ -198,7 +198,11 @@ public class BasicManagedDataSource exte
 
             // configure this
             if (helper != null) {
-                helper.configure(this);
+                final String currentUrl = getUrl();
+                final String newUrl = helper.updatedUrl(currentUrl);
+                if (!currentUrl.equals(newUrl)) {
+                    setUrl(newUrl);
+                }
             }
 
             wrapTransactionManager();

Modified: 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DataSourcePlugin.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DataSourcePlugin.java?rev=1364978&r1=1364977&r2=1364978&view=diff
==============================================================================
--- 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DataSourcePlugin.java
 (original)
+++ 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DataSourcePlugin.java
 Tue Jul 24 11:14:39 2012
@@ -17,7 +17,7 @@
 package org.apache.openejb.resource.jdbc.plugin;
 
 public interface DataSourcePlugin {
-    void configure(org.apache.commons.dbcp.BasicDataSource dataSource);
+    String updatedUrl(String dataSourceUrl);
 
     boolean enableUserDirHack();
 }

Modified: 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java?rev=1364978&r1=1364977&r2=1364978&view=diff
==============================================================================
--- 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java
 (original)
+++ 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java
 Tue Jul 24 11:14:39 2012
@@ -20,8 +20,10 @@ import org.apache.openejb.loader.SystemI
 import org.apache.commons.dbcp.BasicDataSource;
 
 public class DerbyDataSourcePlugin implements DataSourcePlugin {
-    public void configure(BasicDataSource dataSource) {
+    @Override
+    public String updatedUrl(String dataSourceUrl) {
         System.setProperty("derby.system.home", 
SystemInstance.get().getBase().getDirectory().getAbsolutePath());
+        return dataSourceUrl;
     }
 
     public boolean enableUserDirHack() {

Modified: 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/HsqldbDataSourcePlugin.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/HsqldbDataSourcePlugin.java?rev=1364978&r1=1364977&r2=1364978&view=diff
==============================================================================
--- 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/HsqldbDataSourcePlugin.java
 (original)
+++ 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/HsqldbDataSourcePlugin.java
 Tue Jul 24 11:14:39 2012
@@ -25,7 +25,7 @@ public class HsqldbDataSourcePlugin impl
     private static final String HSQL_FILE_URL = "jdbc:hsqldb:file:";
 
 
-    public static String toAbsolutePath(String url) {
+    public static String toAbsolutePath(final String url) {
         // is this a hsql file url?
         if (url == null || !url.startsWith(HSQL_FILE_URL)) {
             return url;
@@ -46,10 +46,9 @@ public class HsqldbDataSourcePlugin impl
         return HSQL_FILE_URL + path;
     }
 
-    public void configure(BasicDataSource dataSource) {
-        String url = dataSource.getUrl();
-        url = toAbsolutePath(url);
-        dataSource.setUrl(url);
+    @Override
+    public String updatedUrl(final String dataSourceUrl) {
+        return toAbsolutePath(dataSourceUrl);
     }
 
     public boolean enableUserDirHack() {

Modified: 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/InstantdbDataSourcePlugin.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/InstantdbDataSourcePlugin.java?rev=1364978&r1=1364977&r2=1364978&view=diff
==============================================================================
--- 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/InstantdbDataSourcePlugin.java
 (original)
+++ 
openejb/branches/openejb-pool/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/InstantdbDataSourcePlugin.java
 Tue Jul 24 11:14:39 2012
@@ -16,7 +16,6 @@
  */
 package org.apache.openejb.resource.jdbc.plugin;
 
-import org.apache.commons.dbcp.BasicDataSource;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.xbean.finder.ResourceFinder;
@@ -26,14 +25,13 @@ import java.io.IOException;
 
 public class InstantdbDataSourcePlugin implements DataSourcePlugin {
 
-    public void configure(BasicDataSource dataSource) {
-        String jdbcUrl = dataSource.getUrl();
-
+    @Override
+    public String updatedUrl(String jdbcUrl) {
         // jdbc:idb:conf/instantdb.properties
         String prefix = "jdbc:idb:";
         int index = jdbcUrl.indexOf(prefix);
         if (index == -1){
-            return;
+            return jdbcUrl;
         }
 
         String confFile = jdbcUrl.substring(index + prefix.length());
@@ -44,13 +42,13 @@ public class InstantdbDataSourcePlugin i
 
         if (file.exists()) {
             // The instantdb properties file is there, we're good
-            return;
+            return jdbcUrl;
         }
 
         if (!file.getParentFile().exists()){
             // The directory the instantdb properties file should live in
             // doesn't exist, don't bother
-            return;
+            return jdbcUrl;
         }
 
         try {
@@ -61,6 +59,8 @@ public class InstantdbDataSourcePlugin i
             // TODO; Handle this
             e.printStackTrace();
         }
+
+        return jdbcUrl;
     }
 
     public boolean enableUserDirHack() {


Reply via email to