Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
6adf0cf6
Shardingsphere
项目概览
apache
/
Shardingsphere
通知
56
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Shardingsphere
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
6adf0cf6
编写于
1月 14, 2019
作者:
T
terrymanu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor transaction SPI
上级
2f63835e
变更
22
隐藏空白更改
内联
并排
Showing
22 changed file
with
89 addition
and
102 deletion
+89
-102
sharding-jdbc/sharding-jdbc-core/src/main/java/io/shardingsphere/shardingjdbc/jdbc/adapter/AbstractDataSourceAdapter.java
.../shardingjdbc/jdbc/adapter/AbstractDataSourceAdapter.java
+3
-2
sharding-jdbc/sharding-jdbc-core/src/main/java/io/shardingsphere/shardingjdbc/jdbc/core/datasource/ShardingDataSource.java
...shardingjdbc/jdbc/core/datasource/ShardingDataSource.java
+1
-1
sharding-jdbc/sharding-jdbc-core/src/test/java/io/shardingsphere/shardingjdbc/common/base/AbstractSQLTest.java
...rdingsphere/shardingjdbc/common/base/AbstractSQLTest.java
+2
-2
sharding-jdbc/sharding-jdbc-core/src/test/java/io/shardingsphere/shardingjdbc/jdbc/core/fixture/AbstractShardingTransactionEngineFixture.java
...ore/fixture/AbstractShardingTransactionEngineFixture.java
+5
-5
sharding-jdbc/sharding-jdbc-orchestration/src/main/java/io/shardingsphere/shardingjdbc/orchestration/internal/datasource/OrchestrationMasterSlaveDataSource.java
...ternal/datasource/OrchestrationMasterSlaveDataSource.java
+1
-1
sharding-jdbc/sharding-jdbc-orchestration/src/main/java/io/shardingsphere/shardingjdbc/orchestration/internal/datasource/OrchestrationShardingDataSource.java
.../internal/datasource/OrchestrationShardingDataSource.java
+1
-1
sharding-jdbc/sharding-jdbc-orchestration/src/test/java/io/shardingsphere/shardingjdbc/orchestration/api/yaml/masterslave/YamlOrchestrationMasterSlaveIntegrateTest.java
...asterslave/YamlOrchestrationMasterSlaveIntegrateTest.java
+1
-4
sharding-jdbc/sharding-jdbc-orchestration/src/test/java/io/shardingsphere/shardingjdbc/orchestration/api/yaml/sharding/YamlOrchestrationShardingIntegrateTest.java
...yaml/sharding/YamlOrchestrationShardingIntegrateTest.java
+1
-4
sharding-jdbc/sharding-jdbc-orchestration/src/test/java/io/shardingsphere/shardingjdbc/orchestration/api/yaml/sharding/YamlOrchestrationShardingWithMasterSlaveIntegrateTest.java
...amlOrchestrationShardingWithMasterSlaveIntegrateTest.java
+1
-4
sharding-proxy/src/test/java/io/shardingsphere/shardingproxy/transport/mysql/packet/command/query/text/query/fixture/ShardingTransactionEngineFixture.java
.../text/query/fixture/ShardingTransactionEngineFixture.java
+7
-7
sharding-transaction/sharding-transaction-2pc/sharding-transaction-xa/sharding-transaction-xa-core/src/main/java/io/shardingsphere/transaction/xa/XAShardingTransactionEngine.java
...ingsphere/transaction/xa/XAShardingTransactionEngine.java
+13
-12
sharding-transaction/sharding-transaction-2pc/sharding-transaction-xa/sharding-transaction-xa-core/src/main/java/io/shardingsphere/transaction/xa/manager/XATransactionManagerLoader.java
...re/transaction/xa/manager/XATransactionManagerLoader.java
+0
-7
sharding-transaction/sharding-transaction-2pc/sharding-transaction-xa/sharding-transaction-xa-core/src/main/java/io/shardingsphere/transaction/xa/manager/atomikos/AtomikosTransactionManager.java
...ction/xa/manager/atomikos/AtomikosTransactionManager.java
+2
-2
sharding-transaction/sharding-transaction-2pc/sharding-transaction-xa/sharding-transaction-xa-core/src/test/java/io/shardingsphere/transaction/xa/XAShardingTransactionEngineTest.java
...phere/transaction/xa/XAShardingTransactionEngineTest.java
+5
-5
sharding-transaction/sharding-transaction-2pc/sharding-transaction-xa/sharding-transaction-xa-core/src/test/java/io/shardingsphere/transaction/xa/fixture/FixtureXATransactionManager.java
...e/transaction/xa/fixture/FixtureXATransactionManager.java
+2
-2
sharding-transaction/sharding-transaction-2pc/sharding-transaction-xa/sharding-transaction-xa-core/src/test/java/io/shardingsphere/transaction/xa/manager/atomikos/AtomikosTransactionManagerTest.java
...n/xa/manager/atomikos/AtomikosTransactionManagerTest.java
+4
-4
sharding-transaction/sharding-transaction-2pc/sharding-transaction-xa/sharding-transaction-xa-spi/src/main/java/io/shardingsphere/transaction/xa/spi/XATransactionManager.java
...ardingsphere/transaction/xa/spi/XATransactionManager.java
+4
-9
sharding-transaction/sharding-transaction-core/src/main/java/io/shardingsphere/transaction/core/ShardingTransactionEngineRegistry.java
...e/transaction/core/ShardingTransactionEngineRegistry.java
+14
-3
sharding-transaction/sharding-transaction-core/src/main/java/io/shardingsphere/transaction/spi/ShardingTransactionEngine.java
...dingsphere/transaction/spi/ShardingTransactionEngine.java
+7
-12
sharding-transaction/sharding-transaction-core/src/test/java/io/shardingsphere/transaction/core/ShardingTransactionEngineRegistryTest.java
...ansaction/core/ShardingTransactionEngineRegistryTest.java
+1
-1
sharding-transaction/sharding-transaction-core/src/test/java/io/shardingsphere/transaction/core/fixture/OtherShardingTransactionEngineFixture.java
...n/core/fixture/OtherShardingTransactionEngineFixture.java
+7
-7
sharding-transaction/sharding-transaction-core/src/test/java/io/shardingsphere/transaction/core/fixture/ShardingTransactionEngineFixture.java
...action/core/fixture/ShardingTransactionEngineFixture.java
+7
-7
未找到文件。
sharding-jdbc/sharding-jdbc-core/src/main/java/io/shardingsphere/shardingjdbc/jdbc/adapter/AbstractDataSourceAdapter.java
浏览文件 @
6adf0cf6
...
...
@@ -57,7 +57,7 @@ public abstract class AbstractDataSourceAdapter extends AbstractUnsupportedOpera
public
AbstractDataSourceAdapter
(
final
Map
<
String
,
DataSource
>
dataSourceMap
)
throws
SQLException
{
databaseType
=
getDatabaseType
(
dataSourceMap
.
values
());
ShardingTransactionEngineRegistry
.
registerTransactionResource
(
databaseType
,
dataSourceMap
);
ShardingTransactionEngineRegistry
.
init
(
databaseType
,
dataSourceMap
);
this
.
dataSourceMap
=
dataSourceMap
;
}
...
...
@@ -91,12 +91,13 @@ public abstract class AbstractDataSourceAdapter extends AbstractUnsupportedOpera
}
@Override
public
void
close
()
{
public
void
close
()
throws
Exception
{
for
(
DataSource
each
:
dataSourceMap
.
values
())
{
try
{
ReflectiveUtil
.
findMethod
(
each
,
"close"
).
invoke
(
each
);
}
catch
(
final
ReflectiveOperationException
ignored
)
{
}
}
ShardingTransactionEngineRegistry
.
close
();
}
}
sharding-jdbc/sharding-jdbc-core/src/main/java/io/shardingsphere/shardingjdbc/jdbc/core/datasource/ShardingDataSource.java
浏览文件 @
6adf0cf6
...
...
@@ -71,7 +71,7 @@ public class ShardingDataSource extends AbstractDataSourceAdapter {
}
@Override
public
final
void
close
()
{
public
final
void
close
()
throws
Exception
{
super
.
close
();
shardingContext
.
close
();
}
...
...
sharding-jdbc/sharding-jdbc-core/src/test/java/io/shardingsphere/shardingjdbc/common/base/AbstractSQLTest.java
浏览文件 @
6adf0cf6
...
...
@@ -59,7 +59,7 @@ public abstract class AbstractSQLTest {
ex
.
printStackTrace
();
}
}
private
static
void
createJdbcSchema
(
final
DatabaseType
dbType
)
{
try
{
Connection
conn
;
...
...
@@ -113,7 +113,7 @@ public abstract class AbstractSQLTest {
}
@AfterClass
public
static
void
clear
()
{
public
static
void
clear
()
throws
Exception
{
if
(
shardingDataSource
==
null
)
{
return
;
}
...
...
sharding-jdbc/sharding-jdbc-core/src/test/java/io/shardingsphere/shardingjdbc/jdbc/core/fixture/AbstractShardingTransactionEngineFixture.java
浏览文件 @
6adf0cf6
...
...
@@ -39,11 +39,7 @@ public abstract class AbstractShardingTransactionEngineFixture implements Shardi
private
static
Collection
<
TransactionOperationType
>
invocations
=
new
LinkedList
<>();
@Override
public
final
void
registerTransactionalResources
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
}
@Override
public
final
void
clearTransactionalResources
()
{
public
final
void
init
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
}
@Override
...
...
@@ -70,4 +66,8 @@ public abstract class AbstractShardingTransactionEngineFixture implements Shardi
public
final
void
rollback
()
{
invocations
.
add
(
TransactionOperationType
.
ROLLBACK
);
}
@Override
public
final
void
close
()
{
}
}
sharding-jdbc/sharding-jdbc-orchestration/src/main/java/io/shardingsphere/shardingjdbc/orchestration/internal/datasource/OrchestrationMasterSlaveDataSource.java
浏览文件 @
6adf0cf6
...
...
@@ -88,7 +88,7 @@ public class OrchestrationMasterSlaveDataSource extends AbstractOrchestrationDat
}
@Override
public
final
void
close
()
{
public
final
void
close
()
throws
Exception
{
dataSource
.
close
();
getShardingOrchestrationFacade
().
close
();
}
...
...
sharding-jdbc/sharding-jdbc-orchestration/src/main/java/io/shardingsphere/shardingjdbc/orchestration/internal/datasource/OrchestrationShardingDataSource.java
浏览文件 @
6adf0cf6
...
...
@@ -87,7 +87,7 @@ public class OrchestrationShardingDataSource extends AbstractOrchestrationDataSo
}
@Override
public
final
void
close
()
{
public
final
void
close
()
throws
Exception
{
dataSource
.
close
();
getShardingOrchestrationFacade
().
close
();
}
...
...
sharding-jdbc/sharding-jdbc-orchestration/src/test/java/io/shardingsphere/shardingjdbc/orchestration/api/yaml/masterslave/YamlOrchestrationMasterSlaveIntegrateTest.java
浏览文件 @
6adf0cf6
...
...
@@ -30,10 +30,7 @@ import org.junit.runners.Parameterized;
import
javax.sql.DataSource
;
import
java.io.File
;
import
java.io.IOException
;
import
java.net.URISyntaxException
;
import
java.sql.Connection
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
import
java.util.Arrays
;
import
java.util.Collection
;
...
...
@@ -57,7 +54,7 @@ public class YamlOrchestrationMasterSlaveIntegrateTest extends AbstractYamlDataS
}
@Test
public
void
assertWithDataSource
()
throws
SQLException
,
URISyntaxException
,
IO
Exception
{
public
void
assertWithDataSource
()
throws
Exception
{
File
yamlFile
=
new
File
(
YamlOrchestrationMasterSlaveIntegrateTest
.
class
.
getResource
(
filePath
).
toURI
());
DataSource
dataSource
;
if
(
hasDataSource
)
{
...
...
sharding-jdbc/sharding-jdbc-orchestration/src/test/java/io/shardingsphere/shardingjdbc/orchestration/api/yaml/sharding/YamlOrchestrationShardingIntegrateTest.java
浏览文件 @
6adf0cf6
...
...
@@ -30,10 +30,7 @@ import org.junit.runners.Parameterized;
import
javax.sql.DataSource
;
import
java.io.File
;
import
java.io.IOException
;
import
java.net.URISyntaxException
;
import
java.sql.Connection
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
import
java.util.Arrays
;
import
java.util.Collection
;
...
...
@@ -57,7 +54,7 @@ public class YamlOrchestrationShardingIntegrateTest extends AbstractYamlDataSour
}
@Test
public
void
assertWithDataSource
()
throws
SQLException
,
URISyntaxException
,
IO
Exception
{
public
void
assertWithDataSource
()
throws
Exception
{
File
yamlFile
=
new
File
(
YamlOrchestrationShardingIntegrateTest
.
class
.
getResource
(
filePath
).
toURI
());
DataSource
dataSource
;
if
(
hasDataSource
)
{
...
...
sharding-jdbc/sharding-jdbc-orchestration/src/test/java/io/shardingsphere/shardingjdbc/orchestration/api/yaml/sharding/YamlOrchestrationShardingWithMasterSlaveIntegrateTest.java
浏览文件 @
6adf0cf6
...
...
@@ -30,10 +30,7 @@ import org.junit.runners.Parameterized;
import
javax.sql.DataSource
;
import
java.io.File
;
import
java.io.IOException
;
import
java.net.URISyntaxException
;
import
java.sql.Connection
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
import
java.util.Arrays
;
import
java.util.Collection
;
...
...
@@ -60,7 +57,7 @@ public class YamlOrchestrationShardingWithMasterSlaveIntegrateTest extends Abstr
}
@Test
public
void
assertWithDataSource
()
throws
SQLException
,
URISyntaxException
,
IO
Exception
{
public
void
assertWithDataSource
()
throws
Exception
{
File
yamlFile
=
new
File
(
YamlOrchestrationShardingWithMasterSlaveIntegrateTest
.
class
.
getResource
(
filePath
).
toURI
());
DataSource
dataSource
;
if
(
hasDataSource
)
{
...
...
sharding-proxy/src/test/java/io/shardingsphere/shardingproxy/transport/mysql/packet/command/query/text/query/fixture/ShardingTransactionEngineFixture.java
浏览文件 @
6adf0cf6
...
...
@@ -40,16 +40,12 @@ public final class ShardingTransactionEngineFixture implements ShardingTransacti
private
static
Collection
<
TransactionOperationType
>
invocations
=
new
LinkedList
<>();
@Override
public
TransactionType
getTransactionType
()
{
return
TransactionType
.
XA
;
}
@Override
public
void
registerTransactionalResources
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
public
void
init
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
}
@Override
public
void
clearTransactionalResources
()
{
public
TransactionType
getTransactionType
()
{
return
TransactionType
.
XA
;
}
@Override
...
...
@@ -76,4 +72,8 @@ public final class ShardingTransactionEngineFixture implements ShardingTransacti
public
void
rollback
()
{
invocations
.
add
(
TransactionOperationType
.
ROLLBACK
);
}
@Override
public
void
close
()
{
}
}
sharding-transaction/sharding-transaction-2pc/sharding-transaction-xa/sharding-transaction-xa-core/src/main/java/io/shardingsphere/transaction/xa/XAShardingTransactionEngine.java
浏览文件 @
6adf0cf6
...
...
@@ -46,12 +46,7 @@ public final class XAShardingTransactionEngine implements ShardingTransactionEng
private
final
XATransactionManager
xaTransactionManager
=
XATransactionManagerLoader
.
getInstance
().
getTransactionManager
();
@Override
public
TransactionType
getTransactionType
()
{
return
TransactionType
.
XA
;
}
@Override
public
void
registerTransactionalResources
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
public
void
init
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
for
(
Entry
<
String
,
DataSource
>
entry
:
dataSourceMap
.
entrySet
())
{
DataSource
dataSource
=
entry
.
getValue
();
if
(
dataSource
instanceof
AtomikosDataSourceBean
)
{
...
...
@@ -62,15 +57,12 @@ public final class XAShardingTransactionEngine implements ShardingTransactionEng
cachedShardingXADataSourceMap
.
put
(
resourceName
,
shardingXADataSource
);
xaTransactionManager
.
registerRecoveryResource
(
resourceName
,
shardingXADataSource
.
getXaDataSource
());
}
xaTransactionManager
.
startup
();
xaTransactionManager
.
init
();
}
@Override
public
void
clearTransactionalResources
()
{
for
(
ShardingXADataSource
each
:
cachedShardingXADataSourceMap
.
values
())
{
xaTransactionManager
.
removeRecoveryResource
(
each
.
getResourceName
(),
each
.
getXaDataSource
());
}
cachedShardingXADataSourceMap
.
clear
();
public
TransactionType
getTransactionType
()
{
return
TransactionType
.
XA
;
}
@SneakyThrows
...
...
@@ -101,4 +93,13 @@ public final class XAShardingTransactionEngine implements ShardingTransactionEng
public
void
rollback
()
{
xaTransactionManager
.
rollback
();
}
@Override
public
void
close
()
throws
Exception
{
for
(
ShardingXADataSource
each
:
cachedShardingXADataSourceMap
.
values
())
{
xaTransactionManager
.
removeRecoveryResource
(
each
.
getResourceName
(),
each
.
getXaDataSource
());
}
cachedShardingXADataSourceMap
.
clear
();
xaTransactionManager
.
close
();
}
}
sharding-transaction/sharding-transaction-2pc/sharding-transaction-xa/sharding-transaction-xa-core/src/main/java/io/shardingsphere/transaction/xa/manager/XATransactionManagerLoader.java
浏览文件 @
6adf0cf6
...
...
@@ -41,13 +41,6 @@ public final class XATransactionManagerLoader {
private
XATransactionManagerLoader
()
{
transactionManager
=
load
();
Runtime
.
getRuntime
().
addShutdownHook
(
new
Thread
(
new
Runnable
()
{
@Override
public
void
run
()
{
transactionManager
.
destroy
();
}
}));
}
private
XATransactionManager
load
()
{
...
...
sharding-transaction/sharding-transaction-2pc/sharding-transaction-xa/sharding-transaction-xa-core/src/main/java/io/shardingsphere/transaction/xa/manager/atomikos/AtomikosTransactionManager.java
浏览文件 @
6adf0cf6
...
...
@@ -39,7 +39,7 @@ public final class AtomikosTransactionManager implements XATransactionManager {
private
final
UserTransactionService
userTransactionService
=
new
UserTransactionServiceImp
();
@Override
public
void
startup
()
{
public
void
init
()
{
userTransactionService
.
init
();
}
...
...
@@ -87,7 +87,7 @@ public final class AtomikosTransactionManager implements XATransactionManager {
}
@Override
public
void
destroy
()
{
public
void
close
()
{
userTransactionService
.
shutdown
(
true
);
}
}
sharding-transaction/sharding-transaction-2pc/sharding-transaction-xa/sharding-transaction-xa-core/src/test/java/io/shardingsphere/transaction/xa/XAShardingTransactionEngineTest.java
浏览文件 @
6adf0cf6
...
...
@@ -82,7 +82,7 @@ public class XAShardingTransactionEngineTest {
@Test
public
void
assertRegisterXATransactionalDataSources
()
{
Map
<
String
,
DataSource
>
dataSourceMap
=
createDataSourceMap
(
DruidXADataSource
.
class
,
DatabaseType
.
MySQL
);
xaShardingTransactionEngine
.
registerTransactionalResources
(
DatabaseType
.
MySQL
,
dataSourceMap
);
xaShardingTransactionEngine
.
init
(
DatabaseType
.
MySQL
,
dataSourceMap
);
for
(
Entry
<
String
,
DataSource
>
entry
:
dataSourceMap
.
entrySet
())
{
verify
(
xaTransactionManager
).
registerRecoveryResource
(
entry
.
getKey
(),
(
XADataSource
)
entry
.
getValue
());
}
...
...
@@ -91,14 +91,14 @@ public class XAShardingTransactionEngineTest {
@Test
public
void
assertRegisterAtomikosDataSourceBeans
()
{
Map
<
String
,
DataSource
>
dataSourceMap
=
createAtomikosDataSourceBeanMap
();
xaShardingTransactionEngine
.
registerTransactionalResources
(
DatabaseType
.
MySQL
,
dataSourceMap
);
xaShardingTransactionEngine
.
init
(
DatabaseType
.
MySQL
,
dataSourceMap
);
verify
(
xaTransactionManager
,
times
(
0
)).
registerRecoveryResource
(
anyString
(),
any
(
XADataSource
.
class
));
}
@Test
public
void
assertRegisterNoneXATransactionalDAtaSources
()
{
Map
<
String
,
DataSource
>
dataSourceMap
=
createDataSourceMap
(
HikariDataSource
.
class
,
DatabaseType
.
MySQL
);
xaShardingTransactionEngine
.
registerTransactionalResources
(
DatabaseType
.
MySQL
,
dataSourceMap
);
xaShardingTransactionEngine
.
init
(
DatabaseType
.
MySQL
,
dataSourceMap
);
Map
<
String
,
ShardingXADataSource
>
cachedXADatasourceMap
=
getCachedShardingXADataSourceMap
();
assertThat
(
cachedXADatasourceMap
.
size
(),
is
(
2
));
}
...
...
@@ -124,9 +124,9 @@ public class XAShardingTransactionEngineTest {
}
@Test
public
void
assertCl
earTransactionalDataSources
()
{
public
void
assertCl
ose
()
throws
Exception
{
setCachedShardingXADataSourceMap
(
"ds1"
);
xaShardingTransactionEngine
.
cl
earTransactionalResources
();
xaShardingTransactionEngine
.
cl
ose
();
Map
<
String
,
ShardingXADataSource
>
cachedShardingXADataSourceMap
=
getCachedShardingXADataSourceMap
();
verify
(
xaTransactionManager
).
removeRecoveryResource
(
anyString
(),
any
(
XADataSource
.
class
));
assertThat
(
cachedShardingXADataSourceMap
.
size
(),
is
(
0
));
...
...
sharding-transaction/sharding-transaction-2pc/sharding-transaction-xa/sharding-transaction-xa-core/src/test/java/io/shardingsphere/transaction/xa/fixture/FixtureXATransactionManager.java
浏览文件 @
6adf0cf6
...
...
@@ -26,7 +26,7 @@ import javax.transaction.xa.XAResource;
public
final
class
FixtureXATransactionManager
implements
XATransactionManager
{
@Override
public
void
startup
()
{
public
void
init
()
{
}
@Override
...
...
@@ -59,6 +59,6 @@ public final class FixtureXATransactionManager implements XATransactionManager {
}
@Override
public
void
destroy
()
{
public
void
close
()
{
}
}
sharding-transaction/sharding-transaction-2pc/sharding-transaction-xa/sharding-transaction-xa-core/src/test/java/io/shardingsphere/transaction/xa/manager/atomikos/AtomikosTransactionManagerTest.java
浏览文件 @
6adf0cf6
...
...
@@ -56,8 +56,8 @@ public final class AtomikosTransactionManagerTest {
}
@Test
public
void
assert
Startup
()
{
atomikosTransactionManager
.
startup
();
public
void
assert
Init
()
{
atomikosTransactionManager
.
init
();
verify
(
userTransactionService
).
init
();
}
...
...
@@ -101,8 +101,8 @@ public final class AtomikosTransactionManagerTest {
}
@Test
public
void
assert
Shutdown
()
{
atomikosTransactionManager
.
destroy
();
public
void
assert
Close
()
{
atomikosTransactionManager
.
close
();
verify
(
userTransactionService
).
shutdown
(
true
);
}
}
sharding-transaction/sharding-transaction-2pc/sharding-transaction-xa/sharding-transaction-xa-spi/src/main/java/io/shardingsphere/transaction/xa/spi/XATransactionManager.java
浏览文件 @
6adf0cf6
...
...
@@ -28,18 +28,18 @@ import javax.transaction.xa.XAResource;
* @author zhangliang
* @author zhaojun
*/
public
interface
XATransactionManager
extends
ShardingTransactionManager
{
public
interface
XATransactionManager
extends
ShardingTransactionManager
,
AutoCloseable
{
/**
*
Startup
XA transaction manager.
*
Initialize
XA transaction manager.
*/
void
startup
();
void
init
();
/**
* Register recovery resource.
*
* @param dataSourceName data source name
* @param xaDataSource
XA data source
* @param xaDataSource XA data source
*/
void
registerRecoveryResource
(
String
dataSourceName
,
XADataSource
xaDataSource
);
...
...
@@ -57,9 +57,4 @@ public interface XATransactionManager extends ShardingTransactionManager {
* @param xaResource XA resource
*/
void
enlistResource
(
XAResource
xaResource
);
/**
* Destroy the transaction manager and could be helpful with shutdown gracefully.
*/
void
destroy
();
}
sharding-transaction/sharding-transaction-core/src/main/java/io/shardingsphere/transaction/core/ShardingTransactionEngineRegistry.java
浏览文件 @
6adf0cf6
...
...
@@ -70,14 +70,25 @@ public final class ShardingTransactionEngineRegistry {
}
/**
*
Register transaction resource
.
*
Initialize sharding transaction engines
.
*
* @param databaseType database type
* @param dataSourceMap data source map
*/
public
static
void
registerTransactionResource
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
public
static
void
init
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
for
(
Entry
<
TransactionType
,
ShardingTransactionEngine
>
entry
:
ENGINES
.
entrySet
())
{
entry
.
getValue
().
registerTransactionalResources
(
databaseType
,
dataSourceMap
);
entry
.
getValue
().
init
(
databaseType
,
dataSourceMap
);
}
}
/**
* Close sharding transaction engines.
*
* @throws Exception exception
*/
public
static
void
close
()
throws
Exception
{
for
(
Entry
<
TransactionType
,
ShardingTransactionEngine
>
entry
:
ENGINES
.
entrySet
())
{
entry
.
getValue
().
close
();
}
}
}
sharding-transaction/sharding-transaction-core/src/main/java/io/shardingsphere/transaction/spi/ShardingTransactionEngine.java
浏览文件 @
6adf0cf6
...
...
@@ -31,27 +31,22 @@ import java.util.Map;
* @author zhaojun
*
*/
public
interface
ShardingTransactionEngine
{
public
interface
ShardingTransactionEngine
extends
AutoCloseable
{
/**
* Get transaction type.
*
* @return transaction type
*/
TransactionType
getTransactionType
();
/**
* Register transaction data sources.
* Initialize sharding transaction engine.
*
* @param databaseType database type
* @param dataSourceMap data source map
*/
void
registerTransactionalResources
(
DatabaseType
databaseType
,
Map
<
String
,
DataSource
>
dataSourceMap
);
void
init
(
DatabaseType
databaseType
,
Map
<
String
,
DataSource
>
dataSourceMap
);
/**
* Clear transactional resources.
* Get transaction type.
*
* @return transaction type
*/
void
clearTransactionalResources
();
TransactionType
getTransactionType
();
/**
* Judge is in transaction or not.
...
...
sharding-transaction/sharding-transaction-core/src/test/java/io/shardingsphere/transaction/core/ShardingTransactionEngineRegistryTest.java
浏览文件 @
6adf0cf6
...
...
@@ -42,7 +42,7 @@ public final class ShardingTransactionEngineRegistryTest {
Runnable
caller
=
mock
(
Runnable
.
class
);
ShardingTransactionEngineFixture
shardingTransactionEngine
=
(
ShardingTransactionEngineFixture
)
ShardingTransactionEngineRegistry
.
getEngine
(
TransactionType
.
XA
);
shardingTransactionEngine
.
setCaller
(
caller
);
ShardingTransactionEngineRegistry
.
registerTransactionResource
(
DatabaseType
.
H2
,
mock
(
Map
.
class
));
ShardingTransactionEngineRegistry
.
init
(
DatabaseType
.
H2
,
mock
(
Map
.
class
));
verify
(
caller
).
run
();
}
}
sharding-transaction/sharding-transaction-core/src/test/java/io/shardingsphere/transaction/core/fixture/OtherShardingTransactionEngineFixture.java
浏览文件 @
6adf0cf6
...
...
@@ -28,16 +28,12 @@ import java.util.Map;
public
final
class
OtherShardingTransactionEngineFixture
implements
ShardingTransactionEngine
{
@Override
public
TransactionType
getTransactionType
()
{
return
TransactionType
.
XA
;
}
@Override
public
void
registerTransactionalResources
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
public
void
init
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
}
@Override
public
void
clearTransactionalResources
()
{
public
TransactionType
getTransactionType
()
{
return
TransactionType
.
XA
;
}
@Override
...
...
@@ -61,4 +57,8 @@ public final class OtherShardingTransactionEngineFixture implements ShardingTran
@Override
public
void
rollback
()
{
}
@Override
public
void
close
()
{
}
}
sharding-transaction/sharding-transaction-core/src/test/java/io/shardingsphere/transaction/core/fixture/ShardingTransactionEngineFixture.java
浏览文件 @
6adf0cf6
...
...
@@ -32,17 +32,13 @@ public final class ShardingTransactionEngineFixture implements ShardingTransacti
private
Runnable
caller
;
@Override
public
TransactionType
getTransactionType
()
{
return
TransactionType
.
XA
;
}
@Override
public
void
registerTransactionalResources
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
public
void
init
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
caller
.
run
();
}
@Override
public
void
clearTransactionalResources
()
{
public
TransactionType
getTransactionType
()
{
return
TransactionType
.
XA
;
}
@Override
...
...
@@ -66,4 +62,8 @@ public final class ShardingTransactionEngineFixture implements ShardingTransacti
@Override
public
void
rollback
()
{
}
@Override
public
void
close
()
{
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录