Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature: Saga support auto configuration in the spring boot project #2838

Merged
merged 66 commits into from
Sep 30, 2021

Conversation

wangliang181230
Copy link
Contributor

@wangliang181230 wangliang181230 commented Jun 28, 2020

Ⅰ. Describe what this PR did

feature: Saga support auto configuration in the spring boot project

从PR #2551 中拆分出来的。

此PR实现的功能:

在springboot项目中:

  1. 添加SeataSagaAutoConfiguration自动配置类,默认为禁用。需要配置seata.saga.enabled=true启动。
  2. 在AutoConfiguration的情况下,DefaultStateMachineConfig的resources属性不支持通配符配置,现修复此问题。
    另外添加了是否允许自动加载resources的配置项。主要用于dev环境下配置为false,不解析resources属性,加快项目启动速度。
  3. 添加saga的yml配置方式:
seata:
  saga:
    enabled: false
    state-machine:
      table-prefix: seata_
      enable-async: false
      async-thread-pool:
        core-pool-size: 1
        max-pool-size: 20
        keep-alive-time: 60
      trans-operation-timeout: 1800000
      service-invoke-timeout: 300000
      auto-register-resources: true
      resources:
        - classpath*:seata/saga/statelang/**/*.json
      default-tenant-id: 000001
      charset: UTF-8
  1. 在springboot应用中,通过yaml方式配置seata时,部分配置项添加自动提示功能,包括提示可选值及各值的备注信息。

Ⅱ. Does this pull request fix one issue?

fixes #3273
fixes #4051
fixes #3509

Ⅲ. Why don't you add test cases (unit test/integration test)?

Ⅳ. Describe how to verify it

Ⅴ. Special notes for reviews

@codecov-commenter
Copy link

codecov-commenter commented Jun 28, 2020

Codecov Report

Merging #2838 into develop will decrease coverage by 0.05%.
The diff coverage is 25.00%.

Impacted file tree graph

@@              Coverage Diff              @@
##             develop    #2838      +/-   ##
=============================================
- Coverage      50.63%   50.58%   -0.06%     
- Complexity      3103     3111       +8     
=============================================
  Files            593      596       +3     
  Lines          19495    19543      +48     
  Branches        2406     2408       +2     
=============================================
+ Hits            9872     9886      +14     
- Misses          8633     8669      +36     
+ Partials         990      988       -2     
Impacted Files Coverage Δ Complexity Δ
...boot/autoconfigure/SeataSagaAutoConfiguration.java 0.00% <0.00%> (ø) 0.00 <0.00> (?)
...operties/client/SagaAsyncThreadPoolProperties.java 30.76% <30.76%> (ø) 1.00 <1.00> (?)
...eata/saga/statelang/parser/utils/ResourceUtil.java 66.66% <66.66%> (ø) 5.00 <5.00> (?)
...ta/spring/boot/autoconfigure/StarterConstants.java 100.00% <100.00%> (ø) 1.00 <0.00> (ø)
...in/java/io/seata/server/session/GlobalSession.java 82.88% <0.00%> (+0.45%) 71.00% <0.00%> (+1.00%)
...o/seata/server/coordinator/DefaultCoordinator.java 55.15% <0.00%> (+0.51%) 29.00% <0.00%> (+1.00%)

@wangliang181230
Copy link
Contributor Author

@long187 ,我从PR #2551 里拆分出来了几个PR,麻烦review一下吧。

@funky-eyes funky-eyes requested a review from long187 June 28, 2020 08:22
Copy link
Contributor

@long187 long187 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@long187 long187 added this to the 1.3.0 milestone Jun 30, 2020
@slievrly slievrly removed this from the 1.3.0 milestone Jun 30, 2020
…ts中,使FileConfiguration在springboot项目中,可以获取到相应的配置值。
…o-config

# Conflicts:
#	seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/StarterConstants.java
Copy link
Contributor

@long187 long187 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

…o-config

# Conflicts:
#	saga/seata-saga-engine/src/main/java/io/seata/saga/engine/impl/DefaultStateMachineConfig.java
#	script/client/conf/file.conf
#	script/client/spring/application.properties
#	script/client/spring/application.yml
#	script/config-center/config.txt
#	seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/SeataAutoConfiguration.java
#	seata-spring-boot-starter/src/main/java/io/seata/spring/boot/autoconfigure/StarterConstants.java
@codecov-commenter
Copy link

codecov-commenter commented May 17, 2021

Codecov Report

Merging #2838 (ed30a81) into develop (418ca45) will decrease coverage by 0.05%.
The diff coverage is 20.83%.

Impacted file tree graph

@@              Coverage Diff              @@
##             develop    #2838      +/-   ##
=============================================
- Coverage      49.92%   49.86%   -0.06%     
- Complexity      3768     3776       +8     
=============================================
  Files            697      700       +3     
  Lines          23519    23567      +48     
  Branches        2909     2910       +1     
=============================================
+ Hits           11742    11752      +10     
- Misses         10594    10632      +38     
  Partials        1183     1183              
Impacted Files Coverage Δ
...configure/SeataClientEnvironmentPostProcessor.java 0.00% <0.00%> (ø)
...ta/spring/boot/autoconfigure/StarterConstants.java 100.00% <ø> (ø)
...boot/autoconfigure/SeataSagaAutoConfiguration.java 0.00% <0.00%> (ø)
...gure/properties/SagaAsyncThreadPoolProperties.java 30.76% <30.76%> (ø)
...eata/saga/statelang/parser/utils/ResourceUtil.java 66.66% <66.66%> (ø)

…o-config

# Conflicts:
#	seata-spring-autoconfigure/seata-spring-autoconfigure-client/src/main/resources/META-INF/additional-spring-configuration-metadata.json
#	seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/SeataCorePropertiesAutoConfiguration.java
#	seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/properties/SagaAsyncThreadPoolProperties.java
…o-config

# Conflicts:
#	script/client/spring/application.properties
#	script/client/spring/application.yml
#	seata-spring-autoconfigure/seata-spring-autoconfigure-client/src/main/resources/META-INF/additional-spring-configuration-metadata.json
#	seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/StarterConstants.java
# Conflicts:
#	script/client/conf/file.conf
#	script/client/spring/application.properties
#	script/client/spring/application.yml
#	seata-spring-autoconfigure/seata-spring-autoconfigure-client/src/main/java/io/seata/spring/boot/autoconfigure/SeataClientEnvironmentPostProcessor.java
#	seata-spring-autoconfigure/seata-spring-autoconfigure-client/src/main/resources/META-INF/additional-spring-configuration-metadata.json
#	seata-spring-autoconfigure/seata-spring-autoconfigure-core/src/main/java/io/seata/spring/boot/autoconfigure/StarterConstants.java
Copy link
Contributor

@funky-eyes funky-eyes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
module/saga saga module module/script script module module/seata-spring-boot-starter seata-spring-boot-starter module
Projects
None yet
8 participants