Author: tv
Date: Tue Jul 26 18:43:48 2016
New Revision: 1754167

URL: http://svn.apache.org/viewvc?rev=1754167&view=rev
Log:
TORQUE-344 Attempt to support DBCP2

Added:
    
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/PerUserPool2DataSourceFactory.java
   (with props)
    
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/SharedPool2DataSourceFactory.java
   (with props)
Modified:
    db/torque/torque4/trunk/torque-runtime/pom.xml
    
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/AbstractDataSourceFactory.java
    
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/PerUserPoolDataSourceFactory.java
    
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/SharedPoolDataSourceFactory.java

Modified: db/torque/torque4/trunk/torque-runtime/pom.xml
URL: 
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/pom.xml?rev=1754167&r1=1754166&r2=1754167&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/pom.xml (original)
+++ db/torque/torque4/trunk/torque-runtime/pom.xml Tue Jul 26 18:43:48 2016
@@ -39,12 +39,6 @@
 
   <dependencies>
     <dependency>
-      <groupId>commons-collections</groupId>
-      <artifactId>commons-collections</artifactId>
-      <version>3.2.2</version>
-    </dependency>
-
-    <dependency>
       <groupId>commons-configuration</groupId>
       <artifactId>commons-configuration</artifactId>
       <version>1.10</version>
@@ -60,6 +54,14 @@
       <groupId>commons-dbcp</groupId>
       <artifactId>commons-dbcp</artifactId>
       <version>1.4</version>
+      <optional>true</optional>
+    </dependency>
+
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-dbcp2</artifactId>
+      <version>2.1.1</version>
+      <optional>true</optional>
     </dependency>
 
     <dependency>

Modified: 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/AbstractDataSourceFactory.java
URL: 
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/AbstractDataSourceFactory.java?rev=1754167&r1=1754166&r2=1754167&view=diff
==============================================================================
--- 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/AbstractDataSourceFactory.java
 (original)
+++ 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/AbstractDataSourceFactory.java
 Tue Jul 26 18:43:48 2016
@@ -28,8 +28,6 @@ import org.apache.commons.beanutils.Conv
 import org.apache.commons.beanutils.MappedPropertyDescriptor;
 import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.commons.configuration.Configuration;
-import org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS;
-import org.apache.commons.dbcp.datasources.InstanceKeyDataSource;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.torque.Torque;
@@ -209,14 +207,13 @@ public abstract class AbstractDataSource
      * Initializes the ConnectionPoolDataSource.
      *
      * @param configuration where to read the settings from
+     * @param cpds data source to configure
      * @throws TorqueException if a property set fails
-     * @return a configured <code>ConnectionPoolDataSource</code>
      */
-    protected ConnectionPoolDataSource initCPDS(final Configuration 
configuration)
+    protected void initCPDS(final Configuration configuration, final 
ConnectionPoolDataSource cpds)
         throws TorqueException
     {
         log.debug("Starting initCPDS");
-        ConnectionPoolDataSource cpds = new DriverAdapterCPDS();
         Configuration c = Torque.getConfiguration();
 
         if (c == null || c.isEmpty())
@@ -232,8 +229,6 @@ public abstract class AbstractDataSource
 
         Configuration conf = configuration.subset(CONNECTION_KEY);
         applyConfiguration(conf, cpds);
-
-        return cpds;
     }
 
     /**
@@ -245,7 +240,7 @@ public abstract class AbstractDataSource
      * @throws TorqueException if a property set fails.
      */
     protected void initJdbc2Pool(
-            final InstanceKeyDataSource dataSource,
+            final DataSource dataSource,
             final Configuration configuration)
         throws TorqueException
     {
@@ -272,6 +267,7 @@ public abstract class AbstractDataSource
      * @return the <code>DataSource</code> configured by the factory.
      * @throws TorqueException if the source can't be returned
      */
+    @Override
     public abstract DataSource getDataSource()
             throws TorqueException;
 
@@ -282,6 +278,7 @@ public abstract class AbstractDataSource
      * @throws TorqueException Any exceptions caught during processing will be
      *         rethrown wrapped into a TorqueException.
      */
+    @Override
     public abstract void initialize(Configuration configuration)
         throws TorqueException;
 }

