Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Shardingsphere
提交
76653b17
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 搜索 >>
提交
76653b17
编写于
1月 10, 2019
作者:
T
terrymanu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor ShardingTransactionHandler
上级
cad9f69a
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
50 addition
and
164 deletion
+50
-164
sharding-jdbc/sharding-jdbc-core/src/main/java/io/shardingsphere/shardingjdbc/jdbc/adapter/AbstractConnectionAdapter.java
.../shardingjdbc/jdbc/adapter/AbstractConnectionAdapter.java
+1
-1
sharding-jdbc/sharding-jdbc-core/src/test/java/io/shardingsphere/shardingjdbc/jdbc/core/fixed/FixedBaseShardingTransactionHandler.java
.../jdbc/core/fixed/FixedBaseShardingTransactionHandler.java
+7
-3
sharding-jdbc/sharding-jdbc-core/src/test/java/io/shardingsphere/shardingjdbc/jdbc/core/fixed/FixedXAShardingTransactionHandler.java
...bc/jdbc/core/fixed/FixedXAShardingTransactionHandler.java
+7
-3
sharding-proxy/src/test/java/io/shardingsphere/shardingproxy/transport/mysql/packet/command/query/text/query/FixedXAShardingTransactionHandler.java
...d/query/text/query/FixedXAShardingTransactionHandler.java
+7
-3
sharding-transaction/sharding-transaction-2pc/sharding-transaction-2pc-xa/src/main/java/io/shardingsphere/transaction/xa/handler/XAShardingTransactionHandler.java
.../transaction/xa/handler/XAShardingTransactionHandler.java
+16
-6
sharding-transaction/sharding-transaction-2pc/sharding-transaction-2pc-xa/src/test/java/io/shardingsphere/transaction/xa/handler/XAShardingTransactionHandlerTest.java
...nsaction/xa/handler/XAShardingTransactionHandlerTest.java
+2
-8
sharding-transaction/sharding-transaction-core/src/main/java/io/shardingsphere/transaction/core/handler/ShardingTransactionHandlerAdapter.java
...ction/core/handler/ShardingTransactionHandlerAdapter.java
+0
-36
sharding-transaction/sharding-transaction-core/src/main/java/io/shardingsphere/transaction/core/loader/ShardingTransactionHandlerRegistry.java
...ction/core/loader/ShardingTransactionHandlerRegistry.java
+3
-1
sharding-transaction/sharding-transaction-core/src/main/java/io/shardingsphere/transaction/spi/ShardingTransactionHandler.java
...ingsphere/transaction/spi/ShardingTransactionHandler.java
+7
-15
sharding-transaction/sharding-transaction-core/src/test/java/io/shardingsphere/transaction/core/handler/ShardingTransactionHandlerAdapterTest.java
...n/core/handler/ShardingTransactionHandlerAdapterTest.java
+0
-88
未找到文件。
sharding-jdbc/sharding-jdbc-core/src/main/java/io/shardingsphere/shardingjdbc/jdbc/adapter/AbstractConnectionAdapter.java
浏览文件 @
76653b17
...
...
@@ -241,7 +241,7 @@ public abstract class AbstractConnectionAdapter extends AbstractUnsupportedOpera
TransactionTypeHolder
.
clear
();
int
connectionSize
=
cachedConnections
.
size
();
try
{
forceExecuteTemplateForClose
.
execute
(
cachedConnections
.
entries
(),
new
ForceExecuteCallback
<
Map
.
Entry
<
String
,
Connection
>>()
{
forceExecuteTemplateForClose
.
execute
(
cachedConnections
.
entries
(),
new
ForceExecuteCallback
<
Entry
<
String
,
Connection
>>()
{
@Override
public
void
execute
(
final
Entry
<
String
,
Connection
>
cachedConnections
)
throws
SQLException
{
...
...
sharding-jdbc/sharding-jdbc-core/src/test/java/io/shardingsphere/shardingjdbc/jdbc/core/fixed/FixedBaseShardingTransactionHandler.java
浏览文件 @
76653b17
...
...
@@ -17,11 +17,12 @@
package
io.shardingsphere.shardingjdbc.jdbc.core.fixed
;
import
io.shardingsphere.core.constant.DatabaseType
;
import
io.shardingsphere.transaction.api.TransactionType
;
import
io.shardingsphere.transaction.core.TransactionOperationType
;
import
io.shardingsphere.transaction.core.handler.ShardingTransactionHandlerAdapter
;
import
io.shardingsphere.transaction.core.manager.ShardingTransactionManager
;
import
javax.sql.DataSource
;
import
java.util.HashMap
;
import
java.util.Map
;
...
...
@@ -59,8 +60,11 @@ public final class FixedBaseShardingTransactionHandler extends ShardingTransacti
}
@Override
public
ShardingTransactionManager
getShardingTransactionManager
()
{
return
null
;
public
void
registerTransactionalResource
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
}
@Override
public
void
clearTransactionalResource
()
{
}
@Override
...
...
sharding-jdbc/sharding-jdbc-core/src/test/java/io/shardingsphere/shardingjdbc/jdbc/core/fixed/FixedXAShardingTransactionHandler.java
浏览文件 @
76653b17
...
...
@@ -17,11 +17,12 @@
package
io.shardingsphere.shardingjdbc.jdbc.core.fixed
;
import
io.shardingsphere.core.constant.DatabaseType
;
import
io.shardingsphere.transaction.api.TransactionType
;
import
io.shardingsphere.transaction.core.TransactionOperationType
;
import
io.shardingsphere.transaction.core.handler.ShardingTransactionHandlerAdapter
;
import
io.shardingsphere.transaction.core.manager.ShardingTransactionManager
;
import
javax.sql.DataSource
;
import
java.util.HashMap
;
import
java.util.Map
;
...
...
@@ -59,8 +60,11 @@ public final class FixedXAShardingTransactionHandler extends ShardingTransaction
}
@Override
public
ShardingTransactionManager
getShardingTransactionManager
()
{
return
null
;
public
void
registerTransactionalResource
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
}
@Override
public
void
clearTransactionalResource
()
{
}
@Override
...
...
sharding-proxy/src/test/java/io/shardingsphere/shardingproxy/transport/mysql/packet/command/query/text/query/FixedXAShardingTransactionHandler.java
浏览文件 @
76653b17
...
...
@@ -17,11 +17,12 @@
package
io.shardingsphere.shardingproxy.transport.mysql.packet.command.query.text.query
;
import
io.shardingsphere.core.constant.DatabaseType
;
import
io.shardingsphere.transaction.api.TransactionType
;
import
io.shardingsphere.transaction.core.TransactionOperationType
;
import
io.shardingsphere.transaction.core.handler.ShardingTransactionHandlerAdapter
;
import
io.shardingsphere.transaction.core.manager.ShardingTransactionManager
;
import
javax.sql.DataSource
;
import
java.util.HashMap
;
import
java.util.Map
;
...
...
@@ -54,8 +55,11 @@ public final class FixedXAShardingTransactionHandler extends ShardingTransaction
}
@Override
public
ShardingTransactionManager
getShardingTransactionManager
()
{
return
null
;
public
void
registerTransactionalResource
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
}
@Override
public
void
clearTransactionalResource
()
{
}
@Override
...
...
sharding-transaction/sharding-transaction-2pc/sharding-transaction-2pc-xa/src/main/java/io/shardingsphere/transaction/xa/handler/XAShardingTransactionHandler.java
浏览文件 @
76653b17
...
...
@@ -22,7 +22,6 @@ import io.shardingsphere.core.constant.DatabaseType;
import
io.shardingsphere.core.exception.ShardingException
;
import
io.shardingsphere.transaction.api.TransactionType
;
import
io.shardingsphere.transaction.core.handler.ShardingTransactionHandlerAdapter
;
import
io.shardingsphere.transaction.core.manager.ShardingTransactionManager
;
import
io.shardingsphere.transaction.spi.xa.XATransactionManager
;
import
io.shardingsphere.transaction.xa.jta.connection.ShardingXAConnection
;
import
io.shardingsphere.transaction.xa.jta.datasource.ShardingXADataSource
;
...
...
@@ -38,6 +37,7 @@ import java.sql.Connection;
import
java.sql.SQLException
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map.Entry
;
/**
* XA sharding transaction handler.
...
...
@@ -52,18 +52,28 @@ public final class XAShardingTransactionHandler extends ShardingTransactionHandl
private
final
XATransactionManager
xaTransactionManager
=
XATransactionManagerSPILoader
.
getInstance
().
getTransactionManager
();
@Override
public
ShardingTransactionManager
getShardingTransactionManager
()
{
return
xaTransactionManager
;
public
TransactionType
getTransactionType
()
{
return
TransactionType
.
XA
;
}
@Override
public
TransactionType
getTransactionType
()
{
return
TransactionType
.
XA
;
public
void
begin
()
{
xaTransactionManager
.
begin
();
}
@Override
public
void
commit
()
{
xaTransactionManager
.
commit
();
}
@Override
public
void
rollback
()
{
xaTransactionManager
.
rollback
();
}
@Override
public
void
registerTransactionalResource
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
for
(
Map
.
Entry
<
String
,
DataSource
>
entry
:
dataSourceMap
.
entrySet
())
{
for
(
Entry
<
String
,
DataSource
>
entry
:
dataSourceMap
.
entrySet
())
{
DataSource
dataSource
=
entry
.
getValue
();
if
(
dataSource
instanceof
AtomikosDataSourceBean
)
{
continue
;
...
...
sharding-transaction/sharding-transaction-2pc/sharding-transaction-2pc-xa/src/test/java/io/shardingsphere/transaction/xa/handler/XAShardingTransactionHandlerTest.java
浏览文件 @
76653b17
...
...
@@ -21,7 +21,6 @@ import com.atomikos.jdbc.AtomikosDataSourceBean;
import
io.shardingsphere.core.constant.DatabaseType
;
import
io.shardingsphere.core.constant.PoolType
;
import
io.shardingsphere.transaction.api.TransactionType
;
import
io.shardingsphere.transaction.core.manager.ShardingTransactionManager
;
import
io.shardingsphere.transaction.spi.xa.XATransactionManager
;
import
io.shardingsphere.transaction.xa.fixture.DataSourceUtils
;
import
io.shardingsphere.transaction.xa.jta.connection.ShardingXAConnection
;
...
...
@@ -43,6 +42,7 @@ import java.lang.reflect.Field;
import
java.sql.Connection
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map.Entry
;
import
static
org
.
hamcrest
.
CoreMatchers
.
instanceOf
;
import
static
org
.
hamcrest
.
CoreMatchers
.
is
;
...
...
@@ -83,12 +83,6 @@ public class XAShardingTransactionHandlerTest {
field
.
set
(
xaShardingTransactionHandler
,
xaTransactionManager
);
}
@Test
public
void
assertGetTransactionManager
()
{
ShardingTransactionManager
shardingTransactionManager
=
xaShardingTransactionHandler
.
getShardingTransactionManager
();
assertThat
(
shardingTransactionManager
,
instanceOf
(
XATransactionManager
.
class
));
}
@Test
public
void
assertGetTransactionType
()
{
assertThat
(
xaShardingTransactionHandler
.
getTransactionType
(),
is
(
TransactionType
.
XA
));
...
...
@@ -98,7 +92,7 @@ public class XAShardingTransactionHandlerTest {
public
void
assertRegisterXATransactionalDataSource
()
{
Map
<
String
,
DataSource
>
dataSourceMap
=
createDataSourceMap
(
PoolType
.
DRUID_XA
,
DatabaseType
.
MySQL
);
xaShardingTransactionHandler
.
registerTransactionalResource
(
DatabaseType
.
MySQL
,
dataSourceMap
);
for
(
Map
.
Entry
<
String
,
DataSource
>
entry
:
dataSourceMap
.
entrySet
())
{
for
(
Entry
<
String
,
DataSource
>
entry
:
dataSourceMap
.
entrySet
())
{
verify
(
xaTransactionManager
).
registerRecoveryResource
(
entry
.
getKey
(),
(
XADataSource
)
entry
.
getValue
());
}
}
...
...
sharding-transaction/sharding-transaction-core/src/main/java/io/shardingsphere/transaction/core/handler/ShardingTransactionHandlerAdapter.java
浏览文件 @
76653b17
...
...
@@ -17,13 +17,11 @@
package
io.shardingsphere.transaction.core.handler
;
import
io.shardingsphere.core.constant.DatabaseType
;
import
io.shardingsphere.transaction.spi.ShardingTransactionHandler
;
import
javax.sql.DataSource
;
import
java.sql.Connection
;
import
java.sql.SQLException
;
import
java.util.Map
;
/**
* Abstract class for sharding transaction handler.
...
...
@@ -34,40 +32,6 @@ import java.util.Map;
public
abstract
class
ShardingTransactionHandlerAdapter
implements
ShardingTransactionHandler
{
@Override
public
void
begin
()
{
getShardingTransactionManager
().
begin
();
}
@Override
public
void
commit
()
{
getShardingTransactionManager
().
commit
();
}
@Override
public
void
rollback
()
{
getShardingTransactionManager
().
rollback
();
}
/**
* Default implement for register transaction resource.
*/
@Override
public
void
registerTransactionalResource
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
// adapter
}
/**
* Default implement for clear transactional resource.
*/
@Override
public
void
clearTransactionalResource
()
{
// adapter
}
/**
* Default implement for create connection.
*/
@Override
public
Connection
createConnection
(
final
String
dataSourceName
,
final
DataSource
dataSource
)
throws
SQLException
{
return
dataSource
.
getConnection
();
}
...
...
sharding-transaction/sharding-transaction-core/src/main/java/io/shardingsphere/transaction/core/loader/ShardingTransactionHandlerRegistry.java
浏览文件 @
76653b17
...
...
@@ -27,6 +27,7 @@ import lombok.extern.slf4j.Slf4j;
import
javax.sql.DataSource
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map.Entry
;
import
java.util.ServiceLoader
;
/**
...
...
@@ -71,11 +72,12 @@ public final class ShardingTransactionHandlerRegistry {
/**
* Register transaction resource.
*
* @param databaseType database type
* @param dataSourceMap data source map
*/
public
static
void
registerTransactionResource
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
for
(
Map
.
Entry
<
TransactionType
,
ShardingTransactionHandler
>
entry
:
TRANSACTION_HANDLER_MAP
.
entrySet
())
{
for
(
Entry
<
TransactionType
,
ShardingTransactionHandler
>
entry
:
TRANSACTION_HANDLER_MAP
.
entrySet
())
{
entry
.
getValue
().
registerTransactionalResource
(
databaseType
,
dataSourceMap
);
}
}
...
...
sharding-transaction/sharding-transaction-core/src/main/java/io/shardingsphere/transaction/spi/ShardingTransactionHandler.java
浏览文件 @
76653b17
...
...
@@ -19,7 +19,6 @@ package io.shardingsphere.transaction.spi;
import
io.shardingsphere.core.constant.DatabaseType
;
import
io.shardingsphere.transaction.api.TransactionType
;
import
io.shardingsphere.transaction.core.manager.ShardingTransactionManager
;
import
javax.sql.DataSource
;
import
java.sql.Connection
;
...
...
@@ -34,6 +33,13 @@ import java.util.Map;
*/
public
interface
ShardingTransactionHandler
{
/**
* Get transaction type.
*
* @return transaction type
*/
TransactionType
getTransactionType
();
/**
* Begin transaction.
*/
...
...
@@ -49,20 +55,6 @@ public interface ShardingTransactionHandler {
*/
void
rollback
();
/**
* Get sharding transaction manager.
*
* @return sharding transaction manager
*/
ShardingTransactionManager
getShardingTransactionManager
();
/**
* Get transaction type.
*
* @return transaction type
*/
TransactionType
getTransactionType
();
/**
* Register transaction data source.
*
...
...
sharding-transaction/sharding-transaction-core/src/test/java/io/shardingsphere/transaction/core/handler/ShardingTransactionHandlerAdapterTest.java
已删除
100644 → 0
浏览文件 @
cad9f69a
/*
* Copyright 2016-2018 shardingsphere.io.
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* </p>
*/
package
io.shardingsphere.transaction.core.handler
;
import
io.shardingsphere.core.constant.DatabaseType
;
import
io.shardingsphere.transaction.api.TransactionType
;
import
io.shardingsphere.transaction.core.manager.ShardingTransactionManager
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.mockito.junit.MockitoJUnitRunner
;
import
javax.sql.DataSource
;
import
java.sql.Connection
;
import
java.util.Map
;
import
static
org
.
mockito
.
Mockito
.
mock
;
import
static
org
.
mockito
.
Mockito
.
verify
;
@RunWith
(
MockitoJUnitRunner
.
class
)
public
class
ShardingTransactionHandlerAdapterTest
{
private
FixedShardingTransactionHandler
fixedShardingTransactionHandler
=
new
FixedShardingTransactionHandler
();
private
ShardingTransactionManager
shardingTransactionManager
=
fixedShardingTransactionHandler
.
getShardingTransactionManager
();
@Test
public
void
assertBeginForXATransaction
()
{
fixedShardingTransactionHandler
.
begin
();
verify
(
shardingTransactionManager
).
begin
();
}
@Test
public
void
assertCommitForXATransaction
()
{
fixedShardingTransactionHandler
.
commit
();
verify
(
shardingTransactionManager
).
commit
();
}
@Test
public
void
assertRollbackXATransaction
()
{
fixedShardingTransactionHandler
.
rollback
();
verify
(
shardingTransactionManager
).
rollback
();
}
private
static
final
class
FixedShardingTransactionHandler
extends
ShardingTransactionHandlerAdapter
{
private
ShardingTransactionManager
shardingTransactionManager
=
mock
(
ShardingTransactionManager
.
class
);
@Override
public
ShardingTransactionManager
getShardingTransactionManager
()
{
return
shardingTransactionManager
;
}
@Override
public
TransactionType
getTransactionType
()
{
return
null
;
}
@Override
public
void
registerTransactionalResource
(
final
DatabaseType
databaseType
,
final
Map
<
String
,
DataSource
>
dataSourceMap
)
{
}
@Override
public
void
clearTransactionalResource
()
{
}
@Override
public
Connection
createConnection
(
final
String
dataSourceName
,
final
DataSource
dataSource
)
{
return
null
;
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录