You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2015/08/18 18:40:51 UTC

svn commit: r1696456 [2/2] - in /aries/trunk/transaction: transaction-blueprint/ transaction-blueprint/src/main/java/org/apache/aries/transaction/ transaction-blueprint/src/main/java/org/apache/aries/transaction/annotations/ transaction-blueprint/src/m...

Copied: aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/Counter.java (from r1696014, aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/annotations/TransactionPropagationType.java)
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/Counter.java?p2=aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/Counter.java&p1=aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/annotations/TransactionPropagationType.java&r1=1696014&r2=1696456&rev=1696456&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/annotations/TransactionPropagationType.java (original)
+++ aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/Counter.java Tue Aug 18 16:40:50 2015
@@ -1,23 +1,26 @@
-/**
- * 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.aries.transaction.annotations;
-
-public enum TransactionPropagationType {
-	Mandatory, Never, NotSupported, Required, RequiresNew, Supports
-}
+/*
+ * 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.aries.transaction.test;
+
+/**
+ * Allows to count the rows in the test table
+ */
+public interface Counter {
+    int countRows();
+}

Modified: aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/TestBean.java
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/TestBean.java?rev=1696456&r1=1696455&r2=1696456&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/TestBean.java (original)
+++ aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/TestBean.java Tue Aug 18 16:40:50 2015
@@ -25,15 +25,8 @@ import java.sql.SQLException;
  *
  */
 public interface TestBean {
-    public void insertRow(String name, int value) throws SQLException;
-    
-    public void delegateInsertRow(String name, int value) throws SQLException;
-    
-    public void insertRow(String name, int value, Exception e) throws SQLException;
-
-    public int countRows() throws SQLException;
-    
-    public void throwApplicationException() throws SQLException;
-    
-    public void throwRuntimeException();
+    void delegateInsertRow(String name, int value) throws SQLException;
+    void insertRow(String name, int value, Exception e) throws SQLException;
+    void throwApplicationException() throws SQLException;
+    void throwRuntimeException();
 }

Modified: aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/Connector.java
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/Connector.java?rev=1696456&r1=1696455&r2=1696456&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/Connector.java (original)
+++ aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/Connector.java Tue Aug 18 16:40:50 2015
@@ -19,82 +19,134 @@
 package org.apache.aries.transaction.test.impl;
 
 import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;
 
 import javax.sql.DataSource;
 
