diff --git a/.circleci/config.yml b/.circleci/config.yml index 3f260a24..3beeaa62 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -24,7 +24,7 @@ jobs: - ~/.m2 - run: name: "Running build" - command: ./mvnw -Pdocs clean install -U -nsu --batch-mode -Dmaven.test.redirectTestOutputToFile=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dgpg.skip + command: ./mvnw clean install -U -nsu --batch-mode -Dmaven.test.redirectTestOutputToFile=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dgpg.skip - run: name: "Aggregate test results" when: always diff --git a/.gitignore b/.gitignore index 942b16d3..a6bd7fbe 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,11 @@ hs_err_pid* target .DS_Store +# temp ignore +*.cache +*.diff +*.patch +*.tmp + +# Maven ignore +.flattened-pom.xml diff --git a/.mvn/maven.config b/.mvn/maven.config index 3b8cf46e..e69de29b 100644 --- a/.mvn/maven.config +++ b/.mvn/maven.config @@ -1 +0,0 @@ --DaltSnapshotDeploymentRepository=repo.spring.io::default::https://repo.spring.io/libs-snapshot-local -P spring diff --git a/mvnw b/mvnw index 675cb6b0..761189a9 100755 --- a/mvnw +++ b/mvnw @@ -227,7 +227,7 @@ export MAVEN_CMD_LINE_ARGS WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain echo "Running version check" -VERSION=$( sed '\!//' -e 's!.*$!!' ) +VERSION=$( sed '\!//' -e 's!.*$!!' ) echo "The found version is [${VERSION}]" if echo $VERSION | egrep -q 'M|RC'; then @@ -249,5 +249,6 @@ fi exec "$JAVACMD" \ $MAVEN_OPTS \ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Drevision=${VERSION}" \ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ ${WRAPPER_LAUNCHER} ${MAVEN_ARGS} "$@" \ No newline at end of file diff --git a/pom.xml b/pom.xml index 2f5e411d..08629915 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.alibaba.cloud spring-cloud-alibaba - 2.2.1.BUILD-SNAPSHOT + ${revision} pom Spring Cloud Alibaba Spring Cloud Alibaba @@ -69,9 +69,19 @@ yunzheng yunzheng1228@gmail.com + + theonefx + theonefx + chenxilzx1@gmail.com + Alibaba + https://github.com/theonefx + + + 2.2.1.RELEASE + 2.2.2.RELEASE 2.2.2.RELEASE @@ -88,7 +98,7 @@ 1.7.25 - 2.7.4.1 + 2.7.6 4.0.1 @@ -98,6 +108,10 @@ 3.7.0 2.8.2 2.21.0 + 2.2.1 + 3.1.1 + 1.6 + 1.1.0 1.6 0.8.3 @@ -304,7 +318,7 @@ - eclipse/checkstyle-suppressions.xml + ${session.executionRootDirectory}/eclipse/checkstyle-suppressions.xml true true true @@ -348,70 +362,92 @@ - - spring - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot-local - - true - - - false - - - - spring-milestones - Spring Milestones - https://repo.spring.io/libs-milestone-local - - false - - - - spring-releases - Spring Releases - https://repo.spring.io/release - - false - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot-local - - true - - - false - - - - spring-milestones - Spring Milestones - https://repo.spring.io/libs-milestone-local - - false - - - - spring-releases - Spring Releases - https://repo.spring.io/libs-release-local - - false - - - - + release + + + + org.apache.maven.plugins + maven-source-plugin + ${maven-source-plugin.version} + + + package + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + + + package + + jar + + + + + + org.apache.maven.plugins + maven-gpg-plugin + ${maven-gpg-plugin.version} + + + verify + + sign + + + + + + + org.codehaus.mojo + flatten-maven-plugin + ${flatten-maven-plugin.version} + + true + resolveCiFriendliesOnly + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + + + + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots/ + + + sonatype-nexus-staging + Nexus Release Repository + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + - \ No newline at end of file diff --git a/spring-cloud-alibaba-coverage/pom.xml b/spring-cloud-alibaba-coverage/pom.xml index d05bf6ad..9df89df8 100644 --- a/spring-cloud-alibaba-coverage/pom.xml +++ b/spring-cloud-alibaba-coverage/pom.xml @@ -8,7 +8,7 @@ com.alibaba.cloud spring-cloud-alibaba - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml @@ -19,66 +19,66 @@ com.alibaba.cloud spring-cloud-alibaba-sentinel-datasource - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-alibaba-sentinel - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-circuitbreaker-sentinel - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-alibaba-seata - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config-server - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-stream-rocketmq - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-bus-rocketmq - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-alibaba-sidecar - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-dubbo - ${project.version} + ${revision} diff --git a/spring-cloud-alibaba-dependencies/pom.xml b/spring-cloud-alibaba-dependencies/pom.xml index 5c2b55ed..25190946 100644 --- a/spring-cloud-alibaba-dependencies/pom.xml +++ b/spring-cloud-alibaba-dependencies/pom.xml @@ -12,27 +12,25 @@ com.alibaba.cloud spring-cloud-alibaba-dependencies - 2.2.1.BUILD-SNAPSHOT + ${revision} pom Spring Cloud Alibaba Dependencies Spring Cloud Alibaba Dependencies + 2.2.1.RELEASE 1.7.1 3.1.0 1.1.0 1.2.1 0.8.0 - 1.0.9 - 1.0.1 - 4.4.1 - 1.0.5 - 2.44.0 - 2.1.6 - 1.1.0 - 1.1.8.6 - 1.1.1 - 1.0.5 + 1.0.6 + + + 2.2.1 + 3.1.1 + 1.6 + 1.1.0 @@ -93,6 +91,12 @@ ${sentinel.version} + + com.alibaba.csp + sentinel-datasource-consul + ${sentinel.version} + + com.alibaba.csp sentinel-web-servlet @@ -180,73 +184,73 @@ com.alibaba.cloud spring-cloud-alibaba-sentinel-datasource - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-alibaba-sentinel-gateway - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-alibaba-sentinel - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-circuitbreaker-sentinel - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-alibaba-seata - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config-server - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-stream-rocketmq - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-bus-rocketmq - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-alibaba-sidecar - ${project.version} + ${revision} com.alibaba.cloud spring-cloud-starter-dubbo - ${project.version} + ${revision} @@ -261,67 +265,91 @@ - - spring - + release + + + + org.apache.maven.plugins + maven-source-plugin + ${maven-source-plugin.version} + + + package + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + ${maven-javadoc-plugin.version} + + + package + + jar + + + + + + + org.apache.maven.plugins + maven-gpg-plugin + ${maven-gpg-plugin.version} + + + verify + + sign + + + + + + + org.codehaus.mojo + flatten-maven-plugin + ${flatten-maven-plugin.version} + + true + resolveCiFriendliesOnly + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + + + + + + sonatype-nexus-snapshots + Sonatype Nexus Snapshots + https://oss.sonatype.org/content/repositories/snapshots/ + - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot-local - - true - - - false - + sonatype-nexus-staging + Nexus Release Repository + https://oss.sonatype.org/service/local/staging/deploy/maven2/ - - spring-milestones - Spring Milestones - https://repo.spring.io/libs-milestone-local - - false - - - - spring-releases - Spring Releases - https://repo.spring.io/release - - false - - - - - - spring-snapshots - Spring Snapshots - https://repo.spring.io/libs-snapshot-local - - true - - - false - - - - spring-milestones - Spring Milestones - https://repo.spring.io/libs-milestone-local - - false - - - - spring-releases - Spring Releases - https://repo.spring.io/libs-release-local - - false - - - + diff --git a/spring-cloud-alibaba-docs/pom.xml b/spring-cloud-alibaba-docs/pom.xml index 6b9159de..1c03ca68 100644 --- a/spring-cloud-alibaba-docs/pom.xml +++ b/spring-cloud-alibaba-docs/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/pom.xml index c2c1aa7f..cf5e5ada 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/pom.xml @@ -5,15 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 - nacos-config-example - jar + Spring Cloud Starter Alibaba Nacos Config Example Example demonstrating how to use nacos config + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/pom.xml index 6836e986..4b0e61f1 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/pom.xml @@ -5,14 +5,15 @@ com.alibaba.cloud nacos-discovery-example - 2.2.1.BUILD-SNAPSHOT + ${revision} 4.0.0 nacos-discovery-consumer-example - jar + Spring Cloud Starter Alibaba Nacos Discovery Consumer Example Example demonstrating how to use nacos discovery + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-sclb-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-sclb-example/pom.xml index 69d86bb5..2771c802 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-sclb-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-sclb-example/pom.xml @@ -5,14 +5,15 @@ com.alibaba.cloud nacos-discovery-example - 2.2.1.BUILD-SNAPSHOT + ${revision} 4.0.0 nacos-discovery-consumer-sclb-example - jar + Spring Cloud Starter Alibaba Nacos Discovery x Load Balancer Example Example demonstrating how to use nacos discovery + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/pom.xml index 09a5e33a..6e9b11d1 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/pom.xml @@ -5,14 +5,15 @@ com.alibaba.cloud nacos-discovery-example - 2.2.1.BUILD-SNAPSHOT + ${revision} 4.0.0 nacos-discovery-provider-example - jar + Spring Cloud Starter Alibaba Nacos Discovery Provider Example Example demonstrating how to use nacos discovery + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-client-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-client-example/pom.xml index e2b2d1d6..82cdbcd4 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-client-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-client-example/pom.xml @@ -5,14 +5,15 @@ com.alibaba.cloud nacos-discovery-example - 2.2.1.BUILD-SNAPSHOT + ${revision} 4.0.0 nacos-discovery-spring-cloud-config-client-example - jar + Spring Cloud Starter Alibaba Nacos Discovery x Config Client Example Example demonstrating how to use nacos discovery + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-server-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-server-example/pom.xml index 0402b2af..a04990fe 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-server-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-server-example/pom.xml @@ -5,14 +5,15 @@ com.alibaba.cloud nacos-discovery-example - 2.2.1.BUILD-SNAPSHOT + ${revision} 4.0.0 nacos-discovery-spring-cloud-config-server-example - jar + Spring Cloud Starter Alibaba Nacos Discovery x Config Server Example Example demonstrating how to use nacos discovery + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-reactivediscovery-consumer-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-reactivediscovery-consumer-example/pom.xml index b021aa3d..4d39842f 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-reactivediscovery-consumer-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-reactivediscovery-consumer-example/pom.xml @@ -5,14 +5,15 @@ com.alibaba.cloud nacos-discovery-example - 2.2.1.BUILD-SNAPSHOT + ${revision} 4.0.0 nacos-reactivediscovery-consumer-example - jar + Spring Cloud Starter Alibaba Nacos Discovery Reactive Example Example demonstrating how to use nacos discovery + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/pom.xml index b067a041..0efdc8c9 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/pom.xml @@ -5,15 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 - nacos-discovery-example - pom + Spring Cloud Starter Alibaba Nacos Discovery Examples Example demonstrating how to use nacos discovery + pom diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-discovery-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-discovery-example/pom.xml index 726195a3..97e014c7 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-discovery-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-discovery-example/pom.xml @@ -5,14 +5,15 @@ com.alibaba.cloud nacos-gateway-example - 2.2.1.BUILD-SNAPSHOT + ${revision} 4.0.0 nacos-gateway-discovery-example - jar + Spring Cloud Starter Alibaba Nacos Discovery x Gateway Example Example demonstrating how to use gateway with nacos + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-provider-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-provider-example/pom.xml index a7d78adb..2662ab51 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-provider-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-provider-example/pom.xml @@ -5,14 +5,15 @@ com.alibaba.cloud nacos-gateway-example - 2.2.1.BUILD-SNAPSHOT + ${revision} 4.0.0 nacos-gateway-provider-example - jar + Spring Cloud Starter Alibaba Nacos Discovery x Gateway - Provider Example Example demonstrating how to use gateway with nacos + jar diff --git a/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/pom.xml b/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/pom.xml index 3c1b6f7b..7c3552a0 100644 --- a/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/pom.xml +++ b/spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/pom.xml @@ -5,15 +5,16 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 nacos-gateway-example - pom + Spring Cloud Starter Alibaba Nacos Discovery x Gateway Examples Example demonstrating how to use gateway with nacos + pom diff --git a/spring-cloud-alibaba-examples/pom.xml b/spring-cloud-alibaba-examples/pom.xml index 7187c96e..157fc502 100644 --- a/spring-cloud-alibaba-examples/pom.xml +++ b/spring-cloud-alibaba-examples/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-consume-example/pom.xml b/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-consume-example/pom.xml index 27ea18a7..00bf7382 100644 --- a/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-consume-example/pom.xml +++ b/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-consume-example/pom.xml @@ -5,15 +5,16 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 rocketmq-consume-example - jar + Spring Cloud Starter Stream Alibaba RocketMQ Consume Example Example demonstrating how to use rocketmq consume + jar diff --git a/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-produce-example/pom.xml b/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-produce-example/pom.xml index e51cd32c..31de576b 100644 --- a/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-produce-example/pom.xml +++ b/spring-cloud-alibaba-examples/rocketmq-example/rocketmq-produce-example/pom.xml @@ -5,15 +5,16 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 rocketmq-produce-example - jar + Spring Cloud Starter Stream Alibaba RocketMQ Produce Example Example demonstrating how to use rocketmq produce + jar diff --git a/spring-cloud-alibaba-examples/seata-example/account-service/pom.xml b/spring-cloud-alibaba-examples/seata-example/account-service/pom.xml index a4fbd44b..99aa658f 100644 --- a/spring-cloud-alibaba-examples/seata-example/account-service/pom.xml +++ b/spring-cloud-alibaba-examples/seata-example/account-service/pom.xml @@ -5,11 +5,14 @@ spring-cloud-alibaba-examples com.alibaba.cloud - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 + account-service + Spring Cloud Starter Alibaba Seata Example - Account Service + jar diff --git a/spring-cloud-alibaba-examples/seata-example/business-service/pom.xml b/spring-cloud-alibaba-examples/seata-example/business-service/pom.xml index 54f24ffd..0ae95db7 100644 --- a/spring-cloud-alibaba-examples/seata-example/business-service/pom.xml +++ b/spring-cloud-alibaba-examples/seata-example/business-service/pom.xml @@ -5,11 +5,13 @@ spring-cloud-alibaba-examples com.alibaba.cloud - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 business-service + Spring Cloud Starter Alibaba Seata Example - Business Service + jar diff --git a/spring-cloud-alibaba-examples/seata-example/order-service/pom.xml b/spring-cloud-alibaba-examples/seata-example/order-service/pom.xml index 7d35ee32..a856310d 100644 --- a/spring-cloud-alibaba-examples/seata-example/order-service/pom.xml +++ b/spring-cloud-alibaba-examples/seata-example/order-service/pom.xml @@ -5,11 +5,13 @@ spring-cloud-alibaba-examples com.alibaba.cloud - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 order-service + Spring Cloud Starter Alibaba Seata Example - Business Service + jar diff --git a/spring-cloud-alibaba-examples/seata-example/storage-service/pom.xml b/spring-cloud-alibaba-examples/seata-example/storage-service/pom.xml index 276be3a8..a2cbdccd 100644 --- a/spring-cloud-alibaba-examples/seata-example/storage-service/pom.xml +++ b/spring-cloud-alibaba-examples/seata-example/storage-service/pom.xml @@ -5,11 +5,13 @@ spring-cloud-alibaba-examples com.alibaba.cloud - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 storage-service + Spring Cloud Starter Alibaba Seata Example - Storage Service + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/pom.xml index 597311dc..650e46e7 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/pom.xml @@ -5,15 +5,16 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 sentinel-core-example - jar + Spring Cloud Starter Alibaba Sentinel Core Example Example demonstrating how to use sentinel + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-api/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-api/pom.xml index ad4190ad..dcb0d8d4 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-api/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-api/pom.xml @@ -5,14 +5,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../../pom.xml 4.0.0 sentinel-dubbo-api - jar + Spring Cloud Starter Alibaba Sentinel x Dubbo - API api for sentinel dubbo example + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-consumer-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-consumer-example/pom.xml index 3c448d55..e1f0552b 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-consumer-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-consumer-example/pom.xml @@ -5,15 +5,16 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../../pom.xml 4.0.0 sentinel-dubbo-consumer-example - jar + Spring Cloud Starter Alibaba Sentinel x Dubbo - Consumer Example Example demonstrating how to use sentinel with dubbo + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-provider-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-provider-example/pom.xml index e35522f7..78c64092 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-provider-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-dubbo-example/sentinel-dubbo-provider-example/pom.xml @@ -5,15 +5,16 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../../pom.xml 4.0.0 sentinel-dubbo-provider-example - jar + Spring Cloud Starter Alibaba Sentinel x Dubbo - Provider Example Example demonstrating how to use sentinel with dubbo + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-consumer-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-consumer-example/pom.xml index 019e1bf8..2ef10965 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-consumer-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-consumer-example/pom.xml @@ -5,15 +5,16 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../../pom.xml 4.0.0 sentinel-feign-consumer-example - jar + Spring Cloud Starter Alibaba Sentinel x Feign - Consumer Example Example demonstrating how to use sentinel with feign + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-provider-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-provider-example/pom.xml index ddfceddd..8f31d86a 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-provider-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-feign-example/sentinel-feign-provider-example/pom.xml @@ -5,15 +5,16 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../../pom.xml 4.0.0 sentinel-feign-provider-example - jar + Spring Cloud Starter Alibaba Sentinel x Feign - Provider Example Example demonstrating how to use sentinel with feign + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-spring-cloud-gateway-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-spring-cloud-gateway-example/pom.xml index 46efa251..bfe1badc 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-spring-cloud-gateway-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-spring-cloud-gateway-example/pom.xml @@ -5,15 +5,16 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 sentinel-spring-cloud-gateway-example - jar + Spring Cloud Starter Alibaba Sentinel x Gateway Example Example demonstrating how to use sentinel with spring cloud gateway + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-webflux-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-webflux-example/pom.xml index ce3a18e3..3b3a7c1a 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-webflux-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-webflux-example/pom.xml @@ -5,15 +5,16 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 sentinel-webflux-example - jar + Spring Cloud Starter Alibaba Sentinel x WebFlux Example Example demonstrating how to use sentinel with webflux + jar diff --git a/spring-cloud-alibaba-examples/sentinel-example/sentinel-zuul-example/pom.xml b/spring-cloud-alibaba-examples/sentinel-example/sentinel-zuul-example/pom.xml index 5116bd6b..6fff4420 100644 --- a/spring-cloud-alibaba-examples/sentinel-example/sentinel-zuul-example/pom.xml +++ b/spring-cloud-alibaba-examples/sentinel-example/sentinel-zuul-example/pom.xml @@ -5,15 +5,16 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 sentinel-zuul-example - jar + Spring Cloud Starter Alibaba Sentinel x Zuul Example Example demonstrating how to use sentinel with zuul + jar diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/README_CN.md b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/README_CN.md index 412d5722..28e2428d 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/README_CN.md +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/README_CN.md @@ -345,4 +345,4 @@ HTTP 响应为: - [spring-cloud-dubbo-provider-web-sample](spring-cloud-dubbo-provider-web-sample):Dubbo Spring Cloud 服务提供方示例(Web 应用) - [spring-cloud-dubbo-provider-sample](spring-cloud-dubbo-provider-sample):Dubbo Spring Cloud 服务提供方示例(非 Web 应用) - [spring-cloud-dubbo-consumer-sample](spring-cloud-dubbo-consumer-sample):Dubbo Spring Cloud 服务消费方示例 -- [spring-cloud-dubbo-servlet-gateway](spring-cloud-dubbo-servlet-gateway)-sample:Dubbo Spring Cloud Servlet 网关简易实现示例 +- [spring-cloud-dubbo-servlet-gateway](spring-cloud-dubbo-servlet-gateway-sample):Dubbo Spring Cloud Servlet 网关简易实现示例 diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/pom.xml index 2a6990b1..75ed0883 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/pom.xml @@ -5,14 +5,14 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml 4.0.0 com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} Spring Cloud Alibaba Dubbo Examples pom diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/pom.xml index b850d55f..c37db212 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml 4.0.0 @@ -13,7 +13,6 @@ com.alibaba.cloud spring-cloud-dubbo-client-sample Spring Cloud Dubbo Client Sample - 2.2.1.BUILD-SNAPSHOT diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/src/main/resources/bootstrap.yaml index 42e49bcb..757a772f 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/src/main/resources/bootstrap.yaml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-client-sample/src/main/resources/bootstrap.yaml @@ -11,5 +11,7 @@ spring: allow-bean-definition-overriding: true cloud: nacos: + username: nacos + password: nacos discovery: server-addr: 127.0.0.1:8848 \ No newline at end of file diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/pom.xml index e46c74c7..3b855121 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml 4.0.0 diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/resources/bootstrap.yaml index dca555cf..6dcd0df3 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/resources/bootstrap.yaml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-consumer-sample/src/main/resources/bootstrap.yaml @@ -8,6 +8,8 @@ spring: # default disable all cloud: nacos: + username: nacos + password: nacos discovery: enabled: false register-enabled: false diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/pom.xml index c2ecf556..d7e932e7 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml 4.0.0 diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/resources/bootstrap.yaml index 0d8dfca9..8f56b284 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/resources/bootstrap.yaml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-sample/src/main/resources/bootstrap.yaml @@ -27,6 +27,8 @@ spring: cloud: nacos: + username: nacos + password: nacos discovery: enabled: true register-enabled: true diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/pom.xml index 219365b7..d434ebb1 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml 4.0.0 diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/resources/bootstrap.yaml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/resources/bootstrap.yaml index 0d8dfca9..bf4d028d 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/resources/bootstrap.yaml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-provider-web-sample/src/main/resources/bootstrap.yaml @@ -8,6 +8,8 @@ spring: # default disable all cloud: nacos: + username: nacos + password: nacos discovery: enabled: false register-enabled: false diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/pom.xml index f3ae752c..8727237f 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-sample-api/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} 4.0.0 diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/pom.xml index cbf3aac6..21e17c6d 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-server-sample/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml @@ -14,7 +14,7 @@ com.alibaba.cloud spring-cloud-dubbo-server-sample Spring Cloud Dubbo Server Sample - 2.2.1.BUILD-SNAPSHOT + ${revision} diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/pom.xml index b619a7cc..b39b23ce 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-dubbo-examples/spring-cloud-dubbo-servlet-gateway-sample/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-dubbo-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml 4.0.0 diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/pom.xml index be092e0d..906c3e04 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example/pom.xml @@ -4,13 +4,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 spring-cloud-alibaba-sidecar-consul-example + Spring Cloud Starter Alibaba Sidecar x Consul Example Example demonstrating how to use Spring Cloud Alibaba Sidecar with consul + jar diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml index 3aa59a76..690d2031 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/pom.xml @@ -4,13 +4,15 @@ com.alibaba.cloud spring-cloud-alibaba-examples - 2.2.1.BUILD-SNAPSHOT + ${revision} ../../pom.xml 4.0.0 spring-cloud-alibaba-sidecar-nacos-example + Spring Cloud Starter Alibaba Sidecar x Nacos Example Example demonstrating how to use Spring Cloud Alibaba Sidecar with nacos + jar diff --git a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml index 7f059ef3..ce9ac30f 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml +++ b/spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/resources/application.yml @@ -3,6 +3,8 @@ server: spring: cloud: nacos: + username: nacos + password: nacos discovery: server-addr: localhost:8848 gateway: @@ -17,7 +19,7 @@ sidecar: # 异构微服务的端口 port: 8060 # 异构微服务的健康检查URL - health-check-url: http://localhost:8060/health.json + #health-check-url: http://localhost:8060/health.json management: endpoint: health: diff --git a/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/pom.xml b/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/pom.xml index 1150cc0b..c0bbf98a 100644 --- a/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/pom.xml +++ b/spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/pom.xml @@ -5,14 +5,15 @@ spring-cloud-alibaba-examples com.alibaba.cloud - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml 4.0.0 spring-cloud-bus-rocketmq-example - Spring Cloud Bus RocketMQ Example - + Spring Cloud Starter Bus Alibaba RocketMQ Example + Example demonstrating how to use Spring Cloud Bus RocketMQ + jar diff --git a/spring-cloud-alibaba-starters/pom.xml b/spring-cloud-alibaba-starters/pom.xml index 366eeaec..1249b019 100644 --- a/spring-cloud-alibaba-starters/pom.xml +++ b/spring-cloud-alibaba-starters/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/pom.xml index 794dde46..3316d7bd 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml @@ -83,6 +83,12 @@ true + + com.alibaba.csp + sentinel-datasource-consul + true + + com.fasterxml.jackson.core jackson-databind diff --git a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/ConsulDataSourceProperties.java b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/ConsulDataSourceProperties.java new file mode 100644 index 00000000..d8176f5b --- /dev/null +++ b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/ConsulDataSourceProperties.java @@ -0,0 +1,98 @@ +/* + * Copyright 2013-2018 the original author or authors. + * + * 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 + * + * https://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. + */ + +package com.alibaba.cloud.sentinel.datasource.config; + +import com.alibaba.cloud.sentinel.datasource.factorybean.ConsulDataSourceFactoryBean; + +import org.springframework.util.StringUtils; + +/** + * Consul Properties class Using by {@link DataSourcePropertiesConfiguration} and + * {@link ConsulDataSourceFactoryBean}. + * + * @author mengjin + */ +public class ConsulDataSourceProperties extends AbstractDataSourceProperties { + + public ConsulDataSourceProperties(){ + super(ConsulDataSourceFactoryBean.class.getName()); + } + + /** + * consul server host. + */ + private String host; + + /** + * consul server port. + */ + private int port=8500; + + /** + * data key in Redis. + */ + private String ruleKey; + + /** + * Request of query will hang until timeout (in second) or get updated value. + */ + private int waitTimeoutInSecond = 1; + + @Override + public void preCheck(String dataSourceName) { + if(StringUtils.isEmpty(host)){ + throw new IllegalArgumentException( + "ConsulDataSource server-host is empty"); + } + if(StringUtils.isEmpty(ruleKey)){ + throw new IllegalArgumentException( + "ConsulDataSource ruleKey can not be empty"); + } + } + + public String getHost() { + return host; + } + + public void setHost(String host) { + this.host = host; + } + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } + + public String getRuleKey() { + return ruleKey; + } + + public void setRuleKey(String ruleKey) { + this.ruleKey = ruleKey; + } + + public int getWaitTimeoutInSecond() { + return waitTimeoutInSecond; + } + + public void setWaitTimeoutInSecond(int waitTimeoutInSecond) { + this.waitTimeoutInSecond = waitTimeoutInSecond; + } +} diff --git a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/DataSourcePropertiesConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/DataSourcePropertiesConfiguration.java index 2c4f1d7b..a0a5526f 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/DataSourcePropertiesConfiguration.java +++ b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/DataSourcePropertiesConfiguration.java @@ -34,6 +34,7 @@ import org.springframework.util.ObjectUtils; * @see ZookeeperDataSourceProperties * @see FileDataSourceProperties * @see RedisDataSourceProperties + * @see ConsulDataSourceProperties */ public class DataSourcePropertiesConfiguration { @@ -47,9 +48,23 @@ public class DataSourcePropertiesConfiguration { private RedisDataSourceProperties redis; + private ConsulDataSourceProperties consul; + public DataSourcePropertiesConfiguration() { } + public DataSourcePropertiesConfiguration(ConsulDataSourceProperties consul) { + this.consul = consul; + } + + public ConsulDataSourceProperties getConsul() { + return consul; + } + + public void setConsul(ConsulDataSourceProperties consul) { + this.consul = consul; + } + public DataSourcePropertiesConfiguration(FileDataSourceProperties file) { this.file = file; } diff --git a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/RedisDataSourceProperties.java b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/RedisDataSourceProperties.java index 984b6e2c..a5049660 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/RedisDataSourceProperties.java +++ b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/config/RedisDataSourceProperties.java @@ -24,7 +24,7 @@ import com.alibaba.cloud.sentinel.datasource.factorybean.RedisDataSourceFactoryB import org.springframework.util.StringUtils; /** - * Zookeeper Properties class Using by {@link DataSourcePropertiesConfiguration} and + * Redis Properties class Using by {@link DataSourcePropertiesConfiguration} and * {@link RedisDataSourceFactoryBean}. * * @author lengleng diff --git a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/factorybean/ConsulDataSourceFactoryBean.java b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/factorybean/ConsulDataSourceFactoryBean.java new file mode 100644 index 00000000..a8fc172d --- /dev/null +++ b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/java/com/alibaba/cloud/sentinel/datasource/factorybean/ConsulDataSourceFactoryBean.java @@ -0,0 +1,96 @@ +/* + * Copyright 2013-2018 the original author or authors. + * + * 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 + * + * https://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. + */ + +package com.alibaba.cloud.sentinel.datasource.factorybean; + +import com.alibaba.csp.sentinel.datasource.Converter; +import com.alibaba.csp.sentinel.datasource.consul.ConsulDataSource; + +import org.springframework.beans.factory.FactoryBean; + +/** + * A {@link FactoryBean} for creating {@link ConsulDataSource} instance. + * + * @author mengjin + * @see ConsulDataSource + */ +public class ConsulDataSourceFactoryBean implements FactoryBean { + + private String host; + + private int port; + + private String ruleKey; + + private int waitTimeoutInSecond; + + private Converter converter; + + @Override + public ConsulDataSource getObject() throws Exception { + return new ConsulDataSource( + host, + port, + ruleKey, + waitTimeoutInSecond, + converter); + } + + @Override + public Class getObjectType() { + return ConsulDataSource.class; + } + + public String getHost() { + return host; + } + + public void setHost(String host) { + this.host = host; + } + + public int getPort() { + return port; + } + + public void setPort(int port) { + this.port = port; + } + + public String getRuleKey() { + return ruleKey; + } + + public void setRuleKey(String ruleKey) { + this.ruleKey = ruleKey; + } + + public int getWaitTimeoutInSecond() { + return waitTimeoutInSecond; + } + + public void setWaitTimeoutInSecond(int waitTimeoutInSecond) { + this.waitTimeoutInSecond = waitTimeoutInSecond; + } + + public Converter getConverter() { + return converter; + } + + public void setConverter(Converter converter) { + this.converter = converter; + } +} diff --git a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/resources/META-INF/sentinel-datasource.properties b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/resources/META-INF/sentinel-datasource.properties index 074751fb..e67a3b9b 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/resources/META-INF/sentinel-datasource.properties +++ b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main/resources/META-INF/sentinel-datasource.properties @@ -3,3 +3,4 @@ file =com.alibaba.csp.sentinel.datasource.FileRefreshableDataSource apollo = com.alibaba.csp.sentinel.datasource.apollo.ApolloDataSource zk = com.alibaba.csp.sentinel.datasource.zookeeper.ZookeeperDataSource redis = com.alibaba.csp.sentinel.datasource.redis.RedisDataSource +consul = com.alibaba.csp.sentinel.datasource.consul.ConsulDataSource diff --git a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-gateway/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-gateway/pom.xml index 3b5b879b..2461c672 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-gateway/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-gateway/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-circuitbreaker-sentinel/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-circuitbreaker-sentinel/pom.xml index 219cbbd7..90f0f0ff 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-circuitbreaker-sentinel/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-circuitbreaker-sentinel/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config-server/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config-server/pom.xml index 1b0e8a4b..483914cf 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config-server/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config-server/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/pom.xml index 0c555f91..0a36d2c8 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/pom.xml index 8916a150..1751f4fc 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/pom.xml index 970ae678..3f3e1a2e 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/feign/hystrix/SeataHystrixConcurrencyStrategy.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/feign/hystrix/SeataHystrixConcurrencyStrategy.java index 59253059..94185c8a 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/feign/hystrix/SeataHystrixConcurrencyStrategy.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/feign/hystrix/SeataHystrixConcurrencyStrategy.java @@ -16,23 +16,93 @@ package com.alibaba.cloud.seata.feign.hystrix; +import java.util.concurrent.BlockingQueue; import java.util.concurrent.Callable; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import com.netflix.hystrix.HystrixThreadPoolKey; +import com.netflix.hystrix.HystrixThreadPoolProperties; import com.netflix.hystrix.strategy.HystrixPlugins; import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy; +import com.netflix.hystrix.strategy.concurrency.HystrixRequestVariable; +import com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableLifecycle; +import com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier; +import com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook; +import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher; +import com.netflix.hystrix.strategy.properties.HystrixPropertiesStrategy; +import com.netflix.hystrix.strategy.properties.HystrixProperty; import io.seata.core.context.RootContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; /** * @author xiaojing */ public class SeataHystrixConcurrencyStrategy extends HystrixConcurrencyStrategy { + private final Logger logger = LoggerFactory.getLogger(SeataHystrixConcurrencyStrategy.class); private HystrixConcurrencyStrategy delegate; public SeataHystrixConcurrencyStrategy() { - this.delegate = HystrixPlugins.getInstance().getConcurrencyStrategy(); - HystrixPlugins.reset(); - HystrixPlugins.getInstance().registerConcurrencyStrategy(this); + try { + this.delegate = HystrixPlugins.getInstance().getConcurrencyStrategy(); + if (this.delegate instanceof SeataHystrixConcurrencyStrategy) { + return; + } + HystrixCommandExecutionHook commandExecutionHook = HystrixPlugins.getInstance().getCommandExecutionHook(); + HystrixEventNotifier eventNotifier = HystrixPlugins.getInstance().getEventNotifier(); + HystrixMetricsPublisher metricsPublisher = HystrixPlugins.getInstance().getMetricsPublisher(); + HystrixPropertiesStrategy propertiesStrategy = HystrixPlugins.getInstance().getPropertiesStrategy(); + logCurrentStateOfHystrixPlugins(eventNotifier, metricsPublisher, propertiesStrategy); + HystrixPlugins.reset(); + HystrixPlugins.getInstance().registerConcurrencyStrategy(this); + HystrixPlugins.getInstance().registerCommandExecutionHook(commandExecutionHook); + HystrixPlugins.getInstance().registerEventNotifier(eventNotifier); + HystrixPlugins.getInstance().registerMetricsPublisher(metricsPublisher); + HystrixPlugins.getInstance().registerPropertiesStrategy(propertiesStrategy); + } catch (Exception ex) { + logger.error("Failed to register Seata Hystrix Concurrency Strategy", ex); + } + } + + private void logCurrentStateOfHystrixPlugins(HystrixEventNotifier eventNotifier, + HystrixMetricsPublisher metricsPublisher, + HystrixPropertiesStrategy propertiesStrategy) { + if (logger.isDebugEnabled()) { + logger.debug("Current Hystrix plugins configuration is [" + "concurrencyStrategy [" + this.delegate + "]," + + "eventNotifier [" + eventNotifier + "]," + "metricPublisher [" + metricsPublisher + "]," + + "propertiesStrategy [" + propertiesStrategy + "]," + "]"); + logger.debug("Registering Seata Hystrix Concurrency Strategy."); + } + } + + @Override + public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey, HystrixProperty corePoolSize, + HystrixProperty maximumPoolSize, + HystrixProperty keepAliveTime, TimeUnit unit, + BlockingQueue workQueue) { + return this.delegate.getThreadPool(threadPoolKey, corePoolSize, maximumPoolSize, keepAliveTime, unit, + workQueue); + } + + @Override + public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey, + HystrixThreadPoolProperties threadPoolProperties) { + return this.delegate.getThreadPool(threadPoolKey, threadPoolProperties); + } + + @Override + public BlockingQueue getBlockingQueue(int maxQueueSize) { + return this.delegate.getBlockingQueue(maxQueueSize); + } + + @Override + public HystrixRequestVariable getRequestVariable(HystrixRequestVariableLifecycle rv) { + return this.delegate.getRequestVariable(rv); } @Override @@ -44,15 +114,14 @@ public class SeataHystrixConcurrencyStrategy extends HystrixConcurrencyStrategy Callable wrappedCallable; if (this.delegate != null) { wrappedCallable = this.delegate.wrapCallable(c); - } - else { + } else { wrappedCallable = c; } if (wrappedCallable instanceof SeataContextCallable) { return wrappedCallable; } - return new SeataContextCallable<>(wrappedCallable); + return new SeataContextCallable<>(wrappedCallable, RequestContextHolder.getRequestAttributes()); } private static class SeataContextCallable implements Callable { @@ -61,19 +130,23 @@ public class SeataHystrixConcurrencyStrategy extends HystrixConcurrencyStrategy private final String xid; - SeataContextCallable(Callable actual) { + private final RequestAttributes requestAttributes; + + SeataContextCallable(Callable actual, RequestAttributes requestAttribute) { this.actual = actual; + this.requestAttributes = requestAttribute; this.xid = RootContext.getXID(); } @Override public K call() throws Exception { try { + RequestContextHolder.setRequestAttributes(requestAttributes); RootContext.bind(xid); return actual.call(); - } - finally { + } finally { RootContext.unbind(); + RequestContextHolder.resetRequestAttributes(); } } diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/pom.xml index 9b0d6289..0bbd4cb6 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/pom.xml index 0dc64538..f4af6d57 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/pom.xml @@ -6,7 +6,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosAutoConfiguration.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosAutoConfiguration.java index 906ea7d6..1ba5a381 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosAutoConfiguration.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosAutoConfiguration.java @@ -17,13 +17,11 @@ package com.alibaba.cloud.sidecar.nacos; import com.alibaba.cloud.nacos.NacosDiscoveryProperties; -import com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration; import com.alibaba.cloud.sidecar.SidecarAutoConfiguration; import com.alibaba.cloud.sidecar.SidecarDiscoveryClient; -import com.alibaba.cloud.sidecar.SidecarProperties; import org.springframework.boot.autoconfigure.AutoConfigureBefore; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -32,23 +30,15 @@ import org.springframework.context.annotation.Configuration; * @author www.itmuch.com */ @Configuration(proxyBeanMethods = false) -@AutoConfigureBefore({ NacosDiscoveryAutoConfiguration.class, - SidecarAutoConfiguration.class }) -@ConditionalOnClass(NacosDiscoveryProperties.class) +@AutoConfigureBefore(SidecarAutoConfiguration.class) +@ConditionalOnBean(NacosDiscoveryProperties.class) public class SidecarNacosAutoConfiguration { - @Bean - @ConditionalOnMissingBean - public SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties( - SidecarProperties sidecarProperties) { - return new SidecarNacosDiscoveryProperties(sidecarProperties); - } - @Bean @ConditionalOnMissingBean public SidecarDiscoveryClient sidecarDiscoveryClient( - SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties) { - return new SidecarNacosDiscoveryClient(sidecarNacosDiscoveryProperties); + NacosDiscoveryProperties nacosDiscoveryProperties) { + return new SidecarNacosDiscoveryClient(nacosDiscoveryProperties); } } diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryClient.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryClient.java index e4302afe..92bc65eb 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryClient.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryClient.java @@ -16,6 +16,7 @@ package com.alibaba.cloud.sidecar.nacos; +import com.alibaba.cloud.nacos.NacosDiscoveryProperties; import com.alibaba.cloud.sidecar.SidecarDiscoveryClient; import com.alibaba.nacos.api.exception.NacosException; import org.slf4j.Logger; @@ -29,18 +30,18 @@ public class SidecarNacosDiscoveryClient implements SidecarDiscoveryClient { private static final Logger log = LoggerFactory .getLogger(SidecarNacosDiscoveryClient.class); - private final SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties; + private final NacosDiscoveryProperties nacosDiscoveryProperties; public SidecarNacosDiscoveryClient( - SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties) { - this.sidecarNacosDiscoveryProperties = sidecarNacosDiscoveryProperties; + NacosDiscoveryProperties nacosDiscoveryProperties) { + this.nacosDiscoveryProperties = nacosDiscoveryProperties; } @Override public void registerInstance(String applicationName, String ip, Integer port) { try { - this.sidecarNacosDiscoveryProperties.namingServiceInstance() - .registerInstance(applicationName, ip, port); + this.nacosDiscoveryProperties.namingServiceInstance().registerInstance( + applicationName, nacosDiscoveryProperties.getGroup(), ip, port); } catch (NacosException e) { log.warn("nacos exception happens", e); @@ -50,8 +51,8 @@ public class SidecarNacosDiscoveryClient implements SidecarDiscoveryClient { @Override public void deregisterInstance(String applicationName, String ip, Integer port) { try { - this.sidecarNacosDiscoveryProperties.namingServiceInstance() - .deregisterInstance(applicationName, ip, port); + this.nacosDiscoveryProperties.namingServiceInstance().deregisterInstance( + applicationName, nacosDiscoveryProperties.getGroup(), ip, port); } catch (NacosException e) { log.warn("nacos exception happens", e); diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryProperties.java b/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryProperties.java deleted file mode 100644 index d58c60c1..00000000 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos/SidecarNacosDiscoveryProperties.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2013-2018 the original author or authors. - * - * 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 - * - * https://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. - */ - -package com.alibaba.cloud.sidecar.nacos; - -import java.net.SocketException; - -import com.alibaba.cloud.nacos.NacosDiscoveryProperties; -import com.alibaba.cloud.sidecar.SidecarProperties; -import org.apache.commons.lang3.StringUtils; - -/** - * @author itmuch.com - */ -public class SidecarNacosDiscoveryProperties extends NacosDiscoveryProperties { - - private final SidecarProperties sidecarProperties; - - public SidecarNacosDiscoveryProperties(SidecarProperties sidecarProperties) { - this.sidecarProperties = sidecarProperties; - } - - @Override - public void init() throws SocketException { - super.init(); - - String ip = sidecarProperties.getIp(); - if (StringUtils.isNotBlank(ip)) { - this.setIp(ip); - } - - Integer port = sidecarProperties.getPort(); - this.setPort(port); - } - -} diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-bus-rocketmq/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-bus-rocketmq/pom.xml index c7c52989..498b6aa9 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-bus-rocketmq/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-bus-rocketmq/pom.xml @@ -6,7 +6,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/pom.xml index c3f9cae8..713378ea 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/pom.xml @@ -6,7 +6,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml @@ -91,7 +91,7 @@ org.apache.zookeeper zookeeper - 3.4.12 + 3.4.14 true diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/annotation/DubboTransported.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/annotation/DubboTransported.java index c8c61700..efe083ea 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/annotation/DubboTransported.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/annotation/DubboTransported.java @@ -30,7 +30,7 @@ import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.client.RestTemplate; -import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_RETRIES; +import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_RETRIES; /** * {@link DubboTransported @DubboTransported} annotation indicates that the traditional diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/condition/MissingSpringCloudRegistryConfigPropertyCondition.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/condition/MissingSpringCloudRegistryConfigPropertyCondition.java index 0ea71581..4a4502de 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/condition/MissingSpringCloudRegistryConfigPropertyCondition.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/autoconfigure/condition/MissingSpringCloudRegistryConfigPropertyCondition.java @@ -29,7 +29,7 @@ import org.springframework.core.type.AnnotatedTypeMetadata; import org.springframework.util.StringUtils; import static com.alibaba.cloud.dubbo.registry.SpringCloudRegistryFactory.PROTOCOL; -import static org.apache.dubbo.config.spring.util.PropertySourcesUtils.getPrefixedProperties; +import static com.alibaba.spring.util.PropertySourcesUtils.getSubProperties; /** * Missing {@link SpringCloudRegistry} Property {@link Condition}. @@ -61,7 +61,7 @@ public class MissingSpringCloudRegistryConfigPropertyCondition "'spring-cloud' protocol was found from 'dubbo.registry.address'"); } - Map properties = getPrefixedProperties( + Map properties = getSubProperties( environment.getPropertySources(), "dubbo.registries."); boolean found = properties.entrySet().stream().anyMatch(entry -> { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/env/DubboNonWebApplicationEnvironmentPostProcessor.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/env/DubboNonWebApplicationEnvironmentPostProcessor.java index 4de58946..faf9ef8b 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/env/DubboNonWebApplicationEnvironmentPostProcessor.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/env/DubboNonWebApplicationEnvironmentPostProcessor.java @@ -34,8 +34,8 @@ import org.springframework.core.env.PropertySource; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import static com.alibaba.spring.util.PropertySourcesUtils.getSubProperties; import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_PROTOCOL; -import static org.apache.dubbo.config.spring.util.PropertySourcesUtils.getPrefixedProperties; /** * Dubbo {@link WebApplicationType#NONE Non-Web Application} @@ -149,7 +149,7 @@ public class DubboNonWebApplicationEnvironmentPostProcessor String restPort = null; - Map subProperties = getPrefixedProperties( + Map subProperties = getSubProperties( environment.getPropertySources(), PROTOCOLS_PROPERTY_NAME_PREFIX); Properties properties = new Properties(); diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java index abd27b7f..9089919e 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/metadata/repository/DubboServiceMetadataRepository.java @@ -22,6 +22,7 @@ import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -289,9 +290,11 @@ public class DubboServiceMetadataRepository serviceName); } - initSubscribedDubboMetadataService(serviceName); - // mark this service name having been initialized - initializedServices.add(serviceName); + if (initSubscribedDubboMetadataService(serviceName)) { + // mark this service name having been initialized + initializedServices.add(serviceName); + } + } } } @@ -300,12 +303,19 @@ public class DubboServiceMetadataRepository * Remove the metadata and initialized service of Dubbo Services if no there is no * service instance. * @param serviceName the service name + * @param url the meta service url */ - public void removeMetadataAndInitializedService(String serviceName) { + public void removeMetadataAndInitializedService(String serviceName, URL url) { synchronized (monitor) { initializedServices.remove(serviceName); dubboRestServiceMetadataRepository.remove(serviceName); - subscribedDubboMetadataServiceURLs.remove(serviceName); + // fix #1260 if the subscribedDubboMetadataServiceURLs removed fail,old meta + // information will be retained + if (DubboMetadataService.class.getName().equals(url.getServiceInterface())) { + String serviceKey = url.getServiceKey(); + subscribedDubboMetadataServiceURLs.remove(serviceKey); + } + } } @@ -614,24 +624,47 @@ public class DubboServiceMetadataRepository subscribedServices.remove(currentApplicationName); } - protected void initSubscribedDubboMetadataService(String serviceName) { - metadataServiceInstanceSelector.choose(discoveryClient.getInstances(serviceName)) - .map(this::getDubboMetadataServiceURLs) - .ifPresent(dubboMetadataServiceURLs -> { - dubboMetadataServiceURLs.forEach(dubboMetadataServiceURL -> { - try { - initSubscribedDubboMetadataServiceURL( - dubboMetadataServiceURL); - initDubboMetadataServiceProxy(dubboMetadataServiceURL); - } - catch (Throwable e) { - if (logger.isErrorEnabled()) { - logger.error(e.getMessage(), e); - } - } - }); - }); + protected Boolean initSubscribedDubboMetadataService(String serviceName) { + // this need to judge whether the initialization is successful or not. The failed + // initialization will not change the initializedServices + Optional optionalServiceInstance = metadataServiceInstanceSelector + .choose(discoveryClient.getInstances(serviceName)); + if (!((Optional) optionalServiceInstance).isPresent()) { + return false; + } + ServiceInstance serviceInstance = optionalServiceInstance.get(); + if (null == serviceInstance) { + return false; + } + List dubboMetadataServiceURLs = getDubboMetadataServiceURLs(serviceInstance); + if (dubboMetadataServiceURLs.isEmpty()) { + return false; + } + for (URL dubboMetadataServiceURL : dubboMetadataServiceURLs) { + try { + initSubscribedDubboMetadataServiceURL(dubboMetadataServiceURL); + DubboMetadataService dubboMetadataService = dubboMetadataConfigServiceProxy + .getProxy(serviceName); + if (dubboMetadataService == null) { + dubboMetadataService = initDubboMetadataServiceProxy( + dubboMetadataServiceURL); + } + + if (dubboMetadataService == null) { + removeMetadataAndInitializedService(serviceName, + dubboMetadataServiceURL); + return false; + } + } + catch (Throwable e) { + if (logger.isErrorEnabled()) { + logger.error(e.getMessage(), e); + } + return false; + } + } initDubboRestServiceMetadataRepository(serviceName); + return true; } private void initSubscribedDubboMetadataServiceURL(URL dubboMetadataServiceURL) { @@ -640,11 +673,13 @@ public class DubboServiceMetadataRepository subscribedDubboMetadataServiceURLs.add(serviceKey, dubboMetadataServiceURL); } - private void initDubboMetadataServiceProxy(URL dubboMetadataServiceURL) { + private DubboMetadataService initDubboMetadataServiceProxy( + URL dubboMetadataServiceURL) { String serviceName = dubboMetadataServiceURL.getParameter(APPLICATION_KEY); String version = dubboMetadataServiceURL.getParameter(VERSION_KEY); // Initialize DubboMetadataService with right version - dubboMetadataConfigServiceProxy.initProxy(serviceName, version); + return dubboMetadataConfigServiceProxy.initProxy(serviceName, version); + } @Override diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/AbstractSpringCloudRegistry.java b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/AbstractSpringCloudRegistry.java index ce69c823..8676085c 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/AbstractSpringCloudRegistry.java +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-dubbo/src/main/java/com/alibaba/cloud/dubbo/registry/AbstractSpringCloudRegistry.java @@ -48,9 +48,11 @@ import static java.util.Collections.emptyList; import static org.apache.dubbo.common.URLBuilder.from; import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY; import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER; import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE; import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY; import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY; +import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY; import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL; import static org.apache.dubbo.registry.Constants.ADMIN_PROTOCOL; import static org.springframework.util.StringUtils.hasText; @@ -161,6 +163,13 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { } else if (isDubboMetadataServiceURL(url)) { // for DubboMetadataService subscribeDubboMetadataServiceURLs(url, listener); + if (from(url).getParameter(CATEGORY_KEY) != null + && from(url).getParameter(CATEGORY_KEY).contains(PROVIDER)) { + // Fix #1259 and #753 Listene meta service change events to remove useless + // clients + registerServiceInstancesChangedEventListener(url, listener); + } + } else { // for general Dubbo Services subscribeDubboServiceURLs(url, listener); @@ -228,10 +237,13 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { // Re-obtain the latest list of available metadata address here, ip or port may // change. // by https://github.com/wangzihaogithub - dubboMetadataConfigServiceProxy.removeProxy(serviceName); - repository.removeMetadataAndInitializedService(serviceName); - dubboGenericServiceFactory.destroy(serviceName); - repository.initializeMetadata(serviceName); + // When the last service provider is closed, 【fix 1259】while close the + // channel,when up a new provider then repository.initializeMetadata(serviceName) + // will throw Exception. + // dubboMetadataConfigServiceProxy.removeProxy(serviceName); + // repository.removeMetadataAndInitializedService(serviceName); + // dubboGenericServiceFactory.destroy(serviceName); + // repository.initializeMetadata(serviceName); if (CollectionUtils.isEmpty(serviceInstances)) { if (logger.isWarnEnabled()) { logger.warn( @@ -239,6 +251,18 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { + "available , please make sure the further impact", serviceName, url.getServiceKey()); } + if (isDubboMetadataServiceURL(url)) { + // if meta service change, and serviceInstances is zero, will clean up + // information about this client + dubboMetadataConfigServiceProxy.removeProxy(serviceName); + repository.removeMetadataAndInitializedService(serviceName, url); + dubboGenericServiceFactory.destroy(serviceName); + String listenerId = generateId(url); + // The metaservice will restart the new listener. It needs to be optimized + // to see whether the original listener can be reused. + this.registerListeners.remove(listenerId); + } + /** * URLs with {@link RegistryConstants#EMPTY_PROTOCOL} */ @@ -250,6 +274,11 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { listener.notify(allSubscribedURLs); return; } + if (isDubboMetadataServiceURL(url)) { + // Prevent duplicate generation of DubboMetadataService + return; + } + repository.initializeMetadata(serviceName); DubboMetadataService dubboMetadataService = dubboMetadataConfigServiceProxy .getProxy(serviceName); @@ -301,7 +330,11 @@ public abstract class AbstractSpringCloudRegistry extends FailbackRegistry { } private List emptyURLs(URL url) { - return asList(from(url).setProtocol(EMPTY_PROTOCOL).build()); + // issue : When the last service provider is closed, the client still periodically + // connects to the last provider.n + // fix https://github.com/alibaba/spring-cloud-alibaba/issues/1259 + return asList(from(url).setProtocol(EMPTY_PROTOCOL).removeParameter(CATEGORY_KEY) + .build()); } private List getServiceInstances(String serviceName) { diff --git a/spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/pom.xml b/spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/pom.xml index 9203d1ca..ec44c9d7 100644 --- a/spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/pom.xml +++ b/spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/pom.xml @@ -5,7 +5,7 @@ com.alibaba.cloud spring-cloud-alibaba-starters - 2.2.1.BUILD-SNAPSHOT + ${revision} ../pom.xml