Skip to content

Commit 6b55042

Browse files
committed
XA Test with existing transaction
1 parent ab389dc commit 6b55042

File tree

2 files changed

+28
-5
lines changed

2 files changed

+28
-5
lines changed

src/test/java/org/mybatis/spring/submitted/xa/UserServiceTest.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
*/
1616
package org.mybatis.spring.submitted.xa;
1717

18+
import javax.transaction.UserTransaction;
19+
1820
import org.junit.Assert;
1921
import org.junit.Test;
2022
import org.junit.runner.RunWith;
@@ -25,6 +27,8 @@
2527
@RunWith(value = SpringJUnit4ClassRunner.class)
2628
@ContextConfiguration(locations = "classpath:org/mybatis/spring/submitted/xa/applicationContext.xml")
2729
public class UserServiceTest {
30+
31+
@Autowired UserTransaction userTransaction;
2832

2933
@Autowired
3034
private UserService userService;
@@ -47,4 +51,22 @@ public void testRollback() {
4751
Assert.assertFalse(userService.checkUserExists(user.getId()));
4852
}
4953

54+
@Test
55+
public void testCommitWithExistingTx() throws Exception {
56+
userTransaction.begin();
57+
User user = new User(3, "Pocoyo");
58+
userService.saveWithNoFailure(user);
59+
userTransaction.commit();
60+
Assert.assertTrue(userService.checkUserExists(user.getId()));
61+
}
62+
63+
@Test
64+
public void testRollbackWithExistingTx() throws Exception {
65+
userTransaction.begin();
66+
User user = new User(4, "Pocoyo");
67+
userService.saveWithNoFailure(user);
68+
userTransaction.rollback();
69+
Assert.assertFalse(userService.checkUserExists(user.getId()));
70+
}
71+
5072
}

src/test/java/org/mybatis/spring/submitted/xa/applicationContext.xml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
2525
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
2626
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
27-
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
27+
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
28+
default-autowire="byName">
2829

2930
<bean id="userTransactionService" class="com.atomikos.icatch.config.UserTransactionServiceImp"
3031
init-method="init" destroy-method="shutdownForce">
@@ -42,7 +43,7 @@
4243
</bean>
4344

4445
<!-- Construct Atomikos UserTransactionManager, needed to configure Spring -->
45-
<bean id="AtomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager"
46+
<bean id="transactionManager" class="com.atomikos.icatch.jta.UserTransactionManager"
4647
init-method="init" destroy-method="close" depends-on="userTransactionService">
4748

4849
<!-- IMPORTANT: disable startup because the userTransactionService above
@@ -55,7 +56,7 @@
5556
</bean>
5657

5758
<!-- Also use Atomikos UserTransactionImp, needed to configure Spring -->
58-
<bean id="AtomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp"
59+
<bean id="userTransaction" class="com.atomikos.icatch.jta.UserTransactionImp"
5960
depends-on="userTransactionService">
6061
<property name="transactionTimeout" value="300" />
6162
</bean>
@@ -64,8 +65,8 @@
6465
<bean id="JtaTransactionManager"
6566
class="org.springframework.transaction.jta.JtaTransactionManager"
6667
depends-on="userTransactionService">
67-
<property name="transactionManager" ref="AtomikosTransactionManager" />
68-
<property name="userTransaction" ref="AtomikosUserTransaction" />
68+
<property name="transactionManager" ref="transactionManager" />
69+
<property name="userTransaction" ref="userTransaction" />
6970
</bean>
7071

7172
<tx:annotation-driven transaction-manager="JtaTransactionManager" />

0 commit comments

Comments
 (0)