Skip to content

Commit 425dc5f

Browse files
committed
fixed #231
1 parent 24e2a32 commit 425dc5f

6 files changed

Lines changed: 35 additions & 14 deletions

File tree

txlcn-tc/src/main/java/com/codingapi/txlcn/tc/TCAutoConfiguration.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@
2222
import com.codingapi.txlcn.tracing.TracingAutoConfiguration;
2323
import org.springframework.boot.ApplicationRunner;
2424
import org.springframework.context.ApplicationContext;
25-
import org.springframework.context.annotation.Bean;
26-
import org.springframework.context.annotation.ComponentScan;
27-
import org.springframework.context.annotation.Configuration;
28-
import org.springframework.context.annotation.Import;
25+
import org.springframework.context.annotation.*;
2926

3027
/**
3128
* Description:
@@ -35,8 +32,12 @@
3532
* @see EnableDistributedTransaction
3633
*/
3734
@Configuration
38-
@ComponentScan
39-
@Import({TxLoggerConfiguration.class, TracingAutoConfiguration.class, DependenciesImportSelector.class})
35+
@ComponentScan(
36+
excludeFilters = @ComponentScan.Filter(
37+
type = FilterType.ASPECTJ, pattern = "com.codingapi.txlcn.tc.core.transaction.txc..*"
38+
)
39+
)
40+
@Import({TxLoggerConfiguration.class, TracingAutoConfiguration.class})
4041
public class TCAutoConfiguration {
4142

4243
/**

txlcn-tc/src/main/java/com/codingapi/txlcn/tc/config/DependenciesImportSelector.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,15 @@
1515
*/
1616
package com.codingapi.txlcn.tc.config;
1717

18+
import com.codingapi.txlcn.tc.core.transaction.txc.TxcConfiguration;
1819
import org.springframework.context.annotation.ImportSelector;
1920
import org.springframework.core.type.AnnotationMetadata;
2021
import org.springframework.lang.NonNull;
2122

23+
import java.util.ArrayList;
24+
import java.util.List;
25+
import java.util.Objects;
26+
2227
/**
2328
* Description:
2429
* Date: 1/19/19
@@ -36,8 +41,15 @@ public class DependenciesImportSelector implements ImportSelector {
3641
@Override
3742
@NonNull
3843
public String[] selectImports(@NonNull AnnotationMetadata importingClassMetadata) {
39-
return new String[]{
40-
"com.codingapi.txlcn.txmsg.MessageConfiguration"
41-
};
44+
boolean enabledTxc = Boolean.valueOf(
45+
Objects.requireNonNull(
46+
importingClassMetadata.getAnnotationAttributes(EnableDistributedTransaction.class.getName()))
47+
.get("enableTxc").toString());
48+
List<String> importClasses = new ArrayList<>();
49+
importClasses.add("com.codingapi.txlcn.txmsg.MessageConfiguration");
50+
if (enabledTxc) {
51+
importClasses.add(TxcConfiguration.class.getName());
52+
}
53+
return importClasses.toArray(new String[0]);
4254
}
4355
}

txlcn-tc/src/main/java/com/codingapi/txlcn/tc/config/EnableDistributedTransaction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
@Retention(RetentionPolicy.RUNTIME)
3131
@Target(ElementType.TYPE)
3232
@Documented
33-
@Import(TCAutoConfiguration.class)
33+
@Import(value = {TCAutoConfiguration.class, DependenciesImportSelector.class})
3434
public @interface EnableDistributedTransaction {
35-
35+
boolean enableTxc() default true;
3636
}

txlcn-tc/src/main/java/com/codingapi/txlcn/tc/core/transaction/txc/TxcConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import org.apache.commons.dbutils.QueryRunner;
1919
import org.springframework.context.annotation.Bean;
20+
import org.springframework.context.annotation.ComponentScan;
2021
import org.springframework.context.annotation.Configuration;
2122
import org.springframework.context.annotation.Primary;
2223

@@ -29,6 +30,7 @@
2930
* @author ujued
3031
*/
3132
@Configuration
33+
@ComponentScan
3234
public class TxcConfiguration {
3335

3436
/**

txlcn-tc/src/test/java/com/codingapi/txlcn/tc/MiniConfiguration.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
*/
1616
package com.codingapi.txlcn.tc;
1717

18+
import com.codingapi.txlcn.tc.config.EnableDistributedTransaction;
1819
import com.zaxxer.hikari.HikariDataSource;
19-
import org.springframework.context.annotation.Bean;
2020
import org.springframework.context.annotation.Configuration;
2121

2222
import javax.sql.DataSource;
@@ -28,9 +28,10 @@
2828
* @author ujued
2929
*/
3030
@Configuration
31+
@EnableDistributedTransaction(enableTxc = false)
3132
public class MiniConfiguration {
3233

33-
@Bean
34+
// @Bean
3435
public DataSource dataSource() {
3536
HikariDataSource hikariDataSource = new HikariDataSource();
3637
hikariDataSource.setDriverClassName("com.mysql.jdbc.Driver");

txlcn-tc/src/test/java/com/codingapi/txlcn/tc/RpcTest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
* @author ujued
3838
*/
3939
@RunWith(SpringRunner.class)
40-
@SpringBootTest(classes = {TCAutoConfiguration.class, MiniConfiguration.class})
40+
@SpringBootTest(classes = MiniConfiguration.class)
4141
public class RpcTest {
4242

4343
@Autowired
@@ -93,4 +93,9 @@ public void testCluster() throws RpcException {
9393
messenger.request(new MessageDto());
9494
}
9595

96+
@Test
97+
public void testTxc() {
98+
99+
}
100+
96101
}

0 commit comments

Comments
 (0)