Author: timothyjward
Date: Tue Mar  1 00:36:37 2016
New Revision: 1732984

URL: http://svn.apache.org/viewvc?rev=1732984&view=rev
Log:
[tx-control] Test using remote H2 in addition to local embedded, also test tx 
suspension

Modified:
    
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/AbstractTransactionTest.java
    
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/SimpleTransactionTest.java
    
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/SpringJdbcTemplateTransactionTest.java

Modified: 
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/AbstractTransactionTest.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/AbstractTransactionTest.java?rev=1732984&r1=1732983&r2=1732984&view=diff
==============================================================================
--- 
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/AbstractTransactionTest.java
 (original)
+++ 
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/AbstractTransactionTest.java
 Tue Mar  1 00:36:37 2016
@@ -32,6 +32,7 @@ import java.util.Properties;
 import javax.inject.Inject;
 
 import org.apache.aries.itest.AbstractIntegrationTest;
+import org.h2.tools.Server;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.runner.RunWith;
@@ -49,6 +50,8 @@ import org.osgi.service.transaction.cont
 @ExamReactorStrategy(PerClass.class)
 public abstract class AbstractTransactionTest extends AbstractIntegrationTest {
 
+       private static final String REMOTE_DB_PROPERTY = 
"org.apache.aries.tx.control.itests.remotedb";
+
        @Inject
        protected TransactionControl txControl;
 
@@ -60,14 +63,27 @@ public abstract class AbstractTransactio
        
        protected Connection connection;
 
+       private Server server;
+
        @Before
-       public void setUp() {
+       public void setUp() throws Exception {
                Properties jdbc = new Properties();
                
-               jdbc.setProperty(DataSourceFactory.JDBC_URL, 
"jdbc:h2:mem:test;DB_CLOSE_DELAY=-1");
+               Boolean external = Boolean.parseBoolean(REMOTE_DB_PROPERTY);
                
-               connection = resourceProviderFactory.getProviderFor(dsf, jdbc, 
null).getResource(txControl);
+               String jdbcUrl;
+               if(external) {
+                       server = Server.createTcpServer("-tcpPort", "0");
+                       server.start();
+                       
+                       jdbcUrl = "jdbc:h2:tcp://127.0.0.1:" + server.getPort() 
+ "/target/test/db1";
+               } else {
+                       jdbcUrl = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1";
+               }
                
+               jdbc.setProperty(DataSourceFactory.JDBC_URL, jdbcUrl);
+               
+               connection = resourceProviderFactory.getProviderFor(dsf, jdbc, 
null).getResource(txControl);
                
                txControl.required(() -> {
                                Statement s = connection.createStatement();
@@ -84,11 +100,14 @@ public abstract class AbstractTransactio
 
                txControl.required(() -> connection.createStatement()
                                .execute("DROP TABLE TEST_TABLE"));
-
+               
+               if(server != null) {
+                       server.stop();
+               }
        }
 
        @Configuration
-       public Option[] configuration() {
+       public Option[] localH2Configuration() {
                String localRepo = System.getProperty("maven.repo.local");
                if (localRepo == null) {
                        localRepo = 
System.getProperty("org.ops4j.pax.url.mvn.localRepository");
@@ -113,6 +132,34 @@ public abstract class AbstractTransactio
                 */
                );
        }
+
+       @Configuration
+       public Option[] serverH2Configuration() {
+               String localRepo = System.getProperty("maven.repo.local");
+               if (localRepo == null) {
+                       localRepo = 
System.getProperty("org.ops4j.pax.url.mvn.localRepository");
+               }
+               
+               Option testSpecificOptions = testSpecificOptions();
+               
+               return options(junitBundles(), 
systemProperty("org.ops4j.pax.logging.DefaultServiceLog.level").value("INFO"),
+                               when(localRepo != null)
+                               
.useOptions(CoreOptions.vmOption("-Dorg.ops4j.pax.url.mvn.localRepository=" + 
localRepo)),
+                               mavenBundle("org.apache.aries.testsupport", 
"org.apache.aries.testsupport.unit").versionAsInProject(),
+                               localTxControlService(),
+                               localJdbcResourceProviderWithH2(),
+                               
systemProperty(REMOTE_DB_PROPERTY).value("true"),
+                               when(testSpecificOptions != 
null).useOptions(testSpecificOptions),
+                               mavenBundle("org.ops4j.pax.logging", 
"pax-logging-api").versionAsInProject(),
+                               mavenBundle("org.ops4j.pax.logging", 
"pax-logging-service").versionAsInProject()
+                               
+                               /*
+                                * vmOption
+                                * 
("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"),
+                                * waitForFrameworkStartup(),
+                                */
+                               );
+       }
        
        public Option localTxControlService() {
                return CoreOptions.composite(

Modified: 
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/SimpleTransactionTest.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/SimpleTransactionTest.java?rev=1732984&r1=1732983&r2=1732984&view=diff
==============================================================================
--- 
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/SimpleTransactionTest.java
 (original)
+++ 
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/SimpleTransactionTest.java
 Tue Mar  1 00:36:37 2016
@@ -200,4 +200,23 @@ public class SimpleTransactionTest exten
                assertEquals("2: Hello Nested World!", results[0]);
                assertEquals("2: Hello World!", results[1]);
        }
+
+       @Test
+       public void testSuspendedTx() {
+               txControl.required(() -> {        
+                       
+                       connection.createStatement()
+                               .execute("Insert into TEST_TABLE values ( 
'Hello World!' )");
+                       
+                       assertEquals(Integer.valueOf(0), 
txControl.notSupported(() -> {
+                               ResultSet rs = connection.createStatement()
+                                               .executeQuery("Select count(*) 
from TEST_TABLE");
+                               rs.next();
+                               return rs.getInt(1);
+                       }));                
+                       
+                       return null;            
+                       
+               });   
+       }
 }

Modified: 
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/SpringJdbcTemplateTransactionTest.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/SpringJdbcTemplateTransactionTest.java?rev=1732984&r1=1732983&r2=1732984&view=diff
==============================================================================
--- 
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/SpringJdbcTemplateTransactionTest.java
 (original)
+++ 
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/SpringJdbcTemplateTransactionTest.java
 Tue Mar  1 00:36:37 2016
@@ -40,7 +40,7 @@ public class SpringJdbcTemplateTransacti
        JdbcTemplate jdbcTemplate; 
 
        @Before
-       public void setUp() {
+       public void setUp() throws Exception {
                super.setUp();
                
                jdbcTemplate = new JdbcTemplate(new 
SingleConnectionDataSource(connection, false));


Reply via email to