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/29 19:57:21 UTC

svn commit: r1591034 - in /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc: ./ plugin/

Author: rmannibucau
Date: Tue Apr 29 17:57:20 2014
New Revision: 1591034

URL: http://svn.apache.org/r1591034
Log:
TOMEE-1185 allow to deactivate datasource plugins

Added:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/AbstractDataSourcePlugin.java
Modified:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/HsqldbDataSourcePlugin.java
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/InstantdbDataSourcePlugin.java

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java?rev=1591034&r1=1591033&r2=1591034&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java Tue Apr 29 17:57:20 2014
@@ -22,6 +22,7 @@ import org.apache.openejb.resource.XARes
 import org.apache.openejb.resource.jdbc.dbcp.DbcpDataSourceCreator;
 import org.apache.openejb.resource.jdbc.driver.AlternativeDriver;
 import org.apache.openejb.resource.jdbc.logging.LoggingSqlDataSource;
+import org.apache.openejb.resource.jdbc.plugin.AbstractDataSourcePlugin;
 import org.apache.openejb.resource.jdbc.plugin.DataSourcePlugin;
 import org.apache.openejb.resource.jdbc.pool.DataSourceCreator;
 import org.apache.openejb.resource.jdbc.pool.DefaultDataSourceCreator;
@@ -192,7 +193,7 @@ public class DataSourceFactory {
             final DataSourcePlugin helper = BasicDataSourceUtil.getDataSourcePlugin(jdbcUrl);
 
             // configure this
-            if (helper != null) {
+            if (AbstractDataSourcePlugin.isActive(helper)) {
                 final String newUrl = helper.updatedUrl(jdbcUrl);
                 properties.setProperty(key, newUrl);
             }

Added: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/AbstractDataSourcePlugin.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/AbstractDataSourcePlugin.java?rev=1591034&view=auto
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/AbstractDataSourcePlugin.java (added)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/AbstractDataSourcePlugin.java Tue Apr 29 17:57:20 2014
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.openejb.resource.jdbc.plugin;
+
+import org.apache.openejb.loader.SystemInstance;
+
+public abstract class AbstractDataSourcePlugin implements DataSourcePlugin {
+    public boolean isActive() {
+        final SystemInstance systemInstance = SystemInstance.get();
+        return "true".equals(systemInstance.getProperty(
+                "openejb.datasource.plugin." + getClass().getSimpleName().replace("DataSourcePlugin", "") + ".activaed",
+                systemInstance.getProperty("openejb.datasource.plugin.activated", "true")));
+    }
+
+    public static boolean isActive(final DataSourcePlugin helper) {
+        return helper != null
+                && (!AbstractDataSourcePlugin.class.isInstance(helper)
+                    || AbstractDataSourcePlugin.class.cast(helper).isActive());
+    }
+}

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java?rev=1591034&r1=1591033&r2=1591034&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java Tue Apr 29 17:57:20 2014
@@ -18,7 +18,7 @@ package org.apache.openejb.resource.jdbc
 
 import org.apache.openejb.loader.SystemInstance;
 
-public class DerbyDataSourcePlugin implements DataSourcePlugin {
+public class DerbyDataSourcePlugin extends AbstractDataSourcePlugin {
     @Override
     public String updatedUrl(final String dataSourceUrl) {
 
@@ -27,7 +27,8 @@ public class DerbyDataSourcePlugin imple
         return dataSourceUrl;
     }
 
+    @Override
     public boolean enableUserDirHack() {
-        return true;
+        return isActive(this);
     }
 }

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/HsqldbDataSourcePlugin.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/HsqldbDataSourcePlugin.java?rev=1591034&r1=1591033&r2=1591034&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/HsqldbDataSourcePlugin.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/HsqldbDataSourcePlugin.java Tue Apr 29 17:57:20 2014
@@ -20,7 +20,7 @@ import org.apache.openejb.loader.SystemI
 
 import java.io.File;
 
-public class HsqldbDataSourcePlugin implements DataSourcePlugin {
+public class HsqldbDataSourcePlugin extends AbstractDataSourcePlugin {
     private static final String HSQL_FILE_URL = "jdbc:hsqldb:file:";
 
 

Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/InstantdbDataSourcePlugin.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/InstantdbDataSourcePlugin.java?rev=1591034&r1=1591033&r2=1591034&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/InstantdbDataSourcePlugin.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/InstantdbDataSourcePlugin.java Tue Apr 29 17:57:20 2014
@@ -23,7 +23,7 @@ import org.apache.xbean.finder.ResourceF
 import java.io.File;
 import java.io.IOException;
 
-public class InstantdbDataSourcePlugin implements DataSourcePlugin {
+public class InstantdbDataSourcePlugin extends AbstractDataSourcePlugin {
 
     @Override
     public String updatedUrl(final String jdbcUrl) {
@@ -64,7 +64,7 @@ public class InstantdbDataSourcePlugin i
     }
 
     public boolean enableUserDirHack() {
-        return true;
+        return isActive(this);
     }
 
 }