You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by me...@apache.org on 2021/08/29 14:24:48 UTC
[shardingsphere] branch master updated: Fix test cases for
transaction (#12091)
This is an automated email from the ASF dual-hosted git repository.
menghaoran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 3f8a217 Fix test cases for transaction (#12091)
3f8a217 is described below
commit 3f8a217cd0533094e90191e9bcb652efc344db0d
Author: Liang Zhang <te...@163.com>
AuthorDate: Sun Aug 29 22:24:21 2021 +0800
Fix test cases for transaction (#12091)
* Use transaction rule on ShardingSphereTransactionManager
* Use transaction rule on ShardingSphereTransactionManager
---
.../fixture/AbstractShardingSphereTransactionManagerFixture.java | 3 ++-
.../mode/manager/cluster/ClusterContextManager.java | 2 +-
.../mode/manager/cluster/ClusterContextManagerBuilder.java | 4 ++--
.../mode/manager/memory/MemoryContextManagerBuilder.java | 4 ++--
.../mode/manager/standalone/StandaloneContextManagerBuilder.java | 4 ++--
.../transaction/xa/XAShardingSphereTransactionManager.java | 9 +++++----
.../transaction/xa/XAShardingSphereTransactionManagerTest.java | 8 +++++++-
.../base/seata/at/SeataATShardingSphereTransactionManager.java | 3 ++-
.../seata/at/SeataATShardingSphereTransactionManagerTest.java | 5 ++++-
.../transaction/ShardingSphereTransactionManagerEngine.java | 7 ++++---
.../transaction/spi/ShardingSphereTransactionManager.java | 5 +++--
.../transaction/ShardingSphereTransactionManagerEngineTest.java | 8 +++++++-
.../fixture/OtherShardingSphereTransactionManagerFixture.java | 3 ++-
.../core/fixture/ShardingSphereTransactionManagerFixture.java | 3 ++-
14 files changed, 45 insertions(+), 23 deletions(-)
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/fixture/AbstractShardingSphereTransactionManagerFixture.java b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/fixture/AbstractShardingSphereTransactionManagerFixture.java
index c83bacc..1592149 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/fixture/AbstractShardingSphereTransactionManagerFixture.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-core/src/test/java/org/apache/shardingsphere/driver/jdbc/core/fixture/AbstractShardingSphereTransactionManagerFixture.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.driver.jdbc.core.fixture;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.transaction.core.ResourceDataSource;
import org.apache.shardingsphere.transaction.core.TransactionOperationType;
+import org.apache.shardingsphere.transaction.rule.TransactionRule;
import org.apache.shardingsphere.transaction.spi.ShardingSphereTransactionManager;
import javax.sql.DataSource;
@@ -46,7 +47,7 @@ public abstract class AbstractShardingSphereTransactionManagerFixture implements
}
@Override
- public final void init(final DatabaseType databaseType, final Collection<ResourceDataSource> resourceDataSources, final String transactionMangerType) {
+ public final void init(final DatabaseType databaseType, final Collection<ResourceDataSource> resourceDataSources, final TransactionRule transactionRule) {
for (ResourceDataSource each : resourceDataSources) {
dataSourceMap.put(each.getOriginalName(), each.getDataSource());
}
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManager.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManager.java
index 322d32c..4e66a04 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManager.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManager.java
@@ -444,7 +444,7 @@ public final class ClusterContextManager implements ContextManager {
private ShardingSphereTransactionManagerEngine createNewEngine(final DatabaseType databaseType, final Map<String, DataSource> dataSources) {
ShardingSphereTransactionManagerEngine result = new ShardingSphereTransactionManagerEngine();
- result.init(databaseType, dataSources, getTransactionRule().getProps().getProperty("xa-transaction-manager-type"));
+ result.init(databaseType, dataSources, getTransactionRule());
return result;
}
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
index fd442f3..d99f31b 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/ClusterContextManagerBuilder.java
@@ -184,11 +184,11 @@ public final class ClusterContextManagerBuilder implements ContextManagerBuilder
private TransactionContexts createTransactionContexts(final MetaDataContexts metaDataContexts) {
Map<String, ShardingSphereTransactionManagerEngine> engines = new HashMap<>(metaDataContexts.getAllSchemaNames().size(), 1);
- String xaTransactionMangerType = getTransactionRule(metaDataContexts).getProps().getProperty("xa-transaction-manager-type");
+ TransactionRule transactionRule = getTransactionRule(metaDataContexts);
for (String each : metaDataContexts.getAllSchemaNames()) {
ShardingSphereTransactionManagerEngine engine = new ShardingSphereTransactionManagerEngine();
ShardingSphereResource resource = metaDataContexts.getMetaData(each).getResource();
- engine.init(resource.getDatabaseType(), resource.getDataSources(), xaTransactionMangerType);
+ engine.init(resource.getDatabaseType(), resource.getDataSources(), transactionRule);
engines.put(each, engine);
}
return new TransactionContexts(engines);
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-memory-mode/shardingsphere-memory-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/memory/MemoryContextManagerBuilder.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-memory-mode/shardingsphere-memory-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/memory/MemoryContextManagerBuilder.java
index d36a9a2..b31fea4 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-memory-mode/shardingsphere-memory-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/memory/MemoryContextManagerBuilder.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-memory-mode/shardingsphere-memory-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/memory/MemoryContextManagerBuilder.java
@@ -56,11 +56,11 @@ public final class MemoryContextManagerBuilder implements ContextManagerBuilder
private TransactionContexts createTransactionContexts(final MetaDataContexts metaDataContexts) {
Map<String, ShardingSphereTransactionManagerEngine> engines = new HashMap<>(metaDataContexts.getAllSchemaNames().size(), 1);
- String xaTransactionMangerType = getTransactionRule(metaDataContexts).getProps().getProperty("xa-transaction-manager-type");
+ TransactionRule transactionRule = getTransactionRule(metaDataContexts);
for (String each : metaDataContexts.getAllSchemaNames()) {
ShardingSphereTransactionManagerEngine engine = new ShardingSphereTransactionManagerEngine();
ShardingSphereResource resource = metaDataContexts.getMetaData(each).getResource();
- engine.init(resource.getDatabaseType(), resource.getDataSources(), xaTransactionMangerType);
+ engine.init(resource.getDatabaseType(), resource.getDataSources(), transactionRule);
engines.put(each, engine);
}
return new TransactionContexts(engines);
diff --git a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
index 94370af..d032a1b 100644
--- a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
+++ b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-standalone-mode/shardingsphere-standalone-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
@@ -176,11 +176,11 @@ public final class StandaloneContextManagerBuilder implements ContextManagerBuil
private TransactionContexts createTransactionContexts(final MetaDataContexts metaDataContexts) {
Map<String, ShardingSphereTransactionManagerEngine> engines = new HashMap<>(metaDataContexts.getAllSchemaNames().size(), 1);
- String xaTransactionMangerType = getTransactionRule(metaDataContexts).getProps().getProperty("xa-transaction-manager-type");
+ TransactionRule transactionRule = getTransactionRule(metaDataContexts);
for (String each : metaDataContexts.getAllSchemaNames()) {
ShardingSphereTransactionManagerEngine engine = new ShardingSphereTransactionManagerEngine();
ShardingSphereResource resource = metaDataContexts.getMetaData(each).getResource();
- engine.init(resource.getDatabaseType(), resource.getDataSources(), xaTransactionMangerType);
+ engine.init(resource.getDatabaseType(), resource.getDataSources(), transactionRule);
engines.put(each, engine);
}
return new TransactionContexts(engines);
diff --git a/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManager.java b/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManager.java
index d38d940..0f9430c3 100644
--- a/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManager.java
+++ b/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/main/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManager.java
@@ -21,6 +21,7 @@ import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.transaction.core.ResourceDataSource;
import org.apache.shardingsphere.transaction.core.TransactionType;
+import org.apache.shardingsphere.transaction.rule.TransactionRule;
import org.apache.shardingsphere.transaction.spi.ShardingSphereTransactionManager;
import org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource;
import org.apache.shardingsphere.transaction.xa.manager.XATransactionManagerLoader;
@@ -47,14 +48,14 @@ public final class XAShardingSphereTransactionManager implements ShardingSphereT
private final Map<String, XATransactionDataSource> cachedDataSources = new HashMap<>();
private XATransactionManager xaTransactionManager;
-
+
@Override
- public void init(final DatabaseType databaseType, final Collection<ResourceDataSource> resourceDataSources, final String transactionMangerType) {
- xaTransactionManager = XATransactionManagerLoader.getInstance().getXATransactionManager(transactionMangerType);
+ public void init(final DatabaseType databaseType, final Collection<ResourceDataSource> resourceDataSources, final TransactionRule transactionRule) {
+ xaTransactionManager = XATransactionManagerLoader.getInstance().getXATransactionManager(transactionRule.getProps().getProperty("xa-transaction-manager-type"));
xaTransactionManager.init();
resourceDataSources.forEach(each -> cachedDataSources.put(each.getOriginalName(), newXATransactionDataSource(databaseType, each)));
}
-
+
private XATransactionDataSource newXATransactionDataSource(final DatabaseType databaseType, final ResourceDataSource resourceDataSource) {
String resourceName = resourceDataSource.getUniqueResourceName();
DataSource dataSource = resourceDataSource.getDataSource();
diff --git a/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/test/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManagerTest.java b/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/test/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManagerTest.java
index 26be044..c177208 100644
--- a/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/test/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManagerTest.java
+++ b/shardingsphere-transaction/shardingsphere-transaction-2pc/shardingsphere-transaction-xa/shardingsphere-transaction-xa-core/src/test/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManagerTest.java
@@ -22,9 +22,11 @@ import com.zaxxer.hikari.HikariDataSource;
import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
+import org.apache.shardingsphere.transaction.config.TransactionRuleConfiguration;
import org.apache.shardingsphere.transaction.core.ResourceDataSource;
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.apache.shardingsphere.transaction.core.XATransactionManagerType;
+import org.apache.shardingsphere.transaction.rule.TransactionRule;
import org.apache.shardingsphere.transaction.xa.fixture.DataSourceUtils;
import org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource;
import org.junit.After;
@@ -41,6 +43,7 @@ import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
import static org.hamcrest.CoreMatchers.instanceOf;
@@ -57,7 +60,10 @@ public final class XAShardingSphereTransactionManagerTest {
@Before
public void setUp() {
Collection<ResourceDataSource> resourceDataSources = createResourceDataSources(DatabaseTypeRegistry.getActualDatabaseType("H2"));
- xaTransactionManager.init(DatabaseTypeRegistry.getActualDatabaseType("H2"), resourceDataSources, XATransactionManagerType.ATOMIKOS.getType());
+ Properties props = new Properties();
+ props.setProperty("xa-transaction-manager-type", XATransactionManagerType.ATOMIKOS.getType());
+ TransactionRule transactionRule = new TransactionRule(new TransactionRuleConfiguration("XA", props));
+ xaTransactionManager.init(DatabaseTypeRegistry.getActualDatabaseType("H2"), resourceDataSources, transactionRule);
}
@After
diff --git a/shardingsphere-transaction/shardingsphere-transaction-base/shardingsphere-transaction-base-seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManager.java b/shardingsphere-transaction/shardingsphere-transaction-base/shardingsphere-transaction-base-seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManager.java
index 86d382f..f5208b8 100644
--- a/shardingsphere-transaction/shardingsphere-transaction-base/shardingsphere-transaction-base-seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManager.java
+++ b/shardingsphere-transaction/shardingsphere-transaction-base/shardingsphere-transaction-base-seata-at/src/main/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManager.java
@@ -32,6 +32,7 @@ import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.transaction.core.ResourceDataSource;
import org.apache.shardingsphere.transaction.core.TransactionType;
+import org.apache.shardingsphere.transaction.rule.TransactionRule;
import org.apache.shardingsphere.transaction.spi.ShardingSphereTransactionManager;
import javax.sql.DataSource;
@@ -62,7 +63,7 @@ public final class SeataATShardingSphereTransactionManager implements ShardingSp
}
@Override
- public void init(final DatabaseType databaseType, final Collection<ResourceDataSource> resourceDataSources, final String transactionMangerType) {
+ public void init(final DatabaseType databaseType, final Collection<ResourceDataSource> resourceDataSources, final TransactionRule transactionRule) {
if (enableSeataAT) {
initSeataRPCClient();
resourceDataSources.forEach(each -> dataSourceMap.put(each.getOriginalName(), new DataSourceProxy(each.getDataSource())));
diff --git a/shardingsphere-transaction/shardingsphere-transaction-base/shardingsphere-transaction-base-seata-at/src/test/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManagerTest.java b/shardingsphere-transaction/shardingsphere-transaction-base/shardingsphere-transaction-base-seata-at/src/test/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManagerTest.java
index c490a99..4685593 100644
--- a/shardingsphere-transaction/shardingsphere-transaction-base/shardingsphere-transaction-base-seata-at/src/test/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManagerTest.java
+++ b/shardingsphere-transaction/shardingsphere-transaction-base/shardingsphere-transaction-base-seata-at/src/test/java/org/apache/shardingsphere/transaction/base/seata/at/SeataATShardingSphereTransactionManagerTest.java
@@ -32,10 +32,12 @@ import io.seata.tm.api.GlobalTransactionContext;
import lombok.SneakyThrows;
import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.shardingsphere.transaction.base.seata.at.fixture.MockSeataServer;
+import org.apache.shardingsphere.transaction.config.TransactionRuleConfiguration;
import org.apache.shardingsphere.transaction.core.ResourceDataSource;
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
import org.apache.shardingsphere.infra.executor.kernel.model.ExecutorDataMap;
+import org.apache.shardingsphere.transaction.rule.TransactionRule;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
@@ -51,6 +53,7 @@ import java.sql.SQLException;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
+import java.util.Properties;
import java.util.Queue;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -90,7 +93,7 @@ public final class SeataATShardingSphereTransactionManagerTest {
@Before
public void setUp() {
- seataTransactionManager.init(DatabaseTypeRegistry.getActualDatabaseType("MySQL"), getResourceDataSources(), "seata");
+ seataTransactionManager.init(DatabaseTypeRegistry.getActualDatabaseType("MySQL"), getResourceDataSources(), new TransactionRule(new TransactionRuleConfiguration("BASE", new Properties())));
}
@After
diff --git a/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/ShardingSphereTransactionManagerEngine.java b/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/ShardingSphereTransactionManagerEngine.java
index 5b3b76b..7e58e4e 100644
--- a/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/ShardingSphereTransactionManagerEngine.java
+++ b/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/ShardingSphereTransactionManagerEngine.java
@@ -22,6 +22,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.transaction.core.ResourceDataSource;
import org.apache.shardingsphere.transaction.core.TransactionType;
+import org.apache.shardingsphere.transaction.rule.TransactionRule;
import org.apache.shardingsphere.transaction.spi.ShardingSphereTransactionManager;
import javax.sql.DataSource;
@@ -60,10 +61,10 @@ public final class ShardingSphereTransactionManagerEngine {
*
* @param databaseType database type
* @param dataSourceMap data source map
- * @param xaTransactionMangerType XA transaction manger type
+ * @param transactionRule transaction rule
*/
- public void init(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final String xaTransactionMangerType) {
- transactionManagers.forEach((key, value) -> value.init(databaseType, getResourceDataSources(dataSourceMap), xaTransactionMangerType));
+ public void init(final DatabaseType databaseType, final Map<String, DataSource> dataSourceMap, final TransactionRule transactionRule) {
+ transactionManagers.forEach((key, value) -> value.init(databaseType, getResourceDataSources(dataSourceMap), transactionRule));
}
private Collection<ResourceDataSource> getResourceDataSources(final Map<String, DataSource> dataSourceMap) {
diff --git a/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/spi/ShardingSphereTransactionManager.java b/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/spi/ShardingSphereTransactionManager.java
index be4e084..3676902 100644
--- a/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/spi/ShardingSphereTransactionManager.java
+++ b/shardingsphere-transaction/shardingsphere-transaction-core/src/main/java/org/apache/shardingsphere/transaction/spi/ShardingSphereTransactionManager.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.transaction.spi;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.transaction.core.ResourceDataSource;
import org.apache.shardingsphere.transaction.core.TransactionType;
+import org.apache.shardingsphere.transaction.rule.TransactionRule;
import java.sql.Connection;
import java.sql.SQLException;
@@ -35,9 +36,9 @@ public interface ShardingSphereTransactionManager extends AutoCloseable {
*
* @param databaseType database type
* @param resourceDataSources resource data sources
- * @param transactionMangerType transaction manger type
+ * @param transactionRule transaction rule
*/
- void init(DatabaseType databaseType, Collection<ResourceDataSource> resourceDataSources, String transactionMangerType);
+ void init(DatabaseType databaseType, Collection<ResourceDataSource> resourceDataSources, TransactionRule transactionRule);
/**
* Get transaction type.
diff --git a/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/ShardingSphereTransactionManagerEngineTest.java b/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/ShardingSphereTransactionManagerEngineTest.java
index c72ca56..d73288e 100644
--- a/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/ShardingSphereTransactionManagerEngineTest.java
+++ b/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/ShardingSphereTransactionManagerEngineTest.java
@@ -18,12 +18,15 @@
package org.apache.shardingsphere.transaction;
import org.apache.shardingsphere.infra.database.type.DatabaseTypeRegistry;
+import org.apache.shardingsphere.transaction.config.TransactionRuleConfiguration;
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.apache.shardingsphere.transaction.core.XATransactionManagerType;
import org.apache.shardingsphere.transaction.core.fixture.ShardingSphereTransactionManagerFixture;
+import org.apache.shardingsphere.transaction.rule.TransactionRule;
import org.junit.Test;
import java.util.Collections;
+import java.util.Properties;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.junit.Assert.assertThat;
@@ -44,7 +47,10 @@ public final class ShardingSphereTransactionManagerEngineTest {
Runnable caller = mock(Runnable.class);
ShardingSphereTransactionManagerFixture transactionManager = (ShardingSphereTransactionManagerFixture) transactionManagerEngine.getTransactionManager(TransactionType.XA);
transactionManager.setCaller(caller);
- transactionManagerEngine.init(DatabaseTypeRegistry.getActualDatabaseType("H2"), Collections.emptyMap(), XATransactionManagerType.ATOMIKOS.getType());
+ Properties props = new Properties();
+ props.setProperty("xa-transaction-manager-type", XATransactionManagerType.ATOMIKOS.getType());
+ TransactionRule transactionRule = new TransactionRule(new TransactionRuleConfiguration("XA", props));
+ transactionManagerEngine.init(DatabaseTypeRegistry.getActualDatabaseType("H2"), Collections.emptyMap(), transactionRule);
verify(caller).run();
}
}
diff --git a/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/core/fixture/OtherShardingSphereTransactionManagerFixture.java b/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/core/fixture/OtherShardingSphereTransactionManagerFixture.java
index 99b50cd..a3ab12c 100644
--- a/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/core/fixture/OtherShardingSphereTransactionManagerFixture.java
+++ b/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/core/fixture/OtherShardingSphereTransactionManagerFixture.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.transaction.core.fixture;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.transaction.core.ResourceDataSource;
import org.apache.shardingsphere.transaction.core.TransactionType;
+import org.apache.shardingsphere.transaction.rule.TransactionRule;
import org.apache.shardingsphere.transaction.spi.ShardingSphereTransactionManager;
import java.sql.Connection;
@@ -28,7 +29,7 @@ import java.util.Collection;
public final class OtherShardingSphereTransactionManagerFixture implements ShardingSphereTransactionManager {
@Override
- public void init(final DatabaseType databaseType, final Collection<ResourceDataSource> resourceDataSources, final String transactionMangerType) {
+ public void init(final DatabaseType databaseType, final Collection<ResourceDataSource> resourceDataSources, final TransactionRule transactionRule) {
}
@Override
diff --git a/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/core/fixture/ShardingSphereTransactionManagerFixture.java b/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/core/fixture/ShardingSphereTransactionManagerFixture.java
index 2f0a8db..2161ded 100644
--- a/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/core/fixture/ShardingSphereTransactionManagerFixture.java
+++ b/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/core/fixture/ShardingSphereTransactionManagerFixture.java
@@ -21,6 +21,7 @@ import lombok.Setter;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.transaction.core.ResourceDataSource;
import org.apache.shardingsphere.transaction.core.TransactionType;
+import org.apache.shardingsphere.transaction.rule.TransactionRule;
import org.apache.shardingsphere.transaction.spi.ShardingSphereTransactionManager;
import java.sql.Connection;
@@ -32,7 +33,7 @@ public final class ShardingSphereTransactionManagerFixture implements ShardingSp
private Runnable caller;
@Override
- public void init(final DatabaseType databaseType, final Collection<ResourceDataSource> resourceDataSources, final String transactionMangerType) {
+ public void init(final DatabaseType databaseType, final Collection<ResourceDataSource> resourceDataSources, final TransactionRule transactionRule) {
caller.run();
}