提交 e4b6bfce 编写于 作者: T terrymanu

remove XATransactionManager.getUnderlyingTransactionManager

上级 b3abc3b9
......@@ -76,7 +76,7 @@ public final class XAShardingTransactionEngine implements ShardingTransactionEng
@SneakyThrows
@Override
public boolean isInTransaction() {
return Status.STATUS_NO_TRANSACTION != xaTransactionManager.getUnderlyingTransactionManager().getTransaction().getStatus();
return Status.STATUS_NO_TRANSACTION != xaTransactionManager.getStatus();
}
@SneakyThrows
......
......@@ -21,7 +21,6 @@ import com.atomikos.icatch.config.UserTransactionService;
import com.atomikos.icatch.config.UserTransactionServiceImp;
import com.atomikos.icatch.jta.UserTransactionManager;
import io.shardingsphere.transaction.xa.spi.XATransactionManager;
import lombok.Getter;
import lombok.SneakyThrows;
import javax.sql.XADataSource;
......@@ -35,7 +34,6 @@ import javax.transaction.xa.XAResource;
*/
public final class AtomikosTransactionManager implements XATransactionManager {
@Getter
private final UserTransactionManager underlyingTransactionManager = new UserTransactionManager();
private final UserTransactionService userTransactionService = new UserTransactionServiceImp();
......@@ -82,6 +80,12 @@ public final class AtomikosTransactionManager implements XATransactionManager {
}
}
@Override
@SneakyThrows
public int getStatus() {
return underlyingTransactionManager.getStatus();
}
@Override
public void destroy() {
userTransactionService.shutdown(true);
......
......@@ -36,9 +36,6 @@ import org.mockito.junit.MockitoJUnitRunner;
import javax.sql.DataSource;
import javax.sql.XADataSource;
import javax.transaction.Status;
import javax.transaction.SystemException;
import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
import javax.transaction.xa.XAResource;
import java.lang.reflect.Field;
import java.sql.Connection;
......@@ -66,22 +63,13 @@ public class XAShardingTransactionEngineTest {
@Mock
private XATransactionManager xaTransactionManager;
@Mock
private TransactionManager transactionManager;
@Mock
private Transaction transaction;
@Before
public void setUp() throws SystemException {
setMockXATransactionManager(xaShardingTransactionEngine, xaTransactionManager);
when(xaTransactionManager.getUnderlyingTransactionManager()).thenReturn(transactionManager);
when(transactionManager.getTransaction()).thenReturn(transaction);
public void setUp() throws ReflectiveOperationException {
setXATransactionManager();
}
@SneakyThrows
private void setMockXATransactionManager(final XAShardingTransactionEngine xaShardingTransactionEngine, final XATransactionManager xaTransactionManager) {
Field field = xaShardingTransactionEngine.getClass().getDeclaredField("xaTransactionManager");
private void setXATransactionManager() throws ReflectiveOperationException {
Field field = XAShardingTransactionEngine.class.getDeclaredField("xaTransactionManager");
field.setAccessible(true);
field.set(xaShardingTransactionEngine, xaTransactionManager);
}
......@@ -116,14 +104,14 @@ public class XAShardingTransactionEngineTest {
}
@Test
public void assertIsInTransaction() throws SystemException {
when(transaction.getStatus()).thenReturn(Status.STATUS_ACTIVE);
public void assertIsInTransaction() {
when(xaTransactionManager.getStatus()).thenReturn(Status.STATUS_ACTIVE);
assertTrue(xaShardingTransactionEngine.isInTransaction());
}
@Test
public void assertIsNotInTransaction() throws SystemException {
when(transaction.getStatus()).thenReturn(Status.STATUS_NO_TRANSACTION);
public void assertIsNotInTransaction() {
when(xaTransactionManager.getStatus()).thenReturn(Status.STATUS_NO_TRANSACTION);
assertFalse(xaShardingTransactionEngine.isInTransaction());
}
......
......@@ -20,7 +20,7 @@ package io.shardingsphere.transaction.xa.fixture;
import io.shardingsphere.transaction.xa.spi.XATransactionManager;
import javax.sql.XADataSource;
import javax.transaction.TransactionManager;
import javax.transaction.Status;
import javax.transaction.xa.XAResource;
public final class FixtureXATransactionManager implements XATransactionManager {
......@@ -29,11 +29,6 @@ public final class FixtureXATransactionManager implements XATransactionManager {
public void startup() {
}
@Override
public TransactionManager getUnderlyingTransactionManager() {
return null;
}
@Override
public void registerRecoveryResource(final String dataSourceName, final XADataSource xaDataSource) {
}
......@@ -58,6 +53,11 @@ public final class FixtureXATransactionManager implements XATransactionManager {
public void rollback() {
}
@Override
public int getStatus() {
return Status.STATUS_NO_TRANSACTION;
}
@Override
public void destroy() {
}
......
......@@ -20,7 +20,6 @@ package io.shardingsphere.transaction.xa.spi;
import io.shardingsphere.transaction.core.ShardingTransactionManager;
import javax.sql.XADataSource;
import javax.transaction.TransactionManager;
import javax.transaction.xa.XAResource;
/**
......@@ -36,13 +35,6 @@ public interface XATransactionManager extends ShardingTransactionManager {
*/
void startup();
/**
* Get transaction manager for vendor provided.
*
* @return transaction manager
*/
TransactionManager getUnderlyingTransactionManager();
/**
* Register recovery resource.
*
......
......@@ -40,4 +40,11 @@ public interface ShardingTransactionManager {
* Rollback transaction.
*/
void rollback();
/**
* Get transaction status.
*
* @return transaction status
*/
int getStatus();
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册