-public class Connector {
+import org.apache.aries.transaction.test.Counter;
+
+public class Connector implements Counter {
     private DataSource xads;
     private String user;
     private String password;
+    private Connection conn;
 
     public void setXads(DataSource xads) {
         this.xads = xads;
     }
+
     public void setUser(String user) {
         this.user = user;
     }
+
     public void setPassword(String password) {
         this.password = password;
     }
-    
-    public Connection connect() throws SQLException {
+
+    private Connection connect() throws SQLException {
         return xads.getConnection(user, password);
     }
     
-    public void initialize() {
-        Connection conn = null;
-        Statement stmt = null;
+    public Connection getConn() {
+        return conn;
+    }
 
+    public void initialize() throws SQLException {
+        conn = connect();
+        DatabaseMetaData dbmd = conn.getMetaData();
+        ResultSet rs = dbmd.getTables(null, "", "TESTTABLE", null);
+        if (!rs.next()) {
+            executeUpdate("CREATE TABLE TESTTABLE (NAME VARCHAR(64), VALUE INTEGER, PRIMARY KEY(NAME, VALUE))");
+        }
+    }
+    
+    public void executeUpdate(String sql) {
+        Statement stmt = null;
         try {
-            conn = connect();
-            conn.setAutoCommit(true);
             stmt = conn.createStatement();
-            stmt.executeUpdate("DROP TABLE TESTTABLE");
-        }
-        catch (Exception e) {
+            stmt.executeUpdate(sql);
+            conn.commit();
+        } catch (Exception e) {
             // Ignore
+        } finally {
+            safeClose(stmt);
+        }
+    }
+    
+    public int countRows() {
+        PreparedStatement stmt = null;
+        ResultSet rs = null;
+        int count = -1;
+        try {
+            stmt = conn.prepareStatement("SELECT * FROM TESTTABLE", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
+            rs = stmt.executeQuery();
+            rs.last();
+            count = rs.getRow();
+        } catch (Exception e) {
+            throw new RuntimeException(e.getMessage(), e);
         }
         finally {
+            safeClose(rs);
             safeClose(stmt);
-            safeClose(conn);
         }
 
+        return count;
+    }
+
+    
+    public void insertRow(String name, int value) throws SQLException {
+        PreparedStatement stmt = null;
+        Connection con2 = null;
         try {
-            conn = connect();
-            conn.setAutoCommit(true);
-            stmt = conn.createStatement();
-            stmt.executeUpdate("CREATE TABLE TESTTABLE (NAME VARCHAR(64), VALUE INTEGER, PRIMARY KEY(NAME, VALUE))");
-        }
-        catch (Exception e) {
-            // Ignore
+            // Need to create a new connection to participate in transaction
+            con2 = connect();
+            stmt = con2.prepareStatement("INSERT INTO TESTTABLE VALUES (?, ?)");
+            stmt.setString(1, name);
+            stmt.setInt(2, value);
+            stmt.executeUpdate();
         }
         finally {
             safeClose(stmt);
-            safeClose(conn);
+            safeClose(con2);
         }
     }
+    
+    public void close() {
+        safeClose(conn);
+    }
 
     public void safeClose(Connection conn) {
-        if (conn == null) {
-            return;
-        }
-        try {
-            conn.close();
-        } catch (SQLException e) {
-            // Ignore
+        if (conn != null) {
+            try {
+                conn.close();
+            } catch (SQLException e) {
+                // Ignore
+            }
         }
     }
 
     public void safeClose(Statement stmt) {
-        if (stmt == null) {
-            return;
+        if (stmt != null) {
+            try {
+                stmt.close();
+            } catch (SQLException e) {
+                // Ignore
+            }
         }
-        try {
-            stmt.close();
-        } catch (SQLException e) {
-            // Ignore
+    }
+    
+
+    private void safeClose(ResultSet rs) {
+        if (rs != null) {
+            try {
+                rs.close();
+            } catch (SQLException e) {
+                // Ignore
+            }
         }
     }
 }

Copied: aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/MandatoryTestBeanImpl.java (from r1696014, aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/JtaAnnotatedTestBeanImpl.java)
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/MandatoryTestBeanImpl.java?p2=aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/MandatoryTestBeanImpl.java&p1=aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/JtaAnnotatedTestBeanImpl.java&r1=1696014&r2=1696456&rev=1696456&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/JtaAnnotatedTestBeanImpl.java (original)
+++ aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/MandatoryTestBeanImpl.java Tue Aug 18 16:40:50 2015
@@ -21,13 +21,7 @@ package org.apache.aries.transaction.tes
 import javax.transaction.Transactional;
 import java.sql.SQLException;
 
-public class JtaAnnotatedTestBeanImpl extends TestBeanImpl {
-
-    @Override
-    @Transactional(Transactional.TxType.MANDATORY)
-    public void insertRow(String name, int value) throws SQLException {
-        super.insertRow(name, value);
-    }
+public class MandatoryTestBeanImpl extends TestBeanImpl {
 
     @Override
     @Transactional(Transactional.TxType.MANDATORY)
@@ -41,9 +35,4 @@ public class JtaAnnotatedTestBeanImpl ex
         super.delegateInsertRow(name, value);
     }
 
-    @Override
-    @Transactional(Transactional.TxType.NOT_SUPPORTED)
-    public int countRows() throws SQLException {
-        return super.countRows();
-    }
 }

Copied: aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/NeverTestBeanImpl.java (from r1696014, aries/trunk/transaction/transaction-blueprint/src/test/java/org/apache/aries/transaction/pojo/JtaAnnotatedPojo.java)
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/NeverTestBeanImpl.java?p2=aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/NeverTestBeanImpl.java&p1=aries/trunk/transaction/transaction-blueprint/src/test/java/org/apache/aries/transaction/pojo/JtaAnnotatedPojo.java&r1=1696014&r2=1696456&rev=1696456&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-blueprint/src/test/java/org/apache/aries/transaction/pojo/JtaAnnotatedPojo.java (original)
+++ aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/NeverTestBeanImpl.java Tue Aug 18 16:40:50 2015
@@ -1,39 +1,40 @@
-/**
- * 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.aries.transaction.pojo;
-
-import javax.transaction.Transactional;
-import javax.transaction.Transactional.TxType;
-
-@Transactional(TxType.REQUIRED)
-public class JtaAnnotatedPojo {
-
-    public void increment(String key) {
-    }
-
-    @Transactional(TxType.SUPPORTS)
-    protected int checkValue(String key) {
-        return 0;
-    }
-
-    @Transactional(TxType.MANDATORY)
-    Object getRealObject(String key) {
-        return null;
-    }
-}
+/*
+ * 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.aries.transaction.test.impl;
+
+import javax.transaction.Transactional;
+import javax.transaction.Transactional.TxType;
+
+import java.sql.SQLException;
+
+public class NeverTestBeanImpl extends TestBeanImpl {
+
+    @Override
+    @Transactional(value=TxType.NEVER)
+    public void insertRow(String name, int value, Exception e) throws SQLException {
+        super.insertRow(name, value, e);
+    }
+
+    @Override
+    @Transactional(value=TxType.NEVER)
+    public void delegateInsertRow(String name, int value) throws SQLException {
+        super.delegateInsertRow(name, value);
+    }
+
+}

Copied: aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/NotSupportedTestBeanImpl.java (from r1696014, aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/JtaAnnotatedTestBeanImpl.java)
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/NotSupportedTestBeanImpl.java?p2=aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/NotSupportedTestBeanImpl.java&p1=aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/JtaAnnotatedTestBeanImpl.java&r1=1696014&r2=1696456&rev=1696456&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/JtaAnnotatedTestBeanImpl.java (original)
+++ aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/NotSupportedTestBeanImpl.java Tue Aug 18 16:40:50 2015
@@ -18,32 +18,32 @@
  */
 package org.apache.aries.transaction.test.impl;
 
-import javax.transaction.Transactional;
 import java.sql.SQLException;
 
-public class JtaAnnotatedTestBeanImpl extends TestBeanImpl {
-
-    @Override
-    @Transactional(Transactional.TxType.MANDATORY)
-    public void insertRow(String name, int value) throws SQLException {
-        super.insertRow(name, value);
-    }
+import javax.transaction.Transactional;
 
-    @Override
-    @Transactional(Transactional.TxType.MANDATORY)
-    public void insertRow(String name, int value, Exception e) throws SQLException {
-        super.insertRow(name, value, e);
-    }
+@Transactional(Transactional.TxType.NOT_SUPPORTED)
+public class NotSupportedTestBeanImpl extends TestBeanImpl {
 
+    @Transactional(Transactional.TxType.NOT_SUPPORTED)
     @Override
-    @Transactional(Transactional.TxType.MANDATORY)
     public void delegateInsertRow(String name, int value) throws SQLException {
+        // TODO Auto-generated method stub
         super.delegateInsertRow(name, value);
     }
 
+    @Transactional(Transactional.TxType.NOT_SUPPORTED)
     @Override
+    public void throwApplicationException() throws SQLException {
+        // TODO Auto-generated method stub
+        super.throwApplicationException();
+    }
+
     @Transactional(Transactional.TxType.NOT_SUPPORTED)
-    public int countRows() throws SQLException {
-        return super.countRows();
+    @Override
+    public void throwRuntimeException() {
+        // TODO Auto-generated method stub
+        super.throwRuntimeException();
     }
+
 }

Copied: aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/RequiredTestBeanImpl.java (from r1696014, aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/AnnotatedTestBeanImpl.java)
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/RequiredTestBeanImpl.java?p2=aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/RequiredTestBeanImpl.java&p1=aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/AnnotatedTestBeanImpl.java&r1=1696014&r2=1696456&rev=1696456&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/AnnotatedTestBeanImpl.java (original)
+++ aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/RequiredTestBeanImpl.java Tue Aug 18 16:40:50 2015
@@ -18,34 +18,22 @@
  */
 package org.apache.aries.transaction.test.impl;
 
-import org.apache.aries.transaction.annotations.Transaction;
-import org.apache.aries.transaction.annotations.TransactionPropagationType;
-
 import java.sql.SQLException;
 
-public class AnnotatedTestBeanImpl extends TestBeanImpl {
+import javax.transaction.Transactional;
 
-    @Override
-    @Transaction(TransactionPropagationType.Mandatory)
-    public void insertRow(String name, int value) throws SQLException {
-        super.insertRow(name, value);
-    }
+public class RequiredTestBeanImpl extends TestBeanImpl {
 
     @Override
-    @Transaction(TransactionPropagationType.Mandatory)
+    @Transactional(Transactional.TxType.REQUIRED)
     public void insertRow(String name, int value, Exception e) throws SQLException {
         super.insertRow(name, value, e);
     }
 
     @Override
-    @Transaction(TransactionPropagationType.Mandatory)
+    @Transactional(Transactional.TxType.REQUIRED)
     public void delegateInsertRow(String name, int value) throws SQLException {
         super.delegateInsertRow(name, value);
     }
 
-    @Override
-    @Transaction(TransactionPropagationType.NotSupported)
-    public int countRows() throws SQLException {
-        return super.countRows();
-    }
 }

Copied: aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/RequiresNewTestBeanImpl.java (from r1696014, aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/JtaAnnotatedTestBeanImpl.java)
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/RequiresNewTestBeanImpl.java?p2=aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/RequiresNewTestBeanImpl.java&p1=aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/JtaAnnotatedTestBeanImpl.java&r1=1696014&r2=1696456&rev=1696456&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/JtaAnnotatedTestBeanImpl.java (original)
+++ aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/RequiresNewTestBeanImpl.java Tue Aug 18 16:40:50 2015
@@ -19,31 +19,22 @@
 package org.apache.aries.transaction.test.impl;
 
 import javax.transaction.Transactional;
-import java.sql.SQLException;
+import javax.transaction.Transactional.TxType;
 
-public class JtaAnnotatedTestBeanImpl extends TestBeanImpl {
+import java.sql.SQLException;
 
-    @Override
-    @Transactional(Transactional.TxType.MANDATORY)
-    public void insertRow(String name, int value) throws SQLException {
-        super.insertRow(name, value);
-    }
+public class RequiresNewTestBeanImpl extends TestBeanImpl {
 
     @Override
-    @Transactional(Transactional.TxType.MANDATORY)
+    @Transactional(value=TxType.REQUIRES_NEW)
     public void insertRow(String name, int value, Exception e) throws SQLException {
         super.insertRow(name, value, e);
     }
 
     @Override
-    @Transactional(Transactional.TxType.MANDATORY)
+    @Transactional(value=TxType.REQUIRES_NEW)
     public void delegateInsertRow(String name, int value) throws SQLException {
         super.delegateInsertRow(name, value);
     }
 
-    @Override
-    @Transactional(Transactional.TxType.NOT_SUPPORTED)
-    public int countRows() throws SQLException {
-        return super.countRows();
-    }
 }

Copied: aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/SupportsTestBeanImpl.java (from r1696014, aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/JtaAnnotatedTestBeanImpl.java)
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/SupportsTestBeanImpl.java?p2=aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/SupportsTestBeanImpl.java&p1=aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/JtaAnnotatedTestBeanImpl.java&r1=1696014&r2=1696456&rev=1696456&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/JtaAnnotatedTestBeanImpl.java (original)
+++ aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/SupportsTestBeanImpl.java Tue Aug 18 16:40:50 2015
@@ -19,31 +19,22 @@
 package org.apache.aries.transaction.test.impl;
 
 import javax.transaction.Transactional;
-import java.sql.SQLException;
+import javax.transaction.Transactional.TxType;
 
-public class JtaAnnotatedTestBeanImpl extends TestBeanImpl {
+import java.sql.SQLException;
 
-    @Override
-    @Transactional(Transactional.TxType.MANDATORY)
-    public void insertRow(String name, int value) throws SQLException {
-        super.insertRow(name, value);
-    }
+public class SupportsTestBeanImpl extends TestBeanImpl {
 
     @Override
-    @Transactional(Transactional.TxType.MANDATORY)
+    @Transactional(value=TxType.SUPPORTS)
     public void insertRow(String name, int value, Exception e) throws SQLException {
         super.insertRow(name, value, e);
     }
 
     @Override
-    @Transactional(Transactional.TxType.MANDATORY)
+    @Transactional(value=TxType.SUPPORTS)
     public void delegateInsertRow(String name, int value) throws SQLException {
         super.delegateInsertRow(name, value);
     }
 
-    @Override
-    @Transactional(Transactional.TxType.NOT_SUPPORTED)
-    public int countRows() throws SQLException {
-        return super.countRows();
-    }
 }

Modified: aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/TestBeanImpl.java
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/TestBeanImpl.java?rev=1696456&r1=1696455&r2=1696456&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/TestBeanImpl.java (original)
+++ aries/trunk/transaction/transaction-testbundle/src/main/java/org/apache/aries/transaction/test/impl/TestBeanImpl.java Tue Aug 18 16:40:50 2015
@@ -18,9 +18,6 @@
  */
 package org.apache.aries.transaction.test.impl;
 
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
 import java.sql.SQLException;
 
 import org.apache.aries.transaction.test.TestBean;
@@ -32,57 +29,17 @@ public class TestBeanImpl implements Tes
     public TestBeanImpl() {
     }
 
-    public void insertRow(String name, int value) throws SQLException {
-        Connection conn = null;
-        PreparedStatement stmt = null;
-
-        try {
-            conn = connector.connect();
-            stmt = conn.prepareStatement("INSERT INTO TESTTABLE VALUES (?, ?)");
-            stmt.setString(1, name);
-            stmt.setInt(2, value);
-            stmt.executeUpdate();
-        }
-        finally {
-            connector.safeClose(stmt);
-            connector.safeClose(conn);
-        }
-    }
-
     public void insertRow(String name, int value, Exception e) throws SQLException {
-        insertRow(name, value);
-        
-        if (e instanceof SQLException)
+        connector.insertRow(name, value);
+        if (e instanceof SQLException) { 
             throw (SQLException) e;
-        else if (e instanceof RuntimeException)
+        } else if (e instanceof RuntimeException) {
             throw (RuntimeException) e;
+        }
     }
 
     public void delegateInsertRow(String name, int value) throws SQLException {
-        bean.insertRow(name, value);
-    }
-
-    public int countRows() throws SQLException {
-        Connection conn = null;
-        PreparedStatement stmt = null;
-        ResultSet rs = null;
-        int count = -1;
-
-        try {
-            conn = connector.connect();
-            stmt = conn.prepareStatement("SELECT * FROM TESTTABLE", ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
-            rs = stmt.executeQuery();
-            rs.last();
-            count = rs.getRow();
-        }
-        finally {
-            if (rs != null)
-                rs.close();
-            connector.safeClose(stmt);
-            connector.safeClose(conn);
-        }
-
-        return count;
+        bean.insertRow(name, value, null);
     }
 
     public void throwApplicationException() throws SQLException {

Modified: aries/trunk/transaction/transaction-testbundle/src/main/resources/OSGI-INF/blueprint/config.xml
URL: http://svn.apache.org/viewvc/aries/trunk/transaction/transaction-testbundle/src/main/resources/OSGI-INF/blueprint/config.xml?rev=1696456&r1=1696455&r2=1696456&view=diff
==============================================================================
--- aries/trunk/transaction/transaction-testbundle/src/main/resources/OSGI-INF/blueprint/config.xml (original)
+++ aries/trunk/transaction/transaction-testbundle/src/main/resources/OSGI-INF/blueprint/config.xml Tue Aug 18 16:40:50 2015
@@ -1,140 +1,82 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!--
- 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.
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
-           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-           xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0"
-           xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.2.0"
-           default-activation="lazy">
-
-   <tx:enable-annotations/>
-
-   <bean id="connector" class="org.apache.aries.transaction.test.impl.Connector" init-method="initialize">
-       <property name="xads" ref="enlistingDataSource"/>
-       <property name="user" value="user"/>
-       <property name="password" value="password"/>
-   </bean>
-
-   <bean id="notSupportedBeanImpl" class="org.apache.aries.transaction.test.impl.TestBeanImpl">
-       <tx:transaction method="*" value="NotSupported"/>
-       <property name="testBean" ref="mandatoryBeanImpl"/>
-       <property name="connector" ref="connector"/>
-   </bean>
-   
-   <service id="notSupportedBean" ref="notSupportedBeanImpl" interface="org.apache.aries.transaction.test.TestBean">
-       <service-properties>
-           <entry key="tranAttribute" value="NotSupported"/>
-       </service-properties>
-   </service>
-
-   <bean id="requiredBeanImpl" class="org.apache.aries.transaction.test.impl.TestBeanImpl">
-       <tx:transaction method="insertRow throw*" value="Required"/>
-       <tx:transaction method="countRows" value="NotSupported"/>
-       <property name="connector" ref="connector"/>
-   </bean>
-   
-   <service id="requiredBean" ref="requiredBeanImpl" interface="org.apache.aries.transaction.test.TestBean">
-       <service-properties>
-           <entry key="tranAttribute" value="Required"/>
-       </service-properties>
-   </service>
-
-   <bean id="supportsBeanImpl" class="org.apache.aries.transaction.test.impl.TestBeanImpl">
-       <tx:transaction method="*" value="Supports"/>
-       <tx:transaction method="countRows" value="NotSupported"/>
-       <property name="testBean" ref="mandatoryBeanImpl"/>
-       <property name="connector" ref="connector"/>
-   </bean>
-   
-   <service id="supportsBean" ref="supportsBeanImpl" interface="org.apache.aries.transaction.test.TestBean">
-       <service-properties>
-           <entry key="tranAttribute" value="Supports"/>
-       </service-properties>
-   </service>
-
-   <service id="requiresNewBean" interface="org.apache.aries.transaction.test.TestBean">
-       <service-properties>
-           <entry key="tranAttribute" value="RequiresNew"/>
-       </service-properties>
-       <bean class="org.apache.aries.transaction.test.impl.TestBeanImpl">
-           <tx:transaction method="insertRow throw*" value="RequiresNew"/>
-           <tx:transaction method="countRows" value="NotSupported"/>
-           <property name="connector" ref="connector"/>
-       </bean>
-   </service>
-
-   <bean id="mandatoryBeanImpl" class="org.apache.aries.transaction.test.impl.TestBeanImpl">
-       <tx:transaction method="insertRow throw*" value="Mandatory"/>
-       <tx:transaction method="countRows" value="NotSupported"/>
-       <property name="connector" ref="connector"/>
-   </bean>
-
-   <service id="mandatoryBean" ref="mandatoryBeanImpl" interface="org.apache.aries.transaction.test.TestBean">
-       <service-properties>
-           <entry key="tranAttribute" value="Mandatory"/>
-       </service-properties>
-   </service>
-
-   <bean id="neverBeanImpl" class="org.apache.aries.transaction.test.impl.TestBeanImpl">
-       <tx:transaction method="insertRow" value="Never"/>
-       <tx:transaction method="countRows" value="NotSupported"/>
-       <property name="testBean" ref="mandatoryBeanImpl"/>
-       <property name="connector" ref="connector"/>
-   </bean>
-   
-   <service id="neverBean" ref="neverBeanImpl" interface="org.apache.aries.transaction.test.TestBean">
-       <service-properties>
-           <entry key="tranAttribute" value="Never"/>
-       </service-properties>
-   </service>
-
-   <bean id="invalidBeanImpl" class="org.apache.aries.transaction.test.impl.TestBeanImpl">
-       <tx:transaction method="ins*" value="Never"/>
-       <tx:transaction method="*Row" value="NotSupported"/>
-       <property name="connector" ref="connector"/>
-   </bean>
-
-   <service id="invalidBean" ref="invalidBeanImpl" interface="org.apache.aries.transaction.test.TestBean">
-       <service-properties>
-           <entry key="tranAttribute" value="Invalid"/>
-       </service-properties>
-   </service>
-
-    <bean id="mandatoryAnnotatedBeanImpl" class="org.apache.aries.transaction.test.impl.AnnotatedTestBeanImpl">
-        <property name="connector" ref="connector"/>
-    </bean>
-
-    <service id="mandatoryAnnotatedBean" ref="mandatoryAnnotatedBeanImpl" interface="org.apache.aries.transaction.test.TestBean">
-        <service-properties>
-            <entry key="tranAttribute" value="MandatoryAnnotated"/>
-        </service-properties>
-    </service>
-
-    <bean id="mandatoryJtaAnnotatedBeanImpl" class="org.apache.aries.transaction.test.impl.JtaAnnotatedTestBeanImpl">
-        <property name="connector" ref="connector"/>
+<!-- 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. -->
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:tx="http://aries.apache.org/xmlns/transactions/v1.2.0"
+    default-activation="lazy">
+
+    <tx:enable-annotations />
+
+    <reference id="enlistingDataSource" interface="javax.sql.DataSource" filter="(osgi.jndi.service.name=jdbc/xads)" />
+
+    <bean id="connector" class="org.apache.aries.transaction.test.impl.Connector" init-method="initialize" destroy-method="close">
+        <property name="xads" ref="enlistingDataSource" />
+        <property name="user" value="" />
+        <property name="password" value="" />
     </bean>
 
-    <service id="mandatoryJtaAnnotatedBean" ref="mandatoryJtaAnnotatedBeanImpl" interface="org.apache.aries.transaction.test.TestBean">
+    <service id="counter" ref="connector" interface="org.apache.aries.transaction.test.Counter">
+    </service>
+
+    <bean id="mandatoryBeanImpl" class="org.apache.aries.transaction.test.impl.MandatoryTestBeanImpl">
+        <property name="connector" ref="connector" />
+    </bean>
+    <service id="mandatoryBean" ref="mandatoryBeanImpl" interface="org.apache.aries.transaction.test.TestBean">
+        <service-properties>
+            <entry key="tranAttribute" value="Mandatory" />
+        </service-properties>
+    </service>
+
+    <bean id="notSupportedBeanImpl" class="org.apache.aries.transaction.test.impl.NotSupportedTestBeanImpl">
+        <property name="testBean" ref="mandatoryBeanImpl" />
+        <property name="connector" ref="connector" />
+    </bean>
+    <service id="notSupportedBean" ref="notSupportedBeanImpl" interface="org.apache.aries.transaction.test.TestBean">
         <service-properties>
-            <entry key="tranAttribute" value="MandatoryJtaAnnotated"/>
+            <entry key="tranAttribute" value="NotSupported" />
         </service-properties>
     </service>
-    
-    <reference id="enlistingDataSource" interface="javax.sql.DataSource" filter="(osgi.jndi.service.name=jdbc/xads)"/>
+
+    <bean id="requiredBeanImpl" class="org.apache.aries.transaction.test.impl.RequiredTestBeanImpl">
+        <property name="connector" ref="connector" />
+    </bean>
+    <service id="requiredBean" ref="requiredBeanImpl" interface="org.apache.aries.transaction.test.TestBean">
+        <service-properties>
+            <entry key="tranAttribute" value="Required" />
+        </service-properties>
+    </service>
+
+    <bean id="supportsBeanImpl" class="org.apache.aries.transaction.test.impl.SupportsTestBeanImpl">
+        <property name="testBean" ref="mandatoryBeanImpl" />
+        <property name="connector" ref="connector" />
+    </bean>
+    <service id="supportsBean" ref="supportsBeanImpl" interface="org.apache.aries.transaction.test.TestBean">
+        <service-properties>
+            <entry key="tranAttribute" value="Supports" />
+        </service-properties>
+    </service>
+
+    <bean id="requiresNewBeanImpl" class="org.apache.aries.transaction.test.impl.RequiresNewTestBeanImpl">
+        <property name="connector" ref="connector" />
+    </bean>
+    <service id="requiresNewBean" ref="requiresNewBeanImpl" interface="org.apache.aries.transaction.test.TestBean">
+        <service-properties>
+            <entry key="tranAttribute" value="RequiresNew" />
+        </service-properties>
+    </service>
+
+    <bean id="neverBeanImpl" class="org.apache.aries.transaction.test.impl.NeverTestBeanImpl">
+        <property name="testBean" ref="mandatoryBeanImpl" />
+        <property name="connector" ref="connector" />
+    </bean>
+    <service id="neverBean" ref="neverBeanImpl" interface="org.apache.aries.transaction.test.TestBean">
+        <service-properties>
+            <entry key="tranAttribute" value="Never" />
+        </service-properties>
+    </service>
+
 </blueprint>