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 <[email protected]>
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();
}