JIRA-1665 is there with a sample patch. Please see http://www.mail-archive.com/tuscany-dev@ws.apache.org/msg22828.html and the readme.htm from patch for rest of the details.
In summary, DAS works well when connection is passed from caller and txn is managed by caller. I am trying to put a new wiki page for DAS Transaction support. Please advise if there is a need of web sample or JIRA-1665 will suffice. Regards, Amita On 9/4/07, Luciano Resende <[EMAIL PROTECTED]> wrote: > > I don't think it's a good idea to expose the Connection trough DAS API > as I already mentioned in previous discussions. First, in a managed > environment, there is no need for DAS to expose the connection, as > there is transaction manager handling the transactions and JDBC knows > how to participate on them. Also, exposing the Connection on the DAS > API also makes it RDB centric, and I would like to avoid it. > > Amita is doing some tests with a real managed transaction env (using > JOTM and Tomcat) and I'd like to hold any changes on this area untill > she comes up with concrete results from the proper env.So, could you > please revert these changes until we hear back from Amita. > > Thanks, and sorry for the inconvenience. > > On 9/4/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > 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: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > -- > Luciano Resende > Apache Tuscany Committer > http://people.apache.org/~lresende > http://lresende.blogspot.com/ > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >