[ https://issues.apache.org/jira/browse/SCB-2425?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lei Zhang updated SCB-2425: --------------------------- Description: The purpose of refactoring is to decouple distributed transaction implementation *Alpha Module* * Rename alpha-fsm to alpha-spec-saga-akka * Add alpha-spec-saga-db * Add alpha-spec-tcc-db * Keep Acceptance module artifactId and directory name the same, e.g. rename acceptance-pack-akka-spring to acceptance-pack-akka-spring-demo * Rename persistence-jpa to alpha/alpha-persistence-jpa *Alpha Using Spring SPI* * Load AlphaSpecXXXAutoConfiguration through spring.factories under each module * Configure the SPI module by parameters, likes alpha.spec.names=saga-db or alpha.spec.names=saga-akka *Alpha Configuration* {code:java} alpha: spec: names: saga-db saga: akka: channel: name: memory memory: max-length: -1 kafka: topic: servicecomb-pack-actor-event bootstrap-servers: 127.0.0.1:9092 consumer: group-id: servicecomb-pack auto.offset.reset: earliest producer: batch-size: 16384 retries: 0 buffer.memory: 33554432 repository: name: elasticsearch elasticsearch: uris: http://localhost:9200 batch-size: 100 refresh-time: 5000 db: datasource: username: sa password: url: jdbc:hsqldb:mem:saga initialization-mode: always cluster: enabled: true type: jdbc expire: 5000 tcc: db: memory-mode: true datasource: username: sa password: url: jdbc:hsqldb:mem:saga initialization-mode: always {code} *Omega Modules* * Split OmegaSpringConfig into OmegaSagaSpringConfig and OmegaTccSpringConfig *Omega AutoConfiguration* * OmegaSagaSpringConfig using omega.spec.names=saga * OmegaTccSpringConfig using omega.spec.names=tcc * TransactionAspectConfig class of the omega-spring-tx module uses ConditionalOnExpression to initialize beans *Legacy Issue* * [Duplicate Code]Create class EclipseLinkJpaConfiguration in test case to avoid dependency on class EclipseLinkJpaConfiguration in alpha-persistence-jpa module * [Duplicate Code]Because of the metrics API, each Spec module contains same classes as follows(saga-xxx and tcc-xxx cannot be enabled at the same time) {code:java} AlphaMetricsEndpointImpl.java MetricsService.java SagaAkkaAPIv1Controller.java, SagaAkkaAPIv1Impl.java SagaDbAPIv1Controller.java, SagaDbAPIv1Impl.java TccDbAPIv1Controller.java, TccDbAPIv1Impl.java {code} * Refactor Redis and Rabbit channel configuration in saga-akka module was: The purpose of refactoring is to decouple distributed transaction implementation *Alpha Module* * Rename alpha-fsm to alpha-spec-saga-akka * Add alpha-spec-saga-db * Add alpha-spec-tcc-db * Keep Acceptance module artifactId and directory name the same, e.g. rename acceptance-pack-akka-spring to acceptance-pack-akka-spring-demo * Rename persistence-jpa to alpha/alpha-persistence-jpa *Alpha Using Spring SPI* * Load AlphaSpecXXXAutoConfiguration through spring.factories under each module * Configure the SPI module by parameters, likes alpha.spec.names=saga-db or alpha.spec.names=saga-akka *Alpha Configuration parameters* {code:java} alpha: spec: names: saga-db saga: akka: channel: name: memory memory: max-length: -1 kafka: topic: servicecomb-pack-actor-event bootstrap-servers: 127.0.0.1:9092 consumer: group-id: servicecomb-pack auto.offset.reset: earliest producer: batch-size: 16384 retries: 0 buffer.memory: 33554432 repository: name: elasticsearch elasticsearch: uris: http://localhost:9200 batch-size: 100 refresh-time: 5000 db: datasource: username: sa password: url: jdbc:hsqldb:mem:saga initialization-mode: always cluster: enabled: true type: jdbc expire: 5000 tcc: db: memory-mode: true datasource: username: sa password: url: jdbc:hsqldb:mem:saga initialization-mode: always {code} *Omega Modules* * Split OmegaSpringConfig into OmegaSagaSpringConfig and OmegaTccSpringConfig *Omega AutoConfiguration* * OmegaSagaSpringConfig using omega.spec.names=saga * OmegaTccSpringConfig using omega.spec.names=tcc * TransactionAspectConfig class of the omega-spring-tx module uses ConditionalOnExpression to initialize beans *Legacy Issue* * [Duplicate Code]Create class EclipseLinkJpaConfiguration in test case to avoid dependency on class EclipseLinkJpaConfiguration in alpha-persistence-jpa module * [Duplicate Code]Because of the metrics API, each Spec module contains same classes as follows(saga-xxx and tcc-xxx cannot be enabled at the same time) {code:java} AlphaMetricsEndpointImpl.java MetricsService.java SagaAkkaAPIv1Controller.java, SagaAkkaAPIv1Impl.java SagaDbAPIv1Controller.java, SagaDbAPIv1Impl.java TccDbAPIv1Controller.java, TccDbAPIv1Impl.java {code} * Refactor Redis and Rabbit channel configuration in saga-akka module > Refactoring the Alpha module using Spring SPI > --------------------------------------------- > > Key: SCB-2425 > URL: https://issues.apache.org/jira/browse/SCB-2425 > Project: Apache ServiceComb > Issue Type: Task > Components: Saga > Affects Versions: pack-0.7.0 > Reporter: Lei Zhang > Assignee: Lei Zhang > Priority: Major > > The purpose of refactoring is to decouple distributed transaction > implementation > *Alpha Module* > * Rename alpha-fsm to alpha-spec-saga-akka > * Add alpha-spec-saga-db > * Add alpha-spec-tcc-db > * Keep Acceptance module artifactId and directory name the same, e.g. rename > acceptance-pack-akka-spring to acceptance-pack-akka-spring-demo > * Rename persistence-jpa to alpha/alpha-persistence-jpa > *Alpha Using Spring SPI* > * Load AlphaSpecXXXAutoConfiguration through spring.factories under each > module > * Configure the SPI module by parameters, likes alpha.spec.names=saga-db or > alpha.spec.names=saga-akka > *Alpha Configuration* > {code:java} > alpha: > spec: > names: saga-db > saga: > akka: > channel: > name: memory > memory: > max-length: -1 > kafka: > topic: servicecomb-pack-actor-event > bootstrap-servers: 127.0.0.1:9092 > consumer: > group-id: servicecomb-pack > auto.offset.reset: earliest > producer: > batch-size: 16384 > retries: 0 > buffer.memory: 33554432 > repository: > name: elasticsearch > elasticsearch: > uris: http://localhost:9200 > batch-size: 100 > refresh-time: 5000 > db: > datasource: > username: sa > password: > url: jdbc:hsqldb:mem:saga > initialization-mode: always > cluster: > enabled: true > type: jdbc > expire: 5000 > tcc: > db: > memory-mode: true > datasource: > username: sa > password: > url: jdbc:hsqldb:mem:saga > initialization-mode: always > {code} > > *Omega Modules* > * Split OmegaSpringConfig into OmegaSagaSpringConfig and OmegaTccSpringConfig > *Omega AutoConfiguration* > * OmegaSagaSpringConfig using omega.spec.names=saga > * OmegaTccSpringConfig using omega.spec.names=tcc > * TransactionAspectConfig class of the omega-spring-tx module uses > ConditionalOnExpression to initialize beans > *Legacy Issue* > * [Duplicate Code]Create class EclipseLinkJpaConfiguration in test case to > avoid dependency on class EclipseLinkJpaConfiguration in > alpha-persistence-jpa module > * [Duplicate Code]Because of the metrics API, each Spec module contains same > classes as follows(saga-xxx and tcc-xxx cannot be enabled at the same time) > {code:java} > AlphaMetricsEndpointImpl.java > MetricsService.java > SagaAkkaAPIv1Controller.java, SagaAkkaAPIv1Impl.java > SagaDbAPIv1Controller.java, SagaDbAPIv1Impl.java > TccDbAPIv1Controller.java, TccDbAPIv1Impl.java > {code} > * Refactor Redis and Rabbit channel configuration in saga-akka module > > -- This message was sent by Atlassian Jira (v8.20.1#820001)