tuscany-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From adrianocrest...@apache.org
Subject svn commit: r572735 - in /incubator/tuscany/java/das/rdb/src: main/java/org/apache/tuscany/das/rdb/ main/java/org/apache/tuscany/das/rdb/impl/ test/java/org/apache/tuscany/das/rdb/test/ test/java/org/apache/tuscany/das/rdb/test/data/ test/java/org/apac...
Date Tue, 04 Sep 2007 16:50:20 GMT
Author: adrianocrestani
Date: Tue Sep  4 09:50:19 2007
New Revision: 572735

URL: http://svn.apache.org/viewvc?rev=572735&view=rev
Log:
applying patch from JIRA-1466

Added:
    incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BankAccountData.java
    incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepartmentsData.java
    incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/EmployeesData.java
    incubator/tuscany/java/das/rdb/src/test/resources/extTxWithExtConnection.xml
    incubator/tuscany/java/das/rdb/src/test/resources/extTxWithIntConnection.xml
    incubator/tuscany/java/das/rdb/src/test/resources/extTxnIntConnectionRollback.xml
Modified:
    incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/DAS.java
    incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DASImpl.java
    incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/TransactionTests.java
    incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java

Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/DAS.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/DAS.java?rev=572735&r1=572734&r2=572735&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/DAS.java (original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/DAS.java Tue Sep
 4 09:50:19 2007
@@ -18,6 +18,8 @@
  */
 package org.apache.tuscany.das.rdb;
 
+import java.sql.Connection;
+
 import org.apache.tuscany.das.rdb.impl.DASFactoryImpl;
 
 import commonj.sdo.DataObject;
@@ -64,4 +66,9 @@
      */
     Command createCommand(String sql);
 
+    /**
+     * Make connection available for user to control transaction externally
+     * @return
+     */
+    Connection getConnection();
 }

Modified: incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DASImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DASImpl.java?rev=572735&r1=572734&r2=572735&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DASImpl.java
(original)
+++ incubator/tuscany/java/das/rdb/src/main/java/org/apache/tuscany/das/rdb/impl/DASImpl.java
Tue Sep  4 09:50:19 2007
@@ -87,8 +87,7 @@
                 throw new RuntimeException("Invalid kind of command: " + kind);
             }
 
-        }
-
+        }        
     }
 
     public DASImpl(Config inConfig, Connection inConnection) {
@@ -111,7 +110,7 @@
      * @see org.apache.tuscany.das.rdb.CommandGroup#getApplyChangesCommand()
      */
     public ApplyChangesCommandImpl getApplyChangesCommand() {
-        ApplyChangesCommandImpl cmd = new ApplyChangesCommandImpl(configWrapper, getConnection());
+        ApplyChangesCommandImpl cmd = new ApplyChangesCommandImpl(configWrapper, getConnectionFromConfig());
         return cmd;
     }
 
@@ -125,7 +124,7 @@
             throw new RuntimeException("CommandGroup has no command named: " + name);
         }
         CommandImpl cmd = (CommandImpl) commands.get(name);
-        cmd.setConnection(getConnection(), configWrapper.getConfig());
+        cmd.setConnection(getConnectionFromConfig(), configWrapper.getConfig());
         return cmd;
     }
 
@@ -133,7 +132,7 @@
         this.connection = connection;
     }
 
