Skip to content

Commit 8b3de8d

Browse files
authored
Merge pull request #238 from codingapi/5.0.0-dev
5.0.0 dev
2 parents cadcd97 + 842d68d commit 8b3de8d

26 files changed

Lines changed: 194 additions & 121 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# tx-lcn分布式事务框架 (5.0.0)
1+
# tx-lcn分布式事务框架 (5.0.0.RELEASE)
22

33
[![Gitter](https://badges.gitter.im/codingapi/tx-lcn.svg)](https://gitter.im/codingapi/tx-lcn?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
44
[![BBS](https://bbs.txlcn.org/style/Archlinux/txlcn-bbs.svg)](https://bbs.txlcn.org)

pom.xml

Lines changed: 41 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>com.codingapi.txlcn</groupId>
88
<artifactId>tx-lcn</artifactId>
9-
<version>5.0.0</version>
9+
<version>5.0.0.RELEASE</version>
1010
<packaging>pom</packaging>
1111

1212

@@ -43,7 +43,7 @@
4343
<maven.javadoc.plugin>2.10.3</maven.javadoc.plugin>
4444
<maven.gpg.plugin>1.6</maven.gpg.plugin>
4545

46-
<codingapi.txlcn.version>5.0.0</codingapi.txlcn.version>
46+
<codingapi.txlcn.version>5.0.0.RELEASE</codingapi.txlcn.version>
4747

4848
<txlcn-org.projectlombok.version>1.18.0</txlcn-org.projectlombok.version>
4949
<txlcn-spring-cloud.version>Finchley.SR2</txlcn-spring-cloud.version>
@@ -53,15 +53,20 @@
5353
<txlcn-hessian.version>4.0.38</txlcn-hessian.version>
5454
<txlcn-protostuff.version>1.1.3</txlcn-protostuff.version>
5555
<txlcn-kryo.version>4.0.0</txlcn-kryo.version>
56-
<txlcn-com.alibaba.boot.dubbo.version>0.2.0</txlcn-com.alibaba.boot.dubbo.version>
57-
<txlcn-brave-instrumentation.version>5.4.3</txlcn-brave-instrumentation.version>
56+
5857
<txlcn-com.lmax.disruptor.version>3.4.2</txlcn-com.lmax.disruptor.version>
5958
<txlcn-commons-dbutils.version>1.7</txlcn-commons-dbutils.version>
6059
<txlcn-com.github.jsqlparser.version>1.3</txlcn-com.github.jsqlparser.version>
6160
<txlcn-com.h2database.version>1.4.197</txlcn-com.h2database.version>
6261
<txlcn-hikari-cp.version>3.1.0</txlcn-hikari-cp.version>
6362
<txlcn-com.github.pagehelper.version>1.2.10</txlcn-com.github.pagehelper.version>
6463
<txlcn-org.mybatis.spring.boot.version>1.3.2</txlcn-org.mybatis.spring.boot.version>
64+
<txlcn-org.springframework.spring-webmvc.version>5.1.4.RELEASE</txlcn-org.springframework.spring-webmvc.version>
65+
<txlcn-javax.servlet-api.version>4.0.1</txlcn-javax.servlet-api.version>
66+
<txlcn-com.alibaba.dubbo.verion>2.6.5</txlcn-com.alibaba.dubbo.verion>
67+
<txlcn-com.netflix.feign.core.verison>8.18.0</txlcn-com.netflix.feign.core.verison>
68+
<txlcn-com.netflix.ribbon.loadbalancer.version>2.3.0</txlcn-com.netflix.ribbon.loadbalancer.version>
69+
<txlcn-org.springframework.cloud.commons.version>2.1.0.RELEASE</txlcn-org.springframework.cloud.commons.version>
6570
</properties>
6671

6772

@@ -225,18 +230,6 @@
225230
<version>${txlcn-com.alibaba.fastjson.version}</version>
226231
</dependency>
227232

228-
<dependency>
229-
<groupId>com.alibaba.boot</groupId>
230-
<artifactId>dubbo-spring-boot-starter</artifactId>
231-
<version>${txlcn-com.alibaba.boot.dubbo.version}</version>
232-
</dependency>
233-
234-
<dependency>
235-
<groupId>io.zipkin.brave</groupId>
236-
<artifactId>brave-instrumentation-dubbo-rpc</artifactId>
237-
<version>${txlcn-brave-instrumentation.version}</version>
238-
</dependency>
239-
240233
<dependency>
241234
<groupId>com.caucho</groupId>
242235
<artifactId>hessian</artifactId>
@@ -267,12 +260,40 @@
267260
<version>${txlcn-guava.version}</version>
268261
</dependency>
269262

263+
<dependency>
264+
<groupId>org.springframework</groupId>
265+
<artifactId>spring-webmvc</artifactId>
266+
<version>${txlcn-org.springframework.spring-webmvc.version}</version>
267+
</dependency>
268+
269+
<dependency>
270+
<groupId>javax.servlet</groupId>
271+
<artifactId>javax.servlet-api</artifactId>
272+
<version>${txlcn-javax.servlet-api.version}</version>
273+
</dependency>
274+
275+
<dependency>
276+
<groupId>com.alibaba</groupId>
277+
<artifactId>dubbo</artifactId>
278+
<version>${txlcn-com.alibaba.dubbo.verion}</version>
279+
</dependency>
280+
281+
<dependency>
282+
<groupId>com.netflix.feign</groupId>
283+
<artifactId>feign-core</artifactId>
284+
<version>${txlcn-com.netflix.feign.core.verison}</version>
285+
</dependency>
286+
287+
<dependency>
288+
<groupId>com.netflix.ribbon</groupId>
289+
<artifactId>ribbon-loadbalancer</artifactId>
290+
<version>${txlcn-com.netflix.ribbon.loadbalancer.version}</version>
291+
</dependency>
292+
270293
<dependency>
271294
<groupId>org.springframework.cloud</groupId>
272-
<artifactId>spring-cloud-dependencies</artifactId>
273-
<version>${txlcn-spring-cloud.version}</version>
274-
<type>pom</type>
275-
<scope>import</scope>
295+
<artifactId>spring-cloud-commons</artifactId>
296+
<version>${txlcn-org.springframework.cloud.commons.version}</version>
276297
</dependency>
277298

278299
</dependencies>

run.txmanager.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
@echo off
22

3-
start java -jar -Xms256m -Xmx512m txlcn-tm/target/txlcn-tm-5.0.0.jar
3+
start java -jar -Xms256m -Xmx512m txlcn-tm/target/txlcn-tm-5.0.0.RELEASE.jar
44

txlcn-common/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>tx-lcn</artifactId>
77
<groupId>com.codingapi.txlcn</groupId>
8-
<version>5.0.0</version>
8+
<version>5.0.0.RELEASE</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

txlcn-common/src/main/java/com/codingapi/txlcn/common/util/Transactions.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,17 @@ public class Transactions {
4343

4444
public static final String TAG_TASK = "Transaction Task";
4545

46+
47+
/**
48+
* 分布式事务类型 Properties传递参数key
49+
*/
50+
public static final String DTX_TYPE = "DTX_TYPE";
51+
52+
/**
53+
* 分布式事务传播类型 Properties传递参数key
54+
*/
55+
public static final String DTX_PROPAGATION = "DTX_PROPAGATION";
56+
4657
/////////// 工具方法 ////////////////////////////////////////////
4758

4859
/**

txlcn-logger/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>tx-lcn</artifactId>
77
<groupId>com.codingapi.txlcn</groupId>
8-
<version>5.0.0</version>
8+
<version>5.0.0.RELEASE</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

txlcn-tc/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.codingapi.txlcn</groupId>
77
<artifactId>tx-lcn</artifactId>
8-
<version>5.0.0</version>
8+
<version>5.0.0.RELEASE</version>
99
</parent>
1010

1111
<artifactId>txlcn-tc</artifactId>

txlcn-tc/src/main/java/com/codingapi/txlcn/tc/annotation/DTXPropagation.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,22 @@ public enum DTXPropagation {
3030
/**
3131
* 当前没有分布式事务,非分布式事务运行。当前有分布式事务,就加入
3232
*/
33-
SUPPORTS
33+
SUPPORTS;
34+
35+
36+
37+
public static DTXPropagation parser(String code){
38+
switch (code){
39+
case "REQUIRED":{
40+
return REQUIRED;
41+
}
42+
case "SUPPORTS":{
43+
return SUPPORTS;
44+
}
45+
default:{
46+
return REQUIRED;
47+
}
48+
}
49+
}
50+
3451
}

txlcn-tc/src/main/java/com/codingapi/txlcn/tc/aspect/interceptor/DTXInterceptor.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import org.aopalliance.intercept.MethodInvocation;
2020
import org.springframework.transaction.interceptor.TransactionInterceptor;
2121

22+
import java.util.Properties;
23+
2224
/**
2325
* Description:
2426
* Date: 1/12/19
@@ -30,13 +32,21 @@ public class DTXInterceptor extends TransactionInterceptor {
3032

3133
private final DTXLogicWeaver dtxLogicWeaver;
3234

35+
private Properties transactionAttributes;
36+
3337
public DTXInterceptor(DTXLogicWeaver dtxLogicWeaver) {
3438
this.dtxLogicWeaver = dtxLogicWeaver;
3539
}
3640

41+
@Override
42+
public void setTransactionAttributes(Properties transactionAttributes) {
43+
this.transactionAttributes = transactionAttributes;
44+
super.setTransactionAttributes(transactionAttributes);
45+
}
46+
3747
@Override
3848
public Object invoke(MethodInvocation invocation) throws Throwable {
39-
return dtxLogicWeaver.runTransaction(InterceptorInvocationUtils.load(invocation), () -> super.invoke(invocation));
49+
return dtxLogicWeaver.runTransaction(InterceptorInvocationUtils.load(invocation,transactionAttributes), () -> super.invoke(invocation));
4050
}
4151

4252
}

txlcn-tc/src/main/java/com/codingapi/txlcn/tc/aspect/interceptor/InterceptorInvocationUtils.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.aopalliance.intercept.MethodInvocation;
2222

2323
import java.util.Objects;
24+
import java.util.Properties;
2425

2526
/**
2627
* Description:
@@ -31,11 +32,17 @@
3132
*/
3233
class InterceptorInvocationUtils {
3334

34-
static DTXInfo load(MethodInvocation invocation) {
35-
TxTransaction txTransaction = invocation.getMethod().getAnnotation(TxTransaction.class);
35+
static DTXInfo load(MethodInvocation invocation, Properties transactionAttributes) {
36+
//默认值
3637
String transactionType = Transactions.LCN;
3738
DTXPropagation dtxPropagation = DTXPropagation.REQUIRED;
38-
39+
//优先获取配置的信息
40+
if(transactionAttributes!=null){
41+
transactionType = transactionAttributes.getProperty(Transactions.DTX_TYPE);
42+
dtxPropagation = DTXPropagation.parser(transactionAttributes.getProperty(Transactions.DTX_PROPAGATION));
43+
}
44+
//获取注解的信息
45+
TxTransaction txTransaction = invocation.getMethod().getAnnotation(TxTransaction.class);
3946
if (Objects.nonNull(txTransaction)) {
4047
transactionType = txTransaction.type();
4148
dtxPropagation = txTransaction.propagation();

0 commit comments

Comments
 (0)