You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by da...@apache.org on 2007/07/16 21:33:37 UTC

svn commit: r556705 - in /openejb/trunk/openejb3: ./ container/openejb-core/ container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/ container/openejb-core/src/ma...

Author: dain
Date: Mon Jul 16 12:33:33 2007
New Revision: 556705

URL: http://svn.apache.org/viewvc?view=rev&rev=556705
Log:
Replace JDBCManagedConnection with Commons-DBCP

Added:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSource.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedDataSource.java
Modified:
    openejb/trunk/openejb3/container/openejb-core/pom.xml
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
    openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
    openejb/trunk/openejb3/container/openejb-core/src/main/resources/default.openejb.conf
    openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/JdbcConfigTest.java
    openejb/trunk/openejb3/pom.xml

Modified: openejb/trunk/openejb3/container/openejb-core/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/pom.xml?view=diff&rev=556705&r1=556704&r2=556705
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/pom.xml (original)
+++ openejb/trunk/openejb3/container/openejb-core/pom.xml Mon Jul 16 12:33:33 2007
@@ -341,7 +341,6 @@
     <dependency>
       <groupId>commons-dbcp</groupId>
       <artifactId>commons-dbcp</artifactId>
-      <scope>test</scope>
     </dependency>
     <!-- used by dbcp and openjpa -->
     <dependency>

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?view=diff&rev=556705&r1=556704&r2=556705
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Mon Jul 16 12:33:33 2007
@@ -746,6 +746,7 @@
     public void createResource(ResourceInfo serviceInfo) throws OpenEJBException {
         ObjectRecipe serviceRecipe = new ObjectRecipe(serviceInfo.className, serviceInfo.factoryMethod, serviceInfo.constructorArgs.toArray(new String[0]), null);
         serviceRecipe.setAllProperties(serviceInfo.properties);
+        serviceRecipe.setProperty("transactionManager", transactionManager);
         serviceRecipe.allow(Option.IGNORE_MISSING_PROPERTIES);
 
         replaceResourceAdapterProperty(serviceRecipe);

Added: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSource.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSource.java?view=auto&rev=556705
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSource.java (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSource.java Mon Jul 16 12:33:33 2007
@@ -0,0 +1,36 @@
+/**
+ *
+ * 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;
+
+public class BasicDataSource extends org.apache.commons.dbcp.BasicDataSource {
+    public synchronized String getJdbcDriver() {
+        return super.getDriverClassName();
+    }
+
+    public synchronized void setJdbcDriver(String string) {
+        super.setDriverClassName(string);
+    }
+
+    public synchronized String getJdbcUrl() {
+        return super.getUrl();
+    }
+
+    public synchronized void setJdbcUrl(String string) {
+        super.setUrl(string);
+    }
+}

Added: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedDataSource.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedDataSource.java?view=auto&rev=556705
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedDataSource.java (added)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedDataSource.java Mon Jul 16 12:33:33 2007
@@ -0,0 +1,36 @@
+/**
+ *
+ * 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;
+
+public class BasicManagedDataSource extends org.apache.commons.dbcp.managed.BasicManagedDataSource {
+    public synchronized String getJdbcDriver() {
+        return super.getDriverClassName();
+    }
+
+    public synchronized void setJdbcDriver(String string) {
+        super.setDriverClassName(string);
+    }
+
+    public synchronized String getJdbcUrl() {
+        return super.getUrl();
+    }
+
+    public synchronized void setJdbcUrl(String string) {
+        super.setUrl(string);
+    }
+}

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml?view=diff&rev=556705&r1=556704&r2=556705
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml Mon Jul 16 12:33:33 2007
@@ -239,8 +239,7 @@
   <ServiceProvider
           id="Default JDBC Database"
           provider-type="Resource"
-          constructor="JdbcDriver,JdbcUrl,UserName,Password,Unmanaged"
-          class-name="org.apache.openejb.resource.jdbc.JdbcManagedConnectionFactory">
+          class-name="org.apache.openejb.resource.jdbc.BasicManagedDataSource">
 
     # Driver class name
 
@@ -262,16 +261,13 @@
     #Password pass
     Password  
 
-    Unmanaged false
-
     ConnectionInterface javax.sql.DataSource
   </ServiceProvider>
 
   <ServiceProvider
           id="Default Unmanaged JDBC Database"
           provider-type="Resource"
-          constructor="JdbcDriver,JdbcUrl,UserName,Password,Unmanaged"
-          class-name="org.apache.openejb.resource.jdbc.JdbcManagedConnectionFactory">
+          class-name="org.apache.openejb.resource.jdbc.BasicDataSource">
 
     # Driver class name
 
@@ -292,8 +288,6 @@
 
     #Password pass
     Password
-
-    Unmanaged true
 
     ConnectionInterface javax.sql.DataSource
   </ServiceProvider>

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/resources/default.openejb.conf
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/default.openejb.conf?view=diff&rev=556705&r1=556704&r2=556705
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/resources/default.openejb.conf (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/resources/default.openejb.conf Mon Jul 16 12:33:33 2007
@@ -146,8 +146,6 @@
     JdbcUrl jdbc:hsqldb:file:hsqldb
     UserName sa
     Password
-
-    Unmanaged true
 </Connector>
 
 <!--

Modified: openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/JdbcConfigTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/JdbcConfigTest.java?view=diff&rev=556705&r1=556704&r2=556705
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/JdbcConfigTest.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/JdbcConfigTest.java Mon Jul 16 12:33:33 2007
@@ -23,6 +23,7 @@
 import org.apache.openejb.spi.ContainerSystem;
 
 import javax.sql.DataSource;
+import javax.transaction.TransactionManager;
 import java.sql.Connection;
 import java.sql.SQLException;
 import java.sql.Statement;
@@ -59,10 +60,28 @@
         DataSource unmanagedDS = (DataSource) containerSystem.getJNDIContext().lookup("java:openejb/Resource/Default Unmanaged JDBC Database");
         assertNotNull("unmanagedDS is null", unmanagedDS);
 
+        // test without a transaction
+        // NOTE: without a transaction all connections work as unmanaged
+        verifyUnmanagedConnections(managedDS);
+        verifyUnmanagedConnections(unmanagedDS);
+
+        // test in the context of a transaction
+        TransactionManager transactionManager = SystemInstance.get().getComponent(TransactionManager.class);
+        transactionManager.begin();
+        try {
+            verifyManagedConnections(managedDS);
+            verifyUnmanagedConnections(unmanagedDS);
+        } finally {
+            // commit the transaction
+            transactionManager.commit();
+        }
+    }
+
+    private void verifyManagedConnections(DataSource dataSource) throws SQLException {
         List<Connection> managedConnections = new ArrayList<Connection>();
         try {
             for (int i = 0; i < 4; i++) {
-                Connection connection = managedDS.getConnection();
+                Connection connection = dataSource.getConnection();
                 managedConnections.add(connection);
 
                 try {
@@ -83,11 +102,13 @@
                 close(connection);
             }
         }
+    }
 
+    private void verifyUnmanagedConnections(DataSource dataSource) throws SQLException {
         List<Connection> unmanagedConnections = new ArrayList<Connection>();
         try {
             for (int i = 0; i < 4; i++) {
-                Connection connection = unmanagedDS.getConnection();
+                Connection connection = dataSource.getConnection();
                 unmanagedConnections.add(connection);
                 assertTrue("Expected connection.getAutoCommit() to be true", connection.getAutoCommit());
                 connection.setAutoCommit(true);
@@ -105,7 +126,6 @@
                 close(connection);
             }
         }
-
     }
 
     private static void close(Connection connection) {

Modified: openejb/trunk/openejb3/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/pom.xml?view=diff&rev=556705&r1=556704&r2=556705
==============================================================================
--- openejb/trunk/openejb3/pom.xml (original)
+++ openejb/trunk/openejb3/pom.xml Mon Jul 16 12:33:33 2007
@@ -928,7 +928,7 @@
       <dependency>
         <groupId>commons-dbcp</groupId>
         <artifactId>commons-dbcp</artifactId>
-        <version>1.2.1</version>
+        <version>1.3-SNAPSHOT</version>
       </dependency>
       <dependency>
         <groupId>commons-collections</groupId>