Added: 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/PerUserPool2DataSourceFactory.java
URL: 
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/PerUserPool2DataSourceFactory.java?rev=1754167&view=auto
==============================================================================
--- 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/PerUserPool2DataSourceFactory.java
 (added)
+++ 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/PerUserPool2DataSourceFactory.java
 Tue Jul 26 18:43:48 2016
@@ -0,0 +1,91 @@
+package org.apache.torque.dsfactory;
+
+/*
+ * 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.
+ */
+
+import javax.sql.ConnectionPoolDataSource;
+import javax.sql.DataSource;
+
+import org.apache.commons.configuration.Configuration;
+import org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS;
+import org.apache.commons.dbcp2.datasources.PerUserPoolDataSource;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.torque.TorqueException;
+
+/**
+ * A factory that looks up the DataSource using the DBCP2 pool methods.
+ *
+ * @author <a href="mailto:t...@apache.org";>Thomas Vandahl</a>
+ * @version $Id: PerUserPoolDataSourceFactory.java 1485956 2013-05-24 
07:55:47Z tfischer $
+ */
+public class PerUserPool2DataSourceFactory
+    extends AbstractDataSourceFactory
+{
+
+    /** The log. */
+    private static Log log
+            = LogFactory.getLog(PerUserPool2DataSourceFactory.class);
+
+    /** The wrapped <code>DataSource</code>. */
+    private PerUserPoolDataSource ds = null;
+
+    /**
+     * @see org.apache.torque.dsfactory.DataSourceFactory#getDataSource
+     */
+    @Override
+    public DataSource getDataSource()
+    {
+        return ds;
+    }
+
+    /**
+     * @see org.apache.torque.dsfactory.DataSourceFactory#initialize
+     */
+    @Override
+    public void initialize(final Configuration configuration) throws 
TorqueException
+    {
+        ConnectionPoolDataSource cpds = new DriverAdapterCPDS();
+        initCPDS(configuration, cpds);
+        PerUserPoolDataSource dataSource = new PerUserPoolDataSource();
+        initJdbc2Pool(dataSource, configuration);
+        dataSource.setConnectionPoolDataSource(cpds);
+        this.ds = dataSource;
+    }
+
+    /**
+     * Closes the pool associated with this factory and releases it.
+     * @throws TorqueException if the pool cannot be closed properly
+     */
+    @Override
+    public void close() throws TorqueException
+    {
+        try
+        {
+            ds.close();
+        }
+        catch (Exception e)
+        {
+            log.error("Exception caught during close()", e);
+            throw new TorqueException(e);
+        }
+        ds = null;
+    }
+
+}

Propchange: 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/PerUserPool2DataSourceFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/PerUserPoolDataSourceFactory.java
URL: 
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/PerUserPoolDataSourceFactory.java?rev=1754167&r1=1754166&r2=1754167&view=diff
==============================================================================
--- 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/PerUserPoolDataSourceFactory.java
 (original)
+++ 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/PerUserPoolDataSourceFactory.java
 Tue Jul 26 18:43:48 2016
@@ -23,6 +23,7 @@ import javax.sql.ConnectionPoolDataSourc
 import javax.sql.DataSource;
 
 import org.apache.commons.configuration.Configuration;
+import org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS;
 import org.apache.commons.dbcp.datasources.PerUserPoolDataSource;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -61,7 +62,8 @@ public class PerUserPoolDataSourceFactor
     @Override
     public void initialize(final Configuration configuration) throws 
