From 0a1ad55bff34c8cffc066c4ab26ac8466691a4f4 Mon Sep 17 00:00:00 2001 From: Wang Chengming Date: Mon, 22 Apr 2024 19:42:47 +0800 Subject: [PATCH 01/96] compatible service discovery, export noting suffix servicename, eg: ${interface}:${version} (#14096) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit compatible service discovery, export noting suffix servicename, eg: {interface}:${version} code format compatible service discovery, export noting suffix servicename, eg: {interface}:${version} Co-authored-by: 呈铭 --- .../java/org/apache/dubbo/common/URL.java | 21 ++++++ .../common/constants/RegistryConstants.java | 7 ++ .../dubbo/registry/nacos/NacosRegistry.java | 74 ++++++++++++++----- 3 files changed, 85 insertions(+), 17 deletions(-) diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java b/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java index 0c7bb1e3e8..eaf8ffd401 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java @@ -1295,6 +1295,19 @@ public /*final**/ class URL implements Serializable { return serviceNameBuilder.toString(); } + /** + * The format is "{interface}:[version]" + * + * @return + */ + public String getCompatibleColonSeparatedKey() { + StringBuilder serviceNameBuilder = new StringBuilder(); + serviceNameBuilder.append(this.getServiceInterface()); + compatibleAppend(serviceNameBuilder, VERSION_KEY); + compatibleAppend(serviceNameBuilder, GROUP_KEY); + return serviceNameBuilder.toString(); + } + private void append(StringBuilder target, String parameterName, boolean first) { String parameterValue = this.getParameter(parameterName); if (!isBlank(parameterValue)) { @@ -1307,6 +1320,14 @@ public /*final**/ class URL implements Serializable { } } + private void compatibleAppend(StringBuilder target, String parameterName) { + String parameterValue = this.getParameter(parameterName); + if (!isBlank(parameterValue)) { + target.append(':'); + target.append(parameterValue); + } + } + /** * The format of return value is '{group}/{interfaceName}:{version}' * diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/RegistryConstants.java b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/RegistryConstants.java index 74a8f0b4b2..18cb945aee 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/RegistryConstants.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/RegistryConstants.java @@ -141,4 +141,11 @@ public interface RegistryConstants { String ENABLE_EMPTY_PROTECTION_KEY = "enable-empty-protection"; boolean DEFAULT_ENABLE_EMPTY_PROTECTION = false; String REGISTER_CONSUMER_URL_KEY = "register-consumer-url"; + + /** + * export noting suffix servicename + * by default, dubbo export servicename is "${interface}:${version}:", this servicename with ':' suffix + * for compatible, we should export noting suffix servicename, eg: ${interface}:${version} + */ + String NACOE_REGISTER_COMPATIBLE = "nacos.register-compatible"; } diff --git a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java index 9fbbd9ebb4..27f6608b81 100644 --- a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java +++ b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/NacosRegistry.java @@ -35,6 +35,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; @@ -71,6 +72,7 @@ import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_CATEGO import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_ENABLE_EMPTY_PROTECTION; import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL; import static org.apache.dubbo.common.constants.RegistryConstants.ENABLE_EMPTY_PROTECTION_KEY; +import static org.apache.dubbo.common.constants.RegistryConstants.NACOE_REGISTER_COMPATIBLE; import static org.apache.dubbo.common.constants.RegistryConstants.PROVIDERS_CATEGORY; import static org.apache.dubbo.common.constants.RegistryConstants.REGISTER_CONSUMER_URL_KEY; import static org.apache.dubbo.common.constants.RegistryConstants.ROUTERS_CATEGORY; @@ -107,9 +109,8 @@ public class NacosRegistry extends FailbackRegistry { private static final String UP = "UP"; /** - * The separator for service name - * Change a constant to be configurable, it's designed for Windows file name that is compatible with old - * Nacos binary release(< 0.6.1) + * The separator for service name Change a constant to be configurable, it's designed for Windows file name that is + * compatible with old Nacos binary release(< 0.6.1) */ private static final String SERVICE_NAME_SEPARATOR = System.getProperty("nacos.service.name.separator", ":"); @@ -174,18 +175,33 @@ public class NacosRegistry extends FailbackRegistry { public void doRegister(URL url) { try { if (PROVIDER_SIDE.equals(url.getSide()) || getUrl().getParameter(REGISTER_CONSUMER_URL_KEY, false)) { - String serviceName = getServiceName(url); Instance instance = createInstance(url); + + Set serviceNames = new HashSet<>(); + // by default servicename is "org.apache.dubbo.xxService:1.0.0:" + String serviceName = getServiceName(url, false); + serviceNames.add(serviceName); + + // in https://github.com/apache/dubbo/issues/14075 + if (getUrl().getParameter(NACOE_REGISTER_COMPATIBLE, false)) { + // servicename is "org.apache.dubbo.xxService:1.0.0" + String compatibleServiceName = getServiceName(url, true); + serviceNames.add(compatibleServiceName); + } + /** - * namingService.registerInstance with {@link org.apache.dubbo.registry.support.AbstractRegistry#registryUrl} + * namingService.registerInstance with + * {@link org.apache.dubbo.registry.support.AbstractRegistry#registryUrl} * default {@link DEFAULT_GROUP} * * in https://github.com/apache/dubbo/issues/5978 */ - namingService.registerInstance(serviceName, getUrl().getGroup(Constants.DEFAULT_GROUP), instance); + for (String service : serviceNames) { + namingService.registerInstance(service, getUrl().getGroup(Constants.DEFAULT_GROUP), instance); + } } else { - logger.info( - "Please set 'dubbo.registry.parameters.register-consumer-url=true' to turn on consumer url registration."); + logger.info("Please set 'dubbo.registry.parameters.register-consumer-url=true' to turn on consumer " + + "url registration."); } } catch (SkipFailbackWrapperException exception) { throw exception; @@ -198,10 +214,24 @@ public class NacosRegistry extends FailbackRegistry { @Override public void doUnregister(final URL url) { try { - String serviceName = getServiceName(url); Instance instance = createInstance(url); - namingService.deregisterInstance( - serviceName, getUrl().getGroup(Constants.DEFAULT_GROUP), instance.getIp(), instance.getPort()); + + Set serviceNames = new HashSet<>(); + // by default servicename is "org.apache.dubbo.xxService:1.0.0:" + String serviceName = getServiceName(url, false); + serviceNames.add(serviceName); + + // in https://github.com/apache/dubbo/issues/14075 + if (getUrl().getParameter(NACOE_REGISTER_COMPATIBLE, false)) { + // servicename is "org.apache.dubbo.xxService:1.0.0" + String serviceName1 = getServiceName(url, true); + serviceNames.add(serviceName1); + } + + for (String service : serviceNames) { + namingService.deregisterInstance( + service, getUrl().getGroup(Constants.DEFAULT_GROUP), instance.getIp(), instance.getPort()); + } } catch (SkipFailbackWrapperException exception) { throw exception; } catch (Exception cause) { @@ -230,7 +260,8 @@ public class NacosRegistry extends FailbackRegistry { * Get all instances with serviceNames to avoid instance overwrite and but with empty instance mentioned * in https://github.com/apache/dubbo/issues/5885 and https://github.com/apache/dubbo/issues/5899 * - * namingService.getAllInstances with {@link org.apache.dubbo.registry.support.AbstractRegistry#registryUrl} + * namingService.getAllInstances with + * {@link org.apache.dubbo.registry.support.AbstractRegistry#registryUrl} * default {@link DEFAULT_GROUP} * * in https://github.com/apache/dubbo/issues/5978 @@ -268,8 +299,8 @@ public class NacosRegistry extends FailbackRegistry { } /** - * Since 2.7.6 the legacy service name will be added to serviceNames - * to fix bug with https://github.com/apache/dubbo/issues/5442 + * Since 2.7.6 the legacy service name will be added to serviceNames to fix bug with + * https://github.com/apache/dubbo/issues/5442 * * @param url * @return @@ -290,7 +321,8 @@ public class NacosRegistry extends FailbackRegistry { "", "", String.format( - "No aggregate listener found for url %s, this service might have already been unsubscribed.", + "No aggregate listener found for url %s, " + + "this service might have already been unsubscribed.", url)); return; } @@ -581,7 +613,8 @@ public class NacosRegistry extends FailbackRegistry { REGISTRY_NACOS_EXCEPTION, "", "", - "Received empty url address list and empty protection is disabled, will clear current available addresses"); + "Received empty url address list and empty protection is " + + "disabled, will clear current available addresses"); URL empty = URLBuilder.from(consumerURL) .setProtocol(EMPTY_PROTOCOL) .addParameter(CATEGORY_KEY, DEFAULT_CATEGORY) @@ -697,7 +730,10 @@ public class NacosRegistry extends FailbackRegistry { return valueOf(url); } - private String getServiceName(URL url) { + private String getServiceName(URL url, boolean needCompatible) { + if (needCompatible) { + return getCompatibleServiceName(url, url.getCategory(DEFAULT_CATEGORY)); + } return getServiceName(url, url.getCategory(DEFAULT_CATEGORY)); } @@ -705,6 +741,10 @@ public class NacosRegistry extends FailbackRegistry { return category + SERVICE_NAME_SEPARATOR + url.getColonSeparatedKey(); } + private String getCompatibleServiceName(URL url, String category) { + return category + SERVICE_NAME_SEPARATOR + url.getCompatibleColonSeparatedKey(); + } + private void filterEnabledInstances(Collection instances) { filterData(instances, Instance::isEnabled); } From ac8a9b65b77e987fcbbab91f37542fb828c6c0a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 23:29:05 +0800 Subject: [PATCH 02/96] Bump org.springframework.security:spring-security-bom (#14117) Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 5.8.11 to 5.8.12. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/5.8.11...5.8.12) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 2aa32bf303..3f7e0aa946 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -91,7 +91,7 @@ 5.3.33 - 5.8.11 + 5.8.12 3.30.2-GA 1.14.13 3.2.10.Final From 8e141cc9585bdf895111b8359280dd684c5588ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 23:33:28 +0800 Subject: [PATCH 03/96] Bump io.micrometer:micrometer-tracing-bom from 1.2.4 to 1.2.5 (#14116) Bumps [io.micrometer:micrometer-tracing-bom](https://github.com/micrometer-metrics/tracing) from 1.2.4 to 1.2.5. - [Release notes](https://github.com/micrometer-metrics/tracing/releases) - [Commits](https://github.com/micrometer-metrics/tracing/compare/v1.2.4...v1.2.5) --- updated-dependencies: - dependency-name: io.micrometer:micrometer-tracing-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- .../dubbo-spring-boot-starters/observability/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 3f7e0aa946..04d2c8b154 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -121,7 +121,7 @@ 0.1.35 1.12.4 - 1.2.4 + 1.2.5 3.3 0.16.0 1.0.4 diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml index fcd86ee927..ff00cf9a5e 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml @@ -37,7 +37,7 @@ 1.12.4 - 1.2.4 + 1.2.5 1.34.1 2.17.2 0.16.0 From efe219b7708ca65e65599fdd5544b9acd2985375 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 23:35:13 +0800 Subject: [PATCH 04/96] Bump commons-io:commons-io from 2.16.0 to 2.16.1 (#14114) Bumps commons-io:commons-io from 2.16.0 to 2.16.1. --- updated-dependencies: - dependency-name: commons-io:commons-io dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- dubbo-maven-plugin/pom.xml | 2 +- dubbo-native-plugin/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 04d2c8b154..053e38fcfe 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -144,7 +144,7 @@ 1.2.13 2.23.1 - 2.16.0 + 2.16.1 0.13.0 diff --git a/dubbo-maven-plugin/pom.xml b/dubbo-maven-plugin/pom.xml index e0ca5b99f4..afdafe42ff 100644 --- a/dubbo-maven-plugin/pom.xml +++ b/dubbo-maven-plugin/pom.xml @@ -65,7 +65,7 @@ commons-io commons-io - 2.16.0 + 2.16.1 diff --git a/dubbo-native-plugin/pom.xml b/dubbo-native-plugin/pom.xml index 3685489fec..f0c5b47217 100644 --- a/dubbo-native-plugin/pom.xml +++ b/dubbo-native-plugin/pom.xml @@ -61,7 +61,7 @@ commons-io commons-io - 2.16.0 + 2.16.1 org.apache.dubbo From 7588d0e5b2ac17768015bf04b9120e29c6bb3dd2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 23:36:12 +0800 Subject: [PATCH 05/96] Bump io.projectreactor:reactor-core from 3.6.4 to 3.6.5 (#14111) Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.4 to 3.6.5. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.4...v3.6.5) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 053e38fcfe..93cfa5d418 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -125,7 +125,7 @@ 3.3 0.16.0 1.0.4 - 3.6.4 + 3.6.5 2.2.21 3.14.9 From e9296eca1d80634e70d77a5c6947b26c23c160b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 23:37:12 +0800 Subject: [PATCH 06/96] Bump io.micrometer:micrometer-core from 1.12.4 to 1.12.5 (#14112) Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.12.4 to 1.12.5. - [Release notes](https://github.com/micrometer-metrics/micrometer/releases) - [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.12.4...v1.12.5) --- updated-dependencies: - dependency-name: io.micrometer:micrometer-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-demo/dubbo-demo-spring-boot/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-demo/dubbo-demo-spring-boot/pom.xml b/dubbo-demo/dubbo-demo-spring-boot/pom.xml index 41a7d8a2cb..56c065f201 100644 --- a/dubbo-demo/dubbo-demo-spring-boot/pom.xml +++ b/dubbo-demo/dubbo-demo-spring-boot/pom.xml @@ -37,7 +37,7 @@ true 2.7.18 2.7.18 - 1.12.4 + 1.12.5 From be7c863aedd685fb58f115c68412b5279187207e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 23:38:05 +0800 Subject: [PATCH 07/96] Bump ch.qos.logback:logback-core from 1.5.3 to 1.5.6 (#14110) Bumps [ch.qos.logback:logback-core](https://github.com/qos-ch/logback) from 1.5.3 to 1.5.6. - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.3...v_1.5.6) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer/pom.xml | 2 +- dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer/pom.xml b/dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer/pom.xml index 2854aebf89..dc418b8f3e 100644 --- a/dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer/pom.xml +++ b/dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer/pom.xml @@ -184,7 +184,7 @@ ch.qos.logback logback-core - 1.5.3 + 1.5.6 compile diff --git a/dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider/pom.xml b/dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider/pom.xml index e6293ea41b..e949f3da94 100644 --- a/dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider/pom.xml +++ b/dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider/pom.xml @@ -181,7 +181,7 @@ ch.qos.logback logback-core - 1.5.3 + 1.5.6 compile From 20f252d147b2a630c6509c70790d10de08fd41f1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 23:38:35 +0800 Subject: [PATCH 08/96] Bump netty4_version from 4.1.108.Final to 4.1.109.Final (#14108) Bumps `netty4_version` from 4.1.108.Final to 4.1.109.Final. Updates `io.netty:netty-all` from 4.1.108.Final to 4.1.109.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.108.Final...netty-4.1.109.Final) Updates `io.netty:netty-bom` from 4.1.108.Final to 4.1.109.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.108.Final...netty-4.1.109.Final) --- updated-dependencies: - dependency-name: io.netty:netty-all dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: io.netty:netty-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 93cfa5d418..d7cb5a87bc 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -95,7 +95,7 @@ 3.30.2-GA 1.14.13 3.2.10.Final - 4.1.108.Final + 4.1.109.Final 4.5.14 4.4.16 1.2.83 From d16f0ca310838b7bb52ce173710ef149d65be07d Mon Sep 17 00:00:00 2001 From: Albumen Kevin Date: Mon, 6 May 2024 14:33:10 +0800 Subject: [PATCH 09/96] Sync BitList for all the operations (#14057) * Sync BitList for all the operations * Fix style --- .../rpc/cluster/router/state/BitList.java | 74 +++++++++---------- .../rpc/cluster/router/state/BitListTest.java | 42 +++++++++++ 2 files changed, 79 insertions(+), 37 deletions(-) diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/state/BitList.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/state/BitList.java index 2c04539b07..013a4010e0 100644 --- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/state/BitList.java +++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/router/state/BitList.java @@ -93,23 +93,23 @@ public class BitList extends AbstractList implements Cloneable { } // Provided by BitList only - public List getOriginList() { + public synchronized List getOriginList() { return originList; } - public void addIndex(int index) { + public synchronized void addIndex(int index) { this.rootSet.set(index); } - public int totalSetSize() { + public synchronized int totalSetSize() { return this.originList.size(); } - public boolean indexExist(int index) { + public synchronized boolean indexExist(int index) { return this.rootSet.get(index); } - public E getByIndex(int index) { + public synchronized E getByIndex(int index) { return this.originList.get(index); } @@ -120,7 +120,7 @@ public class BitList extends AbstractList implements Cloneable { * @param target target bitList * @return this bitList only contains those elements contain in both two list and source bitList's tailList */ - public BitList and(BitList target) { + public synchronized BitList and(BitList target) { rootSet.and(target.rootSet); if (target.getTailList() != null) { target.getTailList().forEach(this::addToTailList); @@ -128,28 +128,28 @@ public class BitList extends AbstractList implements Cloneable { return this; } - public BitList or(BitList target) { + public synchronized BitList or(BitList target) { BitSet resultSet = (BitSet) rootSet.clone(); resultSet.or(target.rootSet); return new BitList<>(originList, resultSet, tailList); } - public boolean hasMoreElementInTailList() { + public synchronized boolean hasMoreElementInTailList() { return CollectionUtils.isNotEmpty(tailList); } - public List getTailList() { + public synchronized List getTailList() { return tailList; } - public void addToTailList(E e) { + public synchronized void addToTailList(E e) { if (tailList == null) { tailList = new LinkedList<>(); } tailList.add(e); } - public E randomSelectOne() { + public synchronized E randomSelectOne() { int originSize = originList.size(); int tailSize = tailList != null ? tailList.size() : 0; int totalSize = originSize + tailSize; @@ -181,18 +181,18 @@ public class BitList extends AbstractList implements Cloneable { // Provided by JDK List interface @Override - public int size() { + public synchronized int size() { return rootSet.cardinality() + (CollectionUtils.isNotEmpty(tailList) ? tailList.size() : 0); } @Override - public boolean contains(Object o) { + public synchronized boolean contains(Object o) { int idx = originList.indexOf(o); return (idx >= 0 && rootSet.get(idx)) || (CollectionUtils.isNotEmpty(tailList) && tailList.contains(o)); } @Override - public Iterator iterator() { + public synchronized Iterator iterator() { return new BitListIterator<>(this, 0); } @@ -205,7 +205,7 @@ public class BitList extends AbstractList implements Cloneable { * Notice: It is not recommended adding duplicated element. */ @Override - public boolean add(E e) { + public synchronized boolean add(E e) { int index = originList.indexOf(e); if (index > -1) { rootSet.set(index); @@ -225,7 +225,7 @@ public class BitList extends AbstractList implements Cloneable { * If the element is not contained in originList, try to remove from tailList. */ @Override - public boolean remove(Object o) { + public synchronized boolean remove(Object o) { int idx = originList.indexOf(o); if (idx > -1 && rootSet.get(idx)) { rootSet.set(idx, false); @@ -242,7 +242,7 @@ public class BitList extends AbstractList implements Cloneable { * This may change the default behaviour when adding new element later. */ @Override - public void clear() { + public synchronized void clear() { rootSet.clear(); // to remove references originList = Collections.emptyList(); @@ -252,7 +252,7 @@ public class BitList extends AbstractList implements Cloneable { } @Override - public E get(int index) { + public synchronized E get(int index) { int bitIndex = -1; if (index < 0) { throw new IndexOutOfBoundsException(); @@ -272,7 +272,7 @@ public class BitList extends AbstractList implements Cloneable { } @Override - public E remove(int index) { + public synchronized E remove(int index) { int bitIndex = -1; if (index >= rootSet.cardinality()) { if (CollectionUtils.isNotEmpty(tailList)) { @@ -290,7 +290,7 @@ public class BitList extends AbstractList implements Cloneable { } @Override - public int indexOf(Object o) { + public synchronized int indexOf(Object o) { int bitIndex = -1; for (int i = 0; i < rootSet.cardinality(); i++) { bitIndex = rootSet.nextSetBit(bitIndex + 1); @@ -311,7 +311,7 @@ public class BitList extends AbstractList implements Cloneable { @Override @SuppressWarnings("unchecked") - public boolean addAll(Collection c) { + public synchronized boolean addAll(Collection c) { if (c instanceof BitList) { rootSet.or(((BitList) c).rootSet); if (((BitList) c).hasMoreElementInTailList()) { @@ -325,7 +325,7 @@ public class BitList extends AbstractList implements Cloneable { } @Override - public int lastIndexOf(Object o) { + public synchronized int lastIndexOf(Object o) { int bitIndex = -1; int index = -1; if (CollectionUtils.isNotEmpty(tailList)) { @@ -344,22 +344,22 @@ public class BitList extends AbstractList implements Cloneable { } @Override - public boolean isEmpty() { + public synchronized boolean isEmpty() { return this.rootSet.isEmpty() && CollectionUtils.isEmpty(tailList); } @Override - public ListIterator listIterator() { + public synchronized ListIterator listIterator() { return new BitListIterator<>(this, 0); } @Override - public ListIterator listIterator(int index) { + public synchronized ListIterator listIterator(int index) { return new BitListIterator<>(this, index); } @Override - public BitList subList(int fromIndex, int toIndex) { + public synchronized BitList subList(int fromIndex, int toIndex) { BitSet resultSet = (BitSet) rootSet.clone(); List copiedTailList = tailList == null ? null : new LinkedList<>(tailList); if (toIndex < size()) { @@ -414,7 +414,7 @@ public class BitList extends AbstractList implements Cloneable { } @Override - public boolean hasNext() { + public synchronized boolean hasNext() { if (isInTailList) { return tailListIterator.hasNext(); } else { @@ -428,7 +428,7 @@ public class BitList extends AbstractList implements Cloneable { } @Override - public E next() { + public synchronized E next() { if (isInTailList) { if (tailListIterator.hasNext()) { index += 1; @@ -457,7 +457,7 @@ public class BitList extends AbstractList implements Cloneable { } @Override - public boolean hasPrevious() { + public synchronized boolean hasPrevious() { if (isInTailList) { boolean hasPreviousInTailList = tailListIterator.hasPrevious(); if (hasPreviousInTailList) { @@ -471,7 +471,7 @@ public class BitList extends AbstractList implements Cloneable { } @Override - public E previous() { + public synchronized E previous() { if (isInTailList) { boolean hasPreviousInTailList = tailListIterator.hasPrevious(); if (hasPreviousInTailList) { @@ -503,17 +503,17 @@ public class BitList extends AbstractList implements Cloneable { } @Override - public int nextIndex() { + public synchronized int nextIndex() { return hasNext() ? index + 1 : index; } @Override - public int previousIndex() { + public synchronized int previousIndex() { return index; } @Override - public void remove() { + public synchronized void remove() { if (lastReturnedIndex == -1) { throw new IllegalStateException(); } else { @@ -533,17 +533,17 @@ public class BitList extends AbstractList implements Cloneable { } @Override - public void set(E e) { + public synchronized void set(E e) { throw new UnsupportedOperationException("Set method is not supported in BitListIterator!"); } @Override - public void add(E e) { + public synchronized void add(E e) { throw new UnsupportedOperationException("Add method is not supported in BitListIterator!"); } } - public ArrayList cloneToArrayList() { + public synchronized ArrayList cloneToArrayList() { if (rootSet.cardinality() == originList.size() && (CollectionUtils.isEmpty(tailList))) { return new ArrayList<>(originList); } @@ -553,7 +553,7 @@ public class BitList extends AbstractList implements Cloneable { } @Override - public BitList clone() { + public synchronized BitList clone() { return new BitList<>( originList, (BitSet) rootSet.clone(), tailList == null ? null : new LinkedList<>(tailList)); } diff --git a/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/router/state/BitListTest.java b/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/router/state/BitListTest.java index 9996de577f..8885f44533 100644 --- a/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/router/state/BitListTest.java +++ b/dubbo-cluster/src/test/java/org/apache/dubbo/rpc/cluster/router/state/BitListTest.java @@ -22,6 +22,8 @@ import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.atomic.AtomicReference; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -576,4 +578,44 @@ class BitListTest { set.add(new LinkedList<>(Arrays.asList("A", "B", "C", "D", "E", "F", "G"))); Assertions.assertEquals(2, set.size()); } + + @Test + void testConcurrent() throws InterruptedException { + for (int i = 0; i < 100000; i++) { + BitList bitList = new BitList<>(Collections.singletonList("test")); + bitList.remove("test"); + + CountDownLatch countDownLatch = new CountDownLatch(1); + CountDownLatch countDownLatch2 = new CountDownLatch(2); + + Thread thread1 = new Thread(() -> { + try { + countDownLatch.await(); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + bitList.add("test"); + countDownLatch2.countDown(); + }); + + AtomicReference> ref = new AtomicReference<>(); + Thread thread2 = new Thread(() -> { + try { + countDownLatch.await(); + } catch (InterruptedException e) { + throw new RuntimeException(e); + } + ref.set(bitList.clone()); + countDownLatch2.countDown(); + }); + + thread1.start(); + thread2.start(); + + countDownLatch.countDown(); + countDownLatch2.await(); + + Assertions.assertDoesNotThrow(() -> ref.get().iterator().hasNext()); + } + } } From 0b7d980b51124c6bb6a7ee89e1a588193385ce0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 15:16:35 +0800 Subject: [PATCH 10/96] Bump com.alibaba.fastjson2:fastjson2 from 2.0.48 to 2.0.49 (#14087) Bumps [com.alibaba.fastjson2:fastjson2](https://github.com/alibaba/fastjson2) from 2.0.48 to 2.0.49. - [Release notes](https://github.com/alibaba/fastjson2/releases) - [Commits](https://github.com/alibaba/fastjson2/compare/2.0.48...2.0.49) --- updated-dependencies: - dependency-name: com.alibaba.fastjson2:fastjson2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index d7cb5a87bc..08e6736acd 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -99,7 +99,7 @@ 4.5.14 4.4.16 1.2.83 - 2.0.48 + 2.0.49 3.7.0 5.1.0 2.12.0 From 1b69c61992184317115a90b73b095ae4285cac3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 09:47:48 +0800 Subject: [PATCH 11/96] Bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.1 (#14115) Bumps [org.apache.maven.plugins:maven-jar-plugin](https://github.com/apache/maven-jar-plugin) from 3.3.0 to 3.4.1. - [Release notes](https://github.com/apache/maven-jar-plugin/releases) - [Commits](https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.3.0...maven-jar-plugin-3.4.1) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-jar-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9cdfe1f40b..86c7e7505c 100644 --- a/pom.xml +++ b/pom.xml @@ -141,7 +141,7 @@ 1.8 UTF-8 - 3.3.0 + 3.4.1 3.2.5 3.2.5 2.8.2 From 53141b152fb311756ddda36e43b5c63afa1eac43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 09:49:02 +0800 Subject: [PATCH 12/96] Bump spring_version from 5.3.33 to 5.3.34 (#14109) Bumps `spring_version` from 5.3.33 to 5.3.34. Updates `org.springframework:spring-test` from 5.3.33 to 5.3.34 - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.33...v5.3.34) Updates `org.springframework:spring-framework-bom` from 5.3.33 to 5.3.34 - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.33...v5.3.34) --- updated-dependencies: - dependency-name: org.springframework:spring-test dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- dubbo-test/dubbo-test-spring/pom.xml | 2 +- dubbo-test/dubbo-test-spring3.2/pom.xml | 2 +- dubbo-test/dubbo-test-spring4.1/pom.xml | 2 +- dubbo-test/dubbo-test-spring4.2/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 08e6736acd..51428ed104 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -90,7 +90,7 @@ - 5.3.33 + 5.3.34 5.8.12 3.30.2-GA 1.14.13 diff --git a/dubbo-test/dubbo-test-spring/pom.xml b/dubbo-test/dubbo-test-spring/pom.xml index 369efb800e..6c53f2b6ee 100644 --- a/dubbo-test/dubbo-test-spring/pom.xml +++ b/dubbo-test/dubbo-test-spring/pom.xml @@ -29,7 +29,7 @@ true 1.7.33 - 5.3.33 + 5.3.34 diff --git a/dubbo-test/dubbo-test-spring3.2/pom.xml b/dubbo-test/dubbo-test-spring3.2/pom.xml index 788dd28e9d..7aaf41d2ff 100644 --- a/dubbo-test/dubbo-test-spring3.2/pom.xml +++ b/dubbo-test/dubbo-test-spring3.2/pom.xml @@ -28,7 +28,7 @@ true - 5.3.33 + 5.3.34 diff --git a/dubbo-test/dubbo-test-spring4.1/pom.xml b/dubbo-test/dubbo-test-spring4.1/pom.xml index 34dfd41eef..203c038eee 100644 --- a/dubbo-test/dubbo-test-spring4.1/pom.xml +++ b/dubbo-test/dubbo-test-spring4.1/pom.xml @@ -28,7 +28,7 @@ true - 5.3.33 + 5.3.34 diff --git a/dubbo-test/dubbo-test-spring4.2/pom.xml b/dubbo-test/dubbo-test-spring4.2/pom.xml index 6a55ebfe85..682a7c9baf 100644 --- a/dubbo-test/dubbo-test-spring4.2/pom.xml +++ b/dubbo-test/dubbo-test-spring4.2/pom.xml @@ -28,7 +28,7 @@ true - 5.3.33 + 5.3.34 From b2fb0e8e1e15c341f0e0635dc1ae526fda471eac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 09:49:13 +0800 Subject: [PATCH 13/96] Bump io.micrometer:micrometer-bom from 1.12.4 to 1.12.5 (#14086) Bumps [io.micrometer:micrometer-bom](https://github.com/micrometer-metrics/micrometer) from 1.12.4 to 1.12.5. - [Release notes](https://github.com/micrometer-metrics/micrometer/releases) - [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.12.4...v1.12.5) --- updated-dependencies: - dependency-name: io.micrometer:micrometer-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- .../dubbo-spring-boot-starters/observability/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 51428ed104..c627e7e904 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -119,7 +119,7 @@ 2.2 3.14.0 0.1.35 - 1.12.4 + 1.12.5 1.2.5 3.3 diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml index ff00cf9a5e..eee6638d1a 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml @@ -36,7 +36,7 @@ - 1.12.4 + 1.12.5 1.2.5 1.34.1 2.17.2 From 35780baa395b76323a01b41a5b14266a6d057b48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 09:50:31 +0800 Subject: [PATCH 14/96] Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.2 to 3.5.3 (#14141) Bumps [org.apache.maven.plugins:maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.5.2 to 3.5.3. - [Release notes](https://github.com/apache/maven-shade-plugin/releases) - [Commits](https://github.com/apache/maven-shade-plugin/compare/maven-shade-plugin-3.5.2...maven-shade-plugin-3.5.3) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-shade-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 86c7e7505c..0b7fb7a8c5 100644 --- a/pom.xml +++ b/pom.xml @@ -315,7 +315,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.2 + 3.5.3 false From 5db5fa90351146f96ac9af9988ec14eef33dffc2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 09:50:41 +0800 Subject: [PATCH 15/96] Bump bytebuddy.version from 1.14.13 to 1.14.14 (#14140) Bumps `bytebuddy.version` from 1.14.13 to 1.14.14. Updates `net.bytebuddy:byte-buddy` from 1.14.13 to 1.14.14 - [Release notes](https://github.com/raphw/byte-buddy/releases) - [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md) - [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.14.13...byte-buddy-1.14.14) Updates `net.bytebuddy:byte-buddy-agent` from 1.14.13 to 1.14.14 - [Release notes](https://github.com/raphw/byte-buddy/releases) - [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md) - [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.14.13...byte-buddy-1.14.14) --- updated-dependencies: - dependency-name: net.bytebuddy:byte-buddy dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: net.bytebuddy:byte-buddy-agent dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-spring-boot/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-spring-boot/pom.xml b/dubbo-spring-boot/pom.xml index 2276261aa4..bd479ab3f9 100644 --- a/dubbo-spring-boot/pom.xml +++ b/dubbo-spring-boot/pom.xml @@ -43,7 +43,7 @@ 2.23.1 - 1.14.13 + 1.14.14 From 14c67845ee9dd02ca3d58b0f40845389fee91957 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 09:50:49 +0800 Subject: [PATCH 16/96] Bump net.bytebuddy:byte-buddy from 1.14.13 to 1.14.14 (#14142) Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.14.13 to 1.14.14. - [Release notes](https://github.com/raphw/byte-buddy/releases) - [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md) - [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.14.13...byte-buddy-1.14.14) --- updated-dependencies: - dependency-name: net.bytebuddy:byte-buddy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index c627e7e904..56db3d7dc0 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -93,7 +93,7 @@ 5.3.34 5.8.12 3.30.2-GA - 1.14.13 + 1.14.14 3.2.10.Final 4.1.109.Final 4.5.14 From 66bea58c13cae75939b85adfd87d388259fe688a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 09:51:50 +0800 Subject: [PATCH 17/96] Bump org.apache.maven.plugin-tools:maven-plugin-annotations (#14154) Bumps [org.apache.maven.plugin-tools:maven-plugin-annotations](https://github.com/apache/maven-plugin-tools) from 3.12.0 to 3.13.0. - [Release notes](https://github.com/apache/maven-plugin-tools/releases) - [Commits](https://github.com/apache/maven-plugin-tools/compare/maven-plugin-tools-3.12.0...maven-plugin-tools-3.13.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugin-tools:maven-plugin-annotations dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-maven-plugin/pom.xml | 2 +- dubbo-native-plugin/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dubbo-maven-plugin/pom.xml b/dubbo-maven-plugin/pom.xml index afdafe42ff..66ed8e6ce3 100644 --- a/dubbo-maven-plugin/pom.xml +++ b/dubbo-maven-plugin/pom.xml @@ -46,7 +46,7 @@ org.apache.maven.plugin-tools maven-plugin-annotations - 3.12.0 + 3.13.0 provided diff --git a/dubbo-native-plugin/pom.xml b/dubbo-native-plugin/pom.xml index f0c5b47217..2053e62ff8 100644 --- a/dubbo-native-plugin/pom.xml +++ b/dubbo-native-plugin/pom.xml @@ -48,7 +48,7 @@ org.apache.maven.plugin-tools maven-plugin-annotations - 3.12.0 + 3.13.0 provided From 0fc6a306841335c2d7a58bc9d77ce75517ace44a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 May 2024 09:52:01 +0800 Subject: [PATCH 18/96] Bump jackson_version from 2.17.0 to 2.17.1 (#14153) Bumps `jackson_version` from 2.17.0 to 2.17.1. Updates `com.fasterxml.jackson.core:jackson-core` from 2.17.0 to 2.17.1 - [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.17.0...jackson-core-2.17.1) Updates `com.fasterxml.jackson.core:jackson-databind` from 2.17.0 to 2.17.1 - [Commits](https://github.com/FasterXML/jackson/commits) Updates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.17.0 to 2.17.1 Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.17.0 to 2.17.1 - [Commits](https://github.com/FasterXML/jackson/commits) --- updated-dependencies: - dependency-name: com.fasterxml.jackson.core:jackson-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: com.fasterxml.jackson.core:jackson-annotations dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 56db3d7dc0..d1b6f1251c 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -161,7 +161,7 @@ 1.70 2.0.6 2.10.1 - 2.17.0 + 2.17.1 6.1.26 2.0 1.6.0 From c24eca7e1edefed758a0123c0141da21ed708a42 Mon Sep 17 00:00:00 2001 From: Chenjp Date: Wed, 8 May 2024 11:06:02 +0800 Subject: [PATCH 19/96] Update gitignore - Eclipse IDE specific conf (#14099) Those Ecilpse-IDE specific files are generated by mvn eclipse:eclipse. --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index b504f334b4..a3061c1700 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,8 @@ target/ .settings/ .project .classpath +.externalToolBuilders +maven-eclipse.xml # idea ignore .idea/ From a3e43fe99b2769cdf0077a1504a5b078bb3873dc Mon Sep 17 00:00:00 2001 From: YuLuo Date: Wed, 8 May 2024 11:19:49 +0800 Subject: [PATCH 20/96] optimise: create http client by connection pool (#14079) --- .../http/config/HttpClientConfig.java | 24 +++++++++++++++++++ .../http/restclient/OKHttpRestClient.java | 9 +++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/dubbo-remoting/dubbo-remoting-http/src/main/java/org/apache/dubbo/remoting/http/config/HttpClientConfig.java b/dubbo-remoting/dubbo-remoting-http/src/main/java/org/apache/dubbo/remoting/http/config/HttpClientConfig.java index 09e0ab92a1..fa7cb5ab3a 100644 --- a/dubbo-remoting/dubbo-remoting-http/src/main/java/org/apache/dubbo/remoting/http/config/HttpClientConfig.java +++ b/dubbo-remoting/dubbo-remoting-http/src/main/java/org/apache/dubbo/remoting/http/config/HttpClientConfig.java @@ -22,6 +22,10 @@ public class HttpClientConfig { private int connectTimeout = 6 * 1000; private int chunkLength = 8196; + private int maxIdleConnections = 20; + + private int keepAliveDuration = 30 * 1000; + private int HTTP_CLIENT_CONNECTION_MANAGER_MAX_PER_ROUTE = 20; private int HTTP_CLIENT_CONNECTION_MANAGER_MAX_TOTAL = 20; private int HTTPCLIENT_KEEP_ALIVE_DURATION = 30 * 1000; @@ -57,4 +61,24 @@ public class HttpClientConfig { public int getChunkLength() { return chunkLength; } + + public int getMaxIdleConnections() { + + return maxIdleConnections; + } + + public void setMaxIdleConnections(int maxIdleConnections) { + + this.maxIdleConnections = maxIdleConnections; + } + + public int getKeepAliveDuration() { + + return keepAliveDuration; + } + + public void setKeepAliveDuration(int keepAliveDuration) { + + this.keepAliveDuration = keepAliveDuration; + } } diff --git a/dubbo-remoting/dubbo-remoting-http/src/main/java/org/apache/dubbo/remoting/http/restclient/OKHttpRestClient.java b/dubbo-remoting/dubbo-remoting-http/src/main/java/org/apache/dubbo/remoting/http/restclient/OKHttpRestClient.java index 36ba2e6d18..762be4b2cd 100644 --- a/dubbo-remoting/dubbo-remoting-http/src/main/java/org/apache/dubbo/remoting/http/restclient/OKHttpRestClient.java +++ b/dubbo-remoting/dubbo-remoting-http/src/main/java/org/apache/dubbo/remoting/http/restclient/OKHttpRestClient.java @@ -30,6 +30,7 @@ import java.util.concurrent.TimeUnit; import okhttp3.Call; import okhttp3.Callback; +import okhttp3.ConnectionPool; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; @@ -140,11 +141,15 @@ public class OKHttpRestClient implements RestClient { } public OkHttpClient createHttpClient(HttpClientConfig httpClientConfig) { - OkHttpClient client = new OkHttpClient.Builder() + + return new OkHttpClient.Builder() .readTimeout(httpClientConfig.getReadTimeout(), TimeUnit.SECONDS) .writeTimeout(httpClientConfig.getWriteTimeout(), TimeUnit.SECONDS) .connectTimeout(httpClientConfig.getConnectTimeout(), TimeUnit.SECONDS) + .connectionPool(new ConnectionPool( + httpClientConfig.getMaxIdleConnections(), + httpClientConfig.getKeepAliveDuration(), + TimeUnit.SECONDS)) .build(); - return client; } } From 7f6decaf19feb927c72c52a1a4e84da47c746f09 Mon Sep 17 00:00:00 2001 From: caoyanan666 <55247691+caoyanan666@users.noreply.github.com> Date: Wed, 8 May 2024 11:32:43 +0800 Subject: [PATCH 21/96] ReactorDubbo3TripleStub.mustache add schema registry (#14035) Co-authored-by: caoyanan Co-authored-by: Ken Liu --- .../src/main/resources/ReactorDubbo3TripleStub.mustache | 1 + 1 file changed, 1 insertion(+) diff --git a/dubbo-compiler/src/main/resources/ReactorDubbo3TripleStub.mustache b/dubbo-compiler/src/main/resources/ReactorDubbo3TripleStub.mustache index 28c7626da8..3b88532b46 100644 --- a/dubbo-compiler/src/main/resources/ReactorDubbo3TripleStub.mustache +++ b/dubbo-compiler/src/main/resources/ReactorDubbo3TripleStub.mustache @@ -54,6 +54,7 @@ public final class {{className}} { private static final StubServiceDescriptor serviceDescriptor = new StubServiceDescriptor(SERVICE_NAME,{{interfaceClassName}}.class); static { + org.apache.dubbo.rpc.protocol.tri.service.SchemaDescriptorRegistry.addSchemaDescriptor(SERVICE_NAME,{{outerClassName}}.getDescriptor()); StubSuppliers.addSupplier(SERVICE_NAME, {{className}}::newStub); StubSuppliers.addSupplier({{interfaceClassName}}.JAVA_SERVICE_NAME, {{className}}::newStub); StubSuppliers.addDescriptor(SERVICE_NAME, serviceDescriptor); From 9d659eba448e70834d33cbc276181100fada104c Mon Sep 17 00:00:00 2001 From: hanpen24 <150456356+hanpen24@users.noreply.github.com> Date: Wed, 8 May 2024 12:36:08 +0900 Subject: [PATCH 22/96] Fix channel leakage in onConnected and onGoaway methods (#14100) --- .../transport/netty4/NettyConnectionClient.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyConnectionClient.java b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyConnectionClient.java index 85cd565173..5f1c9bd062 100644 --- a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyConnectionClient.java +++ b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/org/apache/dubbo/remoting/transport/netty4/NettyConnectionClient.java @@ -236,6 +236,13 @@ public class NettyConnectionClient extends AbstractConnectionClient { } return; } + + // Close the existing channel before setting a new channel + final io.netty.channel.Channel current = getNettyChannel(); + if (current != null) { + current.close(); + } + this.channel.set(nettyChannel); // This indicates that the connection is available. if (this.connectingPromise.get() != null) { @@ -254,6 +261,10 @@ public class NettyConnectionClient extends AbstractConnectionClient { } io.netty.channel.Channel nettyChannel = (io.netty.channel.Channel) channel; if (this.channel.compareAndSet(nettyChannel, null)) { + // Ensure the channel is closed + if (nettyChannel.isOpen()) { + nettyChannel.close(); + } NettyChannel.removeChannelIfDisconnected(nettyChannel); if (LOGGER.isDebugEnabled()) { LOGGER.debug(String.format("%s goaway", this)); From faefee2cb2b64e10ff4f874f6da6e032d84f0ff2 Mon Sep 17 00:00:00 2001 From: TomlongTK Date: Wed, 8 May 2024 11:51:00 +0800 Subject: [PATCH 23/96] Optimize convertToNumber method (#14159) --- .../src/main/java/org/apache/dubbo/rpc/support/RpcUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/RpcUtils.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/RpcUtils.java index 53cd36894d..228392fe02 100644 --- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/RpcUtils.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/RpcUtils.java @@ -317,7 +317,7 @@ public class RpcUtils { timeout = Long.parseLong((String) obj); } else if (obj instanceof Number) { timeout = ((Number) obj).longValue(); - } else { + } else if (obj != null) { timeout = Long.parseLong(obj.toString()); } } catch (Exception e) { From 886360461952940e5fd3f57323ba4be34be14a58 Mon Sep 17 00:00:00 2001 From: zrlw Date: Wed, 8 May 2024 11:59:26 +0800 Subject: [PATCH 24/96] trim application name of old mapping content (#14133) * trim application name of old mapping content * trim and filter out empty name at ServiceNameMapping#getAppNames * remove unused import --- .../org/apache/dubbo/metadata/ServiceNameMapping.java | 8 ++++++-- .../client/metadata/MetadataServiceNameMapping.java | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java index e2c58e69eb..91fce3cef4 100644 --- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java +++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java @@ -25,11 +25,12 @@ import org.apache.dubbo.rpc.model.ScopeModel; import org.apache.dubbo.rpc.model.ScopeModelUtil; import org.apache.dubbo.rpc.service.Destroyable; -import java.util.Arrays; import java.util.Set; import java.util.TreeSet; import static java.util.Collections.emptySet; +import static java.util.stream.Collectors.toSet; +import static java.util.stream.Stream.of; import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SEPARATOR; import static org.apache.dubbo.common.extension.ExtensionScope.APPLICATION; @@ -88,7 +89,10 @@ public interface ServiceNameMapping extends Destroyable { if (StringUtils.isBlank(content)) { return emptySet(); } - return new TreeSet<>(Arrays.asList(content.split(COMMA_SEPARATOR))); + return new TreeSet<>(of(content.split(COMMA_SEPARATOR)) + .map(String::trim) + .filter(StringUtils::isNotEmpty) + .collect(toSet())); } static Set getMappingByUrl(URL consumerURL) { diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceNameMapping.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceNameMapping.java index 62322d820b..57c7dd51d3 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceNameMapping.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceNameMapping.java @@ -109,7 +109,7 @@ public class MetadataServiceNameMapping extends AbstractServiceNameMapping { String[] oldAppNames = oldConfigContent.split(","); if (oldAppNames.length > 0) { for (String oldAppName : oldAppNames) { - if (oldAppName.equals(appName)) { + if (StringUtils.trim(oldAppName).equals(appName)) { succeeded = true; break; } From dfd135eb95d92ffc3519426b812e274f43b49e9d Mon Sep 17 00:00:00 2001 From: TomlongTK Date: Wed, 8 May 2024 14:09:08 +0800 Subject: [PATCH 25/96] Fix the problem of multiple namespaces in MetadataReport (#13971) * Fix the problem of multiple namespaces in MetadataReport * refine * Remove registry config setting * Add some unit tests * Revert getId * Fix cache key --- .../java/org/apache/dubbo/common/URL.java | 4 + .../apache/dubbo/config/RegistryConfig.java | 2 - .../java/org/apache/dubbo/common/URLTest.java | 18 +++ .../deploy/DefaultApplicationDeployer.java | 2 +- .../config/utils/ConfigValidationUtils.java | 10 ++ .../config/bootstrap/DubboBootstrapTest.java | 125 +++++++++++++++++- .../report/MetadataReportInstance.java | 19 ++- .../AbstractMetadataReportFactory.java | 7 +- .../AbstractMetadataReportFactoryTest.java | 22 +++ .../nacos/NacosMetadataReportFactory.java | 14 -- .../client/AbstractServiceDiscovery.java | 2 +- 11 files changed, 187 insertions(+), 38 deletions(-) diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java b/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java index eaf8ffd401..ca79d6480d 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java @@ -1397,6 +1397,10 @@ public /*final**/ class URL implements Serializable { return buildString(true, false, true, true); } + public String toServiceString(String... parameters) { + return buildString(true, true, true, true, parameters); + } + @Deprecated public String getServiceName() { return getServiceInterface(); diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/RegistryConfig.java b/dubbo-common/src/main/java/org/apache/dubbo/config/RegistryConfig.java index 294916c8b5..71c047ed38 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/config/RegistryConfig.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/config/RegistryConfig.java @@ -28,7 +28,6 @@ import static org.apache.dubbo.common.constants.CommonConstants.EXTRA_KEYS_KEY; import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY; import static org.apache.dubbo.common.constants.RegistryConstants.ENABLE_EMPTY_PROTECTION_KEY; import static org.apache.dubbo.common.constants.RegistryConstants.REGISTER_MODE_KEY; -import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY; import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY; import static org.apache.dubbo.common.utils.PojoUtils.updatePropertyIfAbsent; @@ -221,7 +220,6 @@ public class RegistryConfig extends AbstractConfig { } @Override - @Parameter(key = REGISTRY_CLUSTER_KEY) public String getId() { return super.getId(); } diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/URLTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/URLTest.java index ee03745d3d..eb8e12fb83 100644 --- a/dubbo-common/src/test/java/org/apache/dubbo/common/URLTest.java +++ b/dubbo-common/src/test/java/org/apache/dubbo/common/URLTest.java @@ -1132,4 +1132,22 @@ class URLTest { assertEquals(20881, url.getPort()); assertEquals("apache", url.getParameter("name")); } + + @Test + void testToServiceString() { + URL url = URL.valueOf( + "zookeeper://10.20.130.230:4444/org.apache.dubbo.metadata.report.MetadataReport?version=1.0.0&application=vic&group=aaa"); + assertEquals( + "zookeeper://10.20.130.230:4444/aaa/org.apache.dubbo.metadata.report.MetadataReport:1.0.0", + url.toServiceString()); + } + + @Test + void testToServiceStringWithParameters() { + URL url = URL.valueOf( + "zookeeper://10.20.130.230:4444/org.apache.dubbo.metadata.report.MetadataReport?version=1.0.0&application=vic&group=aaa&namespace=test"); + assertEquals( + "zookeeper://10.20.130.230:4444/aaa/org.apache.dubbo.metadata.report.MetadataReport:1.0.0?namespace=test", + url.toServiceString("namespace")); + } } diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java index 3051827ef5..f58c9c2b24 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java @@ -329,7 +329,7 @@ public class DefaultApplicationDeployer extends AbstractDeployer urls = UrlUtils.parseURLs(address, map); for (URL url : urls) { diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java index df8a81224c..c419375ebe 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java @@ -37,6 +37,8 @@ import org.apache.dubbo.config.metadata.ExporterDeployListener; import org.apache.dubbo.config.provider.impl.DemoServiceImpl; import org.apache.dubbo.config.utils.ConfigValidationUtils; import org.apache.dubbo.metadata.MetadataService; +import org.apache.dubbo.metadata.report.MetadataReport; +import org.apache.dubbo.metadata.report.MetadataReportInstance; import org.apache.dubbo.monitor.MonitorService; import org.apache.dubbo.registry.RegistryService; import org.apache.dubbo.rpc.Exporter; @@ -50,10 +52,14 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Properties; +import java.util.stream.Collectors; +import com.google.common.collect.Maps; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; @@ -61,10 +67,15 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; +import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_NAMESPACE_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY; import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_MONITOR_ADDRESS; import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE; import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY; import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_SECONDS_KEY; +import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY; +import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY; +import static org.apache.dubbo.metadata.MetadataConstants.REPORT_CONSUMER_URL_KEY; import static org.hamcrest.CoreMatchers.anything; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.hasEntry; @@ -139,13 +150,29 @@ class DubboBootstrapTest { @Test void testLoadRegistries() { - SysProps.setProperty("dubbo.registry.address", "addr1"); - ServiceConfig serviceConfig = new ServiceConfig(); serviceConfig.setInterface(DemoService.class); serviceConfig.setRef(new DemoServiceImpl()); serviceConfig.setApplication(new ApplicationConfig("testLoadRegistries")); + String registryId = "nacosRegistry"; + String namespace1 = "test"; + RegistryConfig registryConfig = new RegistryConfig(); + registryConfig.setId(registryId); + registryConfig.setAddress("nacos://addr1:8848"); + Map registryParamMap = Maps.newHashMap(); + registryParamMap.put(CONFIG_NAMESPACE_KEY, namespace1); + registryConfig.setParameters(registryParamMap); + + String namespace2 = "test2"; + RegistryConfig registryConfig2 = new RegistryConfig(); + registryConfig2.setAddress("polaris://addr1:9999"); + Map registryParamMap2 = Maps.newHashMap(); + registryParamMap2.put(CONFIG_NAMESPACE_KEY, namespace2); + registryConfig2.setParameters(registryParamMap2); + + serviceConfig.setRegistries(Arrays.asList(registryConfig, registryConfig2)); + // load configs from props DubboBootstrap.getInstance().initialize(); @@ -154,16 +181,104 @@ class DubboBootstrapTest { // ApplicationModel.defaultModel().getEnvironment().setDynamicConfiguration(new // CompositeDynamicConfiguration()); List urls = ConfigValidationUtils.loadRegistries(serviceConfig, true); - Assertions.assertEquals(2, urls.size()); - for (URL url : urls) { + Assertions.assertEquals(4, urls.size()); + + Map> urlsMap = + urls.stream().collect(Collectors.groupingBy(url -> url.getParameter(REGISTRY_KEY))); + Assertions.assertEquals(2, urlsMap.get("nacos").size()); + for (URL url : urlsMap.get("nacos")) { Assertions.assertTrue(url.getProtocol().contains("registry")); - Assertions.assertEquals("addr1:9090", url.getAddress()); + Assertions.assertEquals("addr1:8848", url.getAddress()); Assertions.assertEquals(RegistryService.class.getName(), url.getPath()); + Assertions.assertEquals(registryId + ":" + namespace1, url.getParameter(REGISTRY_CLUSTER_KEY)); Assertions.assertTrue(url.getParameters().containsKey("timestamp")); Assertions.assertTrue(url.getParameters().containsKey("pid")); Assertions.assertTrue(url.getParameters().containsKey("registry")); Assertions.assertTrue(url.getParameters().containsKey("dubbo")); } + + Assertions.assertEquals(2, urlsMap.get("polaris").size()); + for (URL url : urlsMap.get("polaris")) { + Assertions.assertTrue(url.getProtocol().contains("registry")); + Assertions.assertEquals("addr1:9999", url.getAddress()); + Assertions.assertEquals(RegistryService.class.getName(), url.getPath()); + Assertions.assertEquals(DEFAULT_KEY + ":" + namespace2, url.getParameter(REGISTRY_CLUSTER_KEY)); + Assertions.assertTrue(url.getParameters().containsKey("timestamp")); + Assertions.assertTrue(url.getParameters().containsKey("pid")); + Assertions.assertTrue(url.getParameters().containsKey("registry")); + Assertions.assertTrue(url.getParameters().containsKey("dubbo")); + } + } + + @Test + void testRegistryWithMetadataReport() { + ServiceConfig serviceConfig = new ServiceConfig(); + serviceConfig.setInterface(DemoService.class); + serviceConfig.setRef(new DemoServiceImpl()); + + List registryConfigs = new ArrayList<>(); + List metadataReportConfigs = new ArrayList<>(); + + String registryId = "nacosRegistry"; + String namespace1 = "test"; + RegistryConfig registryConfig = new RegistryConfig(); + registryConfig.setId(registryId); + registryConfig.setAddress(zkServerAddress); + Map registryParamMap = Maps.newHashMap(); + registryParamMap.put(CONFIG_NAMESPACE_KEY, namespace1); + registryConfig.setParameters(registryParamMap); + registryConfigs.add(registryConfig); + + MetadataReportConfig metadataReportConfig = new MetadataReportConfig(); + metadataReportConfig.setRegistry(registryId); + metadataReportConfig.setAddress(registryConfig.getAddress()); + Map metadataParamMap = Maps.newHashMap(); + metadataParamMap.put(CONFIG_NAMESPACE_KEY, namespace1); + metadataParamMap.put(REPORT_CONSUMER_URL_KEY, Boolean.TRUE.toString()); + metadataReportConfig.setParameters(metadataParamMap); + metadataReportConfig.setReportMetadata(true); + metadataReportConfigs.add(metadataReportConfig); + + String namespace2 = "test2"; + RegistryConfig registryConfig2 = new RegistryConfig(); + registryConfig2.setAddress(zkServerAddress); + Map registryParamMap2 = Maps.newHashMap(); + registryParamMap2.put(CONFIG_NAMESPACE_KEY, namespace2); + registryConfig2.setParameters(registryParamMap2); + registryConfigs.add(registryConfig2); + + MetadataReportConfig metadataReportConfig2 = new MetadataReportConfig(); + metadataReportConfig2.setAddress(registryConfig2.getAddress()); + Map metadataParamMap2 = Maps.newHashMap(); + metadataParamMap2.put(CONFIG_NAMESPACE_KEY, namespace2); + metadataParamMap2.put(REPORT_CONSUMER_URL_KEY, Boolean.TRUE.toString()); + metadataReportConfig2.setParameters(metadataParamMap2); + metadataReportConfig2.setReportMetadata(true); + metadataReportConfigs.add(metadataReportConfig2); + + serviceConfig.setRegistries(registryConfigs); + + DubboBootstrap.getInstance() + .application(new ApplicationConfig("testRegistryWithMetadataReport")) + .registries(registryConfigs) + .metadataReports(metadataReportConfigs) + .service(serviceConfig) + .protocol(new ProtocolConfig(CommonConstants.DUBBO_PROTOCOL, -1)) + .start(); + + ApplicationModel applicationModel = DubboBootstrap.getInstance().getApplicationModel(); + MetadataReportInstance metadataReportInstance = + applicationModel.getBeanFactory().getBean(MetadataReportInstance.class); + + Map metadataReports = metadataReportInstance.getMetadataReports(true); + Assertions.assertEquals(2, metadataReports.size()); + + List urls = ConfigValidationUtils.loadRegistries(serviceConfig, true); + Assertions.assertEquals(4, urls.size()); + + for (URL url : urls) { + Assertions.assertTrue(metadataReports.containsKey(url.getParameter(REGISTRY_CLUSTER_KEY))); + } } @Test diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/MetadataReportInstance.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/MetadataReportInstance.java index ded589b471..59d2dcb874 100644 --- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/MetadataReportInstance.java +++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/MetadataReportInstance.java @@ -54,7 +54,7 @@ import static org.apache.dubbo.metadata.report.support.Constants.METADATA_REPORT */ public class MetadataReportInstance implements Disposable { - private AtomicBoolean init = new AtomicBoolean(false); + private final AtomicBoolean initialized = new AtomicBoolean(false); private String metadataType; // mapping of registry id to metadata report instance, registry instances will use this mapping to find related @@ -69,7 +69,7 @@ public class MetadataReportInstance implements Disposable { } public void init(List metadataReportConfigs) { - if (!init.compareAndSet(false, true)) { + if (!initialized.compareAndSet(false, true)) { return; } @@ -114,9 +114,10 @@ public class MetadataReportInstance implements Disposable { } private String getRelatedRegistryId(MetadataReportConfig config, URL url) { - String relatedRegistryId = isEmpty(config.getRegistry()) - ? (isEmpty(config.getId()) ? DEFAULT_KEY : config.getId()) - : config.getRegistry(); + String relatedRegistryId = config.getRegistry(); + if (isEmpty(relatedRegistryId)) { + relatedRegistryId = DEFAULT_KEY; + } String namespace = url.getParameter(NAMESPACE_KEY); if (!StringUtils.isEmpty(namespace)) { relatedRegistryId += ":" + namespace; @@ -144,15 +145,13 @@ public class MetadataReportInstance implements Disposable { return metadataType; } - public boolean inited() { - return init.get(); + public boolean isInitialized() { + return initialized.get(); } @Override public void destroy() { - metadataReports.forEach((_k, reporter) -> { - reporter.destroy(); - }); + metadataReports.forEach((k, reporter) -> reporter.destroy()); metadataReports.clear(); } } diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReportFactory.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReportFactory.java index 7f1770291f..ecc34f1047 100644 --- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReportFactory.java +++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReportFactory.java @@ -29,6 +29,7 @@ import java.util.concurrent.locks.ReentrantLock; import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY; import static org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_UNEXPECTED_EXCEPTION; import static org.apache.dubbo.common.constants.LoggerCodeConstants.PROXY_FAILED_EXPORT_SERVICE; +import static org.apache.dubbo.metadata.MetadataConstants.NAMESPACE_KEY; public abstract class AbstractMetadataReportFactory implements MetadataReportFactory { @@ -50,7 +51,7 @@ public abstract class AbstractMetadataReportFactory implements MetadataReportFac @Override public MetadataReport getMetadataReport(URL url) { url = url.setPath(MetadataReport.class.getName()).removeParameters(EXPORT_KEY, REFER_KEY); - String key = toMetadataReportKey(url); + String key = url.toServiceString(NAMESPACE_KEY); MetadataReport metadataReport = serviceStoreMap.get(key); if (metadataReport != null) { @@ -88,10 +89,6 @@ public abstract class AbstractMetadataReportFactory implements MetadataReportFac } } - protected String toMetadataReportKey(URL url) { - return url.toServiceString(); - } - @Override public void destroy() { lock.lock(); diff --git a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReportFactoryTest.java b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReportFactoryTest.java index f8c3dae0d9..d321a4ba92 100644 --- a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReportFactoryTest.java +++ b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/report/support/AbstractMetadataReportFactoryTest.java @@ -145,4 +145,26 @@ class AbstractMetadataReportFactoryTest { MetadataReport metadataReport2 = metadataReportFactory.getMetadataReport(url2); Assertions.assertNotEquals(metadataReport1, metadataReport2); } + + @Test + void testGetForSameNamespace() { + URL url1 = URL.valueOf("zookeeper://" + NetUtils.getLocalAddress().getHostName() + + ":4444/org.apache.dubbo.TestService1?version=1.0.0&application=vic&namespace=test"); + URL url2 = URL.valueOf("zookeeper://" + NetUtils.getLocalAddress().getHostName() + + ":4444/org.apache.dubbo.TestService2?version=1.0.0&application=vic&namespace=test"); + MetadataReport metadataReport1 = metadataReportFactory.getMetadataReport(url1); + MetadataReport metadataReport2 = metadataReportFactory.getMetadataReport(url2); + Assertions.assertEquals(metadataReport1, metadataReport2); + } + + @Test + void testGetForDiffNamespace() { + URL url1 = URL.valueOf("zookeeper://" + NetUtils.getLocalAddress().getHostName() + + ":4444/org.apache.dubbo.TestService?version=1.0.0&application=vic&namespace=test"); + URL url2 = URL.valueOf("zookeeper://" + NetUtils.getLocalAddress().getHostName() + + ":4444/org.apache.dubbo.TestService?version=1.0.0&application=vic&namespace=dev"); + MetadataReport metadataReport1 = metadataReportFactory.getMetadataReport(url1); + MetadataReport metadataReport2 = metadataReportFactory.getMetadataReport(url2); + Assertions.assertNotEquals(metadataReport1, metadataReport2); + } } diff --git a/dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReportFactory.java b/dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReportFactory.java index 338b4067b7..a858a0a1b1 100644 --- a/dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReportFactory.java +++ b/dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReportFactory.java @@ -17,12 +17,9 @@ package org.apache.dubbo.metadata.store.nacos; import org.apache.dubbo.common.URL; -import org.apache.dubbo.common.utils.StringUtils; import org.apache.dubbo.metadata.report.MetadataReport; import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory; -import static org.apache.dubbo.metadata.MetadataConstants.NAMESPACE_KEY; - /** * metadata report factory impl for nacos */ @@ -31,15 +28,4 @@ public class NacosMetadataReportFactory extends AbstractMetadataReportFactory { protected MetadataReport createMetadataReport(URL url) { return new NacosMetadataReport(url); } - - @Override - protected String toMetadataReportKey(URL url) { - String namespace = url.getParameter(NAMESPACE_KEY); - if (!StringUtils.isEmpty(namespace)) { - return URL.valueOf(url.toServiceString()) - .addParameter(NAMESPACE_KEY, namespace) - .toString(); - } - return super.toMetadataReportKey(url); - } } diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java index 341d8926f8..4877581321 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/AbstractServiceDiscovery.java @@ -84,7 +84,7 @@ public abstract class AbstractServiceDiscovery implements ServiceDiscovery { this(applicationModel, applicationModel.getApplicationName(), registryURL); MetadataReportInstance metadataReportInstance = applicationModel.getBeanFactory().getBean(MetadataReportInstance.class); - metadataType = metadataReportInstance.getMetadataType(); + this.metadataType = metadataReportInstance.getMetadataType(); this.metadataReport = metadataReportInstance.getMetadataReport(registryURL.getParameter(REGISTRY_CLUSTER_KEY)); } From 1abe9f8087d68a0d88efa438d762ec7bfeb52fd9 Mon Sep 17 00:00:00 2001 From: caoyanan666 <55247691+caoyanan666@users.noreply.github.com> Date: Wed, 8 May 2024 14:17:18 +0800 Subject: [PATCH 26/96] fix(3.2): The oneToOne method of the ReactorServerCalls class will cause the request to hang when the result is Mono Empty (#14121) * Fix triple reactor request hung when result is Mono Empty * code format * fix compile --------- Co-authored-by: caoyanan --- .../reactive/calls/ReactorServerCalls.java | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java b/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java index 58ec934c42..f6a39c944c 100644 --- a/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java +++ b/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java @@ -19,10 +19,11 @@ package org.apache.dubbo.reactive.calls; import org.apache.dubbo.common.stream.StreamObserver; import org.apache.dubbo.reactive.ServerTripleReactorPublisher; import org.apache.dubbo.reactive.ServerTripleReactorSubscriber; +import org.apache.dubbo.rpc.StatusRpcException; +import org.apache.dubbo.rpc.TriRpcStatus; import org.apache.dubbo.rpc.protocol.tri.observer.CallStreamObserver; import org.apache.dubbo.rpc.protocol.tri.observer.ServerCallToObserverAdapter; -import java.util.concurrent.CompletableFuture; import java.util.function.Function; import reactor.core.publisher.Flux; @@ -43,16 +44,18 @@ public final class ReactorServerCalls { * @param func service implementation */ public static void oneToOne(T request, StreamObserver responseObserver, Function, Mono> func) { - func.apply(Mono.just(request)).subscribe(res -> { - CompletableFuture.completedFuture(res).whenComplete((r, t) -> { - if (t != null) { - responseObserver.onError(t); - } else { - responseObserver.onNext(r); - responseObserver.onCompleted(); - } - }); - }); + try { + func.apply(Mono.just(request)) + .subscribe( + res -> { + responseObserver.onNext(res); + responseObserver.onCompleted(); + }, + throwable -> doOnResponseHasException(throwable, responseObserver), + () -> doOnResponseHasException(TriRpcStatus.NOT_FOUND.asException(), responseObserver)); + } catch (Throwable throwable) { + doOnResponseHasException(throwable, responseObserver); + } } /** @@ -131,4 +134,10 @@ public final class ReactorServerCalls { return serverPublisher; } + + private static void doOnResponseHasException(Throwable throwable, StreamObserver responseObserver) { + StatusRpcException statusRpcException = + TriRpcStatus.getStatus(throwable).asException(); + responseObserver.onError(statusRpcException); + } } From 84193247be0152c71288795ebb0d95a93fe7a7f5 Mon Sep 17 00:00:00 2001 From: Kaiyao Ke <47203510+kaiyaok2@users.noreply.github.com> Date: Wed, 8 May 2024 01:38:48 -0500 Subject: [PATCH 27/96] fix non-idempotent unit test (#14135) --- .../org/apache/dubbo/common/bytecode/ClassGeneratorTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/bytecode/ClassGeneratorTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/bytecode/ClassGeneratorTest.java index 9d760b6d90..afaa59299f 100644 --- a/dubbo-common/src/test/java/org/apache/dubbo/common/bytecode/ClassGeneratorTest.java +++ b/dubbo-common/src/test/java/org/apache/dubbo/common/bytecode/ClassGeneratorTest.java @@ -22,6 +22,7 @@ import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.List; +import java.util.UUID; import java.util.concurrent.CountDownLatch; import javassist.ClassPool; @@ -184,7 +185,7 @@ class ClassGeneratorTest { fname.setAccessible(true); ClassGenerator cg = ClassGenerator.newInstance(); - cg.setClassName(Bean.class.getName() + "$Builder"); + cg.setClassName(Bean.class.getName() + "$Builder" + UUID.randomUUID().toString()); cg.addInterface(Builder.class); cg.addField("public static java.lang.reflect.Field FNAME;"); From 5d916cd2c10ad3f21290bf25e338261c30cafbad Mon Sep 17 00:00:00 2001 From: jkoChen <37362859+jkoChen@users.noreply.github.com> Date: Wed, 8 May 2024 15:20:54 +0800 Subject: [PATCH 28/96] fix: fix the signature error when using reflection to access the org.springframework.core.annotation.AnnotatedElementUtils#getMergedAnnotation method (#14156) Fix the problem,the method org.apache.dubbo.config.spring.util.AnnotationUtils#tryGetMergedAnnotation utilizes reflection to access org.springframework.core.annotation.AnnotatedElementUtils#getMergedAnnotation. However, there is a signature mismatch in the method's input parameters, which leads to an inability to retrieve the correct method. Consequently, this results in the failure to obtain the mergedAnnotation. Co-authored-by: Albumen Kevin --- .../config/spring/util/AnnotationUtils.java | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/util/AnnotationUtils.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/util/AnnotationUtils.java index 02771ca121..35c1bfa932 100644 --- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/util/AnnotationUtils.java +++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/util/AnnotationUtils.java @@ -444,21 +444,11 @@ public abstract class AnnotationUtils { (_k) -> ClassUtils.isPresent(ANNOTATED_ELEMENT_UTILS_CLASS_NAME, classLoader))) { Class annotatedElementUtilsClass = resolveClassName(ANNOTATED_ELEMENT_UTILS_CLASS_NAME, classLoader); // getMergedAnnotation method appears in the Spring Framework 4.2 - Method getMergedAnnotationMethod = findMethod( - annotatedElementUtilsClass, - "getMergedAnnotation", - AnnotatedElement.class, - Class.class, - boolean.class, - boolean.class); + Method getMergedAnnotationMethod = + findMethod(annotatedElementUtilsClass, "getMergedAnnotation", AnnotatedElement.class, Class.class); if (getMergedAnnotationMethod != null) { - mergedAnnotation = (Annotation) invokeMethod( - getMergedAnnotationMethod, - null, - annotatedElement, - annotationType, - classValuesAsString, - nestedAnnotationsAsMap); + mergedAnnotation = + (Annotation) invokeMethod(getMergedAnnotationMethod, null, annotatedElement, annotationType); } } From 8e2eb332a1d7aece2d344daa26a8b078420b3034 Mon Sep 17 00:00:00 2001 From: Kaiyao Ke <47203510+kaiyaok2@users.noreply.github.com> Date: Fri, 10 May 2024 11:27:46 -0500 Subject: [PATCH 29/96] fixed non-idempotent unit tests (#14172) --- .../dubbo/common/bytecode/ClassGeneratorTest.java | 5 +++-- ...egistryCenterExportMetadataIntegrationTest.java | 1 - ...egistryCenterExportProviderIntegrationTest.java | 1 - ...MultipleRegistryCenterInjvmIntegrationTest.java | 1 - ...terServiceDiscoveryRegistryIntegrationTest.java | 1 - ...egistryCenterExportMetadataIntegrationTest.java | 1 - ...egistryCenterExportProviderIntegrationTest.java | 1 - .../SingleRegistryCenterInjvmIntegrationTest.java | 1 - .../dubbo/config/utils/ReferenceCacheTest.java | 1 + .../prometheus/PrometheusMetricsReporterTest.java | 6 +++++- .../PrometheusMetricsThreadPoolTest.java | 7 ++++++- .../dubbo/monitor/dubbo/DubboMonitorTest.java | 14 +++++++++++--- .../apache/dubbo/qos/command/impl/LiveTest.java | 1 + .../transport/ChannelHandlerDispatcherTest.java | 14 ++++++++++++++ .../java/org/apache/dubbo/rpc/RpcStatusTest.java | 12 ++++++++++++ 15 files changed, 53 insertions(+), 14 deletions(-) diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/bytecode/ClassGeneratorTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/bytecode/ClassGeneratorTest.java index afaa59299f..02a1e9fd25 100644 --- a/dubbo-common/src/test/java/org/apache/dubbo/common/bytecode/ClassGeneratorTest.java +++ b/dubbo-common/src/test/java/org/apache/dubbo/common/bytecode/ClassGeneratorTest.java @@ -57,7 +57,8 @@ class ClassGeneratorTest { ClassGenerator cg = ClassGenerator.newInstance(); // add className, interface, superClass - String className = BaseClass.class.getPackage().getName() + ".TestClass"; + String className = BaseClass.class.getPackage().getName() + ".TestClass" + + UUID.randomUUID().toString().replace("-", ""); cg.setClassName(className); cg.addInterface(BaseInterface.class); cg.setSuperClass(BaseClass.class); @@ -212,7 +213,7 @@ class ClassGeneratorTest { fname.setAccessible(true); ClassGenerator cg = ClassGenerator.newInstance(); - cg.setClassName(Bean.class.getName() + "$Builder2"); + cg.setClassName(Bean.class.getName() + "$Builder2" + UUID.randomUUID().toString()); cg.addInterface(Builder.class); cg.addField("FNAME", Modifier.PUBLIC | Modifier.STATIC, java.lang.reflect.Field.class); diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataIntegrationTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataIntegrationTest.java index 0cc3aa81c7..78098f8c3d 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataIntegrationTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataIntegrationTest.java @@ -172,7 +172,6 @@ class MultipleRegistryCenterExportMetadataIntegrationTest implements Integration @AfterEach public void tearDown() throws IOException { DubboBootstrap.reset(); - PROVIDER_APPLICATION_NAME = null; serviceConfig = null; // The exported service has been unexported Assertions.assertTrue(serviceListener.getExportedServices().isEmpty()); diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderIntegrationTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderIntegrationTest.java index 10395824f5..21ffd61150 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderIntegrationTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderIntegrationTest.java @@ -239,7 +239,6 @@ class MultipleRegistryCenterExportProviderIntegrationTest implements Integration @AfterEach public void tearDown() throws IOException { DubboBootstrap.reset(); - PROVIDER_APPLICATION_NAME = null; serviceConfig = null; // The exported service has been unexported Assertions.assertTrue(serviceListener.getExportedServices().isEmpty()); diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmIntegrationTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmIntegrationTest.java index 3d7315a456..f0bd1ba637 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmIntegrationTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmIntegrationTest.java @@ -185,7 +185,6 @@ class MultipleRegistryCenterInjvmIntegrationTest implements IntegrationTest { @AfterEach public void tearDown() throws IOException { DubboBootstrap.reset(); - PROVIDER_APPLICATION_NAME = null; serviceConfig = null; // The exported service has been unexported Assertions.assertTrue(serviceListener.getExportedServices().isEmpty()); diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryIntegrationTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryIntegrationTest.java index 1f89b88cc3..1816277cf8 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryIntegrationTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryIntegrationTest.java @@ -201,7 +201,6 @@ class MultipleRegistryCenterServiceDiscoveryRegistryIntegrationTest implements I @AfterEach public void tearDown() throws IOException { DubboBootstrap.reset(); - PROVIDER_APPLICATION_NAME = null; serviceConfig = null; // TODO: we need to check whether this scenario is normal // TODO: the Exporter and ServiceDiscoveryRegistry are same in multiple registry center diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataIntegrationTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataIntegrationTest.java index 996e98d892..b6e67f4a6e 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataIntegrationTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataIntegrationTest.java @@ -169,7 +169,6 @@ class SingleRegistryCenterExportMetadataIntegrationTest implements IntegrationTe @AfterEach public void tearDown() throws IOException { DubboBootstrap.reset(); - PROVIDER_APPLICATION_NAME = null; serviceConfig = null; // The exported service has been unexported Assertions.assertTrue(serviceListener.getExportedServices().isEmpty()); diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderIntegrationTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderIntegrationTest.java index d866f40d6e..b411670349 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderIntegrationTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderIntegrationTest.java @@ -240,7 +240,6 @@ class SingleRegistryCenterExportProviderIntegrationTest implements IntegrationTe @AfterEach public void tearDown() throws IOException { DubboBootstrap.reset(); - PROVIDER_APPLICATION_NAME = null; serviceConfig = null; // The exported service has been unexported Assertions.assertTrue(serviceListener.getExportedServices().isEmpty()); diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmIntegrationTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmIntegrationTest.java index 95090fd8ff..fd68e3367e 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmIntegrationTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmIntegrationTest.java @@ -185,7 +185,6 @@ class SingleRegistryCenterInjvmIntegrationTest implements IntegrationTest { @AfterEach public void tearDown() throws IOException { DubboBootstrap.reset(); - PROVIDER_APPLICATION_NAME = null; serviceConfig = null; // The exported service has been unexported Assertions.assertTrue(serviceListener.getExportedServices().isEmpty()); diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/ReferenceCacheTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/ReferenceCacheTest.java index c231d892bc..c324c53e06 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/ReferenceCacheTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/ReferenceCacheTest.java @@ -35,6 +35,7 @@ class ReferenceCacheTest { public void setUp() throws Exception { DubboBootstrap.reset(); MockReferenceConfig.setCounter(0); + XxxMockReferenceConfig.setCounter(0); SimpleReferenceCache.CACHE_HOLDER.clear(); } diff --git a/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsReporterTest.java b/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsReporterTest.java index 5304963a04..e8198a3d05 100644 --- a/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsReporterTest.java +++ b/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsReporterTest.java @@ -51,6 +51,7 @@ class PrometheusMetricsReporterTest { private MetricsConfig metricsConfig; private ApplicationModel applicationModel; private FrameworkModel frameworkModel; + HttpServer prometheusExporterHttpServer; @BeforeEach public void setup() { @@ -64,6 +65,9 @@ class PrometheusMetricsReporterTest { @AfterEach public void teardown() { applicationModel.destroy(); + if (prometheusExporterHttpServer != null) { + prometheusExporterHttpServer.stop(0); + } } @Test @@ -146,7 +150,7 @@ class PrometheusMetricsReporterTest { private void exportHttpServer(PrometheusMetricsReporter reporter, int port) { try { - HttpServer prometheusExporterHttpServer = HttpServer.create(new InetSocketAddress(port), 0); + prometheusExporterHttpServer = HttpServer.create(new InetSocketAddress(port), 0); prometheusExporterHttpServer.createContext("/metrics", httpExchange -> { reporter.resetIfSamplesChanged(); String response = reporter.getPrometheusRegistry().scrape(); diff --git a/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsThreadPoolTest.java b/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsThreadPoolTest.java index 5591cd8c54..83b062e1c1 100644 --- a/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsThreadPoolTest.java +++ b/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/PrometheusMetricsThreadPoolTest.java @@ -62,6 +62,8 @@ public class PrometheusMetricsThreadPoolTest { DefaultMetricsCollector metricsCollector; + HttpServer prometheusExporterHttpServer; + @BeforeEach public void setup() { applicationModel = ApplicationModel.defaultModel(); @@ -77,6 +79,9 @@ public class PrometheusMetricsThreadPoolTest { @AfterEach public void teardown() { applicationModel.destroy(); + if (prometheusExporterHttpServer != null) { + prometheusExporterHttpServer.stop(0); + } } @Test @@ -121,7 +126,7 @@ public class PrometheusMetricsThreadPoolTest { private void exportHttpServer(PrometheusMetricsReporter reporter, int port) { try { - HttpServer prometheusExporterHttpServer = HttpServer.create(new InetSocketAddress(port), 0); + prometheusExporterHttpServer = HttpServer.create(new InetSocketAddress(port), 0); prometheusExporterHttpServer.createContext("/metrics", httpExchange -> { reporter.resetIfSamplesChanged(); String response = reporter.getPrometheusRegistry().scrape(); diff --git a/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/DubboMonitorTest.java b/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/DubboMonitorTest.java index 891a45e107..c6f7c26541 100644 --- a/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/DubboMonitorTest.java +++ b/dubbo-monitor/dubbo-monitor-default/src/test/java/org/apache/dubbo/monitor/dubbo/DubboMonitorTest.java @@ -30,6 +30,8 @@ import org.apache.dubbo.rpc.ProxyFactory; import org.apache.dubbo.rpc.Result; import org.apache.dubbo.rpc.RpcException; +import java.io.IOException; +import java.net.ServerSocket; import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -139,7 +141,13 @@ class DubboMonitorTest { } @Test - void testMonitorFactory() { + void testMonitorFactory() throws IOException { + int port; + try (ServerSocket socket = new ServerSocket(0)) { + port = socket.getLocalPort(); + socket.close(); + } + MockMonitorService monitorService = new MockMonitorService(); URL statistics = new URLBuilder(DUBBO_PROTOCOL, "10.20.153.10", 0) .addParameter(APPLICATION_KEY, "morgan") @@ -163,12 +171,12 @@ class DubboMonitorTest { Exporter exporter = protocol.export(proxyFactory.getInvoker( monitorService, MonitorService.class, - URL.valueOf("dubbo://127.0.0.1:17979/" + MonitorService.class.getName()))); + URL.valueOf("dubbo://127.0.0.1:" + port + "/" + MonitorService.class.getName()))); try { Monitor monitor = null; long start = System.currentTimeMillis(); while (System.currentTimeMillis() - start < 60000) { - monitor = monitorFactory.getMonitor(URL.valueOf("dubbo://127.0.0.1:17979?interval=10")); + monitor = monitorFactory.getMonitor(URL.valueOf("dubbo://127.0.0.1:" + port + "?interval=10")); if (monitor == null) { continue; } diff --git a/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/LiveTest.java b/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/LiveTest.java index 60da31680a..70a90986b8 100644 --- a/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/LiveTest.java +++ b/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/command/impl/LiveTest.java @@ -35,6 +35,7 @@ class LiveTest { @AfterEach public void reset() { frameworkModel.destroy(); + MockLivenessProbe.setCheckReturnValue(false); } @Test diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/transport/ChannelHandlerDispatcherTest.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/transport/ChannelHandlerDispatcherTest.java index 2e7fdf2838..df6b3559e0 100644 --- a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/transport/ChannelHandlerDispatcherTest.java +++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/transport/ChannelHandlerDispatcherTest.java @@ -24,12 +24,18 @@ import java.util.Collection; import java.util.Collections; import java.util.HashSet; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.mockito.Mockito; class ChannelHandlerDispatcherTest { + @AfterEach + public void tearDown() { + MockChannelHandler.reset(); + } + @Test void test() { ChannelHandlerDispatcher channelHandlerDispatcher = new ChannelHandlerDispatcher(); @@ -138,4 +144,12 @@ class MockChannelHandler extends ChannelHandlerAdapter { public static int getCaughtCount() { return caughtCount; } + + public static void reset() { + sentCount = 0; + connectedCount = 0; + disconnectedCount = 0; + receivedCount = 0; + caughtCount = 0; + } } diff --git a/dubbo-rpc/dubbo-rpc-api/src/test/java/org/apache/dubbo/rpc/RpcStatusTest.java b/dubbo-rpc/dubbo-rpc-api/src/test/java/org/apache/dubbo/rpc/RpcStatusTest.java index efa938e803..de0eaab48a 100644 --- a/dubbo-rpc/dubbo-rpc-api/src/test/java/org/apache/dubbo/rpc/RpcStatusTest.java +++ b/dubbo-rpc/dubbo-rpc-api/src/test/java/org/apache/dubbo/rpc/RpcStatusTest.java @@ -39,6 +39,10 @@ class RpcStatusTest { URL url = new ServiceConfigURL("dubbo", "127.0.0.1", 91031, DemoService.class.getName()); String methodName = "testBeginCountEndCount"; int max = 2; + + RpcStatus.removeStatus(url); + RpcStatus.removeStatus(url, methodName); + boolean flag = RpcStatus.beginCount(url, methodName, max); RpcStatus urlRpcStatus = RpcStatus.getStatus(url); RpcStatus methodRpcStatus = RpcStatus.getStatus(url, methodName); @@ -65,6 +69,10 @@ class RpcStatusTest { void testBeginCountEndCountInMultiThread() throws Exception { URL url = new ServiceConfigURL("dubbo", "127.0.0.1", 91032, DemoService.class.getName()); String methodName = "testBeginCountEndCountInMultiThread"; + + RpcStatus.removeStatus(url); + RpcStatus.removeStatus(url, methodName); + int max = 50; int threadNum = 10; AtomicInteger successCount = new AtomicInteger(); @@ -99,6 +107,10 @@ class RpcStatusTest { URL url = new ServiceConfigURL("dubbo", "127.0.0.1", 91033, DemoService.class.getName()); String methodName = "testStatistics"; int max = 0; + + RpcStatus.removeStatus(url); + RpcStatus.removeStatus(url, methodName); + RpcStatus.beginCount(url, methodName, max); RpcStatus.beginCount(url, methodName, max); RpcStatus.beginCount(url, methodName, max); From 1e6a84e16aa3971d311f6de257aae29959721f13 Mon Sep 17 00:00:00 2001 From: Jermaine Hua Date: Sat, 11 May 2024 14:40:56 +0800 Subject: [PATCH 30/96] Bump org.apache.maven.plugins:maven-plugin-plugin from 3.10.2 to 3.13.0 (#14174) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: “JermaineHua” --- dubbo-maven-plugin/pom.xml | 6 +++++- dubbo-native-plugin/pom.xml | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/dubbo-maven-plugin/pom.xml b/dubbo-maven-plugin/pom.xml index 66ed8e6ce3..e6be66aa25 100644 --- a/dubbo-maven-plugin/pom.xml +++ b/dubbo-maven-plugin/pom.xml @@ -72,8 +72,12 @@ + org.apache.maven.plugins maven-plugin-plugin - 3.10.2 + 3.13.0 + + dubbo + default-addPluginArtifactMetadata diff --git a/dubbo-native-plugin/pom.xml b/dubbo-native-plugin/pom.xml index 2053e62ff8..5336dc23aa 100644 --- a/dubbo-native-plugin/pom.xml +++ b/dubbo-native-plugin/pom.xml @@ -75,8 +75,12 @@ + org.apache.maven.plugins maven-plugin-plugin - 3.10.2 + 3.13.0 + + dubbo + default-addPluginArtifactMetadata From 5d1c0eae1cf715ab469c5201a183963dd387e765 Mon Sep 17 00:00:00 2001 From: caoyanan666 <55247691+caoyanan666@users.noreply.github.com> Date: Sat, 11 May 2024 14:49:28 +0800 Subject: [PATCH 31/96] fix(3.2): Triple Reactor OneToMany Handler null pointer fix and DubboFilter support (#14125) * ReactorDubbo3TripleStub.mustache add schema registry * Triple Reactor OneToMany Handler null pointer fix and DubboFilter support * trigger ci * Adjust the order * trigger ci * ServerTripleReactorSubscriber meaningful --------- Co-authored-by: caoyanan Co-authored-by: Ken Liu --- .../AbstractTripleReactorSubscriber.java | 2 +- .../ServerTripleReactorSubscriber.java | 42 +++++++++++++++++++ .../reactive/calls/ReactorServerCalls.java | 17 ++++++-- .../handler/OneToManyMethodHandler.java | 3 +- 4 files changed, 57 insertions(+), 7 deletions(-) diff --git a/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/AbstractTripleReactorSubscriber.java b/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/AbstractTripleReactorSubscriber.java index 86db857582..b3d6fa058e 100644 --- a/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/AbstractTripleReactorSubscriber.java +++ b/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/AbstractTripleReactorSubscriber.java @@ -53,7 +53,7 @@ public abstract class AbstractTripleReactorSubscriber implements Subscriber extends AbstractTripleReactorSubscriber { + /** + * The execution future of the current task, in order to be returned to stubInvoker + */ + private final CompletableFuture> executionFuture = new CompletableFuture<>(); + /** + * The result elements collected by the current task. + * This class is a flux subscriber, which usually means there will be multiple elements, so it is declared as a list type. + */ + private final List collectedData = new ArrayList<>(); + + public ServerTripleReactorSubscriber() {} + + public ServerTripleReactorSubscriber(CallStreamObserver streamObserver) { + this.downstream = streamObserver; + } + @Override public void subscribe(CallStreamObserver downstream) { super.subscribe(downstream); @@ -40,4 +60,26 @@ public class ServerTripleReactorSubscriber extends AbstractTripleReactorSubsc context.addListener(ctx -> super.cancel()); } } + + @Override + public void onNext(T t) { + super.onNext(t); + collectedData.add(t); + } + + @Override + public void onError(Throwable throwable) { + super.onError(throwable); + executionFuture.completeExceptionally(throwable); + } + + @Override + public void onComplete() { + super.onComplete(); + executionFuture.complete(this.collectedData); + } + + public CompletableFuture> getExecutionFuture() { + return executionFuture; + } } diff --git a/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java b/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java index f6a39c944c..24218a1b08 100644 --- a/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java +++ b/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java @@ -24,6 +24,8 @@ import org.apache.dubbo.rpc.TriRpcStatus; import org.apache.dubbo.rpc.protocol.tri.observer.CallStreamObserver; import org.apache.dubbo.rpc.protocol.tri.observer.ServerCallToObserverAdapter; +import java.util.List; +import java.util.concurrent.CompletableFuture; import java.util.function.Function; import reactor.core.publisher.Flux; @@ -65,14 +67,21 @@ public final class ReactorServerCalls { * @param responseObserver response StreamObserver * @param func service implementation */ - public static void oneToMany( + public static CompletableFuture> oneToMany( T request, StreamObserver responseObserver, Function, Flux> func) { try { + ServerCallToObserverAdapter serverCallToObserverAdapter = + (ServerCallToObserverAdapter) responseObserver; Flux response = func.apply(Mono.just(request)); - ServerTripleReactorSubscriber subscriber = response.subscribeWith(new ServerTripleReactorSubscriber<>()); - subscriber.subscribe((ServerCallToObserverAdapter) responseObserver); + ServerTripleReactorSubscriber reactorSubscriber = + new ServerTripleReactorSubscriber<>(serverCallToObserverAdapter); + response.subscribeWith(reactorSubscriber).subscribe(serverCallToObserverAdapter); + return reactorSubscriber.getExecutionFuture(); } catch (Throwable throwable) { - responseObserver.onError(throwable); + doOnResponseHasException(throwable, responseObserver); + CompletableFuture> future = new CompletableFuture<>(); + future.completeExceptionally(throwable); + return future; } } diff --git a/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/handler/OneToManyMethodHandler.java b/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/handler/OneToManyMethodHandler.java index b5b0534fff..fc2e4df9f0 100644 --- a/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/handler/OneToManyMethodHandler.java +++ b/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/handler/OneToManyMethodHandler.java @@ -42,7 +42,6 @@ public class OneToManyMethodHandler implements StubMethodHandler { public CompletableFuture invoke(Object[] arguments) { T request = (T) arguments[0]; StreamObserver responseObserver = (StreamObserver) arguments[1]; - ReactorServerCalls.oneToMany(request, responseObserver, func); - return CompletableFuture.completedFuture(null); + return ReactorServerCalls.oneToMany(request, responseObserver, func); } } From cd78bba7b7c7134b1317275da3ffc277dc6f54d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 May 2024 11:48:23 +0800 Subject: [PATCH 32/96] Bump org.aspectj:aspectjweaver from 1.9.22 to 1.9.22.1 (#14181) Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.22 to 1.9.22.1. - [Release notes](https://github.com/eclipse/org.aspectj/releases) - [Commits](https://github.com/eclipse/org.aspectj/commits) --- updated-dependencies: - dependency-name: org.aspectj:aspectjweaver dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-config/dubbo-config-spring/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-config/dubbo-config-spring/pom.xml b/dubbo-config/dubbo-config-spring/pom.xml index d054d5a9f0..425b2bba3d 100644 --- a/dubbo-config/dubbo-config-spring/pom.xml +++ b/dubbo-config/dubbo-config-spring/pom.xml @@ -74,7 +74,7 @@ org.aspectj aspectjweaver - 1.9.22 + 1.9.22.1 test From 80b145db3e09c947f0b731776ec66694bafc4846 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 May 2024 11:48:31 +0800 Subject: [PATCH 33/96] Bump org.testcontainers:testcontainers from 1.19.7 to 1.19.8 (#14183) Bumps [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) from 1.19.7 to 1.19.8. - [Release notes](https://github.com/testcontainers/testcontainers-java/releases) - [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.19.7...1.19.8) --- updated-dependencies: - dependency-name: org.testcontainers:testcontainers dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-config/dubbo-config-api/pom.xml | 2 +- dubbo-dependencies-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dubbo-config/dubbo-config-api/pom.xml b/dubbo-config/dubbo-config-api/pom.xml index 01d5abadd9..1d75cd5464 100644 --- a/dubbo-config/dubbo-config-api/pom.xml +++ b/dubbo-config/dubbo-config-api/pom.xml @@ -236,7 +236,7 @@ org.testcontainers testcontainers - 1.19.7 + 1.19.8 test diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index d1b6f1251c..5a24b867b9 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -153,7 +153,7 @@ 2.2.7 1.2.0 - 1.19.7 + 1.19.8 3.2.13 1.6.14 From 4cd9a983950f2d0b070e412b54b13c61eb7c6cdb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 May 2024 11:49:13 +0800 Subject: [PATCH 34/96] Bump net.bytebuddy:byte-buddy from 1.14.14 to 1.14.15 (#14184) Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.14.14 to 1.14.15. - [Release notes](https://github.com/raphw/byte-buddy/releases) - [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md) - [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.14.14...byte-buddy-1.14.15) --- updated-dependencies: - dependency-name: net.bytebuddy:byte-buddy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 5a24b867b9..1f1f21b21d 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -93,7 +93,7 @@ 5.3.34 5.8.12 3.30.2-GA - 1.14.14 + 1.14.15 3.2.10.Final 4.1.109.Final 4.5.14 From 9968834e621e3cff492fed91c142aa176f1d883f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 May 2024 11:49:23 +0800 Subject: [PATCH 35/96] Bump bytebuddy.version from 1.14.14 to 1.14.15 (#14179) Bumps `bytebuddy.version` from 1.14.14 to 1.14.15. Updates `net.bytebuddy:byte-buddy` from 1.14.14 to 1.14.15 - [Release notes](https://github.com/raphw/byte-buddy/releases) - [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md) - [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.14.14...byte-buddy-1.14.15) Updates `net.bytebuddy:byte-buddy-agent` from 1.14.14 to 1.14.15 - [Release notes](https://github.com/raphw/byte-buddy/releases) - [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md) - [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.14.14...byte-buddy-1.14.15) --- updated-dependencies: - dependency-name: net.bytebuddy:byte-buddy dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: net.bytebuddy:byte-buddy-agent dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-spring-boot/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-spring-boot/pom.xml b/dubbo-spring-boot/pom.xml index bd479ab3f9..807bcd9b81 100644 --- a/dubbo-spring-boot/pom.xml +++ b/dubbo-spring-boot/pom.xml @@ -43,7 +43,7 @@ 2.23.1 - 1.14.14 + 1.14.15 From faabbf64358f67661a7fab0d457da54ebb0d1094 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 May 2024 10:03:50 +0800 Subject: [PATCH 36/96] Bump io.micrometer:micrometer-core from 1.12.5 to 1.13.0 (#14219) Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.12.5 to 1.13.0. - [Release notes](https://github.com/micrometer-metrics/micrometer/releases) - [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.12.5...v1.13.0) --- updated-dependencies: - dependency-name: io.micrometer:micrometer-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-demo/dubbo-demo-spring-boot/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-demo/dubbo-demo-spring-boot/pom.xml b/dubbo-demo/dubbo-demo-spring-boot/pom.xml index 56c065f201..1472ada8ae 100644 --- a/dubbo-demo/dubbo-demo-spring-boot/pom.xml +++ b/dubbo-demo/dubbo-demo-spring-boot/pom.xml @@ -37,7 +37,7 @@ true 2.7.18 2.7.18 - 1.12.5 + 1.13.0 From 43ae6a7abafa627958b22e576b8eafe100781c85 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 May 2024 10:03:58 +0800 Subject: [PATCH 37/96] Bump commons-logging:commons-logging from 1.3.1 to 1.3.2 (#14215) Bumps commons-logging:commons-logging from 1.3.1 to 1.3.2. --- updated-dependencies: - dependency-name: commons-logging:commons-logging dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 1f1f21b21d..41492f7389 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -139,7 +139,7 @@ 1.2.2 1.7.36 - 1.3.1 + 1.3.2 1.2.17 1.2.13 From a6187b8e9381295a4bb2f1d1c4e1d7a4fb9d7580 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 May 2024 10:04:08 +0800 Subject: [PATCH 38/96] Bump org.codehaus.mojo:build-helper-maven-plugin from 3.5.0 to 3.6.0 (#14214) Bumps [org.codehaus.mojo:build-helper-maven-plugin](https://github.com/mojohaus/build-helper-maven-plugin) from 3.5.0 to 3.6.0. - [Release notes](https://github.com/mojohaus/build-helper-maven-plugin/releases) - [Commits](https://github.com/mojohaus/build-helper-maven-plugin/compare/3.5.0...3.6.0) --- updated-dependencies: - dependency-name: org.codehaus.mojo:build-helper-maven-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0b7fb7a8c5..50acb7f646 100644 --- a/pom.xml +++ b/pom.xml @@ -300,7 +300,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.5.0 + 3.6.0 org.fusesource.hawtjni From d64fbf8b9419c5b0fae66099141868b4b1314113 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 May 2024 10:04:18 +0800 Subject: [PATCH 39/96] Bump grpc.version from 1.63.0 to 1.64.0 (#14213) Bumps `grpc.version` from 1.63.0 to 1.64.0. Updates `io.grpc:grpc-core` from 1.63.0 to 1.64.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.63.0...v1.64.0) Updates `io.grpc:grpc-stub` from 1.63.0 to 1.64.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.63.0...v1.64.0) Updates `io.grpc:grpc-protobuf` from 1.63.0 to 1.64.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.63.0...v1.64.0) Updates `io.grpc:grpc-context` from 1.63.0 to 1.64.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.63.0...v1.64.0) Updates `io.grpc:grpc-netty-shaded` from 1.63.0 to 1.64.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.63.0...v1.64.0) Updates `io.grpc:grpc-netty` from 1.63.0 to 1.64.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.63.0...v1.64.0) Updates `io.grpc:grpc-grpclb` from 1.63.0 to 1.64.0 - [Release notes](https://github.com/grpc/grpc-java/releases) - [Commits](https://github.com/grpc/grpc-java/compare/v1.63.0...v1.64.0) --- updated-dependencies: - dependency-name: io.grpc:grpc-core dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: io.grpc:grpc-stub dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: io.grpc:grpc-protobuf dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: io.grpc:grpc-context dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: io.grpc:grpc-netty-shaded dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: io.grpc:grpc-netty dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: io.grpc:grpc-grpclb dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 41492f7389..407c30f302 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -134,7 +134,7 @@ 1.9.13 8.5.100 2.3.2 - 1.63.0 + 1.64.0 0.8.1 1.2.2 From b867f9ebd7f5bb7dbb004ad4f69a88d7bc498de7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 May 2024 10:04:37 +0800 Subject: [PATCH 40/96] Bump spring_version from 5.3.34 to 5.3.35 (#14211) Bumps `spring_version` from 5.3.34 to 5.3.35. Updates `org.springframework:spring-test` from 5.3.34 to 5.3.35 - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.34...v5.3.35) Updates `org.springframework:spring-framework-bom` from 5.3.34 to 5.3.35 - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.34...v5.3.35) --- updated-dependencies: - dependency-name: org.springframework:spring-test dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- dubbo-test/dubbo-test-spring/pom.xml | 2 +- dubbo-test/dubbo-test-spring3.2/pom.xml | 2 +- dubbo-test/dubbo-test-spring4.1/pom.xml | 2 +- dubbo-test/dubbo-test-spring4.2/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 407c30f302..aea79c3a84 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -90,7 +90,7 @@ - 5.3.34 + 5.3.35 5.8.12 3.30.2-GA 1.14.15 diff --git a/dubbo-test/dubbo-test-spring/pom.xml b/dubbo-test/dubbo-test-spring/pom.xml index 6c53f2b6ee..33ffbd9df6 100644 --- a/dubbo-test/dubbo-test-spring/pom.xml +++ b/dubbo-test/dubbo-test-spring/pom.xml @@ -29,7 +29,7 @@ true 1.7.33 - 5.3.34 + 5.3.35 diff --git a/dubbo-test/dubbo-test-spring3.2/pom.xml b/dubbo-test/dubbo-test-spring3.2/pom.xml index 7aaf41d2ff..6ffd716c83 100644 --- a/dubbo-test/dubbo-test-spring3.2/pom.xml +++ b/dubbo-test/dubbo-test-spring3.2/pom.xml @@ -28,7 +28,7 @@ true - 5.3.34 + 5.3.35 diff --git a/dubbo-test/dubbo-test-spring4.1/pom.xml b/dubbo-test/dubbo-test-spring4.1/pom.xml index 203c038eee..878e74a427 100644 --- a/dubbo-test/dubbo-test-spring4.1/pom.xml +++ b/dubbo-test/dubbo-test-spring4.1/pom.xml @@ -28,7 +28,7 @@ true - 5.3.34 + 5.3.35 diff --git a/dubbo-test/dubbo-test-spring4.2/pom.xml b/dubbo-test/dubbo-test-spring4.2/pom.xml index 682a7c9baf..dedfee5b2f 100644 --- a/dubbo-test/dubbo-test-spring4.2/pom.xml +++ b/dubbo-test/dubbo-test-spring4.2/pom.xml @@ -28,7 +28,7 @@ true - 5.3.34 + 5.3.35 From 75f0eb4a1537933e94fa3b82677ae4af46f11630 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 May 2024 10:04:45 +0800 Subject: [PATCH 41/96] Bump io.projectreactor:reactor-core from 3.6.5 to 3.6.6 (#14212) Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.5 to 3.6.6. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.5...v3.6.6) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index aea79c3a84..6144bf983b 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -125,7 +125,7 @@ 3.3 0.16.0 1.0.4 - 3.6.5 + 3.6.6 2.2.21 3.14.9 From 57b87029a662acc9ee2d762aa50fda95301cb9df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 May 2024 10:09:33 +0800 Subject: [PATCH 42/96] Bump org.graalvm.buildtools:native-maven-plugin from 0.10.1 to 0.10.2 (#14217) Bumps [org.graalvm.buildtools:native-maven-plugin](https://github.com/graalvm/native-build-tools) from 0.10.1 to 0.10.2. - [Release notes](https://github.com/graalvm/native-build-tools/releases) - [Commits](https://github.com/graalvm/native-build-tools/compare/0.10.1...0.10.2) --- updated-dependencies: - dependency-name: org.graalvm.buildtools:native-maven-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer/pom.xml | 2 +- dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer/pom.xml b/dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer/pom.xml index dc418b8f3e..b5658fa43b 100644 --- a/dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer/pom.xml +++ b/dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer/pom.xml @@ -232,7 +232,7 @@ org.graalvm.buildtools native-maven-plugin - 0.10.1 + 0.10.2 ${project.build.outputDirectory} diff --git a/dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider/pom.xml b/dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider/pom.xml index e949f3da94..bcf41b99ec 100644 --- a/dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider/pom.xml +++ b/dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider/pom.xml @@ -229,7 +229,7 @@ org.graalvm.buildtools native-maven-plugin - 0.10.1 + 0.10.2 ${project.build.outputDirectory} From e21244a43171c0187b0295fd9ba811155ebb1acd Mon Sep 17 00:00:00 2001 From: zrlw Date: Tue, 21 May 2024 10:20:51 +0800 Subject: [PATCH 43/96] check whether property name is safe based on the last fragment kebab-case comparison (#14208) --- .../common/config/ConfigurationUtils.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/config/ConfigurationUtils.java b/dubbo-common/src/main/java/org/apache/dubbo/common/config/ConfigurationUtils.java index 4af6922cfe..187a96ed59 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/config/ConfigurationUtils.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/config/ConfigurationUtils.java @@ -31,10 +31,9 @@ import java.io.StringReader; import java.util.Collection; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.LinkedHashSet; -import java.util.LinkedList; -import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Properties; @@ -43,6 +42,7 @@ import java.util.Set; import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_SERVER_SHUTDOWN_TIMEOUT; import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY; import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_SECONDS_KEY; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_PROPERTY_TYPE_MISMATCH; /** * Utilities for manipulating configurations from different sources @@ -57,18 +57,18 @@ public final class ConfigurationUtils { } private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(ConfigurationUtils.class); - private static final List securityKey; + private static final Set securityKey; private static volatile long expectedShutdownTime = Long.MAX_VALUE; static { - List keys = new LinkedList<>(); + Set keys = new HashSet<>(); keys.add("accesslog"); keys.add("router"); keys.add("rule"); keys.add("runtime"); keys.add("type"); - securityKey = Collections.unmodifiableList(keys); + securityKey = Collections.unmodifiableSet(keys); } /** @@ -213,11 +213,15 @@ public final class ConfigurationUtils { properties.load(new StringReader(content)); properties.stringPropertyNames().forEach(k -> { boolean deny = false; - for (String key : securityKey) { - if (k.contains(key)) { - deny = true; - break; - } + // check whether property name is safe or not based on the last fragment kebab-case comparison. + String[] fragments = k.split("\\."); + if (securityKey.contains(StringUtils.convertToSplitName(fragments[fragments.length - 1], "-"))) { + deny = true; + logger.warn( + COMMON_PROPERTY_TYPE_MISMATCH, + "security properties are not allowed to be set", + "", + String.format("'%s' is not allowed to be set as it is on the security key list.", k)); } if (!deny) { map.put(k, properties.getProperty(k)); From 189d76be5d94d43d8054cc58d48507380aea99a3 Mon Sep 17 00:00:00 2001 From: Lee hong <40360529+walkinggo@users.noreply.github.com> Date: Tue, 21 May 2024 11:36:53 +0800 Subject: [PATCH 44/96] check child is json or not in zookeeper.it will be continue if not. (#14166) * check child is json or not.it will be continue if not. * try to save code format problem. * child could be json array.so child could start with { or [. * fix the problem of it will continue some message to make zookeeper outtime. * try to continue the string without warn. * format the code. * catch the exception of JSONException. * try to fix java.lang.NoClassDefFoundError because of JSONException. * add isJson method and implement it in JSON. * implement the checkJson method and use it in ZookeeperRegistry * format the code. * add some test case. * format the code. * format the code. * format the code. * format the code. * format the code. * format the code. * format the code. * format the code. * format the code. * add some information. * format the code. * add human friendly comment. * format the code. * format the code. --------- Co-authored-by: Albumen Kevin Co-authored-by: Jermaine Hua --- .../org/apache/dubbo/common/json/JSON.java | 2 + .../dubbo/common/json/impl/FastJson2Impl.java | 8 ++++ .../dubbo/common/json/impl/FastJsonImpl.java | 10 +++++ .../dubbo/common/json/impl/GsonImpl.java | 13 ++++++ .../dubbo/common/json/impl/JacksonImpl.java | 12 ++++++ .../apache/dubbo/common/utils/JsonUtils.java | 4 ++ .../dubbo/common/utils/JsonUtilsTest.java | 43 +++++++++++++++++++ .../registry/zookeeper/ZookeeperRegistry.java | 12 +++++- 8 files changed, 103 insertions(+), 1 deletion(-) diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/json/JSON.java b/dubbo-common/src/main/java/org/apache/dubbo/common/json/JSON.java index 7eddf3d988..f9da1d2fbc 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/json/JSON.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/json/JSON.java @@ -23,6 +23,8 @@ import java.util.Map; public interface JSON { boolean isSupport(); + boolean isJson(String json); + T toJavaObject(String json, Type type); List toJavaList(String json, Class clazz); diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/FastJson2Impl.java b/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/FastJson2Impl.java index ef3e783a74..ed0cca1d81 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/FastJson2Impl.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/FastJson2Impl.java @@ -19,9 +19,17 @@ package org.apache.dubbo.common.json.impl; import java.lang.reflect.Type; import java.util.List; +import com.alibaba.fastjson2.JSONValidator; import com.alibaba.fastjson2.JSONWriter; public class FastJson2Impl extends AbstractJSONImpl { + + @Override + public boolean isJson(String json) { + JSONValidator validator = JSONValidator.from(json); + return validator.validate(); + } + @Override public T toJavaObject(String json, Type type) { return com.alibaba.fastjson2.JSON.parseObject(json, type); diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/FastJsonImpl.java b/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/FastJsonImpl.java index 97af77891f..30d74d47a6 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/FastJsonImpl.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/FastJsonImpl.java @@ -23,6 +23,16 @@ import com.alibaba.fastjson.serializer.SerializerFeature; public class FastJsonImpl extends AbstractJSONImpl { + @Override + public boolean isJson(String json) { + try { + Object obj = com.alibaba.fastjson.JSON.parse(json); + return obj instanceof com.alibaba.fastjson.JSONObject || obj instanceof com.alibaba.fastjson.JSONArray; + } catch (com.alibaba.fastjson.JSONException e) { + return false; + } + } + @Override public T toJavaObject(String json, Type type) { return com.alibaba.fastjson.JSON.parseObject(json, type); diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/GsonImpl.java b/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/GsonImpl.java index cd4e53a7ad..da79d9e91a 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/GsonImpl.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/GsonImpl.java @@ -20,12 +20,25 @@ import java.lang.reflect.Type; import java.util.List; import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.google.gson.JsonSyntaxException; import com.google.gson.reflect.TypeToken; public class GsonImpl extends AbstractJSONImpl { // weak reference of com.google.gson.Gson, prevent throw exception when init private volatile Object gsonCache = null; + @Override + public boolean isJson(String json) { + try { + JsonElement jsonElement = JsonParser.parseString(json); + return jsonElement.isJsonObject() || jsonElement.isJsonArray(); + } catch (JsonSyntaxException e) { + return false; + } + } + @Override public T toJavaObject(String json, Type type) { return getGson().fromJson(json, type); diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/JacksonImpl.java b/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/JacksonImpl.java index 28d822f860..aff9172644 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/JacksonImpl.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/json/impl/JacksonImpl.java @@ -20,7 +20,9 @@ import java.lang.reflect.Type; import java.util.List; import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.MapperFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.json.JsonMapper; @@ -31,6 +33,16 @@ public class JacksonImpl extends AbstractJSONImpl { private volatile Object jacksonCache = null; + @Override + public boolean isJson(String json) { + try { + JsonNode node = objectMapper.readTree(json); + return node.isObject() || node.isArray(); + } catch (JsonProcessingException e) { + return false; + } + } + @Override public T toJavaObject(String json, Type type) { try { diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/JsonUtils.java b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/JsonUtils.java index 0d259c6e51..3ee05919d4 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/JsonUtils.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/JsonUtils.java @@ -146,4 +146,8 @@ public class JsonUtils { public static List checkStringList(List rawList) { return getJson().checkStringList(rawList); } + + public static boolean checkJson(String json) { + return getJson().isJson(json); + } } diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/utils/JsonUtilsTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/utils/JsonUtilsTest.java index 1b63d217d5..4d04e58741 100644 --- a/dubbo-common/src/test/java/org/apache/dubbo/common/utils/JsonUtilsTest.java +++ b/dubbo-common/src/test/java/org/apache/dubbo/common/utils/JsonUtilsTest.java @@ -63,6 +63,49 @@ class JsonUtilsTest { } } + @Test + void testIsJson() { + JsonUtils.setJson(null); + // prefer use fastjson2 + System.setProperty("dubbo.json-framework.prefer", "fastjson2"); + Assertions.assertTrue( + JsonUtils.getJson().isJson("{\"title\":\"Java Programming\",\"author\":\"John Doe\",\"pages\":300}")); + Assertions.assertFalse(JsonUtils.getJson().isJson("This is not a JSON string")); + Assertions.assertTrue( + JsonUtils.getJson().isJson("[{\"title\":\"Java Programming\"}, {\"title\":\"Python Programming\"}]")); + System.clearProperty("dubbo.json-framework.prefer"); + + // prefer use fastjson + JsonUtils.setJson(null); + System.setProperty("dubbo.json-framework.prefer", "fastjson"); + Assertions.assertTrue( + JsonUtils.getJson().isJson("{\"title\":\"Java Programming\",\"author\":\"John Doe\",\"pages\":300}")); + Assertions.assertFalse(JsonUtils.getJson().isJson("This is not a JSON string")); + Assertions.assertTrue( + JsonUtils.getJson().isJson("[{\"title\":\"Java Programming\"}, {\"title\":\"Python Programming\"}]")); + System.clearProperty("dubbo.json-framework.prefer"); + + // prefer use gson + JsonUtils.setJson(null); + System.setProperty("dubbo.json-framework.prefer", "gson"); + Assertions.assertTrue( + JsonUtils.getJson().isJson("{\"title\":\"Java Programming\",\"author\":\"John Doe\",\"pages\":300}")); + Assertions.assertFalse(JsonUtils.getJson().isJson("This is not a JSON string")); + Assertions.assertTrue( + JsonUtils.getJson().isJson("[{\"title\":\"Java Programming\"}, {\"title\":\"Python Programming\"}]")); + System.clearProperty("dubbo.json-framework.prefer"); + + // prefer use jackson + JsonUtils.setJson(null); + System.setProperty("dubbo.json-framework.prefer", "jackson"); + Assertions.assertTrue( + JsonUtils.getJson().isJson("{\"title\":\"Java Programming\",\"author\":\"John Doe\",\"pages\":300}")); + Assertions.assertFalse(JsonUtils.getJson().isJson("This is not a JSON string")); + Assertions.assertTrue( + JsonUtils.getJson().isJson("[{\"title\":\"Java Programming\"}, {\"title\":\"Python Programming\"}]")); + System.clearProperty("dubbo.json-framework.prefer"); + } + @Test void testGetJson1() { Assertions.assertNotNull(JsonUtils.getJson()); diff --git a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistry.java b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistry.java index 4052df8d26..e1eb953d72 100644 --- a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistry.java +++ b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistry.java @@ -22,6 +22,7 @@ import org.apache.dubbo.common.logger.LoggerFactory; import org.apache.dubbo.common.utils.CollectionUtils; import org.apache.dubbo.common.utils.ConcurrentHashMapUtils; import org.apache.dubbo.common.utils.ConcurrentHashSet; +import org.apache.dubbo.common.utils.JsonUtils; import org.apache.dubbo.common.utils.UrlUtils; import org.apache.dubbo.registry.NotifyListener; import org.apache.dubbo.registry.support.CacheableFailbackRegistry; @@ -46,6 +47,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE; import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY; import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY; import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR; +import static org.apache.dubbo.common.constants.LoggerCodeConstants.PROTOCOL_ERROR_DESERIALIZE; import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_ZOOKEEPER_EXCEPTION; import static org.apache.dubbo.common.constants.RegistryConstants.CONFIGURATORS_CATEGORY; import static org.apache.dubbo.common.constants.RegistryConstants.CONSUMERS_CATEGORY; @@ -201,7 +203,15 @@ public class ZookeeperRegistry extends CacheableFailbackRegistry { ChildListener zkListener = ConcurrentHashMapUtils.computeIfAbsent( listeners, listener, k -> (parentPath, currentChildren) -> { for (String child : currentChildren) { - child = URL.decode(child); + try { + child = URL.decode(child); + if (!(JsonUtils.checkJson(child))) { + throw new Exception("dubbo-admin subscribe " + child + " failed,beacause " + + child + "is root path in " + url); + } + } catch (Exception e) { + logger.warn(PROTOCOL_ERROR_DESERIALIZE, "", "", e.getMessage()); + } if (!anyServices.contains(child)) { anyServices.add(child); subscribe( From cc95b52dfbed87cdcf72a3ab1176329c36595604 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=81=AA=E6=B4=8B?= <56506697+wcy666103@users.noreply.github.com> Date: Tue, 21 May 2024 18:57:10 +0800 Subject: [PATCH 45/96] Com.google.code.gson gson 2.11.0 (#14224) * Bump com.google.code.gson:gson from 2.10.1 to 2.11.0 Bumps [com.google.code.gson:gson](https://github.com/google/gson) from 2.10.1 to 2.11.0. - [Release notes](https://github.com/google/gson/releases) - [Changelog](https://github.com/google/gson/blob/main/CHANGELOG.md) - [Commits](https://github.com/google/gson/compare/gson-parent-2.10.1...gson-parent-2.11.0) --- updated-dependencies: - dependency-name: com.google.code.gson:gson dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * fix testcase * format code --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../apache/dubbo/common/extension/ExtensionDirectorTest.java | 3 +-- .../test/java/org/apache/dubbo/common/json/GsonUtilsTest.java | 3 ++- dubbo-dependencies-bom/pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/extension/ExtensionDirectorTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/extension/ExtensionDirectorTest.java index 13f1945d18..e15ab27fde 100644 --- a/dubbo-common/src/test/java/org/apache/dubbo/common/extension/ExtensionDirectorTest.java +++ b/dubbo-common/src/test/java/org/apache/dubbo/common/extension/ExtensionDirectorTest.java @@ -45,8 +45,7 @@ class ExtensionDirectorTest { // 2. Child ExtensionDirector can get extension instance from parent // 3. Parent ExtensionDirector can't get extension instance from child - ExtensionDirector fwExtensionDirector = - new ExtensionDirector(null, ExtensionScope.FRAMEWORK, FrameworkModel.defaultModel()); + ExtensionDirector fwExtensionDirector = FrameworkModel.defaultModel().getExtensionDirector(); ExtensionDirector appExtensionDirector = new ExtensionDirector(fwExtensionDirector, ExtensionScope.APPLICATION, ApplicationModel.defaultModel()); ExtensionDirector moduleExtensionDirector = new ExtensionDirector( diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/json/GsonUtilsTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/json/GsonUtilsTest.java index c28f4ad8da..2a4a5a9b1d 100644 --- a/dubbo-common/src/test/java/org/apache/dubbo/common/json/GsonUtilsTest.java +++ b/dubbo-common/src/test/java/org/apache/dubbo/common/json/GsonUtilsTest.java @@ -36,7 +36,8 @@ class GsonUtilsTest { Assertions.fail(); } catch (RuntimeException ex) { Assertions.assertEquals( - "Generic serialization [gson] Json syntax exception thrown when parsing (message:{'name':'Tom','age':} type:class org.apache.dubbo.common.json.GsonUtilsTest$User) error:com.google.gson.stream.MalformedJsonException: Expected value at line 1 column 21 path $.age", + "Generic serialization [gson] Json syntax exception thrown when parsing (message:{'name':'Tom','age':} type:class org.apache.dubbo.common.json.GsonUtilsTest$User) error:com.google.gson.stream.MalformedJsonException: Expected value at line 1 column 21 path $.age\n" + + "See https://github.com/google/gson/blob/main/Troubleshooting.md#malformed-json", ex.getMessage()); } } diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 6144bf983b..e6badb7129 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -160,7 +160,7 @@ 1.1.10.5 1.70 2.0.6 - 2.10.1 + 2.11.0 2.17.1 6.1.26 2.0 From b12b23cbf0698dba96cb2e6b75e4ee272ed25523 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80?= <78294896+qyi71@users.noreply.github.com> Date: Wed, 22 May 2024 11:10:19 +0800 Subject: [PATCH 46/96] fix: not initialize MetricsReporter if not support prometheus (#14225) * fix: not initialize if not support prometheus * add method isImportPrometheus test --------- Co-authored-by: yuanhongbo --- .../config/deploy/DefaultApplicationDeployer.java | 3 +++ .../deploy/DefaultApplicationDeployerTest.java | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java index f58c9c2b24..820cb1e4d7 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployer.java @@ -382,6 +382,9 @@ public class DefaultApplicationDeployer extends AbstractDeployer configOptional = configManager.getMetrics(); // If no specific metrics type is configured and there is no Prometheus dependency in the dependencies. MetricsConfig metricsConfig = configOptional.orElse(new MetricsConfig(applicationModel)); + if (PROTOCOL_PROMETHEUS.equals(metricsConfig.getProtocol()) && !isSupportPrometheus()) { + return; + } if (StringUtils.isBlank(metricsConfig.getProtocol())) { metricsConfig.setProtocol(isSupportPrometheus() ? PROTOCOL_PROMETHEUS : PROTOCOL_DEFAULT); } diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployerTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployerTest.java index e424fb34b2..1cd39c7da8 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployerTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployerTest.java @@ -17,10 +17,13 @@ package org.apache.dubbo.config.deploy; import org.apache.dubbo.common.utils.Assert; +import org.apache.dubbo.config.MetricsConfig; import org.apache.dubbo.rpc.model.ApplicationModel; import org.junit.jupiter.api.Test; +import static org.apache.dubbo.common.constants.MetricsConstants.PROTOCOL_PROMETHEUS; + class DefaultApplicationDeployerTest { @Test @@ -29,4 +32,13 @@ class DefaultApplicationDeployerTest { new DefaultApplicationDeployer(ApplicationModel.defaultModel()).isSupportPrometheus(); Assert.assertTrue(supportPrometheus, "DefaultApplicationDeployer.isSupportPrometheus() should return true"); } + + @Test + void isImportPrometheus() { + MetricsConfig metricsConfig = new MetricsConfig(); + metricsConfig.setProtocol("prometheus"); + boolean importPrometheus = PROTOCOL_PROMETHEUS.equals(metricsConfig.getProtocol()) + && !DefaultApplicationDeployer.isSupportPrometheus(); + Assert.assertTrue(!importPrometheus, " should return false"); + } } From a6c61175c5975bb136f8a4435f27f5bc01d4a166 Mon Sep 17 00:00:00 2001 From: stellar <137587347+Stellar1999@users.noreply.github.com> Date: Thu, 23 May 2024 11:03:18 +0800 Subject: [PATCH 47/96] fix:embedded-redis need update version to run on macos Sonoma (#14072) (#14074) (#14227) --- dubbo-dependencies-bom/pom.xml | 2 +- .../dubbo/metadata/store/redis/RedisMetadataReportTest.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index e6badb7129..031821ab20 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -146,7 +146,7 @@ 2.23.1 2.16.1 - 0.13.0 + 1.1.0 1.0.11 diff --git a/dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java b/dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java index ebfce5de95..e31cb331fc 100644 --- a/dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java +++ b/dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java @@ -250,7 +250,8 @@ class RedisMetadataReportTest { if (e.getCause() instanceof JedisConnectionException && e.getCause().getCause() instanceof JedisDataException) { Assertions.assertEquals( - "ERR invalid password", e.getCause().getCause().getMessage()); + "WRONGPASS invalid username-password pair or user is disabled.", + e.getCause().getCause().getMessage()); } else { Assertions.fail("no invalid password exception!"); } From 23599941e7326102715bd5aabcfbcfcd47cdc6c5 Mon Sep 17 00:00:00 2001 From: xiaosheng Date: Fri, 24 May 2024 09:52:04 +0800 Subject: [PATCH 48/96] :arrow_up: upgrade micrometer to 1.13 (#14228) * :arrow_up: upgrade micrometer to 1.13 * :arrow_up: upgrade micrometer to 1.13 --- dubbo-dependencies-bom/pom.xml | 2 +- dubbo-metrics/dubbo-metrics-prometheus/pom.xml | 2 +- .../observability/autoconfigure/pom.xml | 2 +- .../dubbo-spring-boot-starters/observability/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 031821ab20..7da866f6c0 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -119,7 +119,7 @@ 2.2 3.14.0 0.1.35 - 1.12.5 + 1.13.0 1.2.5 3.3 diff --git a/dubbo-metrics/dubbo-metrics-prometheus/pom.xml b/dubbo-metrics/dubbo-metrics-prometheus/pom.xml index 1a88d4951b..e90016077a 100644 --- a/dubbo-metrics/dubbo-metrics-prometheus/pom.xml +++ b/dubbo-metrics/dubbo-metrics-prometheus/pom.xml @@ -43,7 +43,7 @@ io.micrometer - micrometer-registry-prometheus + micrometer-registry-prometheus-simpleclient io.prometheus diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/pom.xml b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/pom.xml index 784ffca124..0f9279c718 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/pom.xml +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/pom.xml @@ -42,7 +42,7 @@ io.micrometer - micrometer-registry-prometheus + micrometer-registry-prometheus-simpleclient com.tdunning diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml index eee6638d1a..db97674552 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml @@ -36,7 +36,7 @@ - 1.12.5 + 1.13.0 1.2.5 1.34.1 2.17.2 From 65215ed8a09cd46cdf988d3681d103dff83c4517 Mon Sep 17 00:00:00 2001 From: Albumen Kevin Date: Fri, 24 May 2024 10:31:00 +0800 Subject: [PATCH 49/96] Try fix redis server in windows env --- .../dubbo/metadata/store/redis/RedisMetadataReportTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java b/dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java index e31cb331fc..f6212e74e1 100644 --- a/dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java +++ b/dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java @@ -30,7 +30,6 @@ import java.util.HashMap; import java.util.Map; import java.util.Random; -import org.apache.commons.lang3.SystemUtils; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; @@ -69,7 +68,7 @@ class RedisMetadataReportTest { redisServer = newRedisServer() .port(redisPort) // set maxheap to fix Windows error 0x70 while starting redis - .settingIf(SystemUtils.IS_OS_WINDOWS, "maxheap 128mb") + // .settingIf(SystemUtils.IS_OS_WINDOWS, "maxheap 128mb") .settingIf(usesAuthentication, "requirepass " + REDIS_PASSWORD) .build(); this.redisServer.start(); From bb376dbdd729c04f449b784d01bf5b26d8b60919 Mon Sep 17 00:00:00 2001 From: Albumen Kevin Date: Fri, 24 May 2024 10:36:08 +0800 Subject: [PATCH 50/96] Prepare 3.2.13 release --- dubbo-dependencies-bom/pom.xml | 2 +- .../dubbo-dependencies-zookeeper-curator5/pom.xml | 2 +- dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml | 2 +- pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 7da866f6c0..5719e1c318 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -170,7 +170,7 @@ check 1.0.0 2.38.0 - 3.2.13-SNAPSHOT + 3.2.13 diff --git a/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml b/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml index ede7cc9438..5960bd009c 100644 --- a/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml +++ b/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml @@ -31,7 +31,7 @@ pom - 3.2.13-SNAPSHOT + 3.2.13 1.6.0 5.1.0 3.8.4 diff --git a/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml b/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml index 50c58232a0..cc037b084f 100644 --- a/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml +++ b/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml @@ -31,7 +31,7 @@ pom - 3.2.13-SNAPSHOT + 3.2.13 1.6.0 4.3.0 3.4.14 diff --git a/pom.xml b/pom.xml index 50acb7f646..ac23a5991c 100644 --- a/pom.xml +++ b/pom.xml @@ -169,7 +169,7 @@ check 1.0.0 2.38.0 - 3.2.13-SNAPSHOT + 3.2.13 From 3609ddb2259ad223f6c0a827e36f6f8ccd38c6b2 Mon Sep 17 00:00:00 2001 From: Albumen Kevin Date: Fri, 24 May 2024 11:11:44 +0800 Subject: [PATCH 51/96] Disable RedisMetadataReportTest on Windows --- .../dubbo/metadata/store/redis/RedisMetadataReportTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java b/dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java index f6212e74e1..a716041bff 100644 --- a/dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java +++ b/dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java @@ -35,6 +35,8 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; +import org.junit.jupiter.api.condition.DisabledOnOs; +import org.junit.jupiter.api.condition.OS; import redis.clients.jedis.Jedis; import redis.clients.jedis.exceptions.JedisConnectionException; import redis.clients.jedis.exceptions.JedisDataException; @@ -45,6 +47,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE; import static org.apache.dubbo.common.constants.CommonConstants.SYNC_REPORT_KEY; import static redis.embedded.RedisServer.newRedisServer; +@DisabledOnOs(OS.WINDOWS) class RedisMetadataReportTest { private static final String REDIS_URL_TEMPLATE = "redis://%slocalhost:%d", From e6f0dfe000ad029c7dfc3ffc691513426b7d0e78 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 10:51:52 +0800 Subject: [PATCH 52/96] Bump org.apache.maven:maven-core from 3.9.6 to 3.9.7 (#14237) Bumps [org.apache.maven:maven-core](https://github.com/apache/maven) from 3.9.6 to 3.9.7. - [Release notes](https://github.com/apache/maven/releases) - [Commits](https://github.com/apache/maven/compare/maven-3.9.6...maven-3.9.7) --- updated-dependencies: - dependency-name: org.apache.maven:maven-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-maven-plugin/pom.xml | 2 +- dubbo-native-plugin/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dubbo-maven-plugin/pom.xml b/dubbo-maven-plugin/pom.xml index e6be66aa25..51e5e47c74 100644 --- a/dubbo-maven-plugin/pom.xml +++ b/dubbo-maven-plugin/pom.xml @@ -39,7 +39,7 @@ org.apache.maven maven-core - 3.9.6 + 3.9.7 provided diff --git a/dubbo-native-plugin/pom.xml b/dubbo-native-plugin/pom.xml index 5336dc23aa..5a29cd98a3 100644 --- a/dubbo-native-plugin/pom.xml +++ b/dubbo-native-plugin/pom.xml @@ -41,7 +41,7 @@ org.apache.maven maven-core - 3.9.6 + 3.9.7 provided From 89cc36e2b326e5cf9b4d379c72f46fb81123e9fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 10:51:59 +0800 Subject: [PATCH 53/96] Bump jakarta.validation:jakarta.validation-api from 3.0.2 to 3.1.0 (#14239) Bumps [jakarta.validation:jakarta.validation-api](https://github.com/jakartaee/validation) from 3.0.2 to 3.1.0. - [Release notes](https://github.com/jakartaee/validation/releases) - [Commits](https://github.com/jakartaee/validation/compare/3.0.2...3.1.0) --- updated-dependencies: - dependency-name: jakarta.validation:jakarta.validation-api dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 7da866f6c0..50abdb5bef 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -109,7 +109,7 @@ 1.3.2 3.1.0 9.4.54.v20240208 - 3.0.2 + 3.1.0 1.1.0.Final 5.4.3.Final 7.0.5.Final From 98edd118ae3a881e70b799c9eec456c4f1ca79ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 10:52:08 +0800 Subject: [PATCH 54/96] Bump net.bytebuddy:byte-buddy from 1.14.15 to 1.14.16 (#14238) Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.14.15 to 1.14.16. - [Release notes](https://github.com/raphw/byte-buddy/releases) - [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md) - [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.14.15...byte-buddy-1.14.16) --- updated-dependencies: - dependency-name: net.bytebuddy:byte-buddy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 50abdb5bef..694cf64c82 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -93,7 +93,7 @@ 5.3.35 5.8.12 3.30.2-GA - 1.14.15 + 1.14.16 3.2.10.Final 4.1.109.Final 4.5.14 From c517fd5d62846f31d8bab0edffce2b60fbec1dad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 10:52:16 +0800 Subject: [PATCH 55/96] Bump com.github.codemonstur:embedded-redis from 1.1.0 to 1.4.3 (#14240) Bumps [com.github.codemonstur:embedded-redis](https://github.com/codemonstur/embedded-redis) from 1.1.0 to 1.4.3. - [Release notes](https://github.com/codemonstur/embedded-redis/releases) - [Commits](https://github.com/codemonstur/embedded-redis/compare/embedded-redis-1.1.0...embedded-redis-1.4.3) --- updated-dependencies: - dependency-name: com.github.codemonstur:embedded-redis dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 694cf64c82..42ab2947ff 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -146,7 +146,7 @@ 2.23.1 2.16.1 - 1.1.0 + 1.4.3 1.0.11 From 1fd974efbf6c63a2918d4538b099d1cb6499abe1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 10:52:29 +0800 Subject: [PATCH 56/96] Bump netty4_version from 4.1.109.Final to 4.1.110.Final (#14241) Bumps `netty4_version` from 4.1.109.Final to 4.1.110.Final. Updates `io.netty:netty-all` from 4.1.109.Final to 4.1.110.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.109.Final...netty-4.1.110.Final) Updates `io.netty:netty-bom` from 4.1.109.Final to 4.1.110.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.109.Final...netty-4.1.110.Final) --- updated-dependencies: - dependency-name: io.netty:netty-all dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: io.netty:netty-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 42ab2947ff..3150b35b1c 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -95,7 +95,7 @@ 3.30.2-GA 1.14.16 3.2.10.Final - 4.1.109.Final + 4.1.110.Final 4.5.14 4.4.16 1.2.83 From d1969ff18b38af055e08ab0e3efc46f47f0cbe66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 10:52:43 +0800 Subject: [PATCH 57/96] Bump spring_version from 5.3.35 to 5.3.36 (#14242) Bumps `spring_version` from 5.3.35 to 5.3.36. Updates `org.springframework:spring-test` from 5.3.35 to 5.3.36 - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.35...v5.3.36) Updates `org.springframework:spring-framework-bom` from 5.3.35 to 5.3.36 - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.35...v5.3.36) --- updated-dependencies: - dependency-name: org.springframework:spring-test dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- dubbo-test/dubbo-test-spring/pom.xml | 2 +- dubbo-test/dubbo-test-spring3.2/pom.xml | 2 +- dubbo-test/dubbo-test-spring4.1/pom.xml | 2 +- dubbo-test/dubbo-test-spring4.2/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 3150b35b1c..efbb3f96c5 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -90,7 +90,7 @@ - 5.3.35 + 5.3.36 5.8.12 3.30.2-GA 1.14.16 diff --git a/dubbo-test/dubbo-test-spring/pom.xml b/dubbo-test/dubbo-test-spring/pom.xml index 33ffbd9df6..9ee3bcf9da 100644 --- a/dubbo-test/dubbo-test-spring/pom.xml +++ b/dubbo-test/dubbo-test-spring/pom.xml @@ -29,7 +29,7 @@ true 1.7.33 - 5.3.35 + 5.3.36 diff --git a/dubbo-test/dubbo-test-spring3.2/pom.xml b/dubbo-test/dubbo-test-spring3.2/pom.xml index 6ffd716c83..f610c54bce 100644 --- a/dubbo-test/dubbo-test-spring3.2/pom.xml +++ b/dubbo-test/dubbo-test-spring3.2/pom.xml @@ -28,7 +28,7 @@ true - 5.3.35 + 5.3.36 diff --git a/dubbo-test/dubbo-test-spring4.1/pom.xml b/dubbo-test/dubbo-test-spring4.1/pom.xml index 878e74a427..5ba1a59627 100644 --- a/dubbo-test/dubbo-test-spring4.1/pom.xml +++ b/dubbo-test/dubbo-test-spring4.1/pom.xml @@ -28,7 +28,7 @@ true - 5.3.35 + 5.3.36 diff --git a/dubbo-test/dubbo-test-spring4.2/pom.xml b/dubbo-test/dubbo-test-spring4.2/pom.xml index dedfee5b2f..da48d61395 100644 --- a/dubbo-test/dubbo-test-spring4.2/pom.xml +++ b/dubbo-test/dubbo-test-spring4.2/pom.xml @@ -28,7 +28,7 @@ true - 5.3.35 + 5.3.36 From 61bfa07a49b69145282f1d1b9c56a24511ed38fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 10:52:56 +0800 Subject: [PATCH 58/96] Bump org.apache.commons:commons-compress from 1.26.1 to 1.26.2 (#14243) Bumps org.apache.commons:commons-compress from 1.26.1 to 1.26.2. --- updated-dependencies: - dependency-name: org.apache.commons:commons-compress dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- dubbo-test/dubbo-test-check/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index efbb3f96c5..cb4ac81ede 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -165,7 +165,7 @@ 6.1.26 2.0 1.6.0 - 1.26.1 + 1.26.2 2.43.0 check 1.0.0 diff --git a/dubbo-test/dubbo-test-check/pom.xml b/dubbo-test/dubbo-test-check/pom.xml index fd047232c8..67162d1e78 100644 --- a/dubbo-test/dubbo-test-check/pom.xml +++ b/dubbo-test/dubbo-test-check/pom.xml @@ -33,7 +33,7 @@ 4.2.0 3.7.2 4.2.0 - 1.26.1 + 1.26.2 1.9.3 1.4.0 2.12.3 From 2ddf0fdec458d03e8f425d850c8fceed643088af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 10:53:06 +0800 Subject: [PATCH 59/96] Bump org.apache.maven:maven-plugin-api from 3.9.6 to 3.9.7 (#14244) Bumps [org.apache.maven:maven-plugin-api](https://github.com/apache/maven) from 3.9.6 to 3.9.7. - [Release notes](https://github.com/apache/maven/releases) - [Commits](https://github.com/apache/maven/compare/maven-3.9.6...maven-3.9.7) --- updated-dependencies: - dependency-name: org.apache.maven:maven-plugin-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-maven-plugin/pom.xml | 2 +- dubbo-native-plugin/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dubbo-maven-plugin/pom.xml b/dubbo-maven-plugin/pom.xml index 51e5e47c74..15adcc3e19 100644 --- a/dubbo-maven-plugin/pom.xml +++ b/dubbo-maven-plugin/pom.xml @@ -33,7 +33,7 @@ org.apache.maven maven-plugin-api - 3.9.6 + 3.9.7 diff --git a/dubbo-native-plugin/pom.xml b/dubbo-native-plugin/pom.xml index 5a29cd98a3..da9b70fc36 100644 --- a/dubbo-native-plugin/pom.xml +++ b/dubbo-native-plugin/pom.xml @@ -35,7 +35,7 @@ org.apache.maven maven-plugin-api - 3.9.6 + 3.9.7 From 000db7c40a1a59840296bfb2378778a9303a492b Mon Sep 17 00:00:00 2001 From: yuanxingke <474767845@qq.com> Date: Tue, 28 May 2024 10:55:46 +0800 Subject: [PATCH 60/96] fix: when url has param with question mark,parse param wrong (#14235) --- .../annotation/param/parse/provider/ProviderParseContext.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/annotation/param/parse/provider/ProviderParseContext.java b/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/annotation/param/parse/provider/ProviderParseContext.java index be247cd361..cbcb981f99 100644 --- a/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/annotation/param/parse/provider/ProviderParseContext.java +++ b/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/annotation/param/parse/provider/ProviderParseContext.java @@ -57,7 +57,6 @@ public class ProviderParseContext extends BaseParseContext { public String getPathVariable(int urlSplitIndex) { String[] split = getRequestFacade().getRequestURI().split("/"); - - return split[urlSplitIndex]; + return split[urlSplitIndex].split("\\?")[0]; } } From 6ad71e676ccef5090c00b411df427201fffe8f52 Mon Sep 17 00:00:00 2001 From: Albumen Kevin Date: Wed, 29 May 2024 15:01:57 +0800 Subject: [PATCH 61/96] Bump version to 3.2.14-SNAPSHOT --- dubbo-dependencies-bom/pom.xml | 2 +- .../dubbo-dependencies-zookeeper-curator5/pom.xml | 2 +- dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml | 2 +- pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 9ba90a4f97..523f04515e 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -170,7 +170,7 @@ check 1.0.0 2.38.0 - 3.2.13 + 3.2.14-SNAPSHOT diff --git a/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml b/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml index 5960bd009c..65eb7a1d8a 100644 --- a/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml +++ b/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml @@ -31,7 +31,7 @@ pom - 3.2.13 + 3.2.14-SNAPSHOT 1.6.0 5.1.0 3.8.4 diff --git a/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml b/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml index cc037b084f..ee4d2087e6 100644 --- a/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml +++ b/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml @@ -31,7 +31,7 @@ pom - 3.2.13 + 3.2.14-SNAPSHOT 1.6.0 4.3.0 3.4.14 diff --git a/pom.xml b/pom.xml index ac23a5991c..edb5063a08 100644 --- a/pom.xml +++ b/pom.xml @@ -169,7 +169,7 @@ check 1.0.0 2.38.0 - 3.2.13 + 3.2.14-SNAPSHOT From 63e5bef4fac4b8a332f1313d80cfec08828cfaca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E8=81=AA=E6=B4=8B?= <56506697+wcy666103@users.noreply.github.com> Date: Thu, 30 May 2024 18:03:15 +0800 Subject: [PATCH 62/96] fix opentelemetry version change (#14252) * fix opentelemetry version change * format code --- .../autoconfigure/exporter/zipkin/HttpSender.java | 6 +++--- .../autoconfigure/exporter/zipkin/ZipkinConfigurations.java | 2 +- .../exporter/zipkin/ZipkinRestTemplateSender.java | 4 ++-- .../exporter/zipkin/ZipkinWebClientSender.java | 4 ++-- .../dubbo-spring-boot-starters/observability/pom.xml | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/HttpSender.java b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/HttpSender.java index 8b4fe1261f..eca49c9349 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/HttpSender.java +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/HttpSender.java @@ -25,11 +25,11 @@ import java.util.zip.GZIPOutputStream; import org.springframework.http.HttpHeaders; import org.springframework.util.unit.DataSize; -import zipkin2.Call; -import zipkin2.CheckResult; -import zipkin2.codec.Encoding; import zipkin2.reporter.BytesMessageEncoder; +import zipkin2.reporter.Call; +import zipkin2.reporter.CheckResult; import zipkin2.reporter.ClosedSenderException; +import zipkin2.reporter.Encoding; import zipkin2.reporter.Sender; /** diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinConfigurations.java b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinConfigurations.java index cb5e3701a0..fd50844d9a 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinConfigurations.java +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinConfigurations.java @@ -134,7 +134,7 @@ class ZipkinConfigurations { @ConditionalOnMissingBean @ConditionalOnBean(Sender.class) AsyncReporter spanReporter(Sender sender, BytesEncoder encoder) { - return AsyncReporter.builder(sender).build(encoder); + return AsyncReporter.builder(sender).build((zipkin2.reporter.BytesEncoder) encoder); } } diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinRestTemplateSender.java b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinRestTemplateSender.java index acd3b5b733..4fda686dc5 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinRestTemplateSender.java +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinRestTemplateSender.java @@ -19,8 +19,8 @@ package org.apache.dubbo.spring.boot.observability.autoconfigure.exporter.zipkin import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import org.springframework.web.client.RestTemplate; -import zipkin2.Call; -import zipkin2.Callback; +import zipkin2.reporter.Call; +import zipkin2.reporter.Callback; class ZipkinRestTemplateSender extends HttpSender { private final String endpoint; diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinWebClientSender.java b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinWebClientSender.java index 637d1c5016..e2f9d2f2dd 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinWebClientSender.java +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/observability/autoconfigure/exporter/zipkin/ZipkinWebClientSender.java @@ -20,8 +20,8 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.ResponseEntity; import org.springframework.web.reactive.function.client.WebClient; import reactor.core.publisher.Mono; -import zipkin2.Call; -import zipkin2.Callback; +import zipkin2.reporter.Call; +import zipkin2.reporter.Callback; class ZipkinWebClientSender extends HttpSender { private final String endpoint; diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml index db97674552..9978d92bcc 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml @@ -38,8 +38,8 @@ 1.13.0 1.2.5 - 1.34.1 - 2.17.2 + 1.38.0 + 3.4.0 0.16.0 From d35d7eb30c9e536bead96d50d45ff6def219f84f Mon Sep 17 00:00:00 2001 From: aofall <10182210+aofall@users.noreply.github.com> Date: Fri, 31 May 2024 15:05:16 +0800 Subject: [PATCH 63/96] fix: Disable accesslog while the config is false (#14257) --- .../main/java/org/apache/dubbo/rpc/filter/AccessLogFilter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/AccessLogFilter.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/AccessLogFilter.java index 1469630781..d0b0b4b392 100644 --- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/AccessLogFilter.java +++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/AccessLogFilter.java @@ -108,7 +108,7 @@ public class AccessLogFilter implements Filter { public Result invoke(Invoker invoker, Invocation inv) throws RpcException { String accessLogKey = invoker.getUrl().getParameter(Constants.ACCESS_LOG_KEY); boolean isFixedPath = invoker.getUrl().getParameter(ACCESS_LOG_FIXED_PATH_KEY, true); - if (StringUtils.isEmpty(accessLogKey)) { + if (StringUtils.isEmpty(accessLogKey) || "false".equalsIgnoreCase(accessLogKey)) { // Notice that disable accesslog of one service may cause the whole application to stop collecting // accesslog. // It's recommended to use application level configuration to enable or disable accesslog if dynamically From 95f99845713ac4ab98201c4e83052411a23736f6 Mon Sep 17 00:00:00 2001 From: caoyanan666 <55247691+caoyanan666@users.noreply.github.com> Date: Fri, 31 May 2024 16:26:59 +0800 Subject: [PATCH 64/96] fix triple reactor call throws "Too many response for unary method" exception (#14261) Co-authored-by: caoyanan --- .../apache/dubbo/reactive/calls/ReactorServerCalls.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java b/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java index 24218a1b08..8cf1ef3ed8 100644 --- a/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java +++ b/dubbo-plugin/dubbo-reactive/src/main/java/org/apache/dubbo/reactive/calls/ReactorServerCalls.java @@ -48,13 +48,11 @@ public final class ReactorServerCalls { public static void oneToOne(T request, StreamObserver responseObserver, Function, Mono> func) { try { func.apply(Mono.just(request)) + .switchIfEmpty(Mono.error(TriRpcStatus.NOT_FOUND.asException())) .subscribe( - res -> { - responseObserver.onNext(res); - responseObserver.onCompleted(); - }, + responseObserver::onNext, throwable -> doOnResponseHasException(throwable, responseObserver), - () -> doOnResponseHasException(TriRpcStatus.NOT_FOUND.asException(), responseObserver)); + responseObserver::onCompleted); } catch (Throwable throwable) { doOnResponseHasException(throwable, responseObserver); } From 600f869ad76e27d1cd4f6dc43cad994c81966a0f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Jun 2024 11:38:23 +0800 Subject: [PATCH 65/96] Bump com.alibaba.fastjson2:fastjson2 from 2.0.49 to 2.0.51 (#14272) Bumps [com.alibaba.fastjson2:fastjson2](https://github.com/alibaba/fastjson2) from 2.0.49 to 2.0.51. - [Release notes](https://github.com/alibaba/fastjson2/releases) - [Commits](https://github.com/alibaba/fastjson2/compare/2.0.49...2.0.51) --- updated-dependencies: - dependency-name: com.alibaba.fastjson2:fastjson2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 523f04515e..ae08191a45 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -99,7 +99,7 @@ 4.5.14 4.4.16 1.2.83 - 2.0.49 + 2.0.51 3.7.0 5.1.0 2.12.0 From 0baba8646b516ed0f863a80b2ab7cfe3160b7c22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Jun 2024 11:38:33 +0800 Subject: [PATCH 66/96] Bump bytebuddy.version from 1.14.15 to 1.14.17 (#14273) Bumps `bytebuddy.version` from 1.14.15 to 1.14.17. Updates `net.bytebuddy:byte-buddy` from 1.14.15 to 1.14.17 - [Release notes](https://github.com/raphw/byte-buddy/releases) - [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md) - [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.14.15...byte-buddy-1.14.17) Updates `net.bytebuddy:byte-buddy-agent` from 1.14.15 to 1.14.17 - [Release notes](https://github.com/raphw/byte-buddy/releases) - [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md) - [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.14.15...byte-buddy-1.14.17) --- updated-dependencies: - dependency-name: net.bytebuddy:byte-buddy dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: net.bytebuddy:byte-buddy-agent dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-spring-boot/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-spring-boot/pom.xml b/dubbo-spring-boot/pom.xml index 807bcd9b81..1e097e4b35 100644 --- a/dubbo-spring-boot/pom.xml +++ b/dubbo-spring-boot/pom.xml @@ -43,7 +43,7 @@ 2.23.1 - 1.14.15 + 1.14.17 From 913a9aac33388f4b1f9628ec7e581f5a1841bc0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Jun 2024 11:38:41 +0800 Subject: [PATCH 67/96] Bump org.apache.maven.plugins:maven-plugin-plugin from 3.13.0 to 3.13.1 (#14278) Bumps [org.apache.maven.plugins:maven-plugin-plugin](https://github.com/apache/maven-plugin-tools) from 3.13.0 to 3.13.1. - [Release notes](https://github.com/apache/maven-plugin-tools/releases) - [Commits](https://github.com/apache/maven-plugin-tools/compare/maven-plugin-tools-3.13.0...maven-plugin-tools-3.13.1) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-plugin-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-maven-plugin/pom.xml | 2 +- dubbo-native-plugin/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dubbo-maven-plugin/pom.xml b/dubbo-maven-plugin/pom.xml index 15adcc3e19..5cdf527a6d 100644 --- a/dubbo-maven-plugin/pom.xml +++ b/dubbo-maven-plugin/pom.xml @@ -74,7 +74,7 @@ org.apache.maven.plugins maven-plugin-plugin - 3.13.0 + 3.13.1 dubbo diff --git a/dubbo-native-plugin/pom.xml b/dubbo-native-plugin/pom.xml index da9b70fc36..638f9fb88a 100644 --- a/dubbo-native-plugin/pom.xml +++ b/dubbo-native-plugin/pom.xml @@ -77,7 +77,7 @@ org.apache.maven.plugins maven-plugin-plugin - 3.13.0 + 3.13.1 dubbo From a581afbb2c459fe5fdb90ba6bcf92d5b672434f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Jun 2024 11:38:51 +0800 Subject: [PATCH 68/96] Bump org.apache.maven.plugin-tools:maven-plugin-annotations (#14276) Bumps [org.apache.maven.plugin-tools:maven-plugin-annotations](https://github.com/apache/maven-plugin-tools) from 3.13.0 to 3.13.1. - [Release notes](https://github.com/apache/maven-plugin-tools/releases) - [Commits](https://github.com/apache/maven-plugin-tools/compare/maven-plugin-tools-3.13.0...maven-plugin-tools-3.13.1) --- updated-dependencies: - dependency-name: org.apache.maven.plugin-tools:maven-plugin-annotations dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-maven-plugin/pom.xml | 2 +- dubbo-native-plugin/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dubbo-maven-plugin/pom.xml b/dubbo-maven-plugin/pom.xml index 5cdf527a6d..8deb6db0d6 100644 --- a/dubbo-maven-plugin/pom.xml +++ b/dubbo-maven-plugin/pom.xml @@ -46,7 +46,7 @@ org.apache.maven.plugin-tools maven-plugin-annotations - 3.13.0 + 3.13.1 provided diff --git a/dubbo-native-plugin/pom.xml b/dubbo-native-plugin/pom.xml index 638f9fb88a..f0e6f80561 100644 --- a/dubbo-native-plugin/pom.xml +++ b/dubbo-native-plugin/pom.xml @@ -48,7 +48,7 @@ org.apache.maven.plugin-tools maven-plugin-annotations - 3.13.0 + 3.13.1 provided From 26113503e8085c65cf0a978cec453233003b16b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Jun 2024 11:39:15 +0800 Subject: [PATCH 69/96] Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.3 to 3.6.0 (#14271) Bumps [org.apache.maven.plugins:maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.5.3 to 3.6.0. - [Release notes](https://github.com/apache/maven-shade-plugin/releases) - [Commits](https://github.com/apache/maven-shade-plugin/compare/maven-shade-plugin-3.5.3...maven-shade-plugin-3.6.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-shade-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index edb5063a08..3df5deeab3 100644 --- a/pom.xml +++ b/pom.xml @@ -315,7 +315,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.3 + 3.6.0 false From 8fee3db28ff6b5c2164ec93e80d09ff53bbdb0a8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Jun 2024 11:39:24 +0800 Subject: [PATCH 70/96] Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.3 to 3.7.0 (#14274) Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.6.3 to 3.7.0. - [Release notes](https://github.com/apache/maven-javadoc-plugin/releases) - [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.6.3...maven-javadoc-plugin-3.7.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-javadoc-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3df5deeab3..61adbed1c8 100644 --- a/pom.xml +++ b/pom.xml @@ -147,7 +147,7 @@ 2.8.2 3.13.0 3.3.1 - 3.6.3 + 3.7.0 9.4.54.v20240208 3.3.1 0.8.12 From 9fde4c9e6096703d8eceed9e9ccde33d095a40c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Jun 2024 11:39:36 +0800 Subject: [PATCH 71/96] Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.4.1 to 3.5.0 (#14277) Bumps [org.apache.maven.plugins:maven-enforcer-plugin](https://github.com/apache/maven-enforcer) from 3.4.1 to 3.5.0. - [Release notes](https://github.com/apache/maven-enforcer/releases) - [Commits](https://github.com/apache/maven-enforcer/compare/enforcer-3.4.1...enforcer-3.5.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-enforcer-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 61adbed1c8..472134a92a 100644 --- a/pom.xml +++ b/pom.xml @@ -152,7 +152,7 @@ 3.3.1 0.8.12 1.6.0 - 3.4.1 + 3.5.0 3.1.0 1.7.1 0.6.1 From 473ea36b04d93e2efc439848ff65ec5b3bee06d9 Mon Sep 17 00:00:00 2001 From: aofall <10182210+aofall@users.noreply.github.com> Date: Tue, 4 Jun 2024 12:54:44 +0800 Subject: [PATCH 72/96] fix: Support close the Curator EnsembleTracker (#14281) --- .../org/apache/dubbo/common/constants/CommonConstants.java | 2 ++ .../dubbo/remoting/zookeeper/AbstractZookeeperClient.java | 1 + .../remoting/zookeeper/curator5/Curator5ZookeeperClient.java | 3 +++ 3 files changed, 6 insertions(+) diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java index 0178a5382c..e026499418 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java @@ -646,4 +646,6 @@ public interface CommonConstants { String DUBBO_MANUAL_REGISTER_KEY = "dubbo.application.manual-register"; String DUBBO2_COMPACT_ENABLE = "dubbo.compact.enable"; + + String ZOOKEEPER_ENSEMBLE_TRACKER_KEY = "zookeeper.ensemble.tracker"; } diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/zookeeper/AbstractZookeeperClient.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/zookeeper/AbstractZookeeperClient.java index e830246617..caef4385bf 100644 --- a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/zookeeper/AbstractZookeeperClient.java +++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/zookeeper/AbstractZookeeperClient.java @@ -40,6 +40,7 @@ public abstract class AbstractZookeeperClient 0) { From 523a4189b8a7233c926eab1218daf627a3e870b8 Mon Sep 17 00:00:00 2001 From: liaozan <378024053@qq.com> Date: Tue, 4 Jun 2024 22:59:16 +0800 Subject: [PATCH 73/96] Move dubbo versions file from META-INF/versions to META-INF/dubbo-version (#14247) * Move dubbo versions file from META-INF/versions to META-INF/dubbo-versions * Make 'META-INF/dubbo-versions' as constants --- .../java/org/apache/dubbo/common/Version.java | 8 +++--- .../common/constants/CommonConstants.java | 26 +++++++++++++++++-- .../dubbo/common/version/VersionTest.java | 9 +++---- .../org/apache/dubbo/dependency/FileTest.java | 4 ++- pom.xml | 4 +-- 5 files changed, 38 insertions(+), 13 deletions(-) diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/Version.java b/dubbo-common/src/main/java/org/apache/dubbo/common/Version.java index 90f2b70704..5c436fd345 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/Version.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/Version.java @@ -16,6 +16,7 @@ */ package org.apache.dubbo.common; +import org.apache.dubbo.common.constants.CommonConstants; import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; import org.apache.dubbo.common.logger.LoggerFactory; import org.apache.dubbo.common.utils.StringUtils; @@ -84,7 +85,8 @@ public final class Version { } private static void tryLoadVersionFromResource() throws IOException { - Enumeration configLoader = Version.class.getClassLoader().getResources("META-INF/versions/dubbo-common"); + Enumeration configLoader = + Version.class.getClassLoader().getResources(CommonConstants.DUBBO_VERSIONS_KEY + "/dubbo-common"); if (configLoader.hasMoreElements()) { URL url = configLoader.nextElement(); try (BufferedReader reader = @@ -312,7 +314,7 @@ public final class Version { private static void checkArtifact(String artifactId) throws IOException { Enumeration artifactEnumeration = - Version.class.getClassLoader().getResources("META-INF/versions/" + artifactId); + Version.class.getClassLoader().getResources(CommonConstants.DUBBO_VERSIONS_KEY + artifactId); while (artifactEnumeration.hasMoreElements()) { URL url = artifactEnumeration.nextElement(); try (BufferedReader reader = @@ -348,7 +350,7 @@ public final class Version { private static Set loadArtifactIds() throws IOException { Enumeration artifactsEnumeration = - Version.class.getClassLoader().getResources("META-INF/versions/.artifacts"); + Version.class.getClassLoader().getResources(CommonConstants.DUBBO_VERSIONS_KEY + "/.artifacts"); Set artifactIds = new HashSet<>(); while (artifactsEnumeration.hasMoreElements()) { URL url = artifactsEnumeration.nextElement(); diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java index e026499418..704b30c74c 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/constants/CommonConstants.java @@ -24,6 +24,7 @@ import java.util.concurrent.ExecutorService; import java.util.regex.Pattern; public interface CommonConstants { + String DUBBO = "dubbo"; String TRIPLE = "tri"; @@ -267,12 +268,14 @@ public interface CommonConstants { String $INVOKE = "$invoke"; String $INVOKE_ASYNC = "$invokeAsync"; + String GENERIC_PARAMETER_DESC = "Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/Object;"; /** * echo call */ String $ECHO = "$echo"; + /** * package version in the manifest */ @@ -283,12 +286,19 @@ public interface CommonConstants { int MAX_PROXY_COUNT = 65535; String MONITOR_KEY = "monitor"; + String BACKGROUND_KEY = "background"; + String CLUSTER_KEY = "cluster"; + String USERNAME_KEY = "username"; + String PASSWORD_KEY = "password"; + String HOST_KEY = "host"; + String PORT_KEY = "port"; + String DUBBO_IP_TO_BIND = "DUBBO_IP_TO_BIND"; /** @@ -308,21 +318,29 @@ public interface CommonConstants { String SHUTDOWN_WAIT_SECONDS_KEY = "dubbo.service.shutdown.wait.seconds"; String SHUTDOWN_WAIT_KEY = "dubbo.service.shutdown.wait"; + String DUBBO_PROTOCOL = "dubbo"; String DUBBO_LABELS = "dubbo.labels"; + String DUBBO_ENV_KEYS = "dubbo.env.keys"; String CONFIG_CONFIGFILE_KEY = "config-file"; + String CONFIG_ENABLE_KEY = "highest-priority"; + String CONFIG_NAMESPACE_KEY = "namespace"; + String CHECK_KEY = "check"; String BACKLOG_KEY = "backlog"; String HEARTBEAT_EVENT = null; + String MOCK_HEARTBEAT_EVENT = "H"; + String READONLY_EVENT = "R"; + String WRITEABLE_EVENT = "W"; String REFERENCE_FILTER_KEY = "reference.filter"; @@ -459,6 +477,7 @@ public interface CommonConstants { String REGISTRY_DELAY_NOTIFICATION_KEY = "delay-notification"; String CACHE_CLEAR_TASK_INTERVAL = "dubbo.application.url.cache.task.interval"; + String CACHE_CLEAR_WAITING_THRESHOLD = "dubbo.application.url.cache.clear.waiting"; String CLUSTER_INTERCEPTOR_COMPATIBLE_KEY = "dubbo.application.cluster.interceptor.compatible"; @@ -615,17 +634,18 @@ public interface CommonConstants { String SERVICE_EXECUTOR = "service-executor"; String EXECUTOR_MANAGEMENT_MODE = "executor-management-mode"; + String EXECUTOR_MANAGEMENT_MODE_DEFAULT = "default"; + String EXECUTOR_MANAGEMENT_MODE_ISOLATION = "isolation"; /** - * * used in JVMUtil.java ,Control stack print lines, default is 32 lines - * */ String DUBBO_JSTACK_MAXLINE = "dubbo.jstack-dump.max-line"; String ENCODE_IN_IO_THREAD_KEY = "encode.in.io"; + boolean DEFAULT_ENCODE_IN_IO_THREAD = false; /** @@ -648,4 +668,6 @@ public interface CommonConstants { String DUBBO2_COMPACT_ENABLE = "dubbo.compact.enable"; String ZOOKEEPER_ENSEMBLE_TRACKER_KEY = "zookeeper.ensemble.tracker"; + + String DUBBO_VERSIONS_KEY = "META-INF/dubbo-versions"; } diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/version/VersionTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/version/VersionTest.java index 69dd5dbb08..0c37dc79c7 100644 --- a/dubbo-common/src/test/java/org/apache/dubbo/common/version/VersionTest.java +++ b/dubbo-common/src/test/java/org/apache/dubbo/common/version/VersionTest.java @@ -17,6 +17,7 @@ package org.apache.dubbo.common.version; import org.apache.dubbo.common.Version; +import org.apache.dubbo.common.constants.CommonConstants; import java.io.FileInputStream; import java.io.IOException; @@ -110,7 +111,7 @@ class VersionTest { ClassLoader classLoader = new ClassLoader(originClassLoader) { @Override public Class loadClass(String name) throws ClassNotFoundException { - if (name.equals("org.apache.dubbo.common.Version")) { + if ("org.apache.dubbo.common.Version".equals(name)) { return findClass(name); } return super.loadClass(name); @@ -145,15 +146,13 @@ class VersionTest { @Override public Enumeration getResources(String name) throws IOException { - - if (name.equals("META-INF/versions/dubbo-common")) { + if (name.equals(CommonConstants.DUBBO_VERSIONS_KEY + "/dubbo-common")) { return super.getResources("META-INF/test-versions/dubbo-common"); } return super.getResources(name); } }; - Class versionClass = classLoader.loadClass("org.apache.dubbo.common.Version"); - return versionClass; + return classLoader.loadClass("org.apache.dubbo.common.Version"); } @Test diff --git a/dubbo-test/dubbo-test-modules/src/test/java/org/apache/dubbo/dependency/FileTest.java b/dubbo-test/dubbo-test-modules/src/test/java/org/apache/dubbo/dependency/FileTest.java index 209a25ff58..be443f2c94 100644 --- a/dubbo-test/dubbo-test-modules/src/test/java/org/apache/dubbo/dependency/FileTest.java +++ b/dubbo-test/dubbo-test-modules/src/test/java/org/apache/dubbo/dependency/FileTest.java @@ -16,6 +16,8 @@ */ package org.apache.dubbo.dependency; +import org.apache.dubbo.common.constants.CommonConstants; + import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -133,7 +135,7 @@ class FileTest { List artifactIdsInRoot = IOUtils.readLines( this.getClass() .getClassLoader() - .getResource("META-INF/versions/.artifacts") + .getResource(CommonConstants.DUBBO_VERSIONS_KEY + "/.artifacts") .openStream(), StandardCharsets.UTF_8); artifactIdsInRoot.removeIf(s -> s.startsWith("#")); diff --git a/pom.xml b/pom.xml index 472134a92a..52e9cf3eb4 100644 --- a/pom.xml +++ b/pom.xml @@ -253,7 +253,7 @@ - META-INF/versions + META-INF/dubbo-versions false ${maven.multiModuleProjectDirectory} @@ -430,7 +430,7 @@ true - + From 48ad387ace4e260abf0909464e94f8bfe309849f Mon Sep 17 00:00:00 2001 From: xiaosheng Date: Tue, 4 Jun 2024 23:17:13 +0800 Subject: [PATCH 74/96] :arrow_up: upgrade micrometer tracing to 1.3.0 (#14284) * :arrow_up: upgrade micrometer tracing to 1.3.0 * :arrow_up: upgrade micrometer tracing to 1.3.0 --- dubbo-dependencies-bom/pom.xml | 2 +- .../dubbo/metrics/aggregate/TimeWindowAggregatorTest.java | 2 +- .../dubbo-spring-boot-starters/observability/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index ae08191a45..69588a65ab 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -121,7 +121,7 @@ 0.1.35 1.13.0 - 1.2.5 + 1.3.0 3.3 0.16.0 1.0.4 diff --git a/dubbo-metrics/dubbo-metrics-api/src/test/java/org/apache/dubbo/metrics/aggregate/TimeWindowAggregatorTest.java b/dubbo-metrics/dubbo-metrics-api/src/test/java/org/apache/dubbo/metrics/aggregate/TimeWindowAggregatorTest.java index 80195cf3b5..6f39a571e2 100644 --- a/dubbo-metrics/dubbo-metrics-api/src/test/java/org/apache/dubbo/metrics/aggregate/TimeWindowAggregatorTest.java +++ b/dubbo-metrics/dubbo-metrics-api/src/test/java/org/apache/dubbo/metrics/aggregate/TimeWindowAggregatorTest.java @@ -18,8 +18,8 @@ package org.apache.dubbo.metrics.aggregate; import java.util.concurrent.TimeUnit; -import org.junit.Test; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class TimeWindowAggregatorTest { @Test diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml index 9978d92bcc..d31cb51935 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml @@ -37,7 +37,7 @@ 1.13.0 - 1.2.5 + 1.3.0 1.38.0 3.4.0 0.16.0 From a534350541c94709b6f529c2b3a0f1cd6d44c3dc Mon Sep 17 00:00:00 2001 From: aofall <10182210+aofall@users.noreply.github.com> Date: Wed, 5 Jun 2024 11:39:27 +0800 Subject: [PATCH 75/96] fix: Support disable Curator EnsembleTracker in ServiceDiscovery (#14285) --- .../dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java index 83b47fc1c1..b5cf4a4118 100644 --- a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java +++ b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java @@ -43,6 +43,7 @@ import org.apache.zookeeper.data.ACL; import static org.apache.curator.x.discovery.ServiceInstance.builder; import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR; +import static org.apache.dubbo.common.constants.CommonConstants.ZOOKEEPER_ENSEMBLE_TRACKER_KEY; import static org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery.DEFAULT_GROUP; import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.BASE_SLEEP_TIME; import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.BLOCK_UNTIL_CONNECTED_UNIT; @@ -69,8 +70,10 @@ public abstract class CuratorFrameworkUtils { public static CuratorFramework buildCuratorFramework(URL connectionURL, ZookeeperServiceDiscovery serviceDiscovery) throws Exception { + boolean ensembleTracker = connectionURL.getParameter(ZOOKEEPER_ENSEMBLE_TRACKER_KEY, true); CuratorFrameworkFactory.Builder builder = CuratorFrameworkFactory.builder() .connectString(connectionURL.getBackupAddress()) + .ensembleTracker(ensembleTracker) .retryPolicy(buildRetryPolicy(connectionURL)); String userInformation = connectionURL.getUserInformation(); if (StringUtils.isNotEmpty(userInformation)) { From d3eef04759df8a6df6758a21778b1c9d4c635387 Mon Sep 17 00:00:00 2001 From: xixingya <2679431923@qq.com> Date: Thu, 6 Jun 2024 22:34:20 +0800 Subject: [PATCH 76/96] fix DubboRelaxedBinding2AutoConfiguration and DubboAutoConfiguration created too early. (#14255) --- .../autoconfigure/DubboRelaxedBinding2AutoConfiguration.java | 2 +- .../dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dubbo-spring-boot/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBinding2AutoConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBinding2AutoConfiguration.java index 8883a94464..1cc1d70cd5 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBinding2AutoConfiguration.java +++ b/dubbo-spring-boot/dubbo-spring-boot-autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBinding2AutoConfiguration.java @@ -51,7 +51,7 @@ import static org.springframework.beans.factory.config.ConfigurableBeanFactory.S * @see DubboRelaxedBindingAutoConfiguration * @since 2.7.0 */ -@Configuration +@Configuration(proxyBeanMethods = false) @ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true) @ConditionalOnClass(name = "org.springframework.boot.context.properties.bind.Binder") @AutoConfigureBefore(DubboRelaxedBindingAutoConfiguration.class) diff --git a/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java b/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java index 0c2345cc7b..3c230cad83 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java +++ b/dubbo-spring-boot/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java @@ -62,7 +62,7 @@ public class DubboAutoConfiguration { @ConditionalOnProperty(prefix = DUBBO_SCAN_PREFIX, name = BASE_PACKAGES_PROPERTY_NAME) @ConditionalOnBean(name = BASE_PACKAGES_BEAN_NAME) @Bean - public ServiceAnnotationPostProcessor serviceAnnotationBeanProcessor( + public static ServiceAnnotationPostProcessor serviceAnnotationBeanProcessor( @Qualifier(BASE_PACKAGES_BEAN_NAME) Set packagesToScan) { return new ServiceAnnotationPostProcessor(packagesToScan); } From 14fd38f1b7d248fdf7e691ef1d805dfbb87ef9db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 23:34:34 +0800 Subject: [PATCH 77/96] Bump org.apache.maven.shared:maven-common-artifact-filters (#14306) Bumps [org.apache.maven.shared:maven-common-artifact-filters](https://github.com/apache/maven-common-artifact-filters) from 3.3.2 to 3.4.0. - [Release notes](https://github.com/apache/maven-common-artifact-filters/releases) - [Commits](https://github.com/apache/maven-common-artifact-filters/compare/maven-common-artifact-filters-3.3.2...maven-common-artifact-filters-3.4.0) --- updated-dependencies: - dependency-name: org.apache.maven.shared:maven-common-artifact-filters dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-maven-plugin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-maven-plugin/pom.xml b/dubbo-maven-plugin/pom.xml index 8deb6db0d6..0d41196a02 100644 --- a/dubbo-maven-plugin/pom.xml +++ b/dubbo-maven-plugin/pom.xml @@ -53,7 +53,7 @@ org.apache.maven.shared maven-common-artifact-filters - 3.3.2 + 3.4.0 From d7ac348f64b58c66b688bbe270de6f3441d2e5e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 23:34:58 +0800 Subject: [PATCH 78/96] Bump org.apache.maven.plugins:maven-checkstyle-plugin (#14305) Bumps [org.apache.maven.plugins:maven-checkstyle-plugin](https://github.com/apache/maven-checkstyle-plugin) from 3.3.1 to 3.4.0. - [Commits](https://github.com/apache/maven-checkstyle-plugin/compare/maven-checkstyle-plugin-3.3.1...maven-checkstyle-plugin-3.4.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-checkstyle-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 52e9cf3eb4..bc225d3457 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ 3.3.1 3.7.0 9.4.54.v20240208 - 3.3.1 + 3.4.0 0.8.12 1.6.0 3.5.0 From 3e53e320533a90acb4fddfe04d46536f847165f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 23:35:17 +0800 Subject: [PATCH 79/96] Bump io.opentelemetry:opentelemetry-bom from 1.38.0 to 1.39.0 (#14304) Bumps [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) from 1.38.0 to 1.39.0. - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.38.0...v1.39.0) --- updated-dependencies: - dependency-name: io.opentelemetry:opentelemetry-bom dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../dubbo-spring-boot-starters/observability/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml index d31cb51935..9ae7c54fd6 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml @@ -38,7 +38,7 @@ 1.13.0 1.3.0 - 1.38.0 + 1.39.0 3.4.0 0.16.0 From 79fa89bac797ac42baa474435966a787bdc0978a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 09:47:49 +0800 Subject: [PATCH 80/96] Bump net.bytebuddy:byte-buddy from 1.14.15 to 1.14.17 (#14275) Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.14.15 to 1.14.17. - [Release notes](https://github.com/raphw/byte-buddy/releases) - [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md) - [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.14.15...byte-buddy-1.14.17) --- updated-dependencies: - dependency-name: net.bytebuddy:byte-buddy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 69588a65ab..0bd68d0ec6 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -93,7 +93,7 @@ 5.3.36 5.8.12 3.30.2-GA - 1.14.16 + 1.14.17 3.2.10.Final 4.1.110.Final 4.5.14 From b9825cdbd0fdb20694bf69ba670728b953cfacf2 Mon Sep 17 00:00:00 2001 From: Albumen Kevin Date: Mon, 17 Jun 2024 09:47:10 +0800 Subject: [PATCH 81/96] Update serialize blocked list --- dubbo-common/src/main/resources/security/serialize.blockedlist | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dubbo-common/src/main/resources/security/serialize.blockedlist b/dubbo-common/src/main/resources/security/serialize.blockedlist index 0faf555cbf..f144a7a261 100644 --- a/dubbo-common/src/main/resources/security/serialize.blockedlist +++ b/dubbo-common/src/main/resources/security/serialize.blockedlist @@ -190,7 +190,6 @@ org.thymeleaf. org.yaml.snakeyaml.tokens. pstore.shaded.org.apache.commons.collections. sun.print. -sun.rmi.server. -sun.rmi.transport. +sun.rmi. weblogic.ejb20.internal. weblogic.jms.common. From 5ad25875b9938a0f77340933be26e8ea7f45f33d Mon Sep 17 00:00:00 2001 From: Albumen Kevin Date: Mon, 17 Jun 2024 09:49:19 +0800 Subject: [PATCH 82/96] Prepare 3.2.14 release --- dubbo-dependencies-bom/pom.xml | 2 +- .../dubbo-dependencies-zookeeper-curator5/pom.xml | 2 +- dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml | 2 +- pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 0bd68d0ec6..f45477f512 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -170,7 +170,7 @@ check 1.0.0 2.38.0 - 3.2.14-SNAPSHOT + 3.2.14 diff --git a/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml b/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml index 65eb7a1d8a..bb6316adce 100644 --- a/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml +++ b/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml @@ -31,7 +31,7 @@ pom - 3.2.14-SNAPSHOT + 3.2.14 1.6.0 5.1.0 3.8.4 diff --git a/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml b/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml index ee4d2087e6..a151bce5ae 100644 --- a/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml +++ b/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml @@ -31,7 +31,7 @@ pom - 3.2.14-SNAPSHOT + 3.2.14 1.6.0 4.3.0 3.4.14 diff --git a/pom.xml b/pom.xml index bc225d3457..669b61b6d4 100644 --- a/pom.xml +++ b/pom.xml @@ -169,7 +169,7 @@ check 1.0.0 2.38.0 - 3.2.14-SNAPSHOT + 3.2.14 From 293711e591fccb2d3ef8ea10013f3ac1a1f83230 Mon Sep 17 00:00:00 2001 From: Albumen Kevin Date: Mon, 17 Jun 2024 10:17:31 +0800 Subject: [PATCH 83/96] Update 3.3 scheduled workflow (#14322) --- .github/workflows/build-and-test-scheduled-3.3.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-test-scheduled-3.3.yml b/.github/workflows/build-and-test-scheduled-3.3.yml index 2ba459be6a..08673d0d56 100644 --- a/.github/workflows/build-and-test-scheduled-3.3.yml +++ b/.github/workflows/build-and-test-scheduled-3.3.yml @@ -43,7 +43,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'zulu' - java-version: 8 + java-version: 21 - uses: actions/cache@v3 name: "Cache local Maven repository" with: From 0ccd5a1953da3689124cfd73b5b11005fc370054 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:50:07 +0800 Subject: [PATCH 84/96] Bump netty4_version from 4.1.110.Final to 4.1.111.Final (#14324) Bumps `netty4_version` from 4.1.110.Final to 4.1.111.Final. Updates `io.netty:netty-all` from 4.1.110.Final to 4.1.111.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.110.Final...netty-4.1.111.Final) Updates `io.netty:netty-bom` from 4.1.110.Final to 4.1.111.Final - [Commits](https://github.com/netty/netty/compare/netty-4.1.110.Final...netty-4.1.111.Final) --- updated-dependencies: - dependency-name: io.netty:netty-all dependency-type: direct:development update-type: version-update:semver-patch - dependency-name: io.netty:netty-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 0bd68d0ec6..c68c78469f 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -95,7 +95,7 @@ 3.30.2-GA 1.14.17 3.2.10.Final - 4.1.110.Final + 4.1.111.Final 4.5.14 4.4.16 1.2.83 From dc2465fff72322bc13196c2a0c85d26687f91608 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:50:16 +0800 Subject: [PATCH 85/96] Bump io.micrometer:micrometer-tracing-bom from 1.3.0 to 1.3.1 (#14328) Bumps [io.micrometer:micrometer-tracing-bom](https://github.com/micrometer-metrics/tracing) from 1.3.0 to 1.3.1. - [Release notes](https://github.com/micrometer-metrics/tracing/releases) - [Commits](https://github.com/micrometer-metrics/tracing/compare/v1.3.0...v1.3.1) --- updated-dependencies: - dependency-name: io.micrometer:micrometer-tracing-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- .../dubbo-spring-boot-starters/observability/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index c68c78469f..c6d2a348f3 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -121,7 +121,7 @@ 0.1.35 1.13.0 - 1.3.0 + 1.3.1 3.3 0.16.0 1.0.4 diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml index 9ae7c54fd6..478d85891d 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml @@ -37,7 +37,7 @@ 1.13.0 - 1.3.0 + 1.3.1 1.39.0 3.4.0 0.16.0 From 086cdd942cedec8b506361be8331a8aa86c4fe9b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:50:25 +0800 Subject: [PATCH 86/96] Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.5 to 3.3.0 (#14326) Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.2.5 to 3.3.0. - [Release notes](https://github.com/apache/maven-surefire/releases) - [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.2.5...surefire-3.3.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-surefire-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bc225d3457..66b3d6882f 100644 --- a/pom.xml +++ b/pom.xml @@ -142,7 +142,7 @@ UTF-8 3.4.1 - 3.2.5 + 3.3.0 3.2.5 2.8.2 3.13.0 From 61effff7e803c4a6d0730ee84834675cbd2e241e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:50:34 +0800 Subject: [PATCH 87/96] Bump org.apache.maven.plugins:maven-dependency-plugin (#14325) Bumps [org.apache.maven.plugins:maven-dependency-plugin](https://github.com/apache/maven-dependency-plugin) from 3.6.1 to 3.7.0. - [Release notes](https://github.com/apache/maven-dependency-plugin/releases) - [Commits](https://github.com/apache/maven-dependency-plugin/compare/maven-dependency-plugin-3.6.1...maven-dependency-plugin-3.7.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-dependency-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 66b3d6882f..5072803c52 100644 --- a/pom.xml +++ b/pom.xml @@ -290,7 +290,7 @@ maven-dependency-plugin - 3.6.1 + 3.7.0 From 87ab5a69646a19254d91cad542be35fc01469529 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:50:41 +0800 Subject: [PATCH 88/96] Bump io.micrometer:micrometer-core from 1.13.0 to 1.13.1 (#14327) Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.13.0 to 1.13.1. - [Release notes](https://github.com/micrometer-metrics/micrometer/releases) - [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.13.0...v1.13.1) --- updated-dependencies: - dependency-name: io.micrometer:micrometer-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-demo/dubbo-demo-spring-boot/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-demo/dubbo-demo-spring-boot/pom.xml b/dubbo-demo/dubbo-demo-spring-boot/pom.xml index 1472ada8ae..6e3280e972 100644 --- a/dubbo-demo/dubbo-demo-spring-boot/pom.xml +++ b/dubbo-demo/dubbo-demo-spring-boot/pom.xml @@ -37,7 +37,7 @@ true 2.7.18 2.7.18 - 1.13.0 + 1.13.1 From b76e0597f535439d217239be18823bd2ab628d49 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:50:59 +0800 Subject: [PATCH 89/96] Bump spring_version from 5.3.36 to 5.3.37 (#14330) Bumps `spring_version` from 5.3.36 to 5.3.37. Updates `org.springframework:spring-test` from 5.3.36 to 5.3.37 - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.36...v5.3.37) Updates `org.springframework:spring-framework-bom` from 5.3.36 to 5.3.37 - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.36...v5.3.37) --- updated-dependencies: - dependency-name: org.springframework:spring-test dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- dubbo-test/dubbo-test-spring/pom.xml | 2 +- dubbo-test/dubbo-test-spring3.2/pom.xml | 2 +- dubbo-test/dubbo-test-spring4.1/pom.xml | 2 +- dubbo-test/dubbo-test-spring4.2/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index c6d2a348f3..7a82df3998 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -90,7 +90,7 @@ - 5.3.36 + 5.3.37 5.8.12 3.30.2-GA 1.14.17 diff --git a/dubbo-test/dubbo-test-spring/pom.xml b/dubbo-test/dubbo-test-spring/pom.xml index 9ee3bcf9da..29f793a945 100644 --- a/dubbo-test/dubbo-test-spring/pom.xml +++ b/dubbo-test/dubbo-test-spring/pom.xml @@ -29,7 +29,7 @@ true 1.7.33 - 5.3.36 + 5.3.37 diff --git a/dubbo-test/dubbo-test-spring3.2/pom.xml b/dubbo-test/dubbo-test-spring3.2/pom.xml index f610c54bce..c6d1e4168c 100644 --- a/dubbo-test/dubbo-test-spring3.2/pom.xml +++ b/dubbo-test/dubbo-test-spring3.2/pom.xml @@ -28,7 +28,7 @@ true - 5.3.36 + 5.3.37 diff --git a/dubbo-test/dubbo-test-spring4.1/pom.xml b/dubbo-test/dubbo-test-spring4.1/pom.xml index 5ba1a59627..dd5fbc6b1e 100644 --- a/dubbo-test/dubbo-test-spring4.1/pom.xml +++ b/dubbo-test/dubbo-test-spring4.1/pom.xml @@ -28,7 +28,7 @@ true - 5.3.36 + 5.3.37 diff --git a/dubbo-test/dubbo-test-spring4.2/pom.xml b/dubbo-test/dubbo-test-spring4.2/pom.xml index da48d61395..6eb11933d8 100644 --- a/dubbo-test/dubbo-test-spring4.2/pom.xml +++ b/dubbo-test/dubbo-test-spring4.2/pom.xml @@ -28,7 +28,7 @@ true - 5.3.36 + 5.3.37 From 8200f3ed2e2e0f6a2a89f689027c37d1ef6d494e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:51:05 +0800 Subject: [PATCH 90/96] Bump org.apache.maven.plugins:maven-release-plugin from 3.0.1 to 3.1.0 (#14332) Bumps [org.apache.maven.plugins:maven-release-plugin](https://github.com/apache/maven-release) from 3.0.1 to 3.1.0. - [Release notes](https://github.com/apache/maven-release/releases) - [Commits](https://github.com/apache/maven-release/compare/maven-release-3.0.1...maven-release-3.1.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-release-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5072803c52..32db863a3a 100644 --- a/pom.xml +++ b/pom.xml @@ -448,7 +448,7 @@ org.apache.maven.plugins maven-release-plugin - 3.0.1 + 3.1.0 true false From cd89d192b6cd9a33d1214263ea9371990c671df4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 09:51:24 +0800 Subject: [PATCH 91/96] Bump io.projectreactor:reactor-core from 3.6.6 to 3.6.7 (#14333) Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.6 to 3.6.7. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.6...v3.6.7) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 7a82df3998..cfa6f7bc80 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -125,7 +125,7 @@ 3.3 0.16.0 1.0.4 - 3.6.6 + 3.6.7 2.2.21 3.14.9 From c61cc9f719569d1f1a46dcac9888f74714b45fce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:46:44 +0800 Subject: [PATCH 92/96] Bump io.micrometer:micrometer-bom from 1.13.0 to 1.13.1 (#14331) Bumps [io.micrometer:micrometer-bom](https://github.com/micrometer-metrics/micrometer) from 1.13.0 to 1.13.1. - [Release notes](https://github.com/micrometer-metrics/micrometer/releases) - [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.13.0...v1.13.1) --- updated-dependencies: - dependency-name: io.micrometer:micrometer-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dubbo-dependencies-bom/pom.xml | 2 +- .../dubbo-spring-boot-starters/observability/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index cfa6f7bc80..893a699fc7 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -119,7 +119,7 @@ 2.2 3.14.0 0.1.35 - 1.13.0 + 1.13.1 1.3.1 3.3 diff --git a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml index 478d85891d..a9448ab331 100644 --- a/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml +++ b/dubbo-spring-boot/dubbo-spring-boot-starters/observability/pom.xml @@ -36,7 +36,7 @@ - 1.13.0 + 1.13.1 1.3.1 1.39.0 3.4.0 From 9d333ba906608d1af09f9ba6660458201f839db9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:46:55 +0800 Subject: [PATCH 93/96] Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.5 to 3.3.0 (#14329) Bumps [org.apache.maven.plugins:maven-failsafe-plugin](https://github.com/apache/maven-surefire) from 3.2.5 to 3.3.0. - [Release notes](https://github.com/apache/maven-surefire/releases) - [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.2.5...surefire-3.3.0) --- updated-dependencies: - dependency-name: org.apache.maven.plugins:maven-failsafe-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 32db863a3a..aa5beeac1d 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ 3.4.1 3.3.0 - 3.2.5 + 3.3.0 2.8.2 3.13.0 3.3.1 From 4be8594bdefa3b941d062cbcee0794a3718c58b1 Mon Sep 17 00:00:00 2001 From: caoyanan666 <55247691+caoyanan666@users.noreply.github.com> Date: Thu, 20 Jun 2024 09:41:36 +0800 Subject: [PATCH 94/96] fix(3.2): injvm invoker throws ClassCastException (#14346) * fix injvm invoker throws ClassCastException * fix unit test * fix unit test * fix NPE --------- Co-authored-by: caoyanan --- .../dubbo/rpc/protocol/injvm/InjvmInvoker.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/dubbo-rpc/dubbo-rpc-injvm/src/main/java/org/apache/dubbo/rpc/protocol/injvm/InjvmInvoker.java b/dubbo-rpc/dubbo-rpc-injvm/src/main/java/org/apache/dubbo/rpc/protocol/injvm/InjvmInvoker.java index 68054d7ddb..13e6a0f987 100644 --- a/dubbo-rpc/dubbo-rpc-injvm/src/main/java/org/apache/dubbo/rpc/protocol/injvm/InjvmInvoker.java +++ b/dubbo-rpc/dubbo-rpc-injvm/src/main/java/org/apache/dubbo/rpc/protocol/injvm/InjvmInvoker.java @@ -36,6 +36,7 @@ import org.apache.dubbo.rpc.Result; import org.apache.dubbo.rpc.RpcContext; import org.apache.dubbo.rpc.RpcException; import org.apache.dubbo.rpc.RpcInvocation; +import org.apache.dubbo.rpc.model.ConsumerModel; import org.apache.dubbo.rpc.model.MethodDescriptor; import org.apache.dubbo.rpc.model.ServiceModel; import org.apache.dubbo.rpc.protocol.AbstractInvoker; @@ -317,11 +318,18 @@ public class InjvmInvoker extends AbstractInvoker { } Object value = originValue; - ClassLoader cl = Thread.currentThread().getContextClassLoader(); + ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader(); try { - ServiceModel consumerServiceModel = getUrl().getServiceModel(); - if (consumerServiceModel != null) { - Thread.currentThread().setContextClassLoader(consumerServiceModel.getClassLoader()); + // 1. By default, the classloader of the current Thread is the consumer class loader. + ClassLoader consumerClassLoader = contextClassLoader; + ServiceModel serviceModel = getUrl().getServiceModel(); + // 2. If there is a ConsumerModel in the url, the classloader of the ConsumerModel is consumerLoader + if (Objects.nonNull(serviceModel) && serviceModel instanceof ConsumerModel) { + consumerClassLoader = serviceModel.getClassLoader(); + } + // 3. request result copy + if (Objects.nonNull(consumerClassLoader)) { + Thread.currentThread().setContextClassLoader(consumerClassLoader); Type[] returnTypes = RpcUtils.getReturnTypes(invocation); if (returnTypes == null) { return originValue; @@ -334,7 +342,7 @@ public class InjvmInvoker extends AbstractInvoker { } return value; } finally { - Thread.currentThread().setContextClassLoader(cl); + Thread.currentThread().setContextClassLoader(contextClassLoader); } } From 99601a61989dd61ef1ff43b4d9b3982dcaa19ad3 Mon Sep 17 00:00:00 2001 From: Albumen Kevin Date: Sun, 23 Jun 2024 19:39:50 +0800 Subject: [PATCH 95/96] Bump version to 3.2.15-SNAPSHOT --- dubbo-dependencies-bom/pom.xml | 2 +- .../dubbo-dependencies-zookeeper-curator5/pom.xml | 2 +- dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml | 2 +- pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dubbo-dependencies-bom/pom.xml b/dubbo-dependencies-bom/pom.xml index 8454418112..ea86d8f2ff 100644 --- a/dubbo-dependencies-bom/pom.xml +++ b/dubbo-dependencies-bom/pom.xml @@ -170,7 +170,7 @@ check 1.0.0 2.38.0 - 3.2.14 + 3.2.15-SNAPSHOT diff --git a/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml b/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml index bb6316adce..797e9a0e8c 100644 --- a/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml +++ b/dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml @@ -31,7 +31,7 @@ pom - 3.2.14 + 3.2.15-SNAPSHOT 1.6.0 5.1.0 3.8.4 diff --git a/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml b/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml index a151bce5ae..a584416e2c 100644 --- a/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml +++ b/dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml @@ -31,7 +31,7 @@ pom - 3.2.14 + 3.2.15-SNAPSHOT 1.6.0 4.3.0 3.4.14 diff --git a/pom.xml b/pom.xml index f0cb873df5..73d88547a7 100644 --- a/pom.xml +++ b/pom.xml @@ -169,7 +169,7 @@ check 1.0.0 2.38.0 - 3.2.14 + 3.2.15-SNAPSHOT From 7d5fa50783c5321447368230ca75138425697459 Mon Sep 17 00:00:00 2001 From: Albumen Kevin Date: Mon, 24 Jun 2024 09:26:45 +0800 Subject: [PATCH 96/96] Fix metrics unable to retrieve lazy inited executor status (#14348) * Fix metrics unable to retrieve lazy inited executor status * Enhance --- .../apache/dubbo/common/store/DataStore.java | 2 ++ .../common/store/DataStoreUpdateListener.java | 21 +++++++++++++ .../common/store/support/SimpleDataStore.java | 30 ++++++++++++++++++ .../org/apache/dubbo/config/Constants.java | 4 +++ .../store/support/SimpleDataStoreTest.java | 30 ++++++++++++++++++ .../sample/ThreadPoolMetricsSampler.java | 30 ++++++++++++++---- .../sample/ThreadPoolMetricsSamplerTest.java | 31 +++++++++++++++++++ 7 files changed, 142 insertions(+), 6 deletions(-) create mode 100644 dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStoreUpdateListener.java diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStore.java b/dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStore.java index 4b8fc31ab6..d0c20b9e8b 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStore.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStore.java @@ -34,4 +34,6 @@ public interface DataStore { void put(String componentName, String key, Object value); void remove(String componentName, String key); + + default void addListener(DataStoreUpdateListener dataStoreUpdateListener) {} } diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStoreUpdateListener.java b/dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStoreUpdateListener.java new file mode 100644 index 0000000000..de994191f7 --- /dev/null +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/store/DataStoreUpdateListener.java @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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 + * + * http://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 org.apache.dubbo.common.store; + +public interface DataStoreUpdateListener { + void onUpdate(String componentName, String key, Object value); +} diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/store/support/SimpleDataStore.java b/dubbo-common/src/main/java/org/apache/dubbo/common/store/support/SimpleDataStore.java index cabb9e903d..6bda3cfada 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/common/store/support/SimpleDataStore.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/common/store/support/SimpleDataStore.java @@ -16,8 +16,13 @@ */ package org.apache.dubbo.common.store.support; +import org.apache.dubbo.common.constants.LoggerCodeConstants; +import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; +import org.apache.dubbo.common.logger.LoggerFactory; import org.apache.dubbo.common.store.DataStore; +import org.apache.dubbo.common.store.DataStoreUpdateListener; import org.apache.dubbo.common.utils.ConcurrentHashMapUtils; +import org.apache.dubbo.common.utils.ConcurrentHashSet; import java.util.HashMap; import java.util.Map; @@ -25,9 +30,11 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; public class SimpleDataStore implements DataStore { + private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(SimpleDataStore.class); // > private final ConcurrentMap> data = new ConcurrentHashMap<>(); + private final ConcurrentHashSet listeners = new ConcurrentHashSet<>(); @Override public Map get(String componentName) { @@ -52,6 +59,7 @@ public class SimpleDataStore implements DataStore { Map componentData = ConcurrentHashMapUtils.computeIfAbsent(data, componentName, k -> new ConcurrentHashMap<>()); componentData.put(key, value); + notifyListeners(componentName, key, value); } @Override @@ -60,5 +68,27 @@ public class SimpleDataStore implements DataStore { return; } data.get(componentName).remove(key); + notifyListeners(componentName, key, null); + } + + @Override + public void addListener(DataStoreUpdateListener dataStoreUpdateListener) { + listeners.add(dataStoreUpdateListener); + } + + private void notifyListeners(String componentName, String key, Object value) { + for (DataStoreUpdateListener listener : listeners) { + try { + listener.onUpdate(componentName, key, value); + } catch (Throwable t) { + logger.warn( + LoggerCodeConstants.INTERNAL_ERROR, + "", + "", + "Failed to notify data store update listener. " + "ComponentName: " + componentName + " Key: " + + key, + t); + } + } } } diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/Constants.java b/dubbo-common/src/main/java/org/apache/dubbo/config/Constants.java index da6ab9f5d7..a281cb2d7b 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/config/Constants.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/config/Constants.java @@ -149,7 +149,11 @@ public interface Constants { String SERVER_THREAD_POOL_NAME = "DubboServerHandler"; + String SERVER_THREAD_POOL_PREFIX = SERVER_THREAD_POOL_NAME + "-"; + String CLIENT_THREAD_POOL_NAME = "DubboClientHandler"; + String CLIENT_THREAD_POOL_PREFIX = CLIENT_THREAD_POOL_NAME + "-"; + String REST_PROTOCOL = "rest"; } diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/store/support/SimpleDataStoreTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/store/support/SimpleDataStoreTest.java index fa9470426c..4186df4985 100644 --- a/dubbo-common/src/test/java/org/apache/dubbo/common/store/support/SimpleDataStoreTest.java +++ b/dubbo-common/src/test/java/org/apache/dubbo/common/store/support/SimpleDataStoreTest.java @@ -16,9 +16,13 @@ */ package org.apache.dubbo.common.store.support; +import org.apache.dubbo.common.store.DataStoreUpdateListener; + import java.util.Map; import org.junit.jupiter.api.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Mockito; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; @@ -57,4 +61,30 @@ class SimpleDataStoreTest { dataStore.remove("component", "key"); assertNotEquals(map, dataStore.get("component")); } + + @Test + void testNotify() { + DataStoreUpdateListener listener = Mockito.mock(DataStoreUpdateListener.class); + dataStore.addListener(listener); + + ArgumentCaptor componentNameCaptor = ArgumentCaptor.forClass(String.class); + ArgumentCaptor keyCaptor = ArgumentCaptor.forClass(String.class); + ArgumentCaptor valueCaptor = ArgumentCaptor.forClass(Object.class); + + dataStore.put("name", "key", "1"); + Mockito.verify(listener).onUpdate(componentNameCaptor.capture(), keyCaptor.capture(), valueCaptor.capture()); + assertEquals("name", componentNameCaptor.getValue()); + assertEquals("key", keyCaptor.getValue()); + assertEquals("1", valueCaptor.getValue()); + + dataStore.remove("name", "key"); + Mockito.verify(listener, Mockito.times(2)) + .onUpdate(componentNameCaptor.capture(), keyCaptor.capture(), valueCaptor.capture()); + assertEquals("name", componentNameCaptor.getValue()); + assertEquals("key", keyCaptor.getValue()); + assertNull(valueCaptor.getValue()); + + dataStore.remove("name2", "key"); + Mockito.verify(listener, Mockito.times(0)).onUpdate("name2", "key", null); + } } diff --git a/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/sample/ThreadPoolMetricsSampler.java b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/sample/ThreadPoolMetricsSampler.java index d39e2fa2db..d7d26d448a 100644 --- a/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/sample/ThreadPoolMetricsSampler.java +++ b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/metrics/collector/sample/ThreadPoolMetricsSampler.java @@ -19,6 +19,7 @@ package org.apache.dubbo.metrics.collector.sample; import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; import org.apache.dubbo.common.logger.LoggerFactory; import org.apache.dubbo.common.store.DataStore; +import org.apache.dubbo.common.store.DataStoreUpdateListener; import org.apache.dubbo.common.threadpool.manager.FrameworkExecutorRepository; import org.apache.dubbo.common.threadpool.support.AbortPolicyWithReport; import org.apache.dubbo.common.utils.ConcurrentHashMapUtils; @@ -42,11 +43,12 @@ import java.util.concurrent.atomic.AtomicBoolean; import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SHARED_EXECUTOR_SERVICE_COMPONENT_KEY; import static org.apache.dubbo.common.constants.CommonConstants.EXECUTOR_SERVICE_COMPONENT_KEY; import static org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_METRICS_COLLECTOR_EXCEPTION; -import static org.apache.dubbo.config.Constants.CLIENT_THREAD_POOL_NAME; +import static org.apache.dubbo.config.Constants.CLIENT_THREAD_POOL_PREFIX; import static org.apache.dubbo.config.Constants.SERVER_THREAD_POOL_NAME; +import static org.apache.dubbo.config.Constants.SERVER_THREAD_POOL_PREFIX; import static org.apache.dubbo.metrics.model.MetricsCategory.THREAD_POOL; -public class ThreadPoolMetricsSampler implements MetricsSampler { +public class ThreadPoolMetricsSampler implements MetricsSampler, DataStoreUpdateListener { private final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(ThreadPoolMetricsSampler.class); @@ -61,14 +63,28 @@ public class ThreadPoolMetricsSampler implements MetricsSampler { this.collector = collector; } + @Override + public void onUpdate(String componentName, String key, Object value) { + if (EXECUTOR_SERVICE_COMPONENT_KEY.equals(componentName)) { + if (value instanceof ThreadPoolExecutor) { + addExecutors(SERVER_THREAD_POOL_PREFIX + key, (ThreadPoolExecutor) value); + } + } else if (CONSUMER_SHARED_EXECUTOR_SERVICE_COMPONENT_KEY.equals(componentName)) { + if (value instanceof ThreadPoolExecutor) { + addExecutors(CLIENT_THREAD_POOL_PREFIX + key, (ThreadPoolExecutor) value); + } + } + } + public void addExecutors(String name, ExecutorService executorService) { Optional.ofNullable(executorService) .filter(Objects::nonNull) .filter(e -> e instanceof ThreadPoolExecutor) .map(e -> (ThreadPoolExecutor) e) .ifPresent(threadPoolExecutor -> { - sampleThreadPoolExecutor.put(name, threadPoolExecutor); - samplesChanged.set(true); + if (sampleThreadPoolExecutor.put(name, threadPoolExecutor) == null) { + samplesChanged.set(true); + } }); } @@ -152,18 +168,20 @@ public class ThreadPoolMetricsSampler implements MetricsSampler { } if (dataStore != null) { + dataStore.addListener(this); + Map executors = dataStore.get(EXECUTOR_SERVICE_COMPONENT_KEY); for (Map.Entry entry : executors.entrySet()) { ExecutorService executor = (ExecutorService) entry.getValue(); if (executor instanceof ThreadPoolExecutor) { - this.addExecutors(SERVER_THREAD_POOL_NAME + "-" + entry.getKey(), executor); + this.addExecutors(SERVER_THREAD_POOL_PREFIX + entry.getKey(), executor); } } executors = dataStore.get(CONSUMER_SHARED_EXECUTOR_SERVICE_COMPONENT_KEY); for (Map.Entry entry : executors.entrySet()) { ExecutorService executor = (ExecutorService) entry.getValue(); if (executor instanceof ThreadPoolExecutor) { - this.addExecutors(CLIENT_THREAD_POOL_NAME + "-" + entry.getKey(), executor); + this.addExecutors(CLIENT_THREAD_POOL_PREFIX + entry.getKey(), executor); } } diff --git a/dubbo-metrics/dubbo-metrics-default/src/test/java/org/apache/dubbo/metrics/collector/sample/ThreadPoolMetricsSamplerTest.java b/dubbo-metrics/dubbo-metrics-default/src/test/java/org/apache/dubbo/metrics/collector/sample/ThreadPoolMetricsSamplerTest.java index 6b20d6c69d..0d6bcec95d 100644 --- a/dubbo-metrics/dubbo-metrics-default/src/test/java/org/apache/dubbo/metrics/collector/sample/ThreadPoolMetricsSamplerTest.java +++ b/dubbo-metrics/dubbo-metrics-default/src/test/java/org/apache/dubbo/metrics/collector/sample/ThreadPoolMetricsSamplerTest.java @@ -19,6 +19,7 @@ package org.apache.dubbo.metrics.collector.sample; import org.apache.dubbo.common.beans.factory.ScopeBeanFactory; import org.apache.dubbo.common.extension.ExtensionLoader; import org.apache.dubbo.common.store.DataStore; +import org.apache.dubbo.common.store.DataStoreUpdateListener; import org.apache.dubbo.common.threadpool.manager.FrameworkExecutorRepository; import org.apache.dubbo.metrics.collector.DefaultMetricsCollector; import org.apache.dubbo.metrics.model.ThreadPoolMetric; @@ -37,11 +38,13 @@ import java.util.concurrent.ThreadPoolExecutor; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SHARED_EXECUTOR_SERVICE_COMPONENT_KEY; import static org.apache.dubbo.common.constants.CommonConstants.EXECUTOR_SERVICE_COMPONENT_KEY; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @SuppressWarnings("all") @@ -178,4 +181,32 @@ public class ThreadPoolMetricsSamplerTest { serverExecutor.shutdown(); clientExecutor.shutdown(); } + + @Test + void testDataSourceNotify() throws Exception { + ArgumentCaptor captor = ArgumentCaptor.forClass(DataStoreUpdateListener.class); + when(scopeBeanFactory.getBean(FrameworkExecutorRepository.class)).thenReturn(frameworkExecutorRepository); + when(frameworkExecutorRepository.getSharedExecutor()).thenReturn(null); + sampler2.registryDefaultSampleThreadPoolExecutor(); + + Field f = ThreadPoolMetricsSampler.class.getDeclaredField("sampleThreadPoolExecutor"); + f.setAccessible(true); + Map executors = (Map) f.get(sampler2); + + Assertions.assertEquals(0, executors.size()); + + verify(dataStore).addListener(captor.capture()); + Assertions.assertEquals(sampler2, captor.getValue()); + + ExecutorService executorService = Executors.newFixedThreadPool(5); + sampler2.onUpdate(EXECUTOR_SERVICE_COMPONENT_KEY, "20880", executorService); + + executors = (Map) f.get(sampler2); + Assertions.assertEquals(1, executors.size()); + Assertions.assertTrue(executors.containsKey("DubboServerHandler-20880")); + + sampler2.onUpdate(CONSUMER_SHARED_EXECUTOR_SERVICE_COMPONENT_KEY, "client", executorService); + Assertions.assertEquals(2, executors.size()); + Assertions.assertTrue(executors.containsKey("DubboClientHandler-client")); + } }