You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ti...@apache.org on 2016/02/29 19:52:40 UTC
svn commit: r1732931 - in /aries/trunk/tx-control/tx-control-itests: ./
src/test/java/org/apache/aries/tx/control/itests/
Author: timothyjward
Date: Mon Feb 29 18:52:39 2016
New Revision: 1732931
URL: http://svn.apache.org/viewvc?rev=1732931&view=rev
Log:
[tx-control] Add a Spring JdbcTemplate test
Added:
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/AbstractTransactionTest.java
- copied, changed from r1732464, aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/ExceptionManagementTransactionTest.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/pom.xml
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/ExceptionManagementTransactionTest.java
aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/SimpleTransactionTest.java
Modified: aries/trunk/tx-control/tx-control-itests/pom.xml
URL: http://svn.apache.org/viewvc/aries/trunk/tx-control/tx-control-itests/pom.xml?rev=1732931&r1=1732930&r2=1732931&view=diff
==============================================================================
--- aries/trunk/tx-control/tx-control-itests/pom.xml (original)
+++ aries/trunk/tx-control/tx-control-itests/pom.xml Mon Feb 29 18:52:39 2016
@@ -68,11 +68,43 @@
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.jdbc</artifactId>
<version>1.0.0</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.191</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jdbc</artifactId>
+ <version>3.1.4.RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-tx</artifactId>
+ <version>3.1.4.RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>3.1.4.RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>3.1.4.RELEASE</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>3.1.4.RELEASE</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.aries.testsupport</groupId>
Copied: aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/AbstractTransactionTest.java (from r1732464, aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/ExceptionManagementTransactionTest.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?p2=aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/AbstractTransactionTest.java&p1=aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/ExceptionManagementTransactionTest.java&r1=1732464&r2=1732931&rev=1732931&view=diff
==============================================================================
--- aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/ExceptionManagementTransactionTest.java (original)
+++ aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/AbstractTransactionTest.java Mon Feb 29 18:52:39 2016
@@ -18,19 +18,13 @@
*/
package org.apache.aries.tx.control.itests;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.fail;
import static org.ops4j.pax.exam.CoreOptions.junitBundles;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
import static org.ops4j.pax.exam.CoreOptions.options;
import static org.ops4j.pax.exam.CoreOptions.systemProperty;
import static org.ops4j.pax.exam.CoreOptions.when;
-import java.net.URISyntaxException;
import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
@@ -40,7 +34,6 @@ import javax.inject.Inject;
import org.apache.aries.itest.AbstractIntegrationTest;
import org.junit.After;
import org.junit.Before;
-import org.junit.Test;
import org.junit.runner.RunWith;
import org.ops4j.pax.exam.Configuration;
import org.ops4j.pax.exam.CoreOptions;
@@ -49,17 +42,15 @@ import org.ops4j.pax.exam.junit.PaxExam;
import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
import org.ops4j.pax.exam.spi.reactors.PerClass;
import org.osgi.service.jdbc.DataSourceFactory;
-import org.osgi.service.transaction.control.ScopedWorkException;
import org.osgi.service.transaction.control.TransactionControl;
-import org.osgi.service.transaction.control.TransactionRolledBackException;
import org.osgi.service.transaction.control.jdbc.JDBCConnectionProviderFactory;
@RunWith(PaxExam.class)
@ExamReactorStrategy(PerClass.class)
-public class ExceptionManagementTransactionTest extends AbstractIntegrationTest {
+public abstract class AbstractTransactionTest extends AbstractIntegrationTest {
@Inject
- TransactionControl txControl;
+ protected TransactionControl txControl;
@Inject
JDBCConnectionProviderFactory resourceProviderFactory;
@@ -67,7 +58,7 @@ public class ExceptionManagementTransact
@Inject
DataSourceFactory dsf;
- Connection connection;
+ protected Connection connection;
@Before
public void setUp() {
@@ -83,8 +74,8 @@ public class ExceptionManagementTransact
try {
s.execute("DROP TABLE TEST_TABLE");
} catch (SQLException sqle) {}
- s.execute("CREATE TABLE TEST_TABLE ( message varchar(255) )");
- return null;
+ s.execute("CREATE TABLE TEST_TABLE ( message varchar(255) )");
+ return null;
});
}
@@ -95,113 +86,6 @@ public class ExceptionManagementTransact
.execute("DROP TABLE TEST_TABLE"));
}
-
- @Test
- public void testRuntimeException() {
-
- RuntimeException toThrow = new RuntimeException("Bang!");
-
- try {
- txControl.required(() -> {
- connection.createStatement()
- .execute("Insert into TEST_TABLE values ( 'Hello World!' )");
- throw toThrow;
- });
- fail("An exception should occur!");
- } catch (ScopedWorkException swe) {
- assertSame(toThrow, swe.getCause());
- }
-
- assertRollback();
- }
-
- @Test
- public void testCheckedException() {
- URISyntaxException toThrow = new URISyntaxException("yuck", "Bang!");
-
- try {
- txControl.required(() -> {
- connection.createStatement()
- .execute("Insert into TEST_TABLE values ( 'Hello World!' )");
- throw toThrow;
- });
- fail("An exception should occur!");
- // We have to catch Exception as the compiler complains
- // otherwise
- } catch (ScopedWorkException swe) {
- assertSame(toThrow, swe.getCause());
- }
-
- assertRollback();
- }
-
- @Test
- public void testPreCompletionException() {
- RuntimeException toThrow = new RuntimeException("Bang!");
-
- try {
- txControl.required(() -> {
- txControl.getCurrentContext().preCompletion(() -> {
- throw toThrow;
- });
- return connection.createStatement()
- .execute("Insert into TEST_TABLE values ( 'Hello World!' )");
- });
- fail("An exception should occur!");
- // We have to catch Exception as the compiler complains
- // otherwise
- } catch (TransactionRolledBackException tre) {
- assertSame(toThrow, tre.getCause());
- }
-
- assertRollback();
- }
-
- @Test
- public void testNoRollbackForException() {
- RuntimeException toThrow = new RuntimeException("Bang!");
-
- try {
- txControl.build()
- .noRollbackFor(RuntimeException.class)
- .required(() -> {
- PreparedStatement ps = connection
- .prepareStatement("Insert into TEST_TABLE values ( ? )");
-
- ps.setString(1, "Hello World!");
- ps.executeUpdate();
-
- throw toThrow;
- });
- fail("An exception should occur!");
- // We have to catch Exception as the compiler complains
- // otherwise
- } catch (ScopedWorkException swe) {
- assertSame(toThrow, swe.getCause());
- }
-
- assertEquals("1: Hello World!", txControl.notSupported(() -> {
- Statement s = connection.createStatement();
-
- ResultSet rs = s.executeQuery("Select count(*) from TEST_TABLE");
- rs.next();
- int count = rs.getInt(1);
-
- rs = s.executeQuery("Select message from TEST_TABLE ORDER BY message");
-
- rs.next();
- return "" + count + ": " + rs.getString(1);
- }));
- }
-
- private void assertRollback() {
- assertEquals(Integer.valueOf(0), txControl.notSupported(() -> {
- ResultSet rs = connection.createStatement()
- .executeQuery("Select count(*) from TEST_TABLE");
- rs.next();
- return rs.getInt(1);
- }));
- }
@Configuration
public Option[] configuration() {
@@ -209,14 +93,16 @@ public class ExceptionManagementTransact
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(),
- mavenBundle("org.apache.felix", "org.apache.felix.coordinator").versionAsInProject(),
- mavenBundle("org.apache.aries.tx-control", "tx-control-service-local").versionAsInProject(),
- mavenBundle("com.h2database", "h2").versionAsInProject(),
- mavenBundle("org.apache.aries.tx-control", "tx-control-provider-jdbc-local").versionAsInProject(),
+ localTxControlService(),
+ localJdbcResourceProviderWithH2(),
+ when(testSpecificOptions != null).useOptions(testSpecificOptions),
mavenBundle("org.ops4j.pax.logging", "pax-logging-api").versionAsInProject(),
mavenBundle("org.ops4j.pax.logging", "pax-logging-service").versionAsInProject()
@@ -227,5 +113,20 @@ public class ExceptionManagementTransact
*/
);
}
+
+ public Option localTxControlService() {
+ return CoreOptions.composite(
+ mavenBundle("org.apache.felix", "org.apache.felix.coordinator").versionAsInProject(),
+ mavenBundle("org.apache.aries.tx-control", "tx-control-service-local").versionAsInProject());
+ }
+ public Option localJdbcResourceProviderWithH2() {
+ return CoreOptions.composite(
+ mavenBundle("com.h2database", "h2").versionAsInProject(),
+ mavenBundle("org.apache.aries.tx-control", "tx-control-provider-jdbc-local").versionAsInProject());
+ }
+
+ protected Option testSpecificOptions() {
+ return null;
+ }
}
Modified: aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/ExceptionManagementTransactionTest.java
URL: http://svn.apache.org/viewvc/aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/ExceptionManagementTransactionTest.java?rev=1732931&r1=1732930&r2=1732931&view=diff
==============================================================================
--- aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/ExceptionManagementTransactionTest.java (original)
+++ aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/ExceptionManagementTransactionTest.java Mon Feb 29 18:52:39 2016
@@ -21,80 +21,23 @@ package org.apache.aries.tx.control.ites
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.fail;
-import static org.ops4j.pax.exam.CoreOptions.junitBundles;
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.systemProperty;
-import static org.ops4j.pax.exam.CoreOptions.when;
import java.net.URISyntaxException;
-import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
-import java.sql.SQLException;
import java.sql.Statement;
-import java.util.Properties;
-import javax.inject.Inject;
-
-import org.apache.aries.itest.AbstractIntegrationTest;
-import org.junit.After;
-import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Configuration;
-import org.ops4j.pax.exam.CoreOptions;
-import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.PaxExam;
import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
import org.ops4j.pax.exam.spi.reactors.PerClass;
-import org.osgi.service.jdbc.DataSourceFactory;
import org.osgi.service.transaction.control.ScopedWorkException;
-import org.osgi.service.transaction.control.TransactionControl;
import org.osgi.service.transaction.control.TransactionRolledBackException;
-import org.osgi.service.transaction.control.jdbc.JDBCConnectionProviderFactory;
@RunWith(PaxExam.class)
@ExamReactorStrategy(PerClass.class)
-public class ExceptionManagementTransactionTest extends AbstractIntegrationTest {
-
- @Inject
- TransactionControl txControl;
-
- @Inject
- JDBCConnectionProviderFactory resourceProviderFactory;
-
- @Inject
- DataSourceFactory dsf;
-
- Connection connection;
-
- @Before
- public void setUp() {
- Properties jdbc = new Properties();
-
- jdbc.setProperty(DataSourceFactory.JDBC_URL, "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1");
-
- connection = resourceProviderFactory.getProviderFor(dsf, jdbc, null).getResource(txControl);
-
-
- txControl.required(() -> {
- Statement s = connection.createStatement();
- try {
- s.execute("DROP TABLE TEST_TABLE");
- } catch (SQLException sqle) {}
- s.execute("CREATE TABLE TEST_TABLE ( message varchar(255) )");
- return null;
- });
- }
-
- @After
- public void tearDown() {
-
- txControl.required(() -> connection.createStatement()
- .execute("DROP TABLE TEST_TABLE"));
-
- }
+public class ExceptionManagementTransactionTest extends AbstractTransactionTest {
@Test
public void testRuntimeException() {
@@ -202,30 +145,4 @@ public class ExceptionManagementTransact
return rs.getInt(1);
}));
}
-
- @Configuration
- public Option[] configuration() {
- String localRepo = System.getProperty("maven.repo.local");
- if (localRepo == null) {
- localRepo = System.getProperty("org.ops4j.pax.url.mvn.localRepository");
- }
- 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(),
- mavenBundle("org.apache.felix", "org.apache.felix.coordinator").versionAsInProject(),
- mavenBundle("org.apache.aries.tx-control", "tx-control-service-local").versionAsInProject(),
- mavenBundle("com.h2database", "h2").versionAsInProject(),
- mavenBundle("org.apache.aries.tx-control", "tx-control-provider-jdbc-local").versionAsInProject(),
- 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(),
- */
- );
- }
-
}
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=1732931&r1=1732930&r2=1732931&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 Mon Feb 29 18:52:39 2016
@@ -19,78 +19,21 @@
package org.apache.aries.tx.control.itests;
import static org.junit.Assert.assertEquals;
-import static org.ops4j.pax.exam.CoreOptions.junitBundles;
-import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.options;
-import static org.ops4j.pax.exam.CoreOptions.systemProperty;
-import static org.ops4j.pax.exam.CoreOptions.when;
-import java.sql.Connection;
import java.sql.ResultSet;
-import java.sql.SQLException;
import java.sql.Statement;
import java.util.Arrays;
-import java.util.Properties;
-import javax.inject.Inject;
-
-import org.apache.aries.itest.AbstractIntegrationTest;
-import org.junit.After;
-import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.ops4j.pax.exam.Configuration;
-import org.ops4j.pax.exam.CoreOptions;
-import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.junit.PaxExam;
import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
import org.ops4j.pax.exam.spi.reactors.PerClass;
-import org.osgi.service.jdbc.DataSourceFactory;
-import org.osgi.service.transaction.control.TransactionControl;
-import org.osgi.service.transaction.control.jdbc.JDBCConnectionProviderFactory;
@RunWith(PaxExam.class)
@ExamReactorStrategy(PerClass.class)
-public class SimpleTransactionTest extends AbstractIntegrationTest {
-
- @Inject
- TransactionControl txControl;
-
- @Inject
- JDBCConnectionProviderFactory resourceProviderFactory;
-
- @Inject
- DataSourceFactory dsf;
-
- Connection connection;
-
- @Before
- public void setUp() {
- Properties jdbc = new Properties();
-
- jdbc.setProperty(DataSourceFactory.JDBC_URL, "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1");
-
- connection = resourceProviderFactory.getProviderFor(dsf, jdbc, null).getResource(txControl);
-
-
- txControl.required(() -> {
- Statement s = connection.createStatement();
- try {
- s.execute("DROP TABLE TEST_TABLE");
- } catch (SQLException sqle) {}
- s.execute("CREATE TABLE TEST_TABLE ( message varchar(255) )");
- return null;
- });
- }
-
- @After
- public void tearDown() {
-
- txControl.required(() -> connection.createStatement()
- .execute("DROP TABLE TEST_TABLE"));
+public class SimpleTransactionTest extends AbstractTransactionTest {
- }
-
@Test
public void testTx() {
txControl.required(() -> connection.createStatement()
@@ -219,29 +162,5 @@ public class SimpleTransactionTest exten
return "" + count + ": " + rs.getString(1);
}));
}
-
- @Configuration
- public Option[] configuration() {
- String localRepo = System.getProperty("maven.repo.local");
- if (localRepo == null) {
- localRepo = System.getProperty("org.ops4j.pax.url.mvn.localRepository");
- }
- 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(),
- mavenBundle("org.apache.felix", "org.apache.felix.coordinator").versionAsInProject(),
- mavenBundle("org.apache.aries.tx-control", "tx-control-service-local").versionAsInProject(),
- mavenBundle("com.h2database", "h2").versionAsInProject(),
- mavenBundle("org.apache.aries.tx-control", "tx-control-provider-jdbc-local").versionAsInProject(),
- 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(),
- */
- );
- }
-
+
}
Added: 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=1732931&view=auto
==============================================================================
--- aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/SpringJdbcTemplateTransactionTest.java (added)
+++ aries/trunk/tx-control/tx-control-itests/src/test/java/org/apache/aries/tx/control/itests/SpringJdbcTemplateTransactionTest.java Mon Feb 29 18:52:39 2016
@@ -0,0 +1,72 @@
+/*
+ * 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 WARRANTIESOR 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.tx.control.itests;
+
+import static org.junit.Assert.assertEquals;
+import static org.ops4j.pax.exam.CoreOptions.composite;
+import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
+import org.ops4j.pax.exam.spi.reactors.PerClass;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.StatementCallback;
+import org.springframework.jdbc.datasource.SingleConnectionDataSource;
+
+@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerClass.class)
+public class SpringJdbcTemplateTransactionTest extends AbstractTransactionTest {
+
+ JdbcTemplate jdbcTemplate;
+
+ @Before
+ public void setUp() {
+ super.setUp();
+
+ jdbcTemplate = new JdbcTemplate(new SingleConnectionDataSource(connection, false));
+ }
+
+ @Test
+ public void testJdbcTemplateTx() {
+
+ StatementCallback<Boolean> callback = s ->
+ s.execute("Insert into TEST_TABLE values ( 'Hello World!' )");
+
+ txControl.required(() -> jdbcTemplate.execute(callback));
+
+ assertEquals("Hello World!", txControl.notSupported(() ->
+ jdbcTemplate.queryForObject("Select * from TEST_TABLE", String.class)));
+ }
+
+
+ @Override
+ protected Option testSpecificOptions() {
+ return composite(
+ mavenBundle("org.springframework", "spring-jdbc").versionAsInProject(),
+ mavenBundle("org.springframework", "spring-tx").versionAsInProject(),
+ mavenBundle("org.springframework", "spring-beans").versionAsInProject(),
+ mavenBundle("org.springframework", "spring-core").versionAsInProject(),
+ mavenBundle("org.springframework", "spring-context").versionAsInProject());
+ }
+
+}