TorqueException
     {
-        ConnectionPoolDataSource cpds = initCPDS(configuration);
+        ConnectionPoolDataSource cpds = new DriverAdapterCPDS();
+        initCPDS(configuration, cpds);
         PerUserPoolDataSource dataSource = new PerUserPoolDataSource();
         initJdbc2Pool(dataSource, configuration);
         dataSource.setConnectionPoolDataSource(cpds);
@@ -72,6 +74,7 @@ public class PerUserPoolDataSourceFactor
      * Closes the pool associated with this factory and releases it.
      * @throws TorqueException if the pool cannot be closed properly
      */
+    @Override
     public void close() throws TorqueException
     {
         try

Added: 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/SharedPool2DataSourceFactory.java
URL: 
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/SharedPool2DataSourceFactory.java?rev=1754167&view=auto
==============================================================================
--- 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/SharedPool2DataSourceFactory.java
 (added)
+++ 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/SharedPool2DataSourceFactory.java
 Tue Jul 26 18:43:48 2016
@@ -0,0 +1,90 @@
+package org.apache.torque.dsfactory;
+
+/*
+ * 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.
+ */
+
+import javax.sql.ConnectionPoolDataSource;
+import javax.sql.DataSource;
+
+import org.apache.commons.configuration.Configuration;
+import org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS;
+import org.apache.commons.dbcp2.datasources.SharedPoolDataSource;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.torque.TorqueException;
+
+/**
+ * A factory that looks up the DataSource using the DBCP2 pool methods.
+ *
+ * @author <a href="mailto:t...@apache.org";>Thomas Vandahl</a>
+ * @version $Id: SharedPoolDataSourceFactory.java 1485956 2013-05-24 07:55:47Z 
tfischer $
+ */
+public class SharedPool2DataSourceFactory
+    extends AbstractDataSourceFactory
+{
+
+    /** The log. */
+    private static Log log
+            = LogFactory.getLog(SharedPool2DataSourceFactory.class);
+
+    /** The wrapped <code>DataSource</code>. */
+    private SharedPoolDataSource ds = null;
+
+    /**
+     * @see org.apache.torque.dsfactory.DataSourceFactory#getDataSource
+     */
+    @Override
+    public DataSource getDataSource()
+    {
+        return ds;
+    }
+
+    /**
+     * @see org.apache.torque.dsfactory.DataSourceFactory#initialize
+     */
+    @Override
+    public void initialize(final Configuration configuration) throws 
TorqueException
+    {
+        ConnectionPoolDataSource cpds = new DriverAdapterCPDS();
+        initCPDS(configuration, cpds);
+        SharedPoolDataSource dataSource = new SharedPoolDataSource();
+        initJdbc2Pool(dataSource, configuration);
+        dataSource.setConnectionPoolDataSource(cpds);
+        this.ds = dataSource;
+    }
+
+    /**
+     * Closes the pool associated with this factory and releases it.
+     * @throws TorqueException if the pool cannot be closed properly
+     */
+    @Override
+    public void close() throws TorqueException
+    {
+        try
+        {
+            ds.close();
+        }
+        catch (Exception e)
+        {
+            log.error("Exception caught during close()", e);
+            throw new TorqueException(e);
+        }
+        ds = null;
+    }
+}

Propchange: 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/SharedPool2DataSourceFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/SharedPoolDataSourceFactory.java
URL: 
http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/SharedPoolDataSourceFactory.java?rev=1754167&r1=1754166&r2=1754167&view=diff
==============================================================================
--- 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/SharedPoolDataSourceFactory.java
 (original)
+++ 
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/SharedPoolDataSourceFactory.java
 Tue Jul 26 18:43:48 2016
@@ -23,6 +23,7 @@ import javax.sql.ConnectionPoolDataSourc
 import javax.sql.DataSource;
 
 import org.apache.commons.configuration.Configuration;
+import org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS;
 import org.apache.commons.dbcp.datasources.SharedPoolDataSource;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -61,7 +62,8 @@ public class SharedPoolDataSourceFactory
     @Override
     public void initialize(final Configuration configuration) throws 
TorqueException
     {
-        ConnectionPoolDataSource cpds = initCPDS(configuration);
+        ConnectionPoolDataSource cpds = new DriverAdapterCPDS();
+        initCPDS(configuration, cpds);
         SharedPoolDataSource dataSource = new SharedPoolDataSource();
         initJdbc2Pool(dataSource, configuration);
         dataSource.setConnectionPoolDataSource(cpds);
@@ -72,6 +74,7 @@ public class SharedPoolDataSourceFactory
      * Closes the pool associated with this factory and releases it.
      * @throws TorqueException if the pool cannot be closed properly
      */
+    @Override
     public void close() throws TorqueException
     {
         try



---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscr...@db.apache.org
For additional commands, e-mail: torque-dev-h...@db.apache.org

Reply via email to