-    public Connection getConnection() {
+    private Connection getConnectionFromConfig() {
         if (connection == null) {
             initializeConnection();
         }
@@ -142,6 +141,7 @@
 
     private void initializeConnection() {
         Config config = configWrapper.getConfig();
+        
         if (config == null || config.getConnectionInfo() == null ||
             (config.getConnectionInfo().getDataSource() == null && config.getConnectionInfo().getConnectionProperties()
== null)) {
             throw new RuntimeException("No connection has been provided and no data source
has been specified");
@@ -258,15 +258,15 @@
     }
 
     /**
-     * If the config has connection properties then we are "managing" the connection via
DataSource
+     * If the DAS is managing connection, let it close it, else not
      */
     private boolean managingConnections() {
 
-        if (configWrapper.getConfig().getConnectionInfo().getDataSource() == null) {
-            return false;
+        if (configWrapper.getConfig().getConnectionInfo().isManagedtx()) {
+            return true;
         }
 
-        return true;
+        return false;
 
     }
 
@@ -302,7 +302,7 @@
                 throw new RuntimeException("SQL => " + sql + " is not valid");
         }
 
-        returnCmd.setConnection(getConnection(), config.getConfig());
+        returnCmd.setConnection(getConnectionFromConfig(), config.getConfig());
         return returnCmd;
     }
 
@@ -310,4 +310,24 @@
         getApplyChangesCommand().execute(root);
     }
 
-}
\ No newline at end of file
+    public Connection getConnection() {
+    	getConnectionFromConfig();
+    	//connection created from DAS but tx management by client
+    	if(this.configWrapper.getConfig() != null && 
+    	   this.configWrapper.getConfig().getConnectionInfo() != null &&
+    	   !this.configWrapper.getConfig().getConnectionInfo().isManagedtx()){
+    		return this.connection;
+    	}
+    	//connection from client
+    	else if(this.configWrapper.getConfig() == null ||
+    			this.configWrapper.getConfig().getConnectionInfo() == null ||
+    			(this.configWrapper.getConfig().getConnectionInfo().getDataSource()==null &&
+    			 this.configWrapper.getConfig().getConnectionInfo().getConnectionProperties()==null)){
+    		return this.connection;
+    	}
+    	//connection from DAS and tx management by DAS
+    	else{
+    		throw new RuntimeException("DAS is controlling transaction, can not expose Connection!");
+    	}    	
+    }    
+}

Modified: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/TransactionTests.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/TransactionTests.java?rev=572735&r1=572734&r2=572735&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/TransactionTests.java
(original)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/TransactionTests.java
Tue Sep  4 09:50:19 2007
@@ -27,16 +27,28 @@
 
 import org.apache.tuscany.das.rdb.Command;
 import org.apache.tuscany.das.rdb.DAS;
+import org.apache.tuscany.das.rdb.impl.DASImpl;
+import org.apache.tuscany.das.rdb.test.data.BankAccountData;
 import org.apache.tuscany.das.rdb.test.data.CustomerData;
+import org.apache.tuscany.das.rdb.test.data.DepartmentsData;
+import org.apache.tuscany.das.rdb.test.data.EmployeesData;
 import org.apache.tuscany.das.rdb.test.framework.DasTest;
 
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.Iterator;
+
 import commonj.sdo.DataObject;
+import commonj.sdo.helper.XMLHelper;
 
 public class TransactionTests extends DasTest {
 
     protected void setUp() throws Exception {
         super.setUp();
         new CustomerData(getAutoConnection()).refresh();
+        new DepartmentsData(getAutoConnection()).refresh();
+        new EmployeesData(getAutoConnection()).refresh();
+        new BankAccountData(getAutoConnection()).refresh();
     }
 
     protected void tearDown() throws Exception {
@@ -84,4 +96,125 @@
 
     }
 
+    /**
+     * Demonstrate that DAS allows external control of transaction when using
+     * external connection. i.e. ConnectionInfo with only managedtx=false
+     */
+    public void testAbleToControlExternallyInitedTransaction() throws Exception {
+        // Create and initialize a DAS connection and initialize for externally
+        // managed transaction boundaries. 
+        java.sql.Connection c = getConnection();
+        
+        //"John Jones" is in "Advanced Technologies"(Department1)
+        DAS das = DAS.FACTORY.createDAS(getConfig("extTxWithExtConnection.xml"),c);     
  
+        Command selEmpForDep1 = das.getCommand("SelectEmployeesFromDepartment1");
+        DataObject root1 = selEmpForDep1.executeQuery();
+        DataObject department1 = (DataObject)root1.getList("DEPARTMENTS").get(0);
+        assertEquals("Advanced Technologies", department1.getString("NAME"));
+        DataObject employee1 = (DataObject)department1.getList("employed").get(0);
+        assertEquals("John Jones", employee1.getString("NAME"));
+        
+        //remove "John Jones" from "Advanced Technologies"(Department1)
+        employee1.delete();
+        das.applyChanges(root1);
+        
+        //user decided to revert the decision to remove and thus issues rollback
+        c.rollback();
+        
+        //user wants to ensure that "John Jones" is still in Department1
+        root1 = selEmpForDep1.executeQuery();
+        department1 = (DataObject)root1.getList("DEPARTMENTS").get(0);
+        assertEquals("Advanced Technologies", department1.getString("NAME"));
+        boolean employeeRetained = isEmployeeInDepartment(root1, "John Jones");
+        assertEquals(true, employeeRetained);//this shows that employee is not removed due
to rollback
+        //so proves that user is managing tx and not DAS
+    }
+    
+    private boolean isEmployeeInDepartment(DataObject root, String employeeName){
+        //iterate for all employees in department1 is ensure that employeeName is there
+        Iterator itr = ((DataObject)root.getList("DEPARTMENTS").get(0)).getList("employed").iterator();
+        boolean employeeRetained = false;
+        while(itr.hasNext()){
+        	DataObject employee = (DataObject)itr.next();
+        	if(employee.getString("NAME").equals(employeeName)){
+        		employeeRetained = true;
+        	}
+        }
+        return employeeRetained;
+    }
+    
+    /**
+     * Demonstrate that user can control tx when connection is from DAS for single command
+     */
+    public void testAbleToCommitTransaction() throws Exception {
+        //"John Jones" is in "Advanced Technologies"(Department1)
+        DAS das = DAS.FACTORY.createDAS(getConfig("extTxWithIntConnection.xml"));
+        Connection conn = ((DASImpl)das).getConnection();
+        //connection is created from config, not passed by user.
+        Command selEmpForDep1 = das.getCommand("SelectEmployeesFromDepartment1");
+        DataObject root1 = selEmpForDep1.executeQuery();
+        DataObject department1 = (DataObject)root1.getList("DEPARTMENTS").get(0);
+        assertEquals("Advanced Technologies", department1.getString("NAME"));
+        DataObject employee1 = (DataObject)department1.getList("employed").get(0);
+        assertEquals("John Jones", employee1.getString("NAME"));
+        //remove "John Jones" from "Advanced Technologies"(Department1)
+        employee1.delete();
+        das.applyChanges(root1);
+        conn.commit();
+        //now open a fresh connection and check data in database
+        java.sql.Connection c = getConnection();
+        DAS dasFresh = DAS.FACTORY.createDAS(getConfig("extTxWithExtConnection.xml"),c);
+        Command selEmpForDepFresh1 = dasFresh.getCommand("SelectEmployeesFromDepartment1");
+        DataObject rootFresh1 = selEmpForDepFresh1.executeQuery();
+        boolean employeeRetained1 = isEmployeeInDepartment(rootFresh1, "John Jones");
+
+        assertEquals(false, employeeRetained1);
+    }
+    
+    /**
+     * Demonstrate that user can control tx for group of commands when connection is created
in DAS 
+     */
+    public void testDataIntegrity() throws Exception {
+        //remove $200 from account1 and add $200 to account2
+    	//when doing add to account2 operation user rolls back
+    	//account1 and account2 both should have original balance.
+        DAS das = DAS.FACTORY.createDAS(getConfig("extTxnIntConnectionRollback.xml"));
+        //connection is created from config, not passed by user.
+        
+        //check original balance from account1
+        Command SelectBalanceFromAccount1 = das.getCommand("SelectBalanceFromAccount1");
+        DataObject root1 = SelectBalanceFromAccount1.executeQuery();
+        DataObject bankAccount1 = (DataObject)root1.getList("BANKACCOUNT").get(0);
+        assertEquals(10000, bankAccount1.getInt("BALANCE"));
+        
+        //remove $200 from account1
+        bankAccount1.setInt("BALANCE", (bankAccount1.getInt("BALANCE")-200));
+        das.applyChanges(root1);
+
+        //check original balance from account2
+        Command SelectBalanceFromAccount2 = das.getCommand("SelectBalanceFromAccount2");
+        DataObject root2 = SelectBalanceFromAccount2.executeQuery();
+        DataObject bankAccount2 = (DataObject)root2.getList("BANKACCOUNT").get(0);
+        assertEquals(5000, bankAccount2.getInt("BALANCE"));
+        
+        //add  "$200"  to  account2
+        bankAccount2.setInt("BALANCE", (bankAccount2.getInt("BALANCE")+200));
+       	das.applyChanges(root2);
+       	das.getConnection().rollback();//say user may get exception here in a try-catch and
decides to rollback
+
+        //now open a fresh DAS and check data in database
+        DAS dasFresh = DAS.FACTORY.createDAS(getConfig("extTxnIntConnectionRollback.xml"));
+        
+        Command SelectBalanceFromAccount1Fresh = dasFresh.getCommand("SelectBalanceFromAccount1");
+       	DataObject rootFresh1 = SelectBalanceFromAccount1Fresh.executeQuery();  
+       	DataObject bankAccount1Fresh = (DataObject)rootFresh1.getList("BANKACCOUNT").get(0);
+       	assertEquals(10000, bankAccount1Fresh.getInt("BALANCE"));//this shows $200 is not
removed from account1, expected,
+        //as rollbacked
+       	
+        Command SelectBalanceFromAccount2Fresh = dasFresh.getCommand("SelectBalanceFromAccount2");
+       	DataObject rootFresh2 = SelectBalanceFromAccount2Fresh.executeQuery();  
+       	DataObject bankAccount2Fresh = (DataObject)rootFresh2.getList("BANKACCOUNT").get(0);
+        assertEquals(5000, bankAccount2Fresh.getInt("BALANCE"));//this shows $200 is not
added to account2, expected,
+        //as have rollbacked
+    }
 }

Added: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BankAccountData.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BankAccountData.java?rev=572735&view=auto
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BankAccountData.java
(added)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/BankAccountData.java
Tue Sep  4 09:50:19 2007
@@ -0,0 +1,43 @@
+/*
+ * 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.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+import java.sql.Types;
+
+import org.apache.tuscany.das.rdb.test.framework.TestDataWithExplicitColumns;
+
+public class BankAccountData extends TestDataWithExplicitColumns {
+
+    private static int[] bankAccountTypes = {Types.INTEGER, Types.INTEGER, Types.INTEGER};
+
+    private static Object[][] bankAccountData = {{new Integer(1), new Integer(564026354),new
Integer(10000)},
+    	{new Integer(2), new Integer(564026354),new Integer(5000)}};
+
+    private static String[] bankAccountColumns = {"ID", "SSN", "BALANCE"};
+
+    public BankAccountData(Connection connection) {
+        super(connection, bankAccountData, bankAccountColumns, bankAccountTypes);
+    }
+
+    public String getTableName() {
+        return "BANKACCOUNT";
+    }
+
+}

Added: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepartmentsData.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepartmentsData.java?rev=572735&view=auto
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepartmentsData.java
(added)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/DepartmentsData.java
Tue Sep  4 09:50:19 2007
@@ -0,0 +1,44 @@
+/*
+ * 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.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+import java.sql.Types;
+
+import org.apache.tuscany.das.rdb.test.framework.TestDataWithExplicitColumns;
+
+
+public class DepartmentsData extends TestDataWithExplicitColumns {
+
+    private static int[] columnTypes = {Types.INTEGER, Types.VARCHAR, Types.VARCHAR, Types.VARCHAR,
Types.INTEGER};
+
+    private static Object[][] deptData = {{Integer.valueOf(1),"Advanced Technologies", "NY",
"123", new Integer(1) },
+                                          {Integer.valueOf(2),"New Technologies", "CA", "125",
new Integer(2) }};
+
+    private static String[] deptColumns = {"ID", "NAME", "LOCATION", "DEPNUMBER", "COMPANYID"};
+
+    public DepartmentsData(Connection connection) {
+        super(connection, deptData, deptColumns, columnTypes);
+    }
+
+    public String getTableName() {
+        return "DEPARTMENTS";
+    }
+
+}

Added: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/EmployeesData.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/EmployeesData.java?rev=572735&view=auto
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/EmployeesData.java
(added)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/data/EmployeesData.java
Tue Sep  4 09:50:19 2007
@@ -0,0 +1,46 @@
+/*
+ * 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.tuscany.das.rdb.test.data;
+
+import java.sql.Connection;
+import java.sql.Types;
+
+import org.apache.tuscany.das.rdb.test.framework.TestDataWithExplicitColumns;
+
+public class EmployeesData extends TestDataWithExplicitColumns {
+
+    private static int[] columnTypes = {Types.VARCHAR, Types.VARCHAR, Types.SMALLINT, Types.INTEGER};
+
+    private static Object[][] employeeData = {{"John Jones", "E0001", Boolean.valueOf(false),
Integer.valueOf(1)}, 
+        {"Mary Smith", "E0002", Boolean.valueOf(true), Integer.valueOf(1)},
+        {"Jane Doe", "E0003", Boolean.valueOf(false), Integer.valueOf(2)},
+        {"Al Smith", "E0004", Boolean.valueOf(true), Integer.valueOf(2)},
+        {"John Smith", "E0005", Boolean.valueOf(false), Integer.valueOf(2)}};
+
+    private static String[] employeeColumns = {"NAME", "SN", "MANAGER","DEPARTMENTID"};
+
+    public EmployeesData(Connection connection) {
+        super(connection, employeeData, employeeColumns, columnTypes);
+    }
+
+    public String getTableName() {
+        return "EMPLOYEES";
+    }
+
+}

Modified: incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java?rev=572735&r1=572734&r2=572735&view=diff
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java
(original)
+++ incubator/tuscany/java/das/rdb/src/test/java/org/apache/tuscany/das/rdb/test/framework/DatabaseSetup.java
Tue Sep  4 09:50:19 2007
@@ -164,6 +164,9 @@
             "DROP TABLE DASTEST3.ORDERDETAILSDESC", "DROP TABLE DASTEST1.ORDERDETAILS",
             "DROP TABLE DASTEST1.EMPLOYEE",
             "DROP TABLE SINGER",
+            "DROP TABLE BANKACCOUNT",
+            "DROP TABLE DEPARTMENTS",
+            "DROP TABLE EMPLOYEES",
             "DROP TABLE SONG",            
             "DROP TABLE DASTEST1.EMPLOYEE",
             "DROP TABLE DOCUMENTS_IMAGES"
@@ -274,7 +277,10 @@
             s.execute(getCreateDASTEST3OrderDetailsDesc());            
             //JIRA-952 end
             s.execute(getCreateSinger());
-            s.execute(getCreateSong());            
+            s.execute(getCreateSong());
+            s.execute(getCreateDepartments());
+            s.execute(getCreateBankAccount());
+            s.execute(getCreateEmployees());
             s.execute(getCreateDocumentsImages());
 
         } catch (SQLException e) {
@@ -354,6 +360,13 @@
                 + getIntegerColumn("DEPARTMENTID") + ")";
     }
 
+    protected String getCreateEmployees() {
+        return "CREATE TABLE EMPLOYEES (" + getIntegerColumn("ID") + " PRIMARY KEY NOT NULL
" 
+            + getGeneratedKeyClause() + ","
+                + getStringColumn("NAME", 30) + "," + getStringColumn("SN", 10) + ", MANAGER
SMALLINT, " 
+                + getIntegerColumn("DEPARTMENTID") + ")";
+    }
+
     protected String getCreateDepartment() {
         return "CREATE TABLE DEPARTMENT (" + getIntegerColumn("ID") + " PRIMARY KEY NOT NULL
" 
             + getGeneratedKeyClause() + ", "
@@ -362,6 +375,13 @@
                 + getIntegerColumn("COMPANYID") + ")";
     }
 
+    protected String getCreateDepartments() {
+        return "CREATE TABLE DEPARTMENTS (" + getIntegerColumn("ID") + " PRIMARY KEY NOT
NULL , "
+                + getStringColumn("NAME", 30) + "," + getStringColumn("LOCATION", 30) + ",
" 
+                + getStringColumn("DEPNUMBER", 10) + ","
+                + getIntegerColumn("COMPANYID") + ")";
+    }
+    
     protected String getCreateBook() {
         return "CREATE TABLE BOOK (" + getIntegerColumn("BOOK_ID") + " PRIMARY KEY NOT NULL,
" 
             + getStringColumn("NAME", 50) + ","
@@ -513,7 +533,12 @@
 
 
 
-
+    protected String getCreateBankAccount() {
+    	return "CREATE TABLE BANKACCOUNT ("+ getIntegerColumn("ID") + " , " +
+		getIntegerColumn("SSN") + ", "+
+		getIntegerColumn("BALANCE") + " )";    	
+    }
+    
 
 
 

Added: incubator/tuscany/java/das/rdb/src/test/resources/extTxWithExtConnection.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/resources/extTxWithExtConnection.xml?rev=572735&view=auto
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/resources/extTxWithExtConnection.xml (added)
+++ incubator/tuscany/java/das/rdb/src/test/resources/extTxWithExtConnection.xml Tue Sep 
4 09:50:19 2007
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+  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.
+ -->
+<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"> 
+	<!--below is needed if user wants to control tx-->
+	<ConnectionInfo managedtx="false">
+	</ConnectionInfo>
+	
+	<Command name="SelectEmployeesFromDepartment1" 
+		SQL="select * from DEPARTMENTS left outer join EMPLOYEES on DEPARTMENTS.ID = EMPLOYEES.DEPARTMENTID
where DEPARTMENTS.ID = 1" 
+		kind="Select"/>  
+	<Command name="SelectEmployeesFromDepartment2" 
+		SQL="select * from DEPARTMENTS left outer join EMPLOYEES on DEPARTMENTS.ID = EMPLOYEES.DEPARTMENTID
where DEPARTMENTS.ID = 2" 
+		kind="Select"/>
+		
+	<Relationship name="employed" primaryKeyTable="DEPARTMENTS" foreignKeyTable="EMPLOYEES"
many="true" >
+      	<KeyPair primaryKeyColumn="ID" foreignKeyColumn="DEPARTMENTID" />
+  	</Relationship>		
+</Config>
+

Added: incubator/tuscany/java/das/rdb/src/test/resources/extTxWithIntConnection.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/resources/extTxWithIntConnection.xml?rev=572735&view=auto
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/resources/extTxWithIntConnection.xml (added)
+++ incubator/tuscany/java/das/rdb/src/test/resources/extTxWithIntConnection.xml Tue Sep 
4 09:50:19 2007
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+  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.
+ -->
+<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"> 
+	<ConnectionInfo managedtx="false">
+		<ConnectionProperties
+			driverClass="org.apache.derby.jdbc.EmbeddedDriver"
+			databaseURL="jdbc:derby:target/dastest; create = true"
+			loginTimeout="600000"/>
+	</ConnectionInfo>
+	
+	<Command name="SelectEmployeesFromDepartment1" 
+		SQL="select * from DEPARTMENTS left outer join EMPLOYEES on DEPARTMENTS.ID = EMPLOYEES.DEPARTMENTID
where DEPARTMENTS.ID = 1" 
+		kind="Select"/>  
+	<Command name="SelectEmployeesFromDepartment2" 
+		SQL="select * from DEPARTMENTS left outer join EMPLOYEES on DEPARTMENTS.ID = EMPLOYEES.DEPARTMENTID
where DEPARTMENTS.ID = 2" 
+		kind="Select"/>
+		
+	<Relationship name="employed" primaryKeyTable="DEPARTMENTS" foreignKeyTable="EMPLOYEES"
many="true" >
+      	<KeyPair primaryKeyColumn="ID" foreignKeyColumn="DEPARTMENTID" />
+  	</Relationship>		
+</Config>

Added: incubator/tuscany/java/das/rdb/src/test/resources/extTxnIntConnectionRollback.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/das/rdb/src/test/resources/extTxnIntConnectionRollback.xml?rev=572735&view=auto
==============================================================================
--- incubator/tuscany/java/das/rdb/src/test/resources/extTxnIntConnectionRollback.xml (added)
+++ incubator/tuscany/java/das/rdb/src/test/resources/extTxnIntConnectionRollback.xml Tue
Sep  4 09:50:19 2007
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+  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.
+ -->
+<Config xmlns="http:///org.apache.tuscany.das.rdb/config.xsd"> 
+	<ConnectionInfo managedtx="false">
+		<ConnectionProperties
+			driverClass="org.apache.derby.jdbc.EmbeddedDriver"
+			databaseURL="jdbc:derby:target/dastest; create = true"
+			loginTimeout="600000"/>
+	</ConnectionInfo>
+	
+	<Command name="SelectBalanceFromAccount1" 
+		SQL="select * from BANKACCOUNT where SSN = 564026354 and ID=1" 
+		kind="Select"/>  
+	<Command name="SelectBalanceFromAccount2" 
+		SQL="select * from BANKACCOUNT where SSN = 564026354 and ID=2" 
+		kind="Select"/>
+</Config>



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org


Mime
View raw message