Compare commits

...

547 Commits

Author SHA1 Message Date
dependabot[bot] 11d5bd9ffa
Bump org.apache.maven.plugins:maven-dependency-plugin (#14364)
Bumps [org.apache.maven.plugins:maven-dependency-plugin](https://github.com/apache/maven-dependency-plugin) from 3.7.0 to 3.7.1.
- [Release notes](https://github.com/apache/maven-dependency-plugin/releases)
- [Commits](https://github.com/apache/maven-dependency-plugin/compare/maven-dependency-plugin-3.7.0...maven-dependency-plugin-3.7.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-dependency-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-24 17:54:45 +08:00
dependabot[bot] 30bf8c4de8
Bump org.apache.maven.plugins:maven-clean-plugin from 3.3.2 to 3.4.0 (#14367)
Bumps [org.apache.maven.plugins:maven-clean-plugin](https://github.com/apache/maven-clean-plugin) from 3.3.2 to 3.4.0.
- [Release notes](https://github.com/apache/maven-clean-plugin/releases)
- [Commits](https://github.com/apache/maven-clean-plugin/compare/maven-clean-plugin-3.3.2...maven-clean-plugin-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-clean-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-24 17:54:38 +08:00
dependabot[bot] 865e8b05cf
Bump org.apache.maven:maven-plugin-api from 3.9.7 to 3.9.8 (#14363)
Bumps [org.apache.maven:maven-plugin-api](https://github.com/apache/maven) from 3.9.7 to 3.9.8.
- [Release notes](https://github.com/apache/maven/releases)
- [Commits](https://github.com/apache/maven/compare/maven-3.9.7...maven-3.9.8)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-24 17:54:31 +08:00
dependabot[bot] 2dc0f9a374
Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.1 to 3.4.2 (#14365)
Bumps [org.apache.maven.plugins:maven-jar-plugin](https://github.com/apache/maven-jar-plugin) from 3.4.1 to 3.4.2.
- [Release notes](https://github.com/apache/maven-jar-plugin/releases)
- [Commits](https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.4.1...maven-jar-plugin-3.4.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-jar-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-24 17:54:21 +08:00
dependabot[bot] d98b1e821f
Bump org.apache.maven:maven-core from 3.9.7 to 3.9.8 (#14366)
Bumps [org.apache.maven:maven-core](https://github.com/apache/maven) from 3.9.7 to 3.9.8.
- [Release notes](https://github.com/apache/maven/releases)
- [Commits](https://github.com/apache/maven/compare/maven-3.9.7...maven-3.9.8)

---
updated-dependencies:
- dependency-name: org.apache.maven:maven-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-24 17:53:37 +08:00
dependabot[bot] 04c16fa944
Bump org.springframework.security:spring-security-bom (#14362)
Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 5.8.12 to 5.8.13.
- [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.12...5.8.13)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-24 17:53:28 +08:00
Albumen Kevin 7d5fa50783
Fix metrics unable to retrieve lazy inited executor status (#14348)
* Fix metrics unable to retrieve lazy inited executor status

* Enhance
2024-06-24 09:26:45 +08:00
Albumen Kevin 99601a6198 Bump version to 3.2.15-SNAPSHOT 2024-06-23 19:39:50 +08:00
Albumen Kevin 0a48e9d8dc Merge branch '3.2.14-release' into apache-3.2 2024-06-23 19:39:19 +08:00
caoyanan666 4be8594bde
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 <caoyanan@growingio.com>
2024-06-20 09:41:36 +08:00
dependabot[bot] 9d333ba906
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-19 09:46:55 +08:00
dependabot[bot] c61cc9f719
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-19 09:46:44 +08:00
dependabot[bot] cd89d192b6
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 09:51:24 +08:00
dependabot[bot] 8200f3ed2e
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 09:51:05 +08:00
dependabot[bot] b76e0597f5
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 09:50:59 +08:00
dependabot[bot] 87ab5a6964
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 09:50:41 +08:00
dependabot[bot] 61effff7e8
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 09:50:34 +08:00
dependabot[bot] 086cdd942c
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 09:50:25 +08:00
dependabot[bot] dc2465fff7
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 09:50:16 +08:00
dependabot[bot] 0ccd5a1953
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-18 09:50:07 +08:00
Albumen Kevin 293711e591
Update 3.3 scheduled workflow (#14322) 2024-06-17 10:17:31 +08:00
Albumen Kevin 5ad25875b9 Prepare 3.2.14 release 2024-06-17 09:49:19 +08:00
Albumen Kevin b9825cdbd0 Update serialize blocked list 2024-06-17 09:48:29 +08:00
dependabot[bot] 79fa89bac7
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-17 09:47:49 +08:00
dependabot[bot] 3e53e32053
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-10 23:35:17 +08:00
dependabot[bot] d7ac348f64
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-10 23:34:58 +08:00
dependabot[bot] 14fd38f1b7
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-10 23:34:34 +08:00
xixingya d3eef04759
fix DubboRelaxedBinding2AutoConfiguration and DubboAutoConfiguration created too early. (#14255) 2024-06-06 22:34:20 +08:00
aofall a534350541
fix: Support disable Curator EnsembleTracker in ServiceDiscovery (#14285) 2024-06-05 11:39:27 +08:00
xiaosheng 48ad387ace
⬆️ upgrade micrometer tracing to 1.3.0 (#14284)
* ⬆️ upgrade micrometer tracing to 1.3.0

* ⬆️ upgrade micrometer tracing to 1.3.0
2024-06-04 23:17:13 +08:00
liaozan 523a4189b8
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
2024-06-04 22:59:16 +08:00
aofall 473ea36b04
fix: Support close the Curator EnsembleTracker (#14281) 2024-06-04 12:54:44 +08:00
dependabot[bot] 9fde4c9e60
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-04 11:39:36 +08:00
dependabot[bot] 8fee3db28f
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-04 11:39:24 +08:00
dependabot[bot] 26113503e8
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-04 11:39:15 +08:00
dependabot[bot] a581afbb2c
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-04 11:38:51 +08:00
dependabot[bot] 913a9aac33
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-04 11:38:41 +08:00
dependabot[bot] 0baba8646b
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-04 11:38:33 +08:00
dependabot[bot] 600f869ad7
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-06-04 11:38:23 +08:00
caoyanan666 95f9984571
fix triple reactor call throws "Too many response for unary method" exception (#14261)
Co-authored-by: caoyanan <caoyanan@growingio.com>
2024-05-31 16:26:59 +08:00
aofall d35d7eb30c
fix: Disable accesslog while the config is false (#14257) 2024-05-31 15:05:16 +08:00
王聪洋 63e5bef4fa
fix opentelemetry version change (#14252)
* fix opentelemetry version change

* format code
2024-05-30 18:03:15 +08:00
Albumen Kevin 6ad71e676c Bump version to 3.2.14-SNAPSHOT 2024-05-29 15:01:57 +08:00
Albumen Kevin da53578c57 Merge branch '3.2.13-release' into apache-3.2 2024-05-29 15:01:08 +08:00
yuanxingke 000db7c40a
fix: when url has param with question mark,parse param wrong (#14235) 2024-05-28 10:55:46 +08:00
dependabot[bot] 2ddf0fdec4
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-28 10:53:06 +08:00
dependabot[bot] 61bfa07a49
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-28 10:52:56 +08:00
dependabot[bot] d1969ff18b
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-28 10:52:43 +08:00
dependabot[bot] 1fd974efbf
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-28 10:52:29 +08:00
dependabot[bot] c517fd5d62
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-28 10:52:16 +08:00
dependabot[bot] 98edd118ae
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-28 10:52:08 +08:00
dependabot[bot] 89cc36e2b3
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-28 10:51:59 +08:00
dependabot[bot] e6f0dfe000
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-28 10:51:52 +08:00
Albumen Kevin 3609ddb225 Disable RedisMetadataReportTest on Windows 2024-05-24 11:11:44 +08:00
Albumen Kevin bb376dbdd7 Prepare 3.2.13 release 2024-05-24 10:36:08 +08:00
Albumen Kevin 65215ed8a0 Try fix redis server in windows env 2024-05-24 10:34:55 +08:00
xiaosheng 23599941e7
⬆️ upgrade micrometer to 1.13 (#14228)
* ⬆️ upgrade micrometer to 1.13

* ⬆️ upgrade micrometer to 1.13
2024-05-24 09:52:04 +08:00
stellar a6c61175c5
fix:embedded-redis need update version to run on macos Sonoma (#14072) (#14074) (#14227) 2024-05-23 11:03:18 +08:00
b12b23cbf0
fix: not initialize MetricsReporter if not support prometheus (#14225)
* fix: not initialize if not support prometheus

* add method isImportPrometheus test

---------

Co-authored-by: yuanhongbo <yuanhongbo@cai-inc.com>
2024-05-22 11:10:19 +08:00
王聪洋 cc95b52dfb
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] <support@github.com>

* fix testcase

* format code

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-21 18:57:10 +08:00
Lee hong 189d76be5d
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 <jhq0812@gmail.com>
Co-authored-by: Jermaine Hua <crazyhzm@gmail.com>
2024-05-21 11:36:53 +08:00
zrlw e21244a431
check whether property name is safe based on the last fragment kebab-case comparison (#14208) 2024-05-21 10:20:51 +08:00
dependabot[bot] 57b87029a6
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-21 10:09:33 +08:00
dependabot[bot] 75f0eb4a15
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-21 10:04:45 +08:00
dependabot[bot] b867f9ebd7
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-21 10:04:37 +08:00
dependabot[bot] d64fbf8b94
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-21 10:04:18 +08:00
dependabot[bot] a6187b8e93
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-21 10:04:08 +08:00
dependabot[bot] 43ae6a7aba
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-21 10:03:58 +08:00
dependabot[bot] faabbf6435
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-21 10:03:50 +08:00
dependabot[bot] 9968834e62
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-14 11:49:23 +08:00
dependabot[bot] 4cd9a98395
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-14 11:49:13 +08:00
dependabot[bot] 80b145db3e
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-14 11:48:31 +08:00
dependabot[bot] cd78bba7b7
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-14 11:48:23 +08:00
caoyanan666 5d1c0eae1c
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 <caoyanan@growingio.com>
Co-authored-by: Ken Liu <ken.lj.hz@gmail.com>
2024-05-11 14:49:28 +08:00
Jermaine Hua 1e6a84e16a
Bump org.apache.maven.plugins:maven-plugin-plugin from 3.10.2 to 3.13.0 (#14174)
Signed-off-by: “JermaineHua” <crazyhzm@gmail.com>
2024-05-11 14:40:56 +08:00
Kaiyao Ke 8e2eb332a1
fixed non-idempotent unit tests (#14172) 2024-05-11 00:27:46 +08:00
jkoChen 5d916cd2c1
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 <jhq0812@gmail.com>
2024-05-08 15:20:54 +08:00
Kaiyao Ke 84193247be
fix non-idempotent unit test (#14135) 2024-05-08 14:38:48 +08:00
caoyanan666 1abe9f8087
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 <caoyanan@growingio.com>
2024-05-08 14:17:18 +08:00
TomlongTK dfd135eb95
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
2024-05-08 14:09:08 +08:00
zrlw 8863604619
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
2024-05-08 11:59:26 +08:00
TomlongTK faefee2cb2
Optimize convertToNumber method (#14159) 2024-05-08 11:51:00 +08:00
hanpen24 9d659eba44
Fix channel leakage in onConnected and onGoaway methods (#14100) 2024-05-08 11:36:08 +08:00
caoyanan666 7f6decaf19
ReactorDubbo3TripleStub.mustache add schema registry (#14035)
Co-authored-by: caoyanan <caoyanan@growingio.com>
Co-authored-by: Ken Liu <ken.lj.hz@gmail.com>
2024-05-08 11:32:43 +08:00
YuLuo a3e43fe99b
optimise: create http client by connection pool (#14079) 2024-05-08 11:19:49 +08:00
Chenjp c24eca7e1e
Update gitignore - Eclipse IDE specific conf (#14099)
Those Ecilpse-IDE specific files are generated by mvn eclipse:eclipse.
2024-05-08 11:06:02 +08:00
dependabot[bot] 0fc6a30684
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-08 09:52:01 +08:00
dependabot[bot] 66bea58c13
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-08 09:51:50 +08:00
dependabot[bot] 14c67845ee
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-08 09:50:49 +08:00
dependabot[bot] 5db5fa9035
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-08 09:50:41 +08:00
dependabot[bot] 35780baa39
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-08 09:50:31 +08:00
dependabot[bot] b2fb0e8e1e
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-08 09:49:13 +08:00
dependabot[bot] 53141b152f
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-08 09:49:02 +08:00
dependabot[bot] 1b69c61992
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-08 09:47:48 +08:00
dependabot[bot] 0b7d980b51
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-06 15:16:35 +08:00
Albumen Kevin d16f0ca310
Sync BitList for all the operations (#14057)
* Sync BitList for all the operations

* Fix style
2024-05-06 14:33:10 +08:00
dependabot[bot] 20f252d147
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 23:38:35 +08:00
dependabot[bot] be7c863aed
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 23:38:05 +08:00
dependabot[bot] e9296eca1d
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 23:37:12 +08:00
dependabot[bot] 7588d0e5b2
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 23:36:12 +08:00
dependabot[bot] efe219b770
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 23:35:13 +08:00
dependabot[bot] 8e141cc958
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 23:33:28 +08:00
dependabot[bot] ac8a9b65b7
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 23:29:05 +08:00
Wang Chengming 0a1ad55bff
compatible service discovery, export noting suffix servicename, eg: ${interface}:${version} (#14096)
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: 呈铭 <beck.wcm@antgroup.com>
2024-04-22 19:42:47 +08:00
aofall ca7151e531
fix: Bytebuf resource leak (#14071) 2024-04-16 14:24:28 +08:00
Chenjp 155c2f2c18
Update .ignore to exclude log files. (#14064)
Ignore custom-access.log and its rotated files.
2024-04-13 13:03:50 +08:00
aamingaa 6b3f54383f
upgrade version (#14066) 2024-04-11 16:47:51 +08:00
aamingaa aedf4d7192
change snapshot version (#14065) 2024-04-11 16:15:50 +08:00
aamingaa e825cb1117
update to 3.2.12 2024-04-11 14:51:52 +08:00
dependabot[bot] 45b5d44064
Bump com.alibaba.nacos:nacos-client from 2.3.1 to 2.3.2 (#14042)
Bumps [com.alibaba.nacos:nacos-client](https://github.com/alibaba/nacos) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/alibaba/nacos/releases)
- [Changelog](https://github.com/alibaba/nacos/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/alibaba/nacos/compare/2.3.1...2.3.2)

---
updated-dependencies:
- dependency-name: com.alibaba.nacos:nacos-client
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-10 09:48:39 +08:00
dependabot[bot] 16bca1e42c
Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1 (#14049)
Bumps [org.apache.maven.plugins:maven-source-plugin](https://github.com/apache/maven-source-plugin) from 3.3.0 to 3.3.1.
- [Commits](https://github.com/apache/maven-source-plugin/compare/maven-source-plugin-3.3.0...maven-source-plugin-3.3.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-source-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 16:35:52 +08:00
dependabot[bot] f987d50047
Bump org.jacoco:jacoco-maven-plugin from 0.8.11 to 0.8.12 (#14047)
Bumps [org.jacoco:jacoco-maven-plugin](https://github.com/jacoco/jacoco) from 0.8.11 to 0.8.12.
- [Release notes](https://github.com/jacoco/jacoco/releases)
- [Commits](https://github.com/jacoco/jacoco/compare/v0.8.11...v0.8.12)

---
updated-dependencies:
- dependency-name: org.jacoco:jacoco-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 16:35:45 +08:00
dependabot[bot] 3608f384c2
Bump org.apache.maven.plugin-tools:maven-plugin-annotations (#14048)
Bumps [org.apache.maven.plugin-tools:maven-plugin-annotations](https://github.com/apache/maven-plugin-tools) from 3.11.0 to 3.12.0.
- [Release notes](https://github.com/apache/maven-plugin-tools/releases)
- [Commits](https://github.com/apache/maven-plugin-tools/compare/maven-plugin-tools-3.11.0...maven-plugin-tools-3.12.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 16:35:36 +08:00
dependabot[bot] 029650668f
Bump bytebuddy.version from 1.14.12 to 1.14.13 (#14046)
Bumps `bytebuddy.version` from 1.14.12 to 1.14.13.

Updates `net.bytebuddy:byte-buddy` from 1.14.12 to 1.14.13
- [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.12...byte-buddy-1.14.13)

Updates `net.bytebuddy:byte-buddy-agent` from 1.14.12 to 1.14.13
- [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.12...byte-buddy-1.14.13)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 16:35:28 +08:00
dependabot[bot] 1689109725
Bump spring_version from 5.3.25 to 5.3.33 (#14041)
Bumps `spring_version` from 5.3.25 to 5.3.33.

Updates `org.springframework:spring-test` from 5.3.25 to 5.3.33
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.25...v5.3.33)

Updates `org.springframework:spring-framework-bom` from 3.2.18.RELEASE to 5.3.33
- [Release notes](https://github.com/spring-projects/spring-framework/releases)
- [Commits](https://github.com/spring-projects/spring-framework/compare/v3.2.18.RELEASE...v5.3.33)

---
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-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 16:35:19 +08:00
dependabot[bot] cf0529f7ae
Bump grpc.version from 1.62.2 to 1.63.0 (#14044)
Bumps `grpc.version` from 1.62.2 to 1.63.0.

Updates `io.grpc:grpc-core` from 1.62.2 to 1.63.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.62.2...v1.63.0)

Updates `io.grpc:grpc-stub` from 1.62.2 to 1.63.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.62.2...v1.63.0)

Updates `io.grpc:grpc-protobuf` from 1.62.2 to 1.63.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.62.2...v1.63.0)

Updates `io.grpc:grpc-context` from 1.62.2 to 1.63.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.62.2...v1.63.0)

Updates `io.grpc:grpc-netty-shaded` from 1.62.2 to 1.63.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.62.2...v1.63.0)

Updates `io.grpc:grpc-netty` from 1.62.2 to 1.63.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.62.2...v1.63.0)

Updates `io.grpc:grpc-grpclb` from 1.62.2 to 1.63.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.62.2...v1.63.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-08 16:35:00 +08:00
heliang666s 3e4fda20bb
Update the comment content in pom.xml to be consistent (#14039) 2024-04-08 16:34:36 +08:00
caoyanan666 95439fb23c
fix(3.2): triple AbstractServerCallListener NPE (#14009)
* fix NPE

* Optimize the handling of exceptions in response

---------

Co-authored-by: caoyanan <caoyanan@growingio.com>
2024-04-07 14:56:35 +08:00
hanpen24 f03823eec1
Use ExecutorService instead of event loop for Netty connection (#13904)
* Use ExecutorService instead of event loop for Netty connection

This change addresses the issue of the event loop being blocked for an extended period, improving overall performance and responsiveness.

* fix log getConnectAddress

* applay format

* applay format

* applay format

* applay format

* applay format

* Use an independent ExecutorService

* Use ScheduledExecutorService for scheduling tasks

* delete unnecessary files

* Modify to stop ExecutorService using shutdownNow

* Modify to use ScheduledExecutor managed by FrameworkExecutorRepository

* Synchronize reconnectDuration with HeaderExchangeClient's reconnectDuration

* get framework model directly

use awaitility
2024-04-07 10:31:23 +08:00
dependabot[bot] 40280a2c29
Bump commons-io:commons-io from 2.15.1 to 2.16.0 (#14020)
Bumps commons-io:commons-io from 2.15.1 to 2.16.0.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-02 14:39:43 +08:00
dependabot[bot] b472712f05
Bump org.apache.tomcat.embed:tomcat-embed-core from 8.5.99 to 8.5.100 (#14019)
Bumps org.apache.tomcat.embed:tomcat-embed-core from 8.5.99 to 8.5.100.

---
updated-dependencies:
- dependency-name: org.apache.tomcat.embed:tomcat-embed-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 16:44:35 +08:00
dependabot[bot] b44ca6b51f
Bump net.bytebuddy:byte-buddy from 1.14.12 to 1.14.13 (#14018)
Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.14.12 to 1.14.13.
- [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.12...byte-buddy-1.14.13)

---
updated-dependencies:
- dependency-name: net.bytebuddy:byte-buddy
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 16:44:13 +08:00
icodening ec443043e2
fix triple stub calling grpc server fail (#14012) 2024-04-01 11:03:29 +08:00
jean pierre Lerbscher 00812ce41c
Fix Sonar issue s2293 The diamond operator ('<>') should be used (#14005) 2024-03-29 11:40:06 +08:00
dependabot[bot] 4be3587dd1
Bump org.apache.maven.plugins:maven-assembly-plugin from 3.7.0 to 3.7.1 (#13992)
Bumps [org.apache.maven.plugins:maven-assembly-plugin](https://github.com/apache/maven-assembly-plugin) from 3.7.0 to 3.7.1.
- [Release notes](https://github.com/apache/maven-assembly-plugin/releases)
- [Commits](https://github.com/apache/maven-assembly-plugin/compare/maven-assembly-plugin-3.7.0...maven-assembly-plugin-3.7.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-assembly-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-26 19:07:11 +08:00
dependabot[bot] 1f74ffd969
Bump org.springframework.security:spring-security-bom (#13993)
Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 5.8.10 to 5.8.11.
- [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.10...5.8.11)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-26 19:07:02 +08:00
dependabot[bot] 9e18589e81
Bump netty4_version from 4.1.107.Final to 4.1.108.Final (#13988)
Bumps `netty4_version` from 4.1.107.Final to 4.1.108.Final.

Updates `io.netty:netty-all` from 4.1.107.Final to 4.1.108.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.107.Final...netty-4.1.108.Final)

Updates `io.netty:netty-bom` from 4.1.107.Final to 4.1.108.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.107.Final...netty-4.1.108.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-26 19:06:53 +08:00
dependabot[bot] d7d46e635c
Bump com.alibaba.fastjson2:fastjson2 from 2.0.47 to 2.0.48 (#13989)
Bumps [com.alibaba.fastjson2:fastjson2](https://github.com/alibaba/fastjson2) from 2.0.47 to 2.0.48.
- [Release notes](https://github.com/alibaba/fastjson2/releases)
- [Commits](https://github.com/alibaba/fastjson2/compare/2.0.47...2.0.48)

---
updated-dependencies:
- dependency-name: com.alibaba.fastjson2:fastjson2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-26 19:06:44 +08:00
dependabot[bot] 59b3c9c9dc
Bump org.aspectj:aspectjweaver from 1.9.21.2 to 1.9.22 (#13991)
Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.21.2 to 1.9.22.
- [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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-26 19:06:38 +08:00
dependabot[bot] f4d75450b0
Bump swagger_version from 1.6.13 to 1.6.14 (#13990)
Bumps `swagger_version` from 1.6.13 to 1.6.14.

Updates `io.swagger:swagger-annotations` from 1.6.13 to 1.6.14

Updates `io.swagger:swagger-jaxrs` from 1.6.13 to 1.6.14

---
updated-dependencies:
- dependency-name: io.swagger:swagger-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.swagger:swagger-jaxrs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-26 19:06:31 +08:00
dependabot[bot] fa07b61710
Bump org.apache.maven.plugins:maven-compiler-plugin (#13986)
Bumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.12.1 to 3.13.0.
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.12.1...maven-compiler-plugin-3.13.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-26 19:06:20 +08:00
dependabot[bot] 1bdcc57860
Bump commons-logging:commons-logging from 1.3.0 to 1.3.1 (#13987)
Bumps commons-logging:commons-logging from 1.3.0 to 1.3.1.

---
updated-dependencies:
- dependency-name: commons-logging:commons-logging
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-26 19:06:12 +08:00
TomlongTK 164aebf6ed
Fix readBytes and writeBytes methods in fastjson2 (#13968) 2024-03-21 16:26:20 +08:00
dependabot[bot] afcf04d6e3
Bump io.micrometer:micrometer-bom from 1.12.3 to 1.12.4 (#13939)
Bumps [io.micrometer:micrometer-bom](https://github.com/micrometer-metrics/micrometer) from 1.12.3 to 1.12.4.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.12.3...v1.12.4)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 10:00:04 +08:00
dependabot[bot] 3f57fcae20
Bump io.micrometer:micrometer-tracing-bom from 1.2.3 to 1.2.4 (#13938)
Bumps [io.micrometer:micrometer-tracing-bom](https://github.com/micrometer-metrics/tracing) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/micrometer-metrics/tracing/releases)
- [Commits](https://github.com/micrometer-metrics/tracing/compare/v1.2.3...v1.2.4)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-tracing-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 09:39:40 +08:00
dependabot[bot] 898b774041
Bump io.projectreactor:reactor-core from 3.6.2 to 3.6.4 (#13941)
Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.2 to 3.6.4.
- [Release notes](https://github.com/reactor/reactor-core/releases)
- [Commits](https://github.com/reactor/reactor-core/compare/v3.6.2...v3.6.4)

---
updated-dependencies:
- dependency-name: io.projectreactor:reactor-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 09:39:31 +08:00
dependabot[bot] df47d74a82
Bump org.awaitility:awaitility from 4.2.0 to 4.2.1 (#13935)
Bumps [org.awaitility:awaitility](https://github.com/awaitility/awaitility) from 4.2.0 to 4.2.1.
- [Changelog](https://github.com/awaitility/awaitility/blob/master/changelog.txt)
- [Commits](https://github.com/awaitility/awaitility/compare/awaitility-4.2.0...awaitility-4.2.1)

---
updated-dependencies:
- dependency-name: org.awaitility:awaitility
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 09:39:21 +08:00
dependabot[bot] ecc5db271e
Bump io.micrometer:micrometer-core from 1.12.3 to 1.12.4 (#13940)
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.12.3 to 1.12.4.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.12.3...v1.12.4)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 09:39:10 +08:00
dependabot[bot] 2a6f534c41
Bump org.aspectj:aspectjweaver from 1.9.21.1 to 1.9.21.2 (#13937)
Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.21.1 to 1.9.21.2.
- [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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 09:39:02 +08:00
dependabot[bot] 501f1a4f9b
Bump jackson_version from 2.16.2 to 2.17.0 (#13936)
Bumps `jackson_version` from 2.16.2 to 2.17.0.

Updates `com.fasterxml.jackson.core:jackson-core` from 2.16.2 to 2.17.0
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.16.2...jackson-core-2.17.0)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.16.2 to 2.17.0
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.16.2 to 2.17.0

Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.16.2 to 2.17.0
- [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-minor
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.core:jackson-annotations
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-19 09:38:51 +08:00
foghost a342f67dc0
fix async method call ClassCastException error (#13932) 2024-03-19 09:38:06 +08:00
Albumen Kevin 392260a30e
Fix NPE in NettyConnectionClient.toString (#13934) 2024-03-19 09:37:28 +08:00
dependabot[bot] c92e7ca72b
Bump org.apache.zookeeper:zookeeper (#13927)
Bumps org.apache.zookeeper:zookeeper from 3.8.3 to 3.8.4.

---
updated-dependencies:
- dependency-name: org.apache.zookeeper:zookeeper
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 10:20:59 +08:00
dependabot[bot] 4c598775e9
Bump org.apache.zookeeper:zookeeper (#13928)
Bumps org.apache.zookeeper:zookeeper from 3.8.3 to 3.8.4.

---
updated-dependencies:
- dependency-name: org.apache.zookeeper:zookeeper
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 10:20:41 +08:00
dependabot[bot] 86ffe7653d
Bump org.apache.zookeeper:zookeeper (#13929)
Bumps org.apache.zookeeper:zookeeper from 3.8.3 to 3.8.4.

---
updated-dependencies:
- dependency-name: org.apache.zookeeper:zookeeper
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 10:20:32 +08:00
dependabot[bot] 7126d49cad
Bump org.apache.zookeeper:zookeeper (#13930)
Bumps org.apache.zookeeper:zookeeper from 3.8.3 to 3.8.4.

---
updated-dependencies:
- dependency-name: org.apache.zookeeper:zookeeper
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 10:20:17 +08:00
kaze 0553d70899
Add condition to match serviceKey. (#13869) 2024-03-12 17:26:18 +08:00
dependabot[bot] b2c66a6d99
Bump org.testcontainers:testcontainers from 1.19.6 to 1.19.7 (#13898)
Bumps [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) from 1.19.6 to 1.19.7.
- [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.6...1.19.7)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 17:23:34 +08:00
dependabot[bot] 6ca6f66fd4
Bump org.apache.maven.plugins:maven-assembly-plugin from 3.6.0 to 3.7.0 (#13894)
Bumps [org.apache.maven.plugins:maven-assembly-plugin](https://github.com/apache/maven-assembly-plugin) from 3.6.0 to 3.7.0.
- [Commits](https://github.com/apache/maven-assembly-plugin/compare/maven-assembly-plugin-3.6.0...maven-assembly-plugin-3.7.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-assembly-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 17:22:42 +08:00
dependabot[bot] a1995ee8d2
Bump org.apache.commons:commons-compress from 1.26.0 to 1.26.1 (#13900)
Bumps org.apache.commons:commons-compress from 1.26.0 to 1.26.1.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-compress
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 17:22:34 +08:00
dependabot[bot] 0cbefb1e33
Bump log4j2_version from 2.23.0 to 2.23.1 (#13897)
Bumps `log4j2_version` from 2.23.0 to 2.23.1.

Updates `org.apache.logging.log4j:log4j-api` from 2.23.0 to 2.23.1

Updates `org.apache.logging.log4j:log4j-core` from 2.23.0 to 2.23.1

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.logging.log4j:log4j-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 17:22:25 +08:00
dependabot[bot] 7edd760ecb
Bump ch.qos.logback:logback-core from 1.5.2 to 1.5.3 (#13899)
Bumps [ch.qos.logback:logback-core](https://github.com/qos-ch/logback) from 1.5.2 to 1.5.3.
- [Commits](https://github.com/qos-ch/logback/commits/v_1.5.3)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 17:22:15 +08:00
dependabot[bot] 8d1a10f1ad
Bump jackson_version from 2.16.1 to 2.16.2 (#13896)
Bumps `jackson_version` from 2.16.1 to 2.16.2.

Updates `com.fasterxml.jackson.core:jackson-core` from 2.16.1 to 2.16.2
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.16.1...jackson-core-2.16.2)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.16.1 to 2.16.2
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.16.1 to 2.16.2

Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.16.1 to 2.16.2
- [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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 17:22:08 +08:00
Albumen Kevin a4a0baccfd
Add github collaborators 2024-03-12 13:58:13 +08:00
Albumen Kevin 501bdfaaef
Fix memory leak in ScopeBeanFactory (#13901) 2024-03-12 11:25:14 +08:00
aofall 36e0cf5490
fix(#13305): RpcContext local address info get null on custom filter (#13751)
* fix(#13305): RpcContext local address info get null on custom filter

* fix ci build failed

* fix ci build failed
2024-03-11 14:00:16 +08:00
hyhnet d50adb7c83
fix typos (#13858)
Co-authored-by: Cyrus <yecity@gmail.com>
2024-03-10 11:22:59 +08:00
Albumen Kevin 2f6b4c0c43 Update issue template labels 2024-03-08 14:03:52 +08:00
Tritone 002a6a1b3e
1.The word "shutdown" is a noun. The verb is spelled with a space. (#13855) 2024-03-08 10:11:43 +08:00
Albumen Kevin d4a1e0d9bb
Readme update (#13851) 2024-03-07 11:56:20 +08:00
YuLuo be19912ad4
chore: move pr tmpl to .github folder (#13850) 2024-03-07 10:06:40 +08:00
Albumen Kevin 783522e013
Add general template (#13848) 2024-03-06 15:07:14 +08:00
Albumen Kevin 46c93b3e0d
Add question template (#13843) 2024-03-06 12:02:52 +08:00
Albumen Kevin cfd6ebe611 Update zookeeper version 2024-03-06 11:10:46 +08:00
dependabot[bot] 44c7f7967f
Bump com.alibaba.nacos:nacos-client from 2.2.4 to 2.3.1 (#13821)
* Bump com.alibaba.nacos:nacos-client from 2.2.4 to 2.3.1

Bumps [com.alibaba.nacos:nacos-client](https://github.com/alibaba/nacos) from 2.2.4 to 2.3.1.
- [Release notes](https://github.com/alibaba/nacos/releases)
- [Changelog](https://github.com/alibaba/nacos/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/alibaba/nacos/compare/2.2.4...2.3.1)

---
updated-dependencies:
- dependency-name: com.alibaba.nacos:nacos-client
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix compile

* Fix format

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2024-03-06 11:03:02 +08:00
dependabot[bot] ea8cdc6524
Bump ch.qos.logback:logback-core from 1.5.0 to 1.5.2 (#13819)
Bumps [ch.qos.logback:logback-core](https://github.com/qos-ch/logback) from 1.5.0 to 1.5.2.
- [Commits](https://github.com/qos-ch/logback/commits)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-05 21:15:34 +08:00
dependabot[bot] bfedc9bc0e
Bump grpc.version from 1.61.1 to 1.62.2 (#13820)
Bumps `grpc.version` from 1.61.1 to 1.62.2.

Updates `io.grpc:grpc-core` from 1.61.1 to 1.62.2
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.61.1...v1.62.2)

Updates `io.grpc:grpc-stub` from 1.61.1 to 1.62.2
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.61.1...v1.62.2)

Updates `io.grpc:grpc-protobuf` from 1.61.1 to 1.62.2
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.61.1...v1.62.2)

Updates `io.grpc:grpc-context` from 1.61.1 to 1.62.2
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.61.1...v1.62.2)

Updates `io.grpc:grpc-netty-shaded` from 1.61.1 to 1.62.2
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.61.1...v1.62.2)

Updates `io.grpc:grpc-netty` from 1.61.1 to 1.62.2
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.61.1...v1.62.2)

Updates `io.grpc:grpc-grpclb` from 1.61.1 to 1.62.2
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.61.1...v1.62.2)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-05 21:15:12 +08:00
Albumen Kevin 8a1296f892
Fix feature template 2024-03-04 17:53:02 +08:00
Albumen Kevin 26cc9896f0
Fix pre-check for issue template style (#13824)
* Fix pre-check for issue template style

* Add version
2024-03-04 17:50:57 +08:00
Albumen Kevin 6251a4bbd4
Add pre-check for issue template (#13823) 2024-03-04 17:39:02 +08:00
Albumen Kevin 362f833243 Update issue template format(required) 2024-03-04 17:33:41 +08:00
Albumen Kevin 503183c526 Update issue template format 2024-03-04 17:32:39 +08:00
Albumen Kevin c41cdbb3bc Update issue template format 2024-03-04 17:28:48 +08:00
Albumen Kevin 22f7a21457 Update issue template format 2024-03-04 17:27:03 +08:00
Albumen Kevin 22d3cc9052
Update issue template (#13822)
* Update issue template

* Update issue template
2024-03-04 17:25:30 +08:00
namelessssssssssss 860ad02e1e
Fix URL issue (#13807) 2024-03-01 14:20:07 +08:00
huazhongming 8fb22934d1
Upgrade apache parent version 27 to 31. (#13612)
Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2024-03-01 11:01:10 +08:00
laywin d53d8e5d85
fix lazy property of serviceBeanDefinition to false (#13787) 2024-02-29 17:10:41 +08:00
jiangyuan 428ca27a94
Fix ModuleEnvironment#getDynamicGlobalConfiguration (#13781)
* Update ModuleEnvironment#getDynamicGlobalConfiguration

* add unit test

* update
2024-02-29 15:25:22 +08:00
Albumen Kevin 17b75a7895
Refresh valid invokers after connectivity check (#13773) 2024-02-29 11:26:11 +08:00
dependabot[bot] 5dd56fee81
Bump bytebuddy.version from 1.14.11 to 1.14.12 (#13798)
Bumps `bytebuddy.version` from 1.14.11 to 1.14.12.

Updates `net.bytebuddy:byte-buddy` from 1.14.11 to 1.14.12
- [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.11...byte-buddy-1.14.12)

Updates `net.bytebuddy:byte-buddy-agent` from 1.14.11 to 1.14.12
- [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.11...byte-buddy-1.14.12)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-28 17:26:29 +08:00
dependabot[bot] 93a6c88ed6
Bump org.apache.maven.plugins:maven-shade-plugin from 3.5.1 to 3.5.2 (#13793)
Bumps [org.apache.maven.plugins:maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.5.1 to 3.5.2.
- [Release notes](https://github.com/apache/maven-shade-plugin/releases)
- [Commits](https://github.com/apache/maven-shade-plugin/compare/maven-shade-plugin-3.5.1...maven-shade-plugin-3.5.2)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-28 17:26:20 +08:00
dependabot[bot] 2e0734d470
Bump org.apache.tomcat.embed:tomcat-embed-core from 8.5.98 to 8.5.99 (#13794)
Bumps org.apache.tomcat.embed:tomcat-embed-core from 8.5.98 to 8.5.99.

---
updated-dependencies:
- dependency-name: org.apache.tomcat.embed:tomcat-embed-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-28 17:26:13 +08:00
dependabot[bot] c4d686af5e
Bump log4j2_version from 2.22.1 to 2.23.0 (#13795)
Bumps `log4j2_version` from 2.22.1 to 2.23.0.

Updates `org.apache.logging.log4j:log4j-api` from 2.22.1 to 2.23.0

Updates `org.apache.logging.log4j:log4j-core` from 2.22.1 to 2.23.0

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.logging.log4j:log4j-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-28 17:26:03 +08:00
dependabot[bot] 5c15c3ffd8
Bump org.graalvm.buildtools:native-maven-plugin from 0.10.0 to 0.10.1 (#13797)
Bumps [org.graalvm.buildtools:native-maven-plugin](https://github.com/graalvm/native-build-tools) from 0.10.0 to 0.10.1.
- [Release notes](https://github.com/graalvm/native-build-tools/releases)
- [Commits](https://github.com/graalvm/native-build-tools/compare/0.10.0...0.10.1)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-28 17:25:50 +08:00
dependabot[bot] 3d0e8c2868
Bump com.alibaba.fastjson2:fastjson2 from 2.0.46 to 2.0.47 (#13792)
Bumps [com.alibaba.fastjson2:fastjson2](https://github.com/alibaba/fastjson2) from 2.0.46 to 2.0.47.
- [Release notes](https://github.com/alibaba/fastjson2/releases)
- [Commits](https://github.com/alibaba/fastjson2/compare/2.0.46...2.0.47)

---
updated-dependencies:
- dependency-name: com.alibaba.fastjson2:fastjson2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-28 17:25:40 +08:00
dependabot[bot] e8a535485a
Bump org.testcontainers:testcontainers from 1.19.5 to 1.19.6 (#13796)
Bumps [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) from 1.19.5 to 1.19.6.
- [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.5...1.19.6)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-28 17:25:31 +08:00
suncairong163 69dd801db2
Fix incorrect rest response header and demo double path error (#13789)
* fix dubbo demo xml double path error

* fix  restEasy response  headers formate

* fix content-type judge

* remove unused code
2024-02-28 10:44:29 +08:00
J.Son 6dbac54b39
'blacklist' renamed to 'blocklist' (#13800) 2024-02-26 17:11:10 +08:00
dependabot[bot] 99613a1f56
Bump io.micrometer:micrometer-bom from 1.12.2 to 1.12.3 (#13769)
Bumps [io.micrometer:micrometer-bom](https://github.com/micrometer-metrics/micrometer) from 1.12.2 to 1.12.3.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.12.2...v1.12.3)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-22 10:44:49 +08:00
dependabot[bot] 987c90a5a7
Bump org.springframework.security:spring-security-bom (#13768)
Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 5.8.9 to 5.8.10.
- [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.9...5.8.10)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-20 14:12:53 +08:00
dependabot[bot] e3f67b1f76
Bump org.aspectj:aspectjweaver from 1.9.21 to 1.9.21.1 (#13770)
Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.21 to 1.9.21.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-20 14:12:41 +08:00
dependabot[bot] e728bfcf9c
Bump org.eclipse.jetty:jetty-maven-plugin (#13771)
Bumps org.eclipse.jetty:jetty-maven-plugin from 9.4.53.v20231009 to 9.4.54.v20240208.

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-20 14:12:32 +08:00
dependabot[bot] 3a514d2159
Bump ch.qos.logback:logback-core from 1.4.14 to 1.5.0 (#13767)
Bumps [ch.qos.logback:logback-core](https://github.com/qos-ch/logback) from 1.4.14 to 1.5.0.
- [Commits](https://github.com/qos-ch/logback/compare/v_1.4.14...v_1.5.0)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-20 14:10:18 +08:00
dependabot[bot] 3a4abfea96
Bump jetty_version from 9.4.53.v20231009 to 9.4.54.v20240208 (#13764)
Bumps `jetty_version` from 9.4.53.v20231009 to 9.4.54.v20240208.

Updates `org.eclipse.jetty:jetty-server` from 9.4.53.v20231009 to 9.4.54.v20240208

Updates `org.eclipse.jetty:jetty-servlet` from 9.4.53.v20231009 to 9.4.54.v20240208

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-server
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-servlet
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-20 14:10:05 +08:00
dependabot[bot] 0e80e67e90
Bump netty4_version from 4.1.106.Final to 4.1.107.Final (#13766)
Bumps `netty4_version` from 4.1.106.Final to 4.1.107.Final.

Updates `io.netty:netty-all` from 4.1.106.Final to 4.1.107.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.106.Final...netty-4.1.107.Final)

Updates `io.netty:netty-bom` from 4.1.106.Final to 4.1.107.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.106.Final...netty-4.1.107.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-20 14:09:50 +08:00
dependabot[bot] faa2e9abb2
Bump org.apache.commons:commons-compress from 1.25.0 to 1.26.0 (#13765)
Bumps org.apache.commons:commons-compress from 1.25.0 to 1.26.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-compress
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-20 14:09:11 +08:00
dependabot[bot] 685c5e50e7
Bump protobuf-java_version from 3.25.2 to 3.25.3 (#13763)
Bumps `protobuf-java_version` from 3.25.2 to 3.25.3.

Updates `com.google.protobuf:protobuf-java` from 3.25.2 to 3.25.3
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/compare/v3.25.2...v3.25.3)

Updates `com.google.protobuf:protobuf-java-util` from 3.25.2 to 3.25.3

---
updated-dependencies:
- dependency-name: com.google.protobuf:protobuf-java
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: com.google.protobuf:protobuf-java-util
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-20 14:08:53 +08:00
dependabot[bot] 11a9de26e1
Bump io.micrometer:micrometer-tracing-bom from 1.2.2 to 1.2.3 (#13762)
Bumps [io.micrometer:micrometer-tracing-bom](https://github.com/micrometer-metrics/tracing) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/micrometer-metrics/tracing/releases)
- [Commits](https://github.com/micrometer-metrics/tracing/compare/v1.2.2...v1.2.3)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-tracing-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-20 14:08:46 +08:00
dependabot[bot] d7ada39797
Bump net.bytebuddy:byte-buddy from 1.14.11 to 1.14.12 (#13761)
Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.14.11 to 1.14.12.
- [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.11...byte-buddy-1.14.12)

---
updated-dependencies:
- dependency-name: net.bytebuddy:byte-buddy
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-20 14:08:36 +08:00
dependabot[bot] 5e1d333ce6
Bump io.micrometer:micrometer-core from 1.12.2 to 1.12.3 (#13760)
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.12.2 to 1.12.3.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.12.2...v1.12.3)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-20 14:06:59 +08:00
Albumen Kevin caed64b2a6
Fix #13750, ConsistentHashLoadBalance not base on arguments (#13753) 2024-02-19 10:00:19 +08:00
dependabot[bot] 432518ec50
Bump org.testcontainers:testcontainers from 1.19.4 to 1.19.5 (#13755)
Bumps [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) from 1.19.4 to 1.19.5.
- [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.4...1.19.5)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-18 16:13:24 +08:00
dependabot[bot] f6eddf7049
Bump grpc.version from 1.61.0 to 1.61.1 (#13738)
Bumps `grpc.version` from 1.61.0 to 1.61.1.

Updates `io.grpc:grpc-core` from 1.61.0 to 1.61.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.61.0...v1.61.1)

Updates `io.grpc:grpc-stub` from 1.61.0 to 1.61.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.61.0...v1.61.1)

Updates `io.grpc:grpc-protobuf` from 1.61.0 to 1.61.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.61.0...v1.61.1)

Updates `io.grpc:grpc-context` from 1.61.0 to 1.61.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.61.0...v1.61.1)

Updates `io.grpc:grpc-netty-shaded` from 1.61.0 to 1.61.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.61.0...v1.61.1)

Updates `io.grpc:grpc-netty` from 1.61.0 to 1.61.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.61.0...v1.61.1)

Updates `io.grpc:grpc-grpclb` from 1.61.0 to 1.61.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.61.0...v1.61.1)

---
updated-dependencies:
- dependency-name: io.grpc:grpc-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-stub
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-context
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-netty-shaded
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-netty
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-grpclb
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-06 09:53:59 +08:00
dependabot[bot] 22f9dd4cbd
Bump com.alibaba.fastjson2:fastjson2 from 2.0.45 to 2.0.46 (#13739)
Bumps [com.alibaba.fastjson2:fastjson2](https://github.com/alibaba/fastjson2) from 2.0.45 to 2.0.46.
- [Release notes](https://github.com/alibaba/fastjson2/releases)
- [Commits](https://github.com/alibaba/fastjson2/compare/2.0.45...2.0.46)

---
updated-dependencies:
- dependency-name: com.alibaba.fastjson2:fastjson2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-06 09:53:52 +08:00
dependabot[bot] de2d37b38c
Bump org.graalvm.buildtools:native-maven-plugin from 0.9.28 to 0.10.0 (#13740)
Bumps [org.graalvm.buildtools:native-maven-plugin](https://github.com/graalvm/native-build-tools) from 0.9.28 to 0.10.0.
- [Release notes](https://github.com/graalvm/native-build-tools/releases)
- [Commits](https://github.com/graalvm/native-build-tools/compare/0.9.28...0.10.0)

---
updated-dependencies:
- dependency-name: org.graalvm.buildtools:native-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-05 20:20:58 +08:00
Albumen Kevin b7cd1f933f
Fix NPE in DefaultTypeBuilder (#13732)
* Fix NPE in DefaultTypeBuilder

* Fix style
2024-02-04 09:59:20 +08:00
Aaron 05cecc55bc
Fixes #13684: delete outdated metrics port assertions (#13717)
* fix: delete outdated metrics port assertions

* chore: remove outdated port attribute in metricsType
2024-02-02 14:10:23 +08:00
huazhongming 77101ebeff
Bump version to 3.2.12-SNAPSHOT (#13726)
* Bump version to 3.2.12-SNAPSHOT

Signed-off-by: crazyhzm <crazyhzm@gmail.com>

* Bump dubbo version to 3.2.11 in readme

Signed-off-by: crazyhzm <crazyhzm@gmail.com>

---------

Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2024-02-02 11:28:32 +08:00
huazhongming ae39a9f7f3
Release 3.2.11 (#13727)
Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2024-02-02 11:25:25 +08:00
namelessssssssssss 29b0c7298d
Fix port unification issue in triple and dubbo protocol (#13696)
* Fix issue of tri Portunification

* style fix
2024-01-31 10:59:25 +08:00
dependabot[bot] f2478b4d5c
Bump com.diffplug.spotless:spotless-maven-plugin from 2.42.0 to 2.43.0 (#13703)
Bumps [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) from 2.42.0 to 2.43.0.
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](https://github.com/diffplug/spotless/compare/lib/2.42.0...lib/2.43.0)

---
updated-dependencies:
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-30 17:57:22 +08:00
dependabot[bot] 399cda8ac1
Bump org.codehaus.mojo:license-maven-plugin from 2.3.0 to 2.4.0 (#13701)
Bumps [org.codehaus.mojo:license-maven-plugin](https://github.com/mojohaus/license-maven-plugin) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/mojohaus/license-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/license-maven-plugin/compare/2.3.0...2.4.0)

---
updated-dependencies:
- dependency-name: org.codehaus.mojo:license-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-30 17:57:16 +08:00
dependabot[bot] e76d447883
Bump swagger_version from 1.6.12 to 1.6.13 (#13700)
Bumps `swagger_version` from 1.6.12 to 1.6.13.

Updates `io.swagger:swagger-annotations` from 1.6.12 to 1.6.13

Updates `io.swagger:swagger-jaxrs` from 1.6.12 to 1.6.13

---
updated-dependencies:
- dependency-name: io.swagger:swagger-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.swagger:swagger-jaxrs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-30 17:56:58 +08:00
dependabot[bot] 78bc753ff3
Bump org.testcontainers:testcontainers from 1.19.3 to 1.19.4 (#13702)
Bumps [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) from 1.19.3 to 1.19.4.
- [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.3...1.19.4)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-30 17:56:43 +08:00
dependabot[bot] 5c0b1deb1c
Bump netty4_version from 4.1.104.Final to 4.1.106.Final (#13682)
Bumps `netty4_version` from 4.1.104.Final to 4.1.106.Final.

Updates `io.netty:netty-all` from 4.1.104.Final to 4.1.106.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.104.Final...netty-4.1.106.Final)

Updates `io.netty:netty-bom` from 4.1.104.Final to 4.1.106.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.104.Final...netty-4.1.106.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-26 14:54:48 +08:00
icodening 2cf54f7947
Close the connection but not the client (#13600)
* Close the connection but not the client

* Close the connection but not the client
2024-01-19 18:19:57 +08:00
Bernardo Sauer 7a3ad4ab41
Hotfix rest Chinese encoding (#13617)
* decode uri in RequestFacade

* supplement the unit test

* fix code style violations

* remove duplicate codes

* consider Accept-Charset as enc

* run mvn spotless apply

* add comment

* take weight into consideration

* fix code style violations according sonar

* add DEFAULT_CHARSET

---------

Co-authored-by: chenxinyuan1 <chenxinyuan1@xiaomi.com>
2024-01-19 11:19:35 +08:00
Saptarshi Sarkar f20fac4e77
feat(CI): Added GitHub Actions to check for code style violations (#13489) 2024-01-18 20:45:43 +08:00
dependabot[bot] 66710126b7
Bump io.micrometer:micrometer-bom from 1.12.1 to 1.12.2 (#13662)
Bumps [io.micrometer:micrometer-bom](https://github.com/micrometer-metrics/micrometer) from 1.12.1 to 1.12.2.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.12.1...v1.12.2)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-17 17:40:53 +08:00
dependabot[bot] 8f5b5c6a7b
Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.3 to 3.2.5 (#13661)
Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.2.3 to 3.2.5.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.2.3...surefire-3.2.5)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-surefire-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-17 17:29:06 +08:00
Albumen Kevin 9d37c4e083
Add pond test cases (#13646) 2024-01-17 16:55:23 +08:00
dependabot[bot] 3d5edbbb57
Bump io.micrometer:micrometer-tracing-bom from 1.2.1 to 1.2.2 (#13651)
Bumps [io.micrometer:micrometer-tracing-bom](https://github.com/micrometer-metrics/tracing) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/micrometer-metrics/tracing/releases)
- [Commits](https://github.com/micrometer-metrics/tracing/compare/v1.2.1...v1.2.2)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-tracing-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-17 16:40:36 +08:00
dependabot[bot] ac9cafbf53
Bump io.micrometer:micrometer-core from 1.12.1 to 1.12.2 (#13653)
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.12.1 to 1.12.2.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.12.1...v1.12.2)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-17 16:40:20 +08:00
dependabot[bot] 9e51841959
Bump org.apache.maven.plugin-tools:maven-plugin-annotations (#13658)
Bumps [org.apache.maven.plugin-tools:maven-plugin-annotations](https://github.com/apache/maven-plugin-tools) from 3.10.2 to 3.11.0.
- [Release notes](https://github.com/apache/maven-plugin-tools/releases)
- [Commits](https://github.com/apache/maven-plugin-tools/compare/maven-plugin-tools-3.10.2...maven-plugin-tools-3.11.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-17 16:40:13 +08:00
dependabot[bot] 0433ef3589
Bump grpc.version from 1.60.1 to 1.61.0 (#13652)
Bumps `grpc.version` from 1.60.1 to 1.61.0.

Updates `io.grpc:grpc-core` from 1.60.1 to 1.61.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.60.1...v1.61.0)

Updates `io.grpc:grpc-stub` from 1.60.1 to 1.61.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.60.1...v1.61.0)

Updates `io.grpc:grpc-protobuf` from 1.60.1 to 1.61.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.60.1...v1.61.0)

Updates `io.grpc:grpc-context` from 1.60.1 to 1.61.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.60.1...v1.61.0)

Updates `io.grpc:grpc-netty-shaded` from 1.60.1 to 1.61.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.60.1...v1.61.0)

Updates `io.grpc:grpc-netty` from 1.60.1 to 1.61.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.60.1...v1.61.0)

Updates `io.grpc:grpc-grpclb` from 1.60.1 to 1.61.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.60.1...v1.61.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-17 16:40:04 +08:00
dependabot[bot] 7bc2e17706
Bump org.codehaus.mojo:flatten-maven-plugin from 1.5.0 to 1.6.0 (#13656)
Bumps [org.codehaus.mojo:flatten-maven-plugin](https://github.com/mojohaus/flatten-maven-plugin) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/mojohaus/flatten-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/flatten-maven-plugin/compare/1.5.0...1.6.0)

---
updated-dependencies:
- dependency-name: org.codehaus.mojo:flatten-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-17 16:39:58 +08:00
dependabot[bot] 4eb1bb970f
Bump com.diffplug.spotless:spotless-maven-plugin from 2.41.1 to 2.42.0 (#13659)
Bumps [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) from 2.41.1 to 2.42.0.
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](https://github.com/diffplug/spotless/compare/maven/2.41.1...lib/2.42.0)

---
updated-dependencies:
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-17 16:39:49 +08:00
dependabot[bot] 986879e7b2
Bump protobuf-java_version from 3.25.1 to 3.25.2 (#13654)
Bumps `protobuf-java_version` from 3.25.1 to 3.25.2.

Updates `com.google.protobuf:protobuf-java` from 3.25.1 to 3.25.2
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/compare/v3.25.1...v3.25.2)

Updates `com.google.protobuf:protobuf-java-util` from 3.25.1 to 3.25.2

---
updated-dependencies:
- dependency-name: com.google.protobuf:protobuf-java
  dependency-type: direct:development
  update-type: version-update:semver-patch
- dependency-name: com.google.protobuf:protobuf-java-util
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-17 16:39:41 +08:00
dependabot[bot] 1bc3deee13
Bump org.apache.tomcat.embed:tomcat-embed-core from 8.5.97 to 8.5.98 (#13657)
Bumps org.apache.tomcat.embed:tomcat-embed-core from 8.5.97 to 8.5.98.

---
updated-dependencies:
- dependency-name: org.apache.tomcat.embed:tomcat-embed-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-17 16:39:32 +08:00
dependabot[bot] f0782a4e80
Bump io.projectreactor:reactor-core from 3.6.1 to 3.6.2 (#13660)
Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.1 to 3.6.2.
- [Release notes](https://github.com/reactor/reactor-core/releases)
- [Commits](https://github.com/reactor/reactor-core/compare/v3.6.1...v3.6.2)

---
updated-dependencies:
- dependency-name: io.projectreactor:reactor-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-17 16:39:20 +08:00
dependabot[bot] 867ebc5e11
Bump io.opentelemetry:opentelemetry-bom from 1.34.0 to 1.34.1 (#13663)
Bumps [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) from 1.34.0 to 1.34.1.
- [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.34.0...v1.34.1)

---
updated-dependencies:
- dependency-name: io.opentelemetry:opentelemetry-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-17 16:38:59 +08:00
dependabot[bot] ac076eed4a
Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.2.3 to 3.2.5 (#13664)
Bumps [org.apache.maven.plugins:maven-failsafe-plugin](https://github.com/apache/maven-surefire) from 3.2.3 to 3.2.5.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.2.3...surefire-3.2.5)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-failsafe-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-17 16:38:50 +08:00
Albumen Kevin 714e076284
Revert "DefaultProviderFirstParams add THREADPOOL_KEY" (#13648) 2024-01-13 18:16:49 +08:00
Albumen Kevin 1cd57821df
Revert "check application name" (#13647) 2024-01-13 18:12:45 +08:00
kimmking 16cdc5290e
Revert "Fix URL parse pwd failed when the pwd contains '#'" (#13645) 2024-01-13 02:38:51 +08:00
huazhongming df0de49b8c
Fix URL parse pwd failed when the pwd contains '#' (#13631)
* Fix URL parse pwd failed when the pwd contains #

Signed-off-by: crazyhzm <crazyhzm@gmail.com>

* Parse url pwd

Signed-off-by: crazyhzm <crazyhzm@gmail.com>

* Fix npe

Signed-off-by: crazyhzm <crazyhzm@gmail.com>

* Remove username and pwd from parameter

Signed-off-by: crazyhzm <crazyhzm@gmail.com>

* Add ut

Signed-off-by: crazyhzm <crazyhzm@gmail.com>

---------

Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2024-01-13 01:58:58 +08:00
funkye 1d9535518e
DefaultProviderFirstParams add THREADPOOL_KEY (#13637)
* DefaultProviderFirstParams add THREADPOOL_KEY

* DefaultProviderFirstParams add THREADPOOL_KEY

* DefaultProviderFirstParams add THREADPOOL_KEY

* format
2024-01-13 01:48:14 +08:00
zrlw 9d04bc5c25
stop startup if dubbo application name configuration is invalid (#13343) 2024-01-12 22:55:18 +08:00
Y 05d44abe93
add registryUrl parameters from multipleRegistryUrl #13603 (#13633)
Co-authored-by: shaowei ye <yesw@broada.com>
2024-01-10 19:23:24 +08:00
dependabot[bot] b5a8c7df55
Bump io.opentelemetry:opentelemetry-bom from 1.33.0 to 1.34.0 (#13628)
Bumps [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) from 1.33.0 to 1.34.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.33.0...v1.34.0)

---
updated-dependencies:
- dependency-name: io.opentelemetry:opentelemetry-bom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-10 16:37:48 +08:00
MaruHibiki 966efaab85
do not invoke test method(#13589) (#13601)
* do not invoke test method(#13589)

* Fix style check

---------

Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2024-01-10 11:27:48 +08:00
wxbty 50612ad3a7
Revert 13609 due to misoperation (#13634)
* Revert "add test ci"

This reverts commit 4c528230eb.

* Revert "fix"

This reverts commit 20e0b57a81.
2024-01-09 21:34:27 +08:00
wxbty 4c528230eb add test ci 2024-01-09 20:56:08 +08:00
wxbty edf00b3af9 Merge branch '3.2' of https://github.com/apache/dubbo into 3.2 2024-01-09 20:52:07 +08:00
wxbty 20e0b57a81 fix 2024-01-09 20:51:55 +08:00
CycleMaker 670f997eac
fix AbortPolicyWithReport Semaphore lock not released (#13609)
Co-authored-by: wuzihan <wuzihan@youzan.com>
2024-01-08 20:40:08 +08:00
dependabot[bot] ec47f807b9
Bump com.alibaba.fastjson2:fastjson2 from 2.0.44 to 2.0.45 (#13627)
Bumps [com.alibaba.fastjson2:fastjson2](https://github.com/alibaba/fastjson2) from 2.0.44 to 2.0.45.
- [Release notes](https://github.com/alibaba/fastjson2/releases)
- [Commits](https://github.com/alibaba/fastjson2/compare/2.0.44...2.0.45)

---
updated-dependencies:
- dependency-name: com.alibaba.fastjson2:fastjson2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-08 20:38:24 +08:00
dependabot[bot] 9f50c97ca7
Bump org.apache.commons:commons-exec from 1.3 to 1.4.0 (#13625)
Bumps org.apache.commons:commons-exec from 1.3 to 1.4.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-exec
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-08 20:36:58 +08:00
dependabot[bot] bada1b831c
Bump io.zipkin.reporter2:zipkin-reporter-bom from 2.17.1 to 2.17.2 (#13626)
Bumps [io.zipkin.reporter2:zipkin-reporter-bom](https://github.com/openzipkin/zipkin-reporter-java) from 2.17.1 to 2.17.2.
- [Release notes](https://github.com/openzipkin/zipkin-reporter-java/releases)
- [Changelog](https://github.com/openzipkin/zipkin-reporter-java/blob/master/RELEASE.md)
- [Commits](https://github.com/openzipkin/zipkin-reporter-java/compare/2.17.1...2.17.2)

---
updated-dependencies:
- dependency-name: io.zipkin.reporter2:zipkin-reporter-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-08 20:33:43 +08:00
huazhongming 1c6374c2f5
Update SECURITY.md 2024-01-08 19:50:50 +08:00
Sean Yang 26eac846b9
style(editorconfig): Maintain the source code format and spotless plugin format the same as much as possible through editorconfig (#13622) 2024-01-07 20:27:41 +08:00
namelessssssssssss e583187aac
Fix triple injvm deep copy issue (#13597) 2024-01-04 20:01:38 +08:00
namelessssssssssss 1bdbfd8647
Fix MergeableClusterInvoker log issue (#13593)
* Fix MergeableClusterInvoker log issue

* Code style fix

* Update log level

* Update log level

* Update log level

* Add exception stacktrace
2024-01-02 18:58:43 +08:00
Albumen Kevin 06d29f12ea
Update NOTICE to 2024 2024-01-02 18:50:56 +08:00
Albumen Kevin 011d6e0a71
Exclude `UseJavaPackageAsPath` to parameters (#13595) 2024-01-02 16:47:08 +08:00
dependabot[bot] 50c5a668c7
Bump log4j2_version from 2.22.0 to 2.22.1 (#13594)
Bumps `log4j2_version` from 2.22.0 to 2.22.1.

Updates `org.apache.logging.log4j:log4j-api` from 2.22.0 to 2.22.1

Updates `org.apache.logging.log4j:log4j-core` from 2.22.0 to 2.22.1

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.logging.log4j:log4j-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-02 10:28:27 +08:00
namelessssssssssss fed4755cd6
Fix dubbo.tag override by consumer.tag in NacosRegistry (#13592) 2024-01-02 10:22:13 +08:00
Albumen Kevin 180ff9785a
Fix delay publish deadlock (#13583) 2023-12-27 23:37:59 +08:00
Albumen Kevin 745ba45ea4
Fix MethodKeyRt override & Error enhance (#13580)
Co-authored-by: xiaosheng <songxiaosheng@apache.org>
2023-12-27 23:20:10 +08:00
zhaoyunxing 25b73b1a13
feat:DubboService annotation support custom serialization (#13553) 2023-12-27 23:19:51 +08:00
suncairong163 501a7a7653
resteasy response status code support (#13586)
* resteasy response status code support

* fix code format
2023-12-27 23:18:28 +08:00
namelessssssssssss 3aa5a775d3
Fix StubMethodDescriptor generate issue (#13582)
* Refactor StubMethodDescriptor generate

* Refactor StubMethodDescriptor generate

* Refactor StubMethodDescriptor generate

* Refactor

* Add missing ';'
2023-12-27 14:52:22 +08:00
宝宝爸师 1368e21d9b
optimize isProtobufClass method impl (#13557)
* optimize isProtobufClass method impl

* build error for unknown reason

* fix build error
2023-12-26 17:31:44 +08:00
namelessssssssssss 738f3ff69a
Fix proto `package` and ` java_package` issue (#13559)
* Fix pb package issue

* Codestyle fix

* Fix npe in test

* Fix npe in test

* Fix test

* Codestyle fix

* Simplify config

* Update ServiceConfig.java
2023-12-26 15:46:42 +08:00
icodening e26a22d163
fix complete already (#13546)
* fix complete already

* fix complete already
2023-12-25 20:06:32 +08:00
dependabot[bot] c1a32fa374
Bump org.javassist:javassist from 3.29.2-GA to 3.30.2-GA (#13571)
Bumps [org.javassist:javassist](https://github.com/jboss-javassist/javassist) from 3.29.2-GA to 3.30.2-GA.
- [Release notes](https://github.com/jboss-javassist/javassist/releases)
- [Changelog](https://github.com/jboss-javassist/javassist/blob/master/Changes.md)
- [Commits](https://github.com/jboss-javassist/javassist/commits)

---
updated-dependencies:
- dependency-name: org.javassist:javassist
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:51:19 +08:00
dependabot[bot] 471b707ed8
Bump com.alibaba.fastjson2:fastjson2 from 2.0.43 to 2.0.44 (#13577)
Bumps [com.alibaba.fastjson2:fastjson2](https://github.com/alibaba/fastjson2) from 2.0.43 to 2.0.44.
- [Release notes](https://github.com/alibaba/fastjson2/releases)
- [Commits](https://github.com/alibaba/fastjson2/compare/2.0.43...2.0.44)

---
updated-dependencies:
- dependency-name: com.alibaba.fastjson2:fastjson2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:50:20 +08:00
dependabot[bot] fcfe24e3d8
Bump org.apache.tomcat.embed:tomcat-embed-core from 8.5.96 to 8.5.97 (#13563)
Bumps org.apache.tomcat.embed:tomcat-embed-core from 8.5.96 to 8.5.97.

---
updated-dependencies:
- dependency-name: org.apache.tomcat.embed:tomcat-embed-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:38:24 +08:00
dependabot[bot] 892eaff478
Bump org.apache.maven.plugins:maven-dependency-plugin (#13565)
Bumps [org.apache.maven.plugins:maven-dependency-plugin](https://github.com/apache/maven-dependency-plugin) from 3.5.0 to 3.6.1.
- [Commits](https://github.com/apache/maven-dependency-plugin/compare/maven-dependency-plugin-3.5.0...maven-dependency-plugin-3.6.1)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:38:12 +08:00
dependabot[bot] 0052136e7a
Bump jackson_version from 2.16.0 to 2.16.1 (#13566)
Bumps `jackson_version` from 2.16.0 to 2.16.1.

Updates `com.fasterxml.jackson.core:jackson-core` from 2.16.0 to 2.16.1
- [Release notes](https://github.com/FasterXML/jackson-core/releases)
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.16.0...jackson-core-2.16.1)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.16.0 to 2.16.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.16.0 to 2.16.1

Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.16.0 to 2.16.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:38:04 +08:00
dependabot[bot] dc582ff38c
Bump org.apache.maven.plugins:maven-surefire-plugin from 3.0.0 to 3.2.3 (#13568)
Bumps [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) from 3.0.0 to 3.2.3.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.0.0...surefire-3.2.3)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:37:57 +08:00
dependabot[bot] c6bdef857c
Bump bytebuddy.version from 1.14.10 to 1.14.11 (#13570)
Bumps `bytebuddy.version` from 1.14.10 to 1.14.11.

Updates `net.bytebuddy:byte-buddy` from 1.14.10 to 1.14.11
- [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.10...byte-buddy-1.14.11)

Updates `net.bytebuddy:byte-buddy-agent` from 1.14.10 to 1.14.11
- [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.10...byte-buddy-1.14.11)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:37:45 +08:00
dependabot[bot] 890259cba2
Bump org.springframework.security:spring-security-bom (#13569)
Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 5.8.8 to 5.8.9.
- [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.8...5.8.9)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:37:35 +08:00
dependabot[bot] 5b11cde0cf
Bump grpc.version from 1.60.0 to 1.60.1 (#13564)
Bumps `grpc.version` from 1.60.0 to 1.60.1.

Updates `io.grpc:grpc-core` from 1.60.0 to 1.60.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.60.0...v1.60.1)

Updates `io.grpc:grpc-stub` from 1.60.0 to 1.60.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.60.0...v1.60.1)

Updates `io.grpc:grpc-protobuf` from 1.60.0 to 1.60.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.60.0...v1.60.1)

Updates `io.grpc:grpc-context` from 1.60.0 to 1.60.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.60.0...v1.60.1)

Updates `io.grpc:grpc-netty-shaded` from 1.60.0 to 1.60.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.60.0...v1.60.1)

Updates `io.grpc:grpc-netty` from 1.60.0 to 1.60.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.60.0...v1.60.1)

Updates `io.grpc:grpc-grpclb` from 1.60.0 to 1.60.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.60.0...v1.60.1)

---
updated-dependencies:
- dependency-name: io.grpc:grpc-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-stub
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-context
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-netty-shaded
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-netty
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-grpclb
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:37:28 +08:00
dependabot[bot] 50d2666e99
Bump org.apache.maven:maven-plugin-api from 3.9.1 to 3.9.6 (#13572)
Bumps [org.apache.maven:maven-plugin-api](https://github.com/apache/maven) from 3.9.1 to 3.9.6.
- [Release notes](https://github.com/apache/maven/releases)
- [Commits](https://github.com/apache/maven/compare/maven-3.9.1...maven-3.9.6)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:37:18 +08:00
dependabot[bot] 5daae3afaa
Bump ch.qos.logback:logback-core from 1.2.13 to 1.4.14 (#13567)
Bumps [ch.qos.logback:logback-core](https://github.com/qos-ch/logback) from 1.2.13 to 1.4.14.
- [Commits](https://github.com/qos-ch/logback/compare/v_1.2.13...v_1.4.14)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:37:00 +08:00
dependabot[bot] 9960d2de40
Bump io.projectreactor:reactor-core from 3.6.0 to 3.6.1 (#13573)
Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.0 to 3.6.1.
- [Release notes](https://github.com/reactor/reactor-core/releases)
- [Commits](https://github.com/reactor/reactor-core/compare/v3.6.0...v3.6.1)

---
updated-dependencies:
- dependency-name: io.projectreactor:reactor-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:36:46 +08:00
dependabot[bot] 1e28f8e1f7
Bump io.opentelemetry:opentelemetry-bom from 1.32.0 to 1.33.0 (#13574)
Bumps [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) from 1.32.0 to 1.33.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.32.0...v1.33.0)

---
updated-dependencies:
- dependency-name: io.opentelemetry:opentelemetry-bom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:36:38 +08:00
dependabot[bot] 95aefcb3ab
Bump org.apache.maven.plugins:maven-compiler-plugin (#13575)
Bumps [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) from 3.11.0 to 3.12.1.
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.11.0...maven-compiler-plugin-3.12.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:36:29 +08:00
dependabot[bot] 7f51a7f427
Bump net.bytebuddy:byte-buddy from 1.14.10 to 1.14.11 (#13576)
Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.14.10 to 1.14.11.
- [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.10...byte-buddy-1.14.11)

---
updated-dependencies:
- dependency-name: net.bytebuddy:byte-buddy
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-25 19:36:17 +08:00
TomlongTK 617dbd3fdd
Make config builder more comprehensive (#13556)
* Make config builder more comprehensive

* Format
2023-12-25 19:17:48 +08:00
baerwang 1d7c906c5e
docs: change dubbo-go link and rust language (#13558) 2023-12-22 22:44:28 +08:00
huazhongming f7a32be429
Remove unused dependency (#13554)
Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2023-12-22 10:25:53 +08:00
huazhongming cb8d7a36f9
Fix native demo logback dependency (#13551)
Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2023-12-21 15:04:09 +08:00
huazhongming ff2bdd0229
Change bug issue label to need-triage (#13549)
Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2023-12-21 11:16:50 +08:00
dependabot[bot] 8615b94812
Bump org.apache.mina:mina-core from 2.2.1 to 2.2.3 (#13524)
Bumps [org.apache.mina:mina-core](https://github.com/apache/mina) from 2.2.1 to 2.2.3.
- [Commits](https://github.com/apache/mina/compare/2.2.1...2.2.3)

---
updated-dependencies:
- dependency-name: org.apache.mina:mina-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-21 09:55:30 +08:00
dependabot[bot] 7b1029160d
Bump commons-io:commons-io from 2.11.0 to 2.15.1 (#13530)
Bumps commons-io:commons-io from 2.11.0 to 2.15.1.

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-21 09:55:16 +08:00
dependabot[bot] bdd2802688
Bump io.micrometer:micrometer-bom from 1.12.0 to 1.12.1 (#13523)
Bumps [io.micrometer:micrometer-bom](https://github.com/micrometer-metrics/micrometer) from 1.12.0 to 1.12.1.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.12.0...v1.12.1)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-21 09:54:42 +08:00
dependabot[bot] 07fb5aad32
Bump org.apache.maven.plugins:maven-failsafe-plugin from 3.0.0 to 3.2.3 (#13521)
Bumps [org.apache.maven.plugins:maven-failsafe-plugin](https://github.com/apache/maven-surefire) from 3.0.0 to 3.2.3.
- [Release notes](https://github.com/apache/maven-surefire/releases)
- [Commits](https://github.com/apache/maven-surefire/compare/surefire-3.0.0...surefire-3.2.3)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-20 21:22:45 +08:00
TomlongTK 9df0d154a5
Customize parameters for interface-level registration (#13304) 2023-12-20 21:21:49 +08:00
yizhenqiang d685ff2084
ProtocolConfig Add sslEnabled and extProtocol fields, aligned with ProtocolConfig. (#13515)
Co-authored-by: yizhenqiang <yizhenqiang@corp.netesase.com>
2023-12-20 21:20:08 +08:00
G-XD 092a1bd619
release the ByteBuf Fixes #13492 (#13514) 2023-12-20 21:06:23 +08:00
dependabot[bot] 75f740df0a
Bump ch.qos.logback:logback-classic in /dubbo-dependencies-bom (#13463)
Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.2.11 to 1.2.13.
- [Commits](https://github.com/qos-ch/logback/compare/v_1.2.11...v_1.2.13)

---
updated-dependencies:
- dependency-name: ch.qos.logback:logback-classic
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-12-20 21:04:15 +08:00
yizhenqiang 365b805026
if SSL auth policy is set to AuthPolicy.NONE, SslServerTlsHandler#decode should remove and return instead of printing the error log. (#13507)
Co-authored-by: yizhenqiang <yizhenqiang@corp.netesase.com>
2023-12-20 20:58:44 +08:00
Albumen Kevin d4bbf96f08 Bump version to 3.2.11-SNAPSHOT 2023-12-19 11:33:57 +08:00
Albumen Kevin 61d65892f0 Merge branch '3.2.10-release' into apache-3.2 2023-12-19 11:31:16 +08:00
dependabot[bot] 24c6a523b4
Bump commons-logging:commons-logging from 1.2 to 1.3.0 (#13520)
Bumps commons-logging:commons-logging from 1.2 to 1.3.0.

---
updated-dependencies:
- dependency-name: commons-logging:commons-logging
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19 10:00:47 +08:00
dependabot[bot] 283bf9ee0f
Bump org.apache.maven.plugins:maven-checkstyle-plugin (#13522)
Bumps [org.apache.maven.plugins:maven-checkstyle-plugin](https://github.com/apache/maven-checkstyle-plugin) from 3.2.1 to 3.3.1.
- [Commits](https://github.com/apache/maven-checkstyle-plugin/compare/maven-checkstyle-plugin-3.2.1...maven-checkstyle-plugin-3.3.1)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19 10:00:33 +08:00
dependabot[bot] 5a363255ea
Bump com.ctrip.framework.apollo:apollo-client from 2.1.0 to 2.2.0 (#13525)
Bumps [com.ctrip.framework.apollo:apollo-client](https://github.com/apolloconfig/apollo-java) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/apolloconfig/apollo-java/releases)
- [Changelog](https://github.com/apolloconfig/apollo-java/blob/main/CHANGES.md)
- [Commits](https://github.com/apolloconfig/apollo-java/compare/v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: com.ctrip.framework.apollo:apollo-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19 09:59:54 +08:00
dependabot[bot] 124b80f072
Bump netty4_version from 4.1.101.Final to 4.1.104.Final (#13527)
Bumps `netty4_version` from 4.1.101.Final to 4.1.104.Final.

Updates `io.netty:netty-all` from 4.1.101.Final to 4.1.104.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.101.Final...netty-4.1.104.Final)

Updates `io.netty:netty-bom` from 4.1.101.Final to 4.1.104.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.101.Final...netty-4.1.104.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19 09:59:39 +08:00
dependabot[bot] fb571f532d
Bump io.micrometer:micrometer-core from 1.12.0 to 1.12.1 (#13529)
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.12.0 to 1.12.1.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.12.0...v1.12.1)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19 09:59:22 +08:00
dependabot[bot] 7f437a7ff7
Bump log4j2_version from 2.20.0 to 2.22.0 (#13535)
Bumps `log4j2_version` from 2.20.0 to 2.22.0.

Updates `org.apache.logging.log4j:log4j-api` from 2.20.0 to 2.22.0

Updates `org.apache.logging.log4j:log4j-core` from 2.20.0 to 2.22.0

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.logging.log4j:log4j-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19 09:58:52 +08:00
dependabot[bot] c505edfbad
Bump org.apache.maven.plugins:maven-shade-plugin from 3.4.1 to 3.5.1 (#13531)
Bumps [org.apache.maven.plugins:maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.4.1 to 3.5.1.
- [Release notes](https://github.com/apache/maven-shade-plugin/releases)
- [Commits](https://github.com/apache/maven-shade-plugin/compare/maven-shade-plugin-3.4.1...maven-shade-plugin-3.5.1)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19 09:58:35 +08:00
dependabot[bot] 1813cb4320
Bump org.apache.maven.plugins:maven-release-plugin from 3.0.0 to 3.0.1 (#13532)
Bumps [org.apache.maven.plugins:maven-release-plugin](https://github.com/apache/maven-release) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/apache/maven-release/releases)
- [Commits](https://github.com/apache/maven-release/compare/maven-release-3.0.0...maven-release-3.0.1)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-release-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19 09:58:21 +08:00
dependabot[bot] 5c12b574ef
Bump io.zipkin.reporter2:zipkin-reporter-bom from 2.16.4 to 2.17.1 (#13533)
Bumps [io.zipkin.reporter2:zipkin-reporter-bom](https://github.com/openzipkin/zipkin-reporter-java) from 2.16.4 to 2.17.1.
- [Release notes](https://github.com/openzipkin/zipkin-reporter-java/releases)
- [Changelog](https://github.com/openzipkin/zipkin-reporter-java/blob/master/RELEASE.md)
- [Commits](https://github.com/openzipkin/zipkin-reporter-java/compare/2.16.4...2.17.1)

---
updated-dependencies:
- dependency-name: io.zipkin.reporter2:zipkin-reporter-bom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19 09:58:09 +08:00
dependabot[bot] 5503b5ac35
Bump io.micrometer:micrometer-tracing-bom from 1.2.0 to 1.2.1 (#13534)
Bumps [io.micrometer:micrometer-tracing-bom](https://github.com/micrometer-metrics/tracing) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/micrometer-metrics/tracing/releases)
- [Commits](https://github.com/micrometer-metrics/tracing/compare/v1.2.0...v1.2.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19 09:57:53 +08:00
dependabot[bot] a02b030e7d
Bump org.aspectj:aspectjweaver from 1.9.20.1 to 1.9.21 (#13536)
Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.20.1 to 1.9.21.
- [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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-19 09:57:24 +08:00
Albumen Kevin 8c7be92bb7 Prepare 3.2.10 release 2023-12-15 09:45:27 +08:00
Albumen Kevin 1d1bb26e79
Fix potential NPE (#13505) 2023-12-15 09:35:41 +08:00
Albumen Kevin cf410d3462
Move integration test cases into apache/dubbo-integration-cases (#13506)
* Move integration test cases into apache/dubbo-integration-cases

* Update workflow

* Update workflow
2023-12-14 20:57:56 +08:00
dependabot[bot] 33677c050d
Bump org.apache.zookeeper:zookeeper (#13494)
Bumps org.apache.zookeeper:zookeeper from 3.8.1 to 3.8.3.

---
updated-dependencies:
- dependency-name: org.apache.zookeeper:zookeeper
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-14 19:16:57 +08:00
TestBoost 570cd47d9a
only call DubboBootstrap.reset(); once to make the test org.apache.dubbo.generic.GenericServiceTest faster (#13466) 2023-12-14 19:12:27 +08:00
yizhenqiang 71a1ed3cae
if SSL auth policy is set to AuthPolicy.NONE, SslServerTlsHandler#decode should remove and return instead of printing the error log. (#13468)
Co-authored-by: yizhenqiang <yizhenqiang@corp.netesase.com>
2023-12-14 19:12:04 +08:00
dependabot[bot] 3e2d69f80f
Bump org.apache.maven.plugins:maven-plugin-plugin from 3.8.1 to 3.10.2 (#13474)
Bumps [org.apache.maven.plugins:maven-plugin-plugin](https://github.com/apache/maven-plugin-tools) from 3.8.1 to 3.10.2.
- [Release notes](https://github.com/apache/maven-plugin-tools/releases)
- [Commits](https://github.com/apache/maven-plugin-tools/compare/maven-plugin-tools-3.8.1...maven-plugin-tools-3.10.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-plugin-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-13 20:29:16 +08:00
dependabot[bot] 43cd8ddc30
Bump org.apache.tomcat.embed:tomcat-embed-core from 8.5.87 to 8.5.96 (#13477)
Bumps org.apache.tomcat.embed:tomcat-embed-core from 8.5.87 to 8.5.96.

---
updated-dependencies:
- dependency-name: org.apache.tomcat.embed:tomcat-embed-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-13 20:28:57 +08:00
dependabot[bot] 787cc28ff4
Bump org.apache.avro:avro in /dubbo-dependencies-bom (#13487)
Bumps org.apache.avro:avro from 1.11.1 to 1.11.3.

---
updated-dependencies:
- dependency-name: org.apache.avro:avro
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-13 20:28:37 +08:00
Albumen Kevin 1577a31046
Remove Kubernetes and xDS implementations (#13469)
* Remove Kubernetes and xDS implementations

* Fix transform
2023-12-12 10:24:43 +08:00
dependabot[bot] f19e2c7627
Bump org.apache.commons:commons-lang3 from 3.12.0 to 3.14.0 (#13472)
Bumps org.apache.commons:commons-lang3 from 3.12.0 to 3.14.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-lang3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:24:36 +08:00
dependabot[bot] 76c990f053
Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.5.0 to 3.6.3 (#13473)
Bumps [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) from 3.5.0 to 3.6.3.
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.5.0...maven-javadoc-plugin-3.6.3)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:24:28 +08:00
dependabot[bot] f2a8b2db77
Bump org.apache.avro:avro from 1.11.1 to 1.11.3 (#13486)
Bumps org.apache.avro:avro from 1.11.1 to 1.11.3.

---
updated-dependencies:
- dependency-name: org.apache.avro:avro
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:24:17 +08:00
dependabot[bot] a9a3a0975f
Bump org.apache.maven:maven-core from 3.9.1 to 3.9.6 (#13476)
Bumps [org.apache.maven:maven-core](https://github.com/apache/maven) from 3.9.1 to 3.9.6.
- [Release notes](https://github.com/apache/maven/releases)
- [Commits](https://github.com/apache/maven/compare/maven-3.9.1...maven-3.9.6)

---
updated-dependencies:
- dependency-name: org.apache.maven:maven-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:24:11 +08:00
dependabot[bot] 0d418fc40c
Bump cxf_version from 3.5.5 to 3.6.2 (#13475)
Bumps `cxf_version` from 3.5.5 to 3.6.2.

Updates `org.apache.cxf:cxf-rt-frontend-simple` from 3.5.5 to 3.6.2

Updates `org.apache.cxf:cxf-rt-transports-http` from 3.5.5 to 3.6.2

---
updated-dependencies:
- dependency-name: org.apache.cxf:cxf-rt-frontend-simple
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.cxf:cxf-rt-transports-http
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:24:02 +08:00
dependabot[bot] 68ddac8755
Bump org.apache.maven.plugins:maven-assembly-plugin from 3.5.0 to 3.6.0 (#13478)
Bumps [org.apache.maven.plugins:maven-assembly-plugin](https://github.com/apache/maven-assembly-plugin) from 3.5.0 to 3.6.0.
- [Commits](https://github.com/apache/maven-assembly-plugin/compare/maven-assembly-plugin-3.5.0...maven-assembly-plugin-3.6.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-assembly-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:23:38 +08:00
dependabot[bot] f426a7a6b4
Bump org.apache.maven.plugins:maven-clean-plugin from 3.2.0 to 3.3.2 (#13479)
Bumps [org.apache.maven.plugins:maven-clean-plugin](https://github.com/apache/maven-clean-plugin) from 3.2.0 to 3.3.2.
- [Release notes](https://github.com/apache/maven-clean-plugin/releases)
- [Commits](https://github.com/apache/maven-clean-plugin/compare/maven-clean-plugin-3.2.0...maven-clean-plugin-3.3.2)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-clean-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:23:32 +08:00
dependabot[bot] 337fc554ae
Bump org.apache.maven.plugins:maven-source-plugin from 3.2.1 to 3.3.0 (#13480)
Bumps [org.apache.maven.plugins:maven-source-plugin](https://github.com/apache/maven-source-plugin) from 3.2.1 to 3.3.0.
- [Commits](https://github.com/apache/maven-source-plugin/compare/maven-source-plugin-3.2.1...maven-source-plugin-3.3.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-source-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:23:24 +08:00
dependabot[bot] 060f59a30f
Bump org.apache.maven.plugin-tools:maven-plugin-annotations (#13481)
Bumps [org.apache.maven.plugin-tools:maven-plugin-annotations](https://github.com/apache/maven-plugin-tools) from 3.8.1 to 3.10.2.
- [Release notes](https://github.com/apache/maven-plugin-tools/releases)
- [Commits](https://github.com/apache/maven-plugin-tools/compare/maven-plugin-tools-3.8.1...maven-plugin-tools-3.10.2)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:23:17 +08:00
dependabot[bot] 8416ee4ed5
Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.3.0 to 3.4.1 (#13482)
Bumps [org.apache.maven.plugins:maven-enforcer-plugin](https://github.com/apache/maven-enforcer) from 3.3.0 to 3.4.1.
- [Release notes](https://github.com/apache/maven-enforcer/releases)
- [Commits](https://github.com/apache/maven-enforcer/compare/enforcer-3.3.0...enforcer-3.4.1)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:23:08 +08:00
dependabot[bot] acc1d6f64f
Bump com.ctrip.framework.apollo:apollo-mockserver from 2.1.0 to 2.2.0 (#13483)
Bumps [com.ctrip.framework.apollo:apollo-mockserver](https://github.com/apolloconfig/apollo-java) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/apolloconfig/apollo-java/releases)
- [Changelog](https://github.com/apolloconfig/apollo-java/blob/main/CHANGES.md)
- [Commits](https://github.com/apolloconfig/apollo-java/compare/v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: com.ctrip.framework.apollo:apollo-mockserver
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:23:01 +08:00
dependabot[bot] 7edf187d21
Bump grpc.version from 1.59.1 to 1.60.0 (#13484)
Bumps `grpc.version` from 1.59.1 to 1.60.0.

Updates `io.grpc:grpc-core` from 1.59.1 to 1.60.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.59.1...v1.60.0)

Updates `io.grpc:grpc-stub` from 1.59.1 to 1.60.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.59.1...v1.60.0)

Updates `io.grpc:grpc-protobuf` from 1.59.1 to 1.60.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.59.1...v1.60.0)

Updates `io.grpc:grpc-context` from 1.59.1 to 1.60.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.59.1...v1.60.0)

Updates `io.grpc:grpc-netty-shaded` from 1.59.1 to 1.60.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.59.1...v1.60.0)

Updates `io.grpc:grpc-netty` from 1.59.1 to 1.60.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.59.1...v1.60.0)

Updates `io.grpc:grpc-grpclb` from 1.59.1 to 1.60.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.59.1...v1.60.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:22:44 +08:00
dependabot[bot] b0a36ee097
Bump org.apache.commons:commons-compress from 1.23.0 to 1.25.0 (#13485)
Bumps org.apache.commons:commons-compress from 1.23.0 to 1.25.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-compress
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-12 10:22:35 +08:00
kaze 5554706256
Fix streamobserver actual type (#13446)
* fix:obtain actual type in StreamObserver.

* format code

---------

Co-authored-by: kaze <kaze-official@foxmail.com>
2023-12-06 10:57:09 +08:00
Albumen Kevin 0d879666b4
Support exclude fastjson2 or hessian2 serialization dependencies (#13441)
* Support exclude fastjson2 or hessian2 serialization dependencies

* Fix style

* Support check

* Fix test cases

* lint

* Fix test cases

* Style
2023-12-04 21:32:50 +08:00
dependabot[bot] b7e675940d
Bump grpc.version from 1.59.0 to 1.59.1 (#13457)
Bumps `grpc.version` from 1.59.0 to 1.59.1.

Updates `io.grpc:grpc-core` from 1.59.0 to 1.59.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.59.0...v1.59.1)

Updates `io.grpc:grpc-stub` from 1.59.0 to 1.59.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.59.0...v1.59.1)

Updates `io.grpc:grpc-protobuf` from 1.59.0 to 1.59.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.59.0...v1.59.1)

Updates `io.grpc:grpc-context` from 1.59.0 to 1.59.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.59.0...v1.59.1)

Updates `io.grpc:grpc-netty-shaded` from 1.59.0 to 1.59.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.59.0...v1.59.1)

Updates `io.grpc:grpc-netty` from 1.59.0 to 1.59.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.59.0...v1.59.1)

Updates `io.grpc:grpc-grpclb` from 1.59.0 to 1.59.1
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.59.0...v1.59.1)

---
updated-dependencies:
- dependency-name: io.grpc:grpc-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-stub
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-context
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-netty-shaded
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-netty
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.grpc:grpc-grpclb
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 21:32:31 +08:00
dependabot[bot] 94725ece64
Bump com.diffplug.spotless:spotless-maven-plugin from 2.41.0 to 2.41.1 (#13460)
Bumps [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) from 2.41.0 to 2.41.1.
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](https://github.com/diffplug/spotless/compare/lib/2.41.0...maven/2.41.1)

---
updated-dependencies:
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 21:32:03 +08:00
dependabot[bot] 849e108835
Bump com.alibaba.fastjson2:fastjson2 from 2.0.42 to 2.0.43 (#13459)
Bumps [com.alibaba.fastjson2:fastjson2](https://github.com/alibaba/fastjson2) from 2.0.42 to 2.0.43.
- [Release notes](https://github.com/alibaba/fastjson2/releases)
- [Commits](https://github.com/alibaba/fastjson2/compare/2.0.42...2.0.43)

---
updated-dependencies:
- dependency-name: com.alibaba.fastjson2:fastjson2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-04 21:31:25 +08:00
crazyhzm 394d487117 Exclude generated-sources for spotless check
Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2023-12-04 20:37:05 +08:00
Albumen Kevin 3e1310bea8
Fix TriRpcStatus not implements Serializable (#13453)
* Fix TriRpcStatus not implements Serializable

* Fix TriRpcStatus not implements Serializable
2023-12-04 12:48:27 +08:00
xiaosheng 58fa120795
🐛 fix metrics servce level config bug (#13449)
* 🐛 fix metrics servce level config bug

* 🐛 fix metrics servce level config bug

* 🐛 fix metrics servce level config bug

* 🐛 fix metrics servce level config bug
2023-12-04 09:34:47 +08:00
suncairong163 6e9f337098
Feature/20231114 dubbo 3.2 rest proxy double service method (#13357)
* for proxy service method repeat check

* for proxy service method repeat check

* fix code format

* fix code format

* fix code format

* fix code format

* fix code format

* fix code format

* fix code format

* fix code format

* fix code format

---------

Co-authored-by: huazhongming <crazyhzm@gmail.com>
2023-12-01 15:28:05 +08:00
Albumen Kevin d552cfca51
Fix generic invoke failed for triple (#13442) 2023-12-01 10:25:03 +08:00
dependabot[bot] 841ddb6e1f
Bump com.diffplug.spotless:spotless-maven-plugin from 2.40.0 to 2.41.0 (#13416)
Bumps [com.diffplug.spotless:spotless-maven-plugin](https://github.com/diffplug/spotless) from 2.40.0 to 2.41.0.
- [Changelog](https://github.com/diffplug/spotless/blob/main/CHANGES.md)
- [Commits](https://github.com/diffplug/spotless/compare/lib/2.40.0...lib/2.41.0)

---
updated-dependencies:
- dependency-name: com.diffplug.spotless:spotless-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: huazhongming <crazyhzm@gmail.com>
2023-11-30 20:49:38 +08:00
crazyhzm f1632c33ad Fix spotless check style failed for generated demo sources
Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2023-11-30 19:56:30 +08:00
huazhongming a343b6f86a
Fix spotless check style failed for generated auth sources (#13445)
Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2023-11-30 19:22:33 +08:00
namelessssssssssss 6dfddbfb2b
Fix issue of metadata only registred to one nacos namespace (3.2.x) (#13439)
* Fix nacos metadata namespace

* Fix code style

---------

Co-authored-by: nameless <x1544669126@gmail.com>
2023-11-30 19:19:29 +08:00
huazhongming b38a2815a1
Fix spotless check style failed for generated xds sources (#13444)
Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2023-11-30 19:08:59 +08:00
huazhongming a4e0189ed6
Fix spotless check style failed for generated triple sources (#13440)
Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2023-11-30 17:42:01 +08:00
dependabot[bot] 8ac2eaa326
Bump io.micrometer:micrometer-core from 1.11.5 to 1.12.0 (#13390)
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.11.5 to 1.12.0.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.11.5...v1.12.0)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-30 10:01:33 +08:00
dependabot[bot] 5dd3861aac
Bump bytebuddy.version from 1.14.9 to 1.14.10 (#13421)
Bumps `bytebuddy.version` from 1.14.9 to 1.14.10.

Updates `net.bytebuddy:byte-buddy` from 1.14.9 to 1.14.10
- [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.9...byte-buddy-1.14.10)

Updates `net.bytebuddy:byte-buddy-agent` from 1.14.9 to 1.14.10
- [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.9...byte-buddy-1.14.10)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-29 21:20:22 +08:00
dependabot[bot] d38721f3e3
Bump org.springframework.boot:spring-boot-maven-plugin (#13419)
Bumps [org.springframework.boot:spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.7.17 to 2.7.18.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.17...v2.7.18)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-29 21:19:20 +08:00
dependabot[bot] 23044cee5a
Bump org.codehaus.mojo:build-helper-maven-plugin from 3.4.0 to 3.5.0 (#13423)
Bumps [org.codehaus.mojo:build-helper-maven-plugin](https://github.com/mojohaus/build-helper-maven-plugin) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/mojohaus/build-helper-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/build-helper-maven-plugin/compare/3.4.0...3.5.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-29 21:18:07 +08:00
dependabot[bot] 01961a0e6f
Bump org.testcontainers:testcontainers from 1.19.2 to 1.19.3 (#13422)
Bumps [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) from 1.19.2 to 1.19.3.
- [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.2...1.19.3)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-29 21:17:37 +08:00
dependabot[bot] 2b06ac6838
Bump net.bytebuddy:byte-buddy from 1.14.9 to 1.14.10 (#13424)
Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.14.9 to 1.14.10.
- [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.9...byte-buddy-1.14.10)

---
updated-dependencies:
- dependency-name: net.bytebuddy:byte-buddy
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-29 21:17:26 +08:00
dependabot[bot] 0cb30fe02d
Bump spring-boot.version from 2.7.17 to 2.7.18 (#13417)
Bumps `spring-boot.version` from 2.7.17 to 2.7.18.

Updates `org.springframework.boot:spring-boot-starter` from 2.7.17 to 2.7.18
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.17...v2.7.18)

Updates `org.springframework.boot:spring-boot-autoconfigure` from 2.7.17 to 2.7.18
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.17...v2.7.18)

Updates `org.springframework.boot:spring-boot-starter-logging` from 2.7.17 to 2.7.18
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.17...v2.7.18)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-starter
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework.boot:spring-boot-autoconfigure
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework.boot:spring-boot-starter-logging
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-29 21:09:58 +08:00
dependabot[bot] 5b610f96ba
Bump org.springframework.boot:spring-boot-starter-test (#13420)
Bumps [org.springframework.boot:spring-boot-starter-test](https://github.com/spring-projects/spring-boot) from 2.7.17 to 2.7.18.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.17...v2.7.18)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-starter-test
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-29 21:09:41 +08:00
dependabot[bot] face8ae7f1
Bump org.springframework.boot:spring-boot-dependencies (#13418)
Bumps [org.springframework.boot:spring-boot-dependencies](https://github.com/spring-projects/spring-boot) from 2.7.17 to 2.7.18.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.17...v2.7.18)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-dependencies
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-29 21:09:28 +08:00
Owen.Cai d69ae9861b
fix listener hash code error (#13408)
Co-authored-by: caizhenqiu <caizhenqiu@visioninsight.com>
2023-11-29 21:04:42 +08:00
conghuhu e63d275eb6
Bump io.micrometer:micrometer-tracing-bom from 1.1.6 to 1.2.0 (#13397)
chore: compatibility between two versions through the existence of classes
2023-11-25 15:53:00 +08:00
earthchen 4d5d9d8afc
fix tri stub unary method overload (#13385)
* fix tri stub unary method overload

* fix tri stub unary method overload

* fix

* fix

* format

* format
2023-11-23 12:49:16 +08:00
dependabot[bot] 883195aeb9
Bump io.micrometer:micrometer-bom from 1.11.5 to 1.12.0 (#13395)
Bumps [io.micrometer:micrometer-bom](https://github.com/micrometer-metrics/micrometer) from 1.11.5 to 1.12.0.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.11.5...v1.12.0)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-bom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-21 10:22:21 +08:00
dependabot[bot] 6378c144f8
Bump io.opentelemetry:opentelemetry-bom from 1.31.0 to 1.32.0 (#13392)
Bumps [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) from 1.31.0 to 1.32.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.31.0...v1.32.0)

---
updated-dependencies:
- dependency-name: io.opentelemetry:opentelemetry-bom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-21 10:22:08 +08:00
dependabot[bot] 77bf43d40c
Bump org.testcontainers:testcontainers from 1.19.1 to 1.19.2 (#13389)
Bumps [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) from 1.19.1 to 1.19.2.
- [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.1...1.19.2)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-21 10:22:00 +08:00
dependabot[bot] aff714e5bb
Bump jackson_version from 2.15.3 to 2.16.0 (#13388)
Bumps `jackson_version` from 2.15.3 to 2.16.0.

Updates `com.fasterxml.jackson.core:jackson-core` from 2.15.3 to 2.16.0
- [Release notes](https://github.com/FasterXML/jackson-core/releases)
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.15.3...jackson-core-2.16.0)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.15.3 to 2.16.0
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.15.3 to 2.16.0

Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.15.3 to 2.16.0
- [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-minor
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.datatype:jackson-datatype-jsr310
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.fasterxml.jackson.core:jackson-annotations
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-21 10:21:47 +08:00
dependabot[bot] dae5b1cf46
Bump io.projectreactor:reactor-core from 3.5.11 to 3.6.0 (#13391)
Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.5.11 to 3.6.0.
- [Release notes](https://github.com/reactor/reactor-core/releases)
- [Commits](https://github.com/reactor/reactor-core/compare/v3.5.11...v3.6.0)

---
updated-dependencies:
- dependency-name: io.projectreactor:reactor-core
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-21 10:21:39 +08:00
dependabot[bot] cf5f9db785
Bump protobuf-java_version from 3.25.0 to 3.25.1 (#13394)
Bumps `protobuf-java_version` from 3.25.0 to 3.25.1.

Updates `com.google.protobuf:protobuf-java` from 3.25.0 to 3.25.1
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/compare/v3.25.0...v3.25.1)

Updates `com.google.protobuf:protobuf-java-util` from 3.25.0 to 3.25.1

---
updated-dependencies:
- dependency-name: com.google.protobuf:protobuf-java
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.google.protobuf:protobuf-java-util
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-21 10:21:23 +08:00
Albumen Kevin 6194b43a87 Bump version to 3.2.10-SNAPSHOT 2023-11-20 10:58:47 +08:00
Albumen Kevin 9be84a6a14 Merge branch '3.2.9-release' into apache-3.2 2023-11-20 10:58:26 +08:00
why技术 a1642ac07a
Update ReflectUtils.java (#13382)
Remove useless code
2023-11-20 10:51:25 +08:00
Albumen Kevin 43e78d1298
Enhance logs for none serializable (#13326) 2023-11-20 10:14:18 +08:00
Albumen Kevin 43e513d2da Merge branch 'apache-3.2' into 3.2.9-release 2023-11-16 15:58:29 +08:00
Albumen Kevin a8b83823dc
Fix generic type result copy in InjvmInvoker (#13351) 2023-11-16 15:56:25 +08:00
Albumen Kevin 8eaa5f5ebd Prepare 3.2.9 release 2023-11-16 15:51:16 +08:00
Albumen Kevin 5df704b67c
Fix go away handler (#13376) 2023-11-16 15:26:33 +08:00
TomlongTK b74cf5be3f
Fix async generic method (#13336) 2023-11-15 14:05:17 +08:00
SaaiVenkat 27e9877620
Fix order dependent tests in `InternalThreadLocalTest` (#13361)
* Fix order dependent tests in InternalThreadLocalTest

* Fix order dependent tests in InternalThreadLocalTest
2023-11-15 14:04:38 +08:00
Albumen Kevin 8daa3dc5f0
Fix dubbo.enabled=false not work in actuator configurators (#13360)
* Fix dubbo.enabled=false not work in actuator configurators

* Fix style

* Fix style
2023-11-15 11:36:04 +08:00
Linchen Xu 7c3e592ebb
Optimize tests in spring-boot-compatible (#13267)
* optimize testsuite in spring-boot-compatible

* add license

* format code using maven spotless
2023-11-14 19:09:12 +08:00
dependabot[bot] 40132a827e
Bump netty4_version from 4.1.100.Final to 4.1.101.Final (#13352)
Bumps `netty4_version` from 4.1.100.Final to 4.1.101.Final.

Updates `io.netty:netty-all` from 4.1.100.Final to 4.1.101.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.100.Final...netty-4.1.101.Final)

Updates `io.netty:netty-bom` from 4.1.100.Final to 4.1.101.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.100.Final...netty-4.1.101.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-13 17:39:34 +08:00
Albumen Kevin c2b273e44a Update java version 2023-11-13 15:06:03 +08:00
Albumen Kevin bc749fd356 Update lint 2023-11-13 11:06:21 +08:00
Albumen Kevin b9e9369795 Fix dubbo-all not included 2023-11-13 11:01:14 +08:00
Albumen Kevin 28b2763ec0 Bump version to 3.2.9-SNAPSHOT 2023-11-13 10:06:34 +08:00
Albumen Kevin f77da8604b Merge branch '3.2.8-release' into apache-3.2
# Conflicts:
#	dubbo-dependencies-bom/pom.xml
#	dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml
#	dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml
#	pom.xml
2023-11-13 10:05:35 +08:00
huazhongming 2ca55a6fad
Fix ci action name (#13337)
Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2023-11-09 13:40:00 +08:00
dependabot[bot] 9cb36bc2ed
Bump fabric8_kubernetes_version from 6.9.1 to 6.9.2 (#13315)
Bumps `fabric8_kubernetes_version` from 6.9.1 to 6.9.2.

Updates `io.fabric8:kubernetes-client` from 6.9.1 to 6.9.2
- [Release notes](https://github.com/fabric8io/kubernetes-client/releases)
- [Changelog](https://github.com/fabric8io/kubernetes-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fabric8io/kubernetes-client/compare/v6.9.1...v6.9.2)

Updates `io.fabric8:kubernetes-server-mock` from 6.9.1 to 6.9.2

---
updated-dependencies:
- dependency-name: io.fabric8:kubernetes-client
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.fabric8:kubernetes-server-mock
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-07 20:07:50 +08:00
huazhongming 730695a7a2
[3.2]Use spotless to format the code (#13320)
* Use spotless to format the code

Signed-off-by: crazyhzm <crazyhzm@gmail.com>

* Support develop with JDK 21

Signed-off-by: crazyhzm <crazyhzm@gmail.com>

---------

Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2023-11-07 15:40:13 +08:00
crazyhzm 04f134a168 Upgrade spotless version
Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2023-11-06 20:18:10 +08:00
huazhongming c1ed5ca382
spotless excludes licenseheader (#13319)
Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2023-11-06 20:13:12 +08:00
huazhongming 1a24e72653
Support spotless (#13311)
Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2023-11-06 19:21:13 +08:00
dependabot[bot] 6842202891
Bump protobuf-java_version from 3.24.4 to 3.25.0 (#13313)
Bumps `protobuf-java_version` from 3.24.4 to 3.25.0.

Updates `com.google.protobuf:protobuf-java` from 3.24.4 to 3.25.0
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/compare/v3.24.4...v3.25.0)

Updates `com.google.protobuf:protobuf-java-util` from 3.24.4 to 3.25.0

---
updated-dependencies:
- dependency-name: com.google.protobuf:protobuf-java
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.google.protobuf:protobuf-java-util
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-06 16:46:27 +08:00
阿魁 c373ce10fe
Added scheduler closure check during RegistryNotifier notify. (#13273)
* Added scheduler closure check during RegistryNotifier notify.

* Added logs.

* Updated logs.

* Updated logs.

* Updated logs.

* Add URL.
2023-11-06 16:46:04 +08:00
ChaoChao 2aca2e383b
Update com.alibaba.fastjson2:fastjson2: 2.0.41 -> 2.0.42 (#13309) 2023-11-06 11:39:33 +08:00
Albumen Kevin c22a40b87d
Fix unit tests failed on JDK8 (#13296) 2023-11-02 09:52:31 +08:00
Linchen Xu 46741b6c16
remove unused method in ScopeBeanFactory.java (#13289) 2023-11-01 20:33:53 +08:00
dependabot[bot] 3d94df9c42
Bump org.codehaus.mojo:license-maven-plugin from 2.2.0 to 2.3.0 (#13281)
Bumps [org.codehaus.mojo:license-maven-plugin](https://github.com/mojohaus/license-maven-plugin) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/mojohaus/license-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/license-maven-plugin/compare/2.2.0...2.3.0)

---
updated-dependencies:
- dependency-name: org.codehaus.mojo:license-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-01 20:17:32 +08:00
dependabot[bot] 2de4d0af17
Bump fabric8_kubernetes_version from 6.9.0 to 6.9.1 (#13280)
Bumps `fabric8_kubernetes_version` from 6.9.0 to 6.9.1.

Updates `io.fabric8:kubernetes-client` from 6.9.0 to 6.9.1
- [Release notes](https://github.com/fabric8io/kubernetes-client/releases)
- [Changelog](https://github.com/fabric8io/kubernetes-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fabric8io/kubernetes-client/compare/v6.9.0...v6.9.1)

Updates `io.fabric8:kubernetes-server-mock` from 6.9.0 to 6.9.1

---
updated-dependencies:
- dependency-name: io.fabric8:kubernetes-client
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.fabric8:kubernetes-server-mock
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-01 20:17:21 +08:00
TomlongTK 1a6dbbe2ca
Judging qos is in started state when stopping qos (#13271) 2023-11-01 20:04:31 +08:00
huazhongming 34fda039b9
Change the log level when the rest entity is changed (#13250)
* Change the log level when the rest entity is changed

Signed-off-by: crazyhzm <crazyhzm@gmail.com>

* check if debug level is enabled

Signed-off-by: crazyhzm <crazyhzm@gmail.com>

---------

Signed-off-by: crazyhzm <crazyhzm@gmail.com>
2023-11-01 19:52:20 +08:00
Albumen Kevin 6b4e13adf7 Merge branch 'apache-3.2' into 3.2.8-release 2023-11-01 19:37:21 +08:00
Albumen Kevin aa631cd362
Revert "Protobuf method not allow override (#13155)" (#13295)
This reverts commit 416374cd78.
2023-11-01 19:34:44 +08:00
Albumen Kevin f03c28e41f Prepare 3.2.8 release 2023-11-01 19:19:56 +08:00
Albumen Kevin 06e9410f68
Fix MappingListener override in ServiceDiscoveryRegistry (#13277) 2023-11-01 19:16:19 +08:00
Albumen Kevin 6b634b7650
Fix service key params when remove service instance listener (#13272) 2023-10-27 17:46:19 +08:00
aofall ef7217abf9
Modify suitable log level for the cache operate (#13263) 2023-10-27 13:38:55 +08:00
JYZ 91462702f2
fix: jackson deserialization,not fail on unknown properties. (#13249)
Co-authored-by: 贾彦昭 <jiayanzhao@youzan.com>
2023-10-24 10:19:51 +08:00
dependabot[bot] 90319a279c
Bump org.springframework.boot:spring-boot-dependencies (#13251)
Bumps [org.springframework.boot:spring-boot-dependencies](https://github.com/spring-projects/spring-boot) from 2.7.16 to 2.7.17.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.16...v2.7.17)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-dependencies
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-24 10:08:23 +08:00
dependabot[bot] 751de72404
Bump grpc.version from 1.58.0 to 1.59.0 (#13252)
Bumps `grpc.version` from 1.58.0 to 1.59.0.

Updates `io.grpc:grpc-core` from 1.58.0 to 1.59.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.58.0...v1.59.0)

Updates `io.grpc:grpc-stub` from 1.58.0 to 1.59.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.58.0...v1.59.0)

Updates `io.grpc:grpc-protobuf` from 1.58.0 to 1.59.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.58.0...v1.59.0)

Updates `io.grpc:grpc-context` from 1.58.0 to 1.59.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.58.0...v1.59.0)

Updates `io.grpc:grpc-netty-shaded` from 1.58.0 to 1.59.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.58.0...v1.59.0)

Updates `io.grpc:grpc-netty` from 1.58.0 to 1.59.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.58.0...v1.59.0)

Updates `io.grpc:grpc-grpclb` from 1.58.0 to 1.59.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.58.0...v1.59.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 16:40:54 +08:00
dependabot[bot] 8efccfb409
Bump org.springframework.boot:spring-boot-maven-plugin (#13253)
Bumps [org.springframework.boot:spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.7.16 to 2.7.17.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.16...v2.7.17)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 16:39:24 +08:00
dependabot[bot] 782d9986b6
Bump org.springframework.boot:spring-boot-starter-test (#13254)
Bumps [org.springframework.boot:spring-boot-starter-test](https://github.com/spring-projects/spring-boot) from 2.7.16 to 2.7.17.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.16...v2.7.17)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-starter-test
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 16:39:11 +08:00
dependabot[bot] 299a165872
Bump swagger_version from 1.6.11 to 1.6.12 (#13255)
Bumps `swagger_version` from 1.6.11 to 1.6.12.

Updates `io.swagger:swagger-annotations` from 1.6.11 to 1.6.12

Updates `io.swagger:swagger-jaxrs` from 1.6.11 to 1.6.12

---
updated-dependencies:
- dependency-name: io.swagger:swagger-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: io.swagger:swagger-jaxrs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 16:39:00 +08:00
dependabot[bot] 7565ef6b8a
Bump spring-boot.version from 2.7.16 to 2.7.17 (#13256)
Bumps `spring-boot.version` from 2.7.16 to 2.7.17.

Updates `org.springframework.boot:spring-boot-starter` from 2.7.16 to 2.7.17
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.16...v2.7.17)

Updates `org.springframework.boot:spring-boot-autoconfigure` from 2.7.16 to 2.7.17
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.16...v2.7.17)

Updates `org.springframework.boot:spring-boot-starter-logging` from 2.7.16 to 2.7.17
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.16...v2.7.17)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-starter
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework.boot:spring-boot-autoconfigure
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework.boot:spring-boot-starter-logging
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 16:32:44 +08:00
dependabot[bot] ccb282b397
Bump org.springframework.security:spring-security-bom (#13257)
Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 5.8.7 to 5.8.8.
- [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.7...5.8.8)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 16:32:30 +08:00
dependabot[bot] de91ad817e
Bump org.jacoco:jacoco-maven-plugin from 0.8.10 to 0.8.11 (#13258)
Bumps [org.jacoco:jacoco-maven-plugin](https://github.com/jacoco/jacoco) from 0.8.10 to 0.8.11.
- [Release notes](https://github.com/jacoco/jacoco/releases)
- [Commits](https://github.com/jacoco/jacoco/compare/v0.8.10...v0.8.11)

---
updated-dependencies:
- dependency-name: org.jacoco:jacoco-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 16:32:14 +08:00
dependabot[bot] b95ff45e04
Bump org.graalvm.buildtools:native-maven-plugin from 0.9.27 to 0.9.28 (#13259)
Bumps [org.graalvm.buildtools:native-maven-plugin](https://github.com/graalvm/native-build-tools) from 0.9.27 to 0.9.28.
- [Release notes](https://github.com/graalvm/native-build-tools/releases)
- [Commits](https://github.com/graalvm/native-build-tools/compare/0.9.27...0.9.28)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 16:31:50 +08:00
JYZ 8a28c78d93
fix: lowerCase header (#13247)
Co-authored-by: 贾彦昭 <jiayanzhao@youzan.com>
2023-10-23 15:51:32 +08:00
Linchen Xu ad26a69d82
optimize AbstractConfigTest (#13243)
* optimize AbstractConfigTest

* Remove duplicate test in AbstractConfigTest

* add prop based on system's prop in test
2023-10-23 11:10:25 +08:00
zhengkaifor be15772ec3
feat: multiple支持 service discovery模式 (#13137)
* feat: multiple支持 service discovery模式

* feat: 去除无用代码

* feat: review问题修改

* feat: Translate into english

* feat:还原无用改动

* feat:还原无用改动

---------

Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-10-20 15:42:41 +08:00
Linchen Xu b41fe3ca35
Optimize MethodConfigTest (#13234) 2023-10-20 15:41:31 +08:00
Albumen Kevin fc0f88f4f2
Fix MigrationRule changing when load consumer default value (#13237) 2023-10-20 15:32:01 +08:00
xiaolou86 58bf28f8c0
Fix typo in ArgumentCallbackTest (#13233) 2023-10-19 15:27:26 +08:00
dependabot[bot] 99d6facb53
Bump netty4_version from 4.1.99.Final to 4.1.100.Final (#13209)
Bumps `netty4_version` from 4.1.99.Final to 4.1.100.Final.

Updates `io.netty:netty-all` from 4.1.99.Final to 4.1.100.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.99.Final...netty-4.1.100.Final)

Updates `io.netty:netty-bom` from 4.1.99.Final to 4.1.100.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.99.Final...netty-4.1.100.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-19 15:26:01 +08:00
Albumen Kevin 0d91d419a8
Remove direct dependency of alibaba dubbo (#13218)
* Remove direct dependency of alibaba dubbo

* disable in ExtensionLoader

* Fix license

* Fix test

* Fix case

* Fix test
2023-10-19 15:25:40 +08:00
宝宝爸师 416374cd78
Protobuf method not allow override (#13155)
* pb method not allow override

* pb method not allow override

* remove wildcard import

* if judgement split into 2 simple

* add pb method override ut&it

* modify pb method override exception msg

* update pb method override test case

* format code

* format code

* optimize import

* Optimize the isProtobufClass method

* fix sonarLint problems

* fix sonar problem

* use ProtobufUtils.class ClassLoader to load Protobuf Message

* format code

* protobufUtils add log

---------

Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
Co-authored-by: earthchen <earthchen1996@gmail.com>
2023-10-19 12:31:59 +08:00
suncairong163 f613d72bd2
jboss @Form support (#13201) 2023-10-19 10:20:52 +08:00
Albumen Kevin fa11b68a16
Only throws exception when exporting service (#13217) 2023-10-18 11:52:46 +08:00
Albumen Kevin c5efc65a99
Remove sync lock for lazy target (#13220) 2023-10-18 11:52:28 +08:00
Albumen Kevin 91594eccfa
Enhance logs following up #13228 (#13229) 2023-10-18 11:51:40 +08:00
Albumen Kevin f995ef506c
Fix triple method override (#13224)
* Fix triple method override

* Fix server

* Fix test
2023-10-18 11:39:33 +08:00
Albumen Kevin 02e486a1dc
Fix unable to receive go away frame (#13228)
* Fix unable to receive go away frame

* Rename

* rename
2023-10-18 11:38:57 +08:00
gzhao9 3f07e683a1
Refactor rpc utils test (#13214) 2023-10-18 10:06:35 +08:00
namelessssssssssss f82629f7f9
Fix wrong returnTypes for StubMethodDescriptor (#13223) 2023-10-18 09:44:56 +08:00
dependabot[bot] 7548a03fdc
Bump io.micrometer:micrometer-bom from 1.11.4 to 1.11.5 (#13210)
Bumps [io.micrometer:micrometer-bom](https://github.com/micrometer-metrics/micrometer) from 1.11.4 to 1.11.5.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.11.4...v1.11.5)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 17:30:30 +08:00
gzhao9 78bb3dc049
Update EchoFilterTest.java (#13215) 2023-10-17 16:55:42 +08:00
dependabot[bot] bf0522d7e0
Bump io.projectreactor:reactor-core from 3.5.10 to 3.5.11 (#13208)
Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.5.10 to 3.5.11.
- [Release notes](https://github.com/reactor/reactor-core/releases)
- [Commits](https://github.com/reactor/reactor-core/compare/v3.5.10...v3.5.11)

---
updated-dependencies:
- dependency-name: io.projectreactor:reactor-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 16:50:33 +08:00
dependabot[bot] e7a8fe007e
Bump net.bytebuddy:byte-buddy from 1.14.8 to 1.14.9 (#13211)
Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.14.8 to 1.14.9.
- [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.8...byte-buddy-1.14.9)

---
updated-dependencies:
- dependency-name: net.bytebuddy:byte-buddy
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 16:20:40 +08:00
dependabot[bot] 2f2c997723
Bump bytebuddy.version from 1.14.8 to 1.14.9 (#13205)
Bumps `bytebuddy.version` from 1.14.8 to 1.14.9.

Updates `net.bytebuddy:byte-buddy` from 1.14.8 to 1.14.9
- [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.8...byte-buddy-1.14.9)

Updates `net.bytebuddy:byte-buddy-agent` from 1.14.8 to 1.14.9
- [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.8...byte-buddy-1.14.9)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 16:08:40 +08:00
dependabot[bot] 14834eded4
Bump org.eclipse.jetty:jetty-maven-plugin (#13212)
Bumps [org.eclipse.jetty:jetty-maven-plugin](https://github.com/eclipse/jetty.project) from 9.4.52.v20230823 to 9.4.53.v20231009.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.52.v20230823...jetty-9.4.53.v20231009)

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 16:08:28 +08:00
dependabot[bot] 9cbd55766a
Bump jackson_version from 2.15.2 to 2.15.3 (#13203)
Bumps `jackson_version` from 2.15.2 to 2.15.3.

Updates `com.fasterxml.jackson.core:jackson-core` from 2.15.2 to 2.15.3
- [Release notes](https://github.com/FasterXML/jackson-core/releases)
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.15.2...jackson-core-2.15.3)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.15.2 to 2.15.3
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.datatype:jackson-datatype-jsr310` from 2.15.2 to 2.15.3

Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.15.2 to 2.15.3
- [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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 16:08:04 +08:00
dependabot[bot] 8f6094b352
Bump jetty_version from 9.4.52.v20230823 to 9.4.53.v20231009 (#13206)
Bumps `jetty_version` from 9.4.52.v20230823 to 9.4.53.v20231009.

Updates `org.eclipse.jetty:jetty-server` from 9.4.52.v20230823 to 9.4.53.v20231009
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.52.v20230823...jetty-9.4.53.v20231009)

Updates `org.eclipse.jetty:jetty-servlet` from 9.4.52.v20230823 to 9.4.53.v20231009
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.52.v20230823...jetty-9.4.53.v20231009)

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-server
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-servlet
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 16:07:54 +08:00
dependabot[bot] 310751159d
Bump io.micrometer:micrometer-tracing-bom from 1.1.5 to 1.1.6 (#13207)
Bumps [io.micrometer:micrometer-tracing-bom](https://github.com/micrometer-metrics/tracing) from 1.1.5 to 1.1.6.
- [Release notes](https://github.com/micrometer-metrics/tracing/releases)
- [Commits](https://github.com/micrometer-metrics/tracing/compare/v1.1.5...v1.1.6)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-tracing-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 16:07:41 +08:00
dependabot[bot] 2bed423428
Bump io.micrometer:micrometer-core from 1.11.4 to 1.11.5 (#13204)
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.11.4 to 1.11.5.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.11.4...v1.11.5)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-17 16:07:26 +08:00
JYZ a4a3fd769f
fix: set default value for accept (#13199)
Co-authored-by: 贾彦昭 <jiayanzhao@youzan.com>
2023-10-14 11:14:34 +08:00
andotorg 4782142980
Fix #13135 for testing (#13139)
* fix https://github.com/apache/dubbo/issues/13135

* fix Using the '.*' form of import should be avoided build error

* nashorn-core jar scope is test
2023-10-13 17:43:30 +08:00
dependabot[bot] c4120feb8f
Bump org.apache.zookeeper:zookeeper (#13194)
Bumps org.apache.zookeeper:zookeeper from 3.8.1 to 3.8.3.

---
updated-dependencies:
- dependency-name: org.apache.zookeeper:zookeeper
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-13 16:54:43 +08:00
dependabot[bot] 14d68e51f7
Bump org.apache.zookeeper:zookeeper (#13195)
Bumps org.apache.zookeeper:zookeeper from 3.7.0 to 3.7.2.

---
updated-dependencies:
- dependency-name: org.apache.zookeeper:zookeeper
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-13 16:54:35 +08:00
dependabot[bot] ef3b7d700f
Bump org.apache.zookeeper:zookeeper in /dubbo-test/dubbo-test-check (#13192)
Bumps org.apache.zookeeper:zookeeper from 3.4.14 to 3.7.2.

---
updated-dependencies:
- dependency-name: org.apache.zookeeper:zookeeper
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-13 16:54:01 +08:00
dependabot[bot] e6d0be3720
Bump org.apache.zookeeper:zookeeper (#13191)
Bumps org.apache.zookeeper:zookeeper from 3.8.1 to 3.8.3.

---
updated-dependencies:
- dependency-name: org.apache.zookeeper:zookeeper
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-13 16:53:26 +08:00
dependabot[bot] f23829af91
Bump org.apache.zookeeper:zookeeper (#13190)
Bumps org.apache.zookeeper:zookeeper from 3.8.1 to 3.8.3.

---
updated-dependencies:
- dependency-name: org.apache.zookeeper:zookeeper
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-13 16:53:12 +08:00
TomlongTK c10d95b56a
Fix RejectException (#12950)
* fix RejectException null

* fix reference

* use isTerminated judge Executor

* use isShutdown judge Executor

---------

Co-authored-by: earthchen <earthchen1996@gmail.com>
2023-10-11 23:32:30 +08:00
TomlongTK 069fd5e1ce
Fix triple client stream executor (#13178)
* Fix error stream executor

* add ping pong for tri protocol (#12955)

* add ping pong for tri protocol

* add ping pong for tri protocol

* add ping pong for tri protocol

* add ping pong for tri protocol

* Revert "add ping pong for tri protocol (#12955)"

This reverts commit 5a3be17bf1.

---------

Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
Co-authored-by: icodening <cleverbn96@gmail.com>
2023-10-11 23:23:25 +08:00
icodening b84c1386bb
add ping pong for tri protocol (#12955)
* add ping pong for tri protocol

* add ping pong for tri protocol

* add ping pong for tri protocol

* add ping pong for tri protocol
2023-10-11 11:17:41 +08:00
Albumen Kevin a4ca07087e
Update candidate version in actions workflow (#13179) 2023-10-11 09:34:38 +08:00
gzhao9 5d979c18f2
Refactor the test in the package org. Apache. Dubbo. Reactive. (#13175) 2023-10-10 15:52:47 +08:00
TomlongTK 3ca35045a0
Release ByteBuf when handle onData failed (#13102)
* Release ByteBuf when handle onData failed

* Runnable with clean function

* Fix license

* Release ByteBuf in onData method, and refactor some sonar issue.

* Remove unused dependency

---------

Co-authored-by: earthchen <earthchen1996@gmail.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-10-10 10:28:15 +08:00
dependabot[bot] 2d9f36adb2
Bump com.alibaba.fastjson2:fastjson2 from 2.0.40 to 2.0.41 (#13170)
Bumps [com.alibaba.fastjson2:fastjson2](https://github.com/alibaba/fastjson2) from 2.0.40 to 2.0.41.
- [Release notes](https://github.com/alibaba/fastjson2/releases)
- [Commits](https://github.com/alibaba/fastjson2/compare/2.0.40...2.0.41)

---
updated-dependencies:
- dependency-name: com.alibaba.fastjson2:fastjson2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-10 10:20:30 +08:00
gzhao9 49dd3d0236
Update StubInvocationUtilTest.java (#13174) 2023-10-10 10:12:19 +08:00
Albumen Kevin db53115d10
Update zk address in workflow (#13177) 2023-10-10 10:07:38 +08:00
TomlongTK a45f50d8ac
Enhance application-level registry notify message (#13172)
* Enhance application-level registry notify message

* Recovery complete message, because it works in single thread.
2023-10-10 10:06:18 +08:00
dependabot[bot] 5bef1fef65
Bump protobuf-java_version from 3.24.3 to 3.24.4 (#13167)
Bumps `protobuf-java_version` from 3.24.3 to 3.24.4.

Updates `com.google.protobuf:protobuf-java` from 3.24.3 to 3.24.4
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/compare/v3.24.3...v3.24.4)

Updates `com.google.protobuf:protobuf-java-util` from 3.24.3 to 3.24.4

---
updated-dependencies:
- dependency-name: com.google.protobuf:protobuf-java
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.google.protobuf:protobuf-java-util
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-09 17:30:30 +08:00
dependabot[bot] f05a233859
Bump fabric8_kubernetes_version from 6.8.1 to 6.9.0 (#13166)
Bumps `fabric8_kubernetes_version` from 6.8.1 to 6.9.0.

Updates `io.fabric8:kubernetes-client` from 6.8.1 to 6.9.0
- [Release notes](https://github.com/fabric8io/kubernetes-client/releases)
- [Changelog](https://github.com/fabric8io/kubernetes-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fabric8io/kubernetes-client/compare/v6.8.1...v6.9.0)

Updates `io.fabric8:kubernetes-server-mock` from 6.8.1 to 6.9.0

---
updated-dependencies:
- dependency-name: io.fabric8:kubernetes-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: io.fabric8:kubernetes-server-mock
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-09 17:27:02 +08:00
dependabot[bot] 25ea56b7b8
Bump io.opentelemetry:opentelemetry-bom from 1.30.1 to 1.31.0 (#13168)
Bumps [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) from 1.30.1 to 1.31.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.30.1...v1.31.0)

---
updated-dependencies:
- dependency-name: io.opentelemetry:opentelemetry-bom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-09 17:19:22 +08:00
dependabot[bot] 7ecb1814f5
Bump org.testcontainers:testcontainers from 1.19.0 to 1.19.1 (#13169)
Bumps [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) from 1.19.0 to 1.19.1.
- [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.0...1.19.1)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-09 17:01:28 +08:00
Albumen Kevin e9e08ee383
Fix zk dependency in metadata-report and config-center (#13159) 2023-10-09 09:33:22 +08:00
Albumen Kevin b2e081e513
Update zookeeper registry dependencies (#13150)
* Update zookeeper registry dependencies

* Fix compile

* Update zookeeper registry dependencies
2023-10-08 10:07:35 +08:00
Albumen Kevin 300198b8e1 bump to 3.2.8-SNAPSHOT 2023-10-07 13:56:11 +08:00
Albumen Kevin 831d8e24a0 Merge branch '3.2.7-release' into apache-3.2 2023-10-07 13:55:39 +08:00
dependabot[bot] edd3efa5b9
Bump netty4_version from 4.1.97.Final to 4.1.99.Final (#13148)
Bumps `netty4_version` from 4.1.97.Final to 4.1.99.Final.

Updates `io.netty:netty-all` from 4.1.97.Final to 4.1.99.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.97.Final...netty-4.1.99.Final)

Updates `io.netty:netty-bom` from 4.1.97.Final to 4.1.99.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.97.Final...netty-4.1.99.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-07 13:38:47 +08:00
dependabot[bot] dff06a6cb8
Bump org.xerial.snappy:snappy-java from 1.1.10.4 to 1.1.10.5 (#13149)
Bumps [org.xerial.snappy:snappy-java](https://github.com/xerial/snappy-java) from 1.1.10.4 to 1.1.10.5.
- [Release notes](https://github.com/xerial/snappy-java/releases)
- [Commits](https://github.com/xerial/snappy-java/compare/v1.1.10.4...v1.1.10.5)

---
updated-dependencies:
- dependency-name: org.xerial.snappy:snappy-java
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-07 10:11:00 +08:00
Albumen Kevin dc62adb612
Update to curator 5 by default in dependencies bom (#13147) 2023-10-04 09:04:10 +08:00
Albumen Kevin 7f09a9554a Merge branch 'apache-3.2' into 3.2.7-release 2023-09-30 10:38:39 +08:00
Albumen Kevin 8b0bd8a043
Remove duplicated class (#13144) 2023-09-30 10:38:24 +08:00
Albumen Kevin 53f1391c92 Merge branch 'apache-3.2' into 3.2.7-release 2023-09-30 10:12:18 +08:00
Albumen Kevin 70600eb632
Add metrics version compare (#13104) 2023-09-30 10:06:21 +08:00
Albumen Kevin 9dc5bf1944
Enhance spring security class check (#13136)
* Enhance spring security class check

* Catch exception
2023-09-29 09:44:41 +08:00
Albumen Kevin 34c5bbf713
Support customize collector sync period (#13140) 2023-09-28 11:09:06 +08:00
KitwahSin 0d88f62830
fix:onnext callback method would be invalid when the provider method with triple protocol is overloaded. (#13057)
* For the same method, rpcType.BI_STREAM and rpcType.SERVER_STREAM cannot exist at the same time.

* remove unused imported item.

* add exception test.

* add licence comment.

---------

Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-09-27 15:31:25 +08:00
songxiaosheng 26174f0548
🐛 destory xds exchanger null (#13086) 2023-09-26 20:32:54 +08:00
Albumen Kevin 4146082453
Skip refresh registry config for internal service (#13134) 2023-09-26 18:55:08 +08:00
Albumen Kevin 4655d783e6 Merge branch 'apache-3.2' into 3.2.7-release 2023-09-26 16:30:31 +08:00
Albumen Kevin bd5d158d1b Fix ReplierDispatcherTest test case in Windows platform 2023-09-26 16:30:03 +08:00
Albumen Kevin e0ca51d0b0 Update ReplierDispatcherTest test case 2023-09-26 15:29:31 +08:00
Albumen Kevin bcce90a31e Prepare 3.2.7 release 2023-09-26 14:03:17 +08:00
Albumen Kevin 5aa99c526f
Fix invoker ignored to destroy when unlock failed (#13123)
* Fix invoker ignored to destroy when unlock failed

* update code
2023-09-26 11:26:04 +08:00
Albumen Kevin 66eaadd63c
Enhance AbstractMetadataReportTest test case (#13126)
* Enhance AbstractMetadataReportTest test case

* Enhance AbstractMetadataReportTest test case
2023-09-26 11:25:57 +08:00
Albumen Kevin dad55714ca
Fix Hessian Serializer Factory concurrent issue (#13122) 2023-09-26 10:44:07 +08:00
Albumen Kevin 327b808689
Enhance unit test cases in netty4 (#13124) 2023-09-26 09:42:21 +08:00
wien13 6981a0f847
Fix ClassPool issue when multi-classloader (#13015) 2023-09-25 19:36:39 +08:00
songxiaosheng 5903d0be8d
opt unuse label (#13034)
*  opt unuse label

*  opt unuse label

* ♻️ application metrics add commit id

* ♻️ refact application tag name

*  remove unuse test line

*  add application metrics test

*  remove unuse test line

*  remove unuse test line
2023-09-25 19:27:29 +08:00
dependabot[bot] 9422e78abb
Bump org.apache.commons:commons-compress in /dubbo-test/dubbo-test-check (#13058)
Bumps org.apache.commons:commons-compress from 1.23.0 to 1.24.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-compress
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-09-25 19:26:55 +08:00
dependabot[bot] fd43f61ca8
Bump org.springframework.boot:spring-boot-starter-test (#13115)
Bumps [org.springframework.boot:spring-boot-starter-test](https://github.com/spring-projects/spring-boot) from 2.7.15 to 2.7.16.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.15...v2.7.16)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-starter-test
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 19:03:31 +08:00
dependabot[bot] b332069fa7
Bump org.springframework.boot:spring-boot-maven-plugin (#13113)
Bumps [org.springframework.boot:spring-boot-maven-plugin](https://github.com/spring-projects/spring-boot) from 2.7.15 to 2.7.16.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.15...v2.7.16)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 19:03:18 +08:00
Albumen Kevin da801bf177
Remove identity hash code usage (#13112) 2023-09-25 18:43:04 +08:00
dependabot[bot] 579ac95dc0
Bump spring-boot.version from 2.7.15 to 2.7.16 (#13114)
Bumps `spring-boot.version` from 2.7.15 to 2.7.16.

Updates `org.springframework.boot:spring-boot-starter` from 2.7.15 to 2.7.16
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.15...v2.7.16)

Updates `org.springframework.boot:spring-boot-autoconfigure` from 2.7.15 to 2.7.16
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.15...v2.7.16)

Updates `org.springframework.boot:spring-boot-starter-logging` from 2.7.15 to 2.7.16
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.15...v2.7.16)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-starter
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework.boot:spring-boot-autoconfigure
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.springframework.boot:spring-boot-starter-logging
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 16:52:26 +08:00
dependabot[bot] 86b9b3c41c
Bump org.springframework.security:spring-security-bom (#13117)
Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 5.8.6 to 5.8.7.
- [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.6...5.8.7)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 16:52:12 +08:00
dependabot[bot] a8e9abc6df
Bump org.xerial.snappy:snappy-java from 1.1.10.3 to 1.1.10.4 (#13118)
Bumps [org.xerial.snappy:snappy-java](https://github.com/xerial/snappy-java) from 1.1.10.3 to 1.1.10.4.
- [Release notes](https://github.com/xerial/snappy-java/releases)
- [Commits](https://github.com/xerial/snappy-java/compare/v1.1.10.3...v1.1.10.4)

---
updated-dependencies:
- dependency-name: org.xerial.snappy:snappy-java
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 16:51:41 +08:00
dependabot[bot] d10faf0b52
Bump org.springframework.boot:spring-boot-dependencies (#13119)
Bumps [org.springframework.boot:spring-boot-dependencies](https://github.com/spring-projects/spring-boot) from 2.7.15 to 2.7.16.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.15...v2.7.16)

---
updated-dependencies:
- dependency-name: org.springframework.boot:spring-boot-dependencies
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 16:51:22 +08:00
Albumen Kevin da5c7ed33d
Fix generic array being changed (#13103) 2023-09-25 09:40:18 +08:00
Albumen Kevin 0fb1e4c4c6
Enhance unit test cases from scheduled tasks (#13099) 2023-09-22 20:23:32 +08:00
Albumen Kevin 705d96e9f6
Fix uts on 3.2 (#13090) 2023-09-21 14:07:14 +08:00
Albumen Kevin 767eaa8ba7
Fix code style (#13092) 2023-09-21 11:31:51 +08:00
Albumen Kevin 7a660fafd1
Test on JDK 21 (#13083)
* Test on JDK 21

* Fix 21
2023-09-20 20:29:24 +08:00
dependabot[bot] 60a4aa19f4
Bump io.micrometer:micrometer-tracing-bom from 1.1.4 to 1.1.5 (#13068)
Bumps [io.micrometer:micrometer-tracing-bom](https://github.com/micrometer-metrics/tracing) from 1.1.4 to 1.1.5.
- [Release notes](https://github.com/micrometer-metrics/tracing/releases)
- [Commits](https://github.com/micrometer-metrics/tracing/compare/v1.1.4...v1.1.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-09-20 15:14:18 +08:00
TomlongTK 2697652e74
Fix concurrency problem when receive ResetFrame and HeadFrame (#13062) 2023-09-20 10:19:16 +08:00
xuziheng edaaa16121
Add volatile on destroyed filed ensure visibility (#13061)
Co-authored-by: ningle <xxuziheng@163.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-09-20 09:45:28 +08:00
liaozan f2dbc84cac
Align logic between JValidatorNew and JValidator (#13063)
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-09-20 09:44:23 +08:00
dependabot[bot] ee8c823f2d
Bump io.micrometer:micrometer-bom from 1.11.3 to 1.11.4 (#13069)
Bumps [io.micrometer:micrometer-bom](https://github.com/micrometer-metrics/micrometer) from 1.11.3 to 1.11.4.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.11.3...v1.11.4)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-09-20 09:42:44 +08:00
dependabot[bot] da3accacb2
Bump org.graalvm.buildtools:native-maven-plugin from 0.9.26 to 0.9.27 (#13070)
Bumps [org.graalvm.buildtools:native-maven-plugin](https://github.com/graalvm/native-build-tools) from 0.9.26 to 0.9.27.
- [Release notes](https://github.com/graalvm/native-build-tools/releases)
- [Commits](https://github.com/graalvm/native-build-tools/commits)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-09-20 09:42:35 +08:00
dependabot[bot] dcf4cff51b
Bump io.opentelemetry:opentelemetry-bom from 1.30.0 to 1.30.1 (#13071)
Bumps [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) from 1.30.0 to 1.30.1.
- [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.30.0...v1.30.1)

---
updated-dependencies:
- dependency-name: io.opentelemetry:opentelemetry-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-09-20 09:42:23 +08:00
dependabot[bot] a0f229935d
Bump io.micrometer:micrometer-core from 1.11.3 to 1.11.4 (#13072)
Bumps [io.micrometer:micrometer-core](https://github.com/micrometer-metrics/micrometer) from 1.11.3 to 1.11.4.
- [Release notes](https://github.com/micrometer-metrics/micrometer/releases)
- [Commits](https://github.com/micrometer-metrics/micrometer/compare/v1.11.3...v1.11.4)

---
updated-dependencies:
- dependency-name: io.micrometer:micrometer-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-09-20 09:42:13 +08:00
dependabot[bot] af490e68c1
Bump io.projectreactor:reactor-core from 3.5.9 to 3.5.10 (#13073)
Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.5.9 to 3.5.10.
- [Release notes](https://github.com/reactor/reactor-core/releases)
- [Commits](https://github.com/reactor/reactor-core/compare/v3.5.9...v3.5.10)

---
updated-dependencies:
- dependency-name: io.projectreactor:reactor-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-09-20 09:42:03 +08:00
dependabot[bot] 45d72b53bc
Bump bytebuddy.version from 1.14.7 to 1.14.8 (#13074)
Bumps `bytebuddy.version` from 1.14.7 to 1.14.8.

Updates `net.bytebuddy:byte-buddy` from 1.14.7 to 1.14.8
- [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.7...byte-buddy-1.14.8)

Updates `net.bytebuddy:byte-buddy-agent` from 1.14.7 to 1.14.8
- [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.7...byte-buddy-1.14.8)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-09-20 09:41:46 +08:00
dependabot[bot] 47643da11b
Bump net.bytebuddy:byte-buddy from 1.14.7 to 1.14.8 (#13075)
Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.14.7 to 1.14.8.
- [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.7...byte-buddy-1.14.8)

---
updated-dependencies:
- dependency-name: net.bytebuddy:byte-buddy
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-09-20 09:41:29 +08:00
Albumen Kevin 139a62ebb9
Fix qps time window unit (#13077) 2023-09-19 10:23:24 +08:00
songxiaosheng 575c3392ec
Service metrics (#13033)
*  support service metric level

*  support service metric level

*  support service metric level

*  support service metric level

*  add ServiceMetricsTest

*  add ServiceMetricsTest

*  add ServiceMetricsTest

*  servicelevel config init opt

*  servicelevel config init opt

*  servicelevel config init opt

*  servicelevel config init opt

*  servicelevel config init opt

---------

Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-09-19 10:22:58 +08:00
Albumen Kevin ade91c9b69
Fix unit test cases (#13076) 2023-09-19 10:19:23 +08:00
shj1995 ff561616e5
Fix Jakarta exception being casted in ExceptionFilter (#13054)
Co-authored-by: 石豪杰 <haojie.shi@i-hygeia.com>
2023-09-18 11:40:06 +08:00
liaozan 8a509e9601
Update jvalidator to support parameter name retrieval (#13029)
* Update jvalidator to support parameter name retrieval

* Add unit test when parameters are primitive types

* Remove unused code

* Trigger ci

* Fix testcase

* Add more test case

* Update as suggested
2023-09-13 17:12:25 +08:00
GiraffeTree d9db031469
fix: AbortPolicyWithReport concurrency issues https://github.com/apache/dubbo/issues/13042 (#13043) 2023-09-13 09:54:48 +08:00
wxbty e887bab83b
remove unuse code (#13036)
Co-authored-by: songxiaosheng <songxiaosheng@elastic.link>
2023-09-12 20:21:38 +08:00
Poison 52250b8a20
Fix incorrect timeout message (#13001)
* Fix incorrect timeout message

* Remove @Disabled annotation to enable unit test
2023-09-12 12:45:03 +08:00
dependabot[bot] d212f6554b
Bump grpc.version from 1.57.2 to 1.58.0 (#13037)
* Bump grpc.version from 1.57.2 to 1.58.0

Bumps `grpc.version` from 1.57.2 to 1.58.0.

Updates `io.grpc:grpc-core` from 1.57.2 to 1.58.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.57.2...v1.58.0)

Updates `io.grpc:grpc-stub` from 1.57.2 to 1.58.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.57.2...v1.58.0)

Updates `io.grpc:grpc-protobuf` from 1.57.2 to 1.58.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.57.2...v1.58.0)

Updates `io.grpc:grpc-context` from 1.57.2 to 1.58.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.57.2...v1.58.0)

Updates `io.grpc:grpc-netty-shaded` from 1.57.2 to 1.58.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.57.2...v1.58.0)

Updates `io.grpc:grpc-netty` from 1.57.2 to 1.58.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.57.2...v1.58.0)

Updates `io.grpc:grpc-grpclb` from 1.57.2 to 1.58.0
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.57.2...v1.58.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] <support@github.com>

* Fix compile

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Albumen Kevin <jhq0812@gmail.com>
2023-09-12 12:29:11 +08:00
dependabot[bot] 774642a2c9
Bump protobuf-java_version from 3.24.2 to 3.24.3 (#13038)
Bumps `protobuf-java_version` from 3.24.2 to 3.24.3.

Updates `com.google.protobuf:protobuf-java` from 3.24.2 to 3.24.3
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/compare/v3.24.2...v3.24.3)

Updates `com.google.protobuf:protobuf-java-util` from 3.24.2 to 3.24.3

---
updated-dependencies:
- dependency-name: com.google.protobuf:protobuf-java
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: com.google.protobuf:protobuf-java-util
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 17:18:03 +08:00
dependabot[bot] 72518a0dc1
Bump io.opentelemetry:opentelemetry-bom from 1.29.0 to 1.30.0 (#13039)
Bumps [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) from 1.29.0 to 1.30.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.29.0...v1.30.0)

---
updated-dependencies:
- dependency-name: io.opentelemetry:opentelemetry-bom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 17:17:54 +08:00
dependabot[bot] be54d8e61b
Bump org.graalvm.buildtools:native-maven-plugin from 0.9.25 to 0.9.26 (#13040)
Bumps [org.graalvm.buildtools:native-maven-plugin](https://github.com/graalvm/native-build-tools) from 0.9.25 to 0.9.26.
- [Release notes](https://github.com/graalvm/native-build-tools/releases)
- [Commits](https://github.com/graalvm/native-build-tools/compare/0.9.25...0.9.26)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 17:17:38 +08:00
Albumen Kevin 031da7b8ed Merge remote-tracking branch 'apache/3.2.6-release' into apache-3.2
# Conflicts:
#	dubbo-dependencies-bom/pom.xml
#	dubbo-dependencies/dubbo-dependencies-zookeeper-curator5/pom.xml
#	dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml
#	pom.xml
2023-09-11 17:11:48 +08:00
Albumen Kevin 0ba35d3704 Bump to 3.2.7-SNAPSHOT 2023-09-11 17:10:34 +08:00
Albumen Kevin 286c87bc26 Prepare 3.2.6 release 2023-09-11 17:10:34 +08:00
Andy Cheung 248449ada0
Add Javadoc of ErrorTypeAwareLogger. (#13032) 2023-09-11 16:00:55 +08:00
Albumen Kevin 4c4bcb7a25
Support disable metrics init and sync (#13025) 2023-09-10 17:18:22 +08:00
Albumen Kevin fe7c8eedb5
Fix triple generic invoke (#13021) 2023-09-08 10:29:15 +08:00
Albumen Kevin 843da6db6c
Fix test cases in scheduled test (#13020) 2023-09-08 09:36:16 +08:00
aofall 35746aaf5a
Fix rest protocol NPE when using apache-http-client (#12916) (#12984) 2023-09-05 11:22:21 +08:00
Nortyr cdd7a40564
Fixes #12765 (#12981) 2023-09-05 10:50:35 +08:00
Albumen Kevin 89e279739b Prepare 3.2.6 release 2023-09-04 17:19:57 +08:00
dependabot[bot] 8595711e99
Bump org.eclipse.jetty:jetty-maven-plugin (#13002)
Bumps [org.eclipse.jetty:jetty-maven-plugin](https://github.com/eclipse/jetty.project) from 9.4.51.v20230217 to 9.4.52.v20230823.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.51.v20230217...jetty-9.4.52.v20230823)

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 17:17:33 +08:00
dependabot[bot] dc6d37aac1
Bump jetty_version from 9.4.51.v20230217 to 9.4.52.v20230823 (#13003)
Bumps `jetty_version` from 9.4.51.v20230217 to 9.4.52.v20230823.

Updates `org.eclipse.jetty:jetty-server` from 9.4.51.v20230217 to 9.4.52.v20230823
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.51.v20230217...jetty-9.4.52.v20230823)

Updates `org.eclipse.jetty:jetty-servlet` from 9.4.51.v20230217 to 9.4.52.v20230823
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.51.v20230217...jetty-9.4.52.v20230823)

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-server
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-servlet
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 17:17:21 +08:00
dependabot[bot] 5bf698c368
Bump bytebuddy.version from 1.14.5 to 1.14.7 (#13004)
Bumps `bytebuddy.version` from 1.14.5 to 1.14.7.

Updates `net.bytebuddy:byte-buddy` from 1.14.5 to 1.14.7
- [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.5...byte-buddy-1.14.7)

Updates `net.bytebuddy:byte-buddy-agent` from 1.14.5 to 1.14.7
- [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.5...byte-buddy-1.14.7)

---
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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 17:17:13 +08:00
dependabot[bot] 60cbc4a5b6
Bump org.apache.thrift:libthrift from 0.18.1 to 0.19.0 (#13007)
Bumps [org.apache.thrift:libthrift](https://github.com/apache/thrift) from 0.18.1 to 0.19.0.
- [Release notes](https://github.com/apache/thrift/releases)
- [Changelog](https://github.com/apache/thrift/blob/master/CHANGES.md)
- [Commits](https://github.com/apache/thrift/compare/v0.18.1...v0.19.0)

---
updated-dependencies:
- dependency-name: org.apache.thrift:libthrift
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 17:17:00 +08:00
dependabot[bot] baec513773
Bump org.aspectj:aspectjweaver from 1.9.20 to 1.9.20.1 (#13006)
Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.20 to 1.9.20.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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 17:16:23 +08:00
dependabot[bot] a4280b20a4
Bump com.alibaba.fastjson2:fastjson2 from 2.0.39 to 2.0.40 (#13005)
Bumps [com.alibaba.fastjson2:fastjson2](https://github.com/alibaba/fastjson2) from 2.0.39 to 2.0.40.
- [Release notes](https://github.com/alibaba/fastjson2/releases)
- [Commits](https://github.com/alibaba/fastjson2/compare/2.0.39...2.0.40)

---
updated-dependencies:
- dependency-name: com.alibaba.fastjson2:fastjson2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-04 17:16:15 +08:00
suncairong163 168b657807
fix SerializationException (#13000) 2023-09-04 12:19:49 +08:00
Albumen Kevin af566233db
Support ignore refresh config (#12998) 2023-09-03 10:36:26 +08:00
Albumen Kevin e436f1eee9
Cleanup resoruce if qos start failed (#12993) 2023-09-01 15:07:39 +08:00
Albumen Kevin bfa46f59eb
Ignore start if scope model is LifeCycleManagedExternally (#12985) 2023-09-01 13:32:19 +08:00
Albumen Kevin 0bfd54cea4
Cleanup and throw exception if bind failed (#12987) 2023-09-01 13:03:33 +08:00
Albumen Kevin 8d9817f8af
Publish directory refresh event after connectivity check (#12988) 2023-08-31 19:30:36 +08:00
Albumen Kevin 025c078948
Check before init agg metrics (#12989) 2023-08-31 19:30:27 +08:00
3383 changed files with 67790 additions and 59057 deletions

View File

@ -55,3 +55,5 @@ github:
- http - http
- grpc - grpc
- web - web
collaborators:
- oxsean

View File

@ -19,13 +19,55 @@
# top-most EditorConfig file # top-most EditorConfig file
root = true root = true
# Unix-style newlines with a newline ending every file
[*] [*]
charset = utf-8 charset = utf-8
end_of_line = lf end_of_line = lf
insert_final_newline = true
# 4 space indentation
[*.{java,xml}]
indent_style = space
indent_size = 4 indent_size = 4
indent_style = space
tab_width = 4
max_line_length = 120
insert_final_newline = true
trim_trailing_whitespace = true
[*.java]
ij_java_continuation_indent_size = 8
ij_java_keep_control_statement_in_one_line = false
ij_java_for_brace_force = always
ij_java_if_brace_force = always
ij_java_keep_first_column_comment = false
ij_java_keep_line_breaks = false
ij_java_keep_simple_blocks_in_one_line = true
ij_java_keep_simple_classes_in_one_line = true
ij_java_keep_simple_lambdas_in_one_line = true
ij_java_keep_simple_methods_in_one_line = true
ij_java_keep_blank_lines_in_code = 1
ij_java_keep_blank_lines_in_declarations = 1
ij_java_class_count_to_use_import_on_demand = 999
ij_java_names_count_to_use_import_on_demand = 999
ij_java_imports_layout = org.apache.dubbo.**, |, javax.**, |, java.**, |, *, |, $*
ij_java_insert_inner_class_imports = true
ij_java_space_before_array_initializer_left_brace = true
ij_java_method_parameters_new_line_after_left_paren = true
ij_java_wrap_comments = true
ij_java_wrap_long_lines = true
ij_java_enum_constants_wrap = split_into_lines
ij_java_method_call_chain_wrap = split_into_lines
ij_java_method_parameters_wrap = on_every_item
ij_java_extends_list_wrap = on_every_item
ij_java_extends_keyword_wrap = normal
ij_java_binary_operation_wrap = normal
ij_java_binary_operation_sign_on_next_line = true
[*.json]
tab_width = 2
[*.{yml,yaml}]
indent_size = 2
[*.xml]
ij_xml_attribute_wrap = off
ij_xml_text_wrap = off
ij_xml_keep_blank_lines = 1
[pom.xml]
indent_size = 2

88
.github/DISCUSSION_TEMPLATE/general.yml vendored Normal file
View File

@ -0,0 +1,88 @@
#
# 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.
#
title: "[General][Java SDK (Component)] xxx"
body:
- type: markdown
attributes:
value: |
<img src="https://dubbo.apache.org/imgs/nav_logo2.png" alt="Dubbo logo" height="90px" align="right" />
Thank you for finding the time to share your idea! We really appreciate the community efforts to improve Dubbo.
If you need to report a security issue, please visit [our security policy](https://github.com/apache/dubbo/security/policy).
**Dubbo is open for world wide collaboration, please make sure that all the content you provide is in English.**
Remember that non-English idea is quite not friendly for everyone, and might unable to get the response!
- type: checkboxes
attributes:
label: Pre-check
options:
- label: >
I am sure that all the content I provide is in English.
required: true
- type: dropdown
attributes:
label: Apache Dubbo Component
description: |
What Apache Dubbo component are you using? Apache Dubbo has many subprojects, please make sure
to choose the component that you want to ask questions about.
multiple: false
options:
- "Java SDK (apache/dubbo)"
- "Java Samples (apache/dubbo-samples)"
- "Java Integration Cases (apache/dubbo-integration-cases)"
- "Java SPI Extensions (apache/dubbo-spi-extensions)"
- "Java Benchmark (apache/dubbo-benchmark)"
- "Go SDK (apache/dubbo-go)"
- "Go Samples (apache/dubbo-go-samples)"
- "Rust SDK (apache/dubbo-rust)"
- "Node.js SDK (apache/dubbo-js)"
- "Python SDK (apache/dubbo-python)"
- "Kubernetes Integration (apache/dubbo-kubernetes)"
- "Pixiu Gateway (apache/dubbo-go-pixiu)"
- "Pixiu Gateway Samples (apache/dubbo-go-pixiu-samples)"
- "Admin (apache/dubbo-admin)"
- "Website (apache/dubbo-website)"
- "Awesome (apache/dubbo-awesome)"
- "Initializer (apache/dubbo-intializer)"
- "Others (apache/dubbo-xxx)"
validations:
required: true
- type: textarea
attributes:
label: Details
description: Anything you want to ask?
validations:
required: true
- type: checkboxes
attributes:
label: Code of Conduct
description: The Code of Conduct helps create a safe space for everyone. We require that everyone agrees to it.
options:
- label: >
I agree to follow this project's
[Code of Conduct](https://www.apache.org/foundation/policies/conduct)
required: true
- type: markdown
attributes:
value: "Thanks for completing our form!"

View File

@ -0,0 +1,88 @@
#
# 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.
#
title: "[Q/A][Java SDK (Component)] xxx"
body:
- type: markdown
attributes:
value: |
<img src="https://dubbo.apache.org/imgs/nav_logo2.png" alt="Dubbo logo" height="90px" align="right" />
Thank you for finding the time to report the question! We really appreciate the community efforts to improve Dubbo.
If you need to report a security issue, please visit [our security policy](https://github.com/apache/dubbo/security/policy).
**Dubbo is open for world wide collaboration, please make sure that all the content you provide is in English.**
Remember that non-English question is quite not friendly for everyone, and might unable to get the response!
- type: checkboxes
attributes:
label: Pre-check
options:
- label: >
I am sure that all the content I provide is in English.
required: true
- type: dropdown
attributes:
label: Apache Dubbo Component
description: |
What Apache Dubbo component are you using? Apache Dubbo has many subprojects, please make sure
to choose the component that you want to ask questions about.
multiple: false
options:
- "Java SDK (apache/dubbo)"
- "Java Samples (apache/dubbo-samples)"
- "Java Integration Cases (apache/dubbo-integration-cases)"
- "Java SPI Extensions (apache/dubbo-spi-extensions)"
- "Java Benchmark (apache/dubbo-benchmark)"
- "Go SDK (apache/dubbo-go)"
- "Go Samples (apache/dubbo-go-samples)"
- "Rust SDK (apache/dubbo-rust)"
- "Node.js SDK (apache/dubbo-js)"
- "Python SDK (apache/dubbo-python)"
- "Kubernetes Integration (apache/dubbo-kubernetes)"
- "Pixiu Gateway (apache/dubbo-go-pixiu)"
- "Pixiu Gateway Samples (apache/dubbo-go-pixiu-samples)"
- "Admin (apache/dubbo-admin)"
- "Website (apache/dubbo-website)"
- "Awesome (apache/dubbo-awesome)"
- "Initializer (apache/dubbo-intializer)"
- "Others (apache/dubbo-xxx)"
validations:
required: true
- type: textarea
attributes:
label: Details
description: Anything you want to know?
validations:
required: true
- type: checkboxes
attributes:
label: Code of Conduct
description: The Code of Conduct helps create a safe space for everyone. We require that everyone agrees to it.
options:
- label: >
I agree to follow this project's
[Code of Conduct](https://www.apache.org/foundation/policies/conduct)
required: true
- type: markdown
attributes:
value: "Thanks for completing our form!"

142
.github/ISSUE_TEMPLATE/1-bug.yml vendored Normal file
View File

@ -0,0 +1,142 @@
#
# 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.
#
name: Bug Report
description: File a bug report
title: "[Bug] "
labels: ["type/need-triage", "component/need-triage"]
projects: ["apache/337"]
body:
- type: markdown
attributes:
value: |
<img src="https://dubbo.apache.org/imgs/nav_logo2.png" alt="Dubbo logo" height="90px" align="right" />
Thank you for finding the time to report the problem! We really appreciate the community efforts to improve Dubbo.
Please make sure what you are reporting is indeed a bug with reproducible steps, if you want to ask questions
or share ideas, please [subscribe to our mailing list](mailto:dev-subscribe@dubbo.apache.org) and sent
emails to [our mailing list](mailto:dev@dubbo.apache.org), you can also head to our
[Discussion](https://github.com/apache/dubbo/discussions) tab.
If you need to report a security issue, please visit [our security policy](https://github.com/apache/dubbo/security/policy).
**Dubbo is open for world wide collaboration, please make sure that all the content you provide is in English.**
Remember that non-English issues is quite not friendly for everyone, and might unable to get the response!
- type: checkboxes
attributes:
label: Pre-check
options:
- label: >
I am sure that all the content I provide is in English.
required: true
- type: checkboxes
attributes:
label: Search before asking
description: >
Please make sure to search in the [issues](https://github.com/apache/dubbo/issues?q=is%3Aissue) first to see
whether the same issue was reported already.
options:
- label: >
I had searched in the [issues](https://github.com/apache/dubbo/issues?q=is%3Aissue) and found no similar
issues.
required: true
- type: dropdown
attributes:
label: Apache Dubbo Component
description: |
What Apache Dubbo component are you using? Apache Dubbo has many subprojects, please make sure
to choose the component that you want to ask questions about.
multiple: false
options:
- "Java SDK (apache/dubbo)"
- "Java Samples (apache/dubbo-samples)"
- "Java Integration Cases (apache/dubbo-integration-cases)"
- "Java SPI Extensions (apache/dubbo-spi-extensions)"
- "Java Benchmark (apache/dubbo-benchmark)"
validations:
required: true
- type: textarea
attributes:
label: Dubbo Version
description: "Which Dubbo version, JDK version and operating system did you use?"
placeholder: "Example: Dubbo Java 3.2.12, OpenJDK 1.8, Ubuntu 20.04"
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce this issue
description: >
Describe how to reproduce this issue.If you are not able to provide a reproducible case,
please open a [Discussion](https://github.com/apache/dubbo/discussions) instead.
placeholder: >
Please provide the context in which the problem occurred and explain what happened.
A [GitHub address] would be helpful for maintainers to reproduce the problem.
validations:
required: true
- type: textarea
attributes:
label: What you expected to happen
description: What do you think went wrong?
placeholder: >
Please explain why you think the behaviour is erroneous. It is extremely helpful if you copy and paste
the fragment of logs showing the exact error messages or wrong behaviour and screenshots for
UI problems. You can include files by dragging and dropping them here.
**NOTE**: please copy and paste texts instead of taking screenshots of them for easy future search.
validations:
required: true
- type: textarea
attributes:
label: Anything else
description: Anything else we need to know?
placeholder: >
How often does this problem occur? (Once? Every time? Only when certain conditions are met?)
Any relevant logs to include? Put them here inside fenced
``` ``` blocks or inside a collapsable details tag if it's too long:
<details><summary>x.log</summary> lots of stuff </details>
- type: checkboxes
attributes:
label: Are you willing to submit a pull request to fix on your own?
description: >
This is absolutely not required, but we are happy to guide you in the contribution process
especially if you already have a good understanding of how to implement the fix.
Dubbo is a totally community-driven project and we love to bring new contributors in.
options:
- label: Yes I am willing to submit a pull request on my own!
- type: checkboxes
attributes:
label: Code of Conduct
description: The Code of Conduct helps create a safe space for everyone. We require that everyone agrees to it.
options:
- label: >
I agree to follow this project's
[Code of Conduct](https://www.apache.org/foundation/policies/conduct)
required: true
- type: markdown
attributes:
value: "Thanks for completing our form!"

106
.github/ISSUE_TEMPLATE/2-feature.yml vendored Normal file
View File

@ -0,0 +1,106 @@
#
# 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.
#
name: Feature Request
description: Create a Feature Request for Dubbo
title: "[Feature] "
labels: ["type/need-triage", "component/need-triage"]
projects: ["apache/337"]
body:
- type: markdown
attributes:
value: |
<img src="https://dubbo.apache.org/imgs/nav_logo2.png" alt="Dubbo logo" height="90px" align="right" />
Thank you for finding the time to propose new feature!
We really appreciate the community efforts to improve Dubbo.
**Dubbo is open for world wide collaboration, please make sure that all the content you provide is in English.**
Remember that non-English issues is quite not friendly for everyone, and might unable to get the response!
- type: checkboxes
attributes:
label: Pre-check
options:
- label: >
I am sure that all the content I provide is in English.
required: true
- type: checkboxes
attributes:
label: Search before asking
description: >
Please make sure to search in the [issues](https://github.com/apache/dubbo/issues?q=is%3Aissue) first to see
whether the same feature was requested already.
options:
- label: >
I had searched in the [issues](https://github.com/apache/dubbo/issues?q=is%3Aissue) and found no similar
feature requirement.
required: true
- type: dropdown
attributes:
label: Apache Dubbo Component
description: |
What Apache Dubbo component are you using? Apache Dubbo has many subprojects, please make sure
to choose the component that you want to ask questions about.
multiple: false
options:
- "Java SDK (apache/dubbo)"
- "Java Samples (apache/dubbo-samples)"
- "Java Integration Cases (apache/dubbo-integration-cases)"
- "Java SPI Extensions (apache/dubbo-spi-extensions)"
- "Java Benchmark (apache/dubbo-benchmark)"
validations:
required: true
- type: textarea
attributes:
label: Descriptions
description: A short description of your feature
validations:
required: true
- type: textarea
attributes:
label: Related issues
description: Is there currently another issue associated with this?
- type: checkboxes
attributes:
label: Are you willing to submit a pull request to fix on your own?
description: >
This is absolutely not required, but we are happy to guide you in the contribution process
especially if you already have a good understanding of how to implement the feature.
Dubbo is a totally community-driven project and we love to bring new contributors in.
options:
- label: Yes I am willing to submit a pull request on my own!
- type: checkboxes
attributes:
label: Code of Conduct
description: The Code of Conduct helps create a safe space for everyone. We require that everyone agrees to it.
options:
- label: >
I agree to follow this project's
[Code of Conduct](https://www.apache.org/foundation/policies/conduct)
required: true
- type: markdown
attributes:
value: "Thanks for completing our form!"

View File

@ -1,39 +0,0 @@
---
name: Bug Report
about: Report a bug in Dubbo
title: ''
labels: type/bug
assignees: ''
---
<!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->
- [ ] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
### Environment
* Dubbo version: xxx
* Operating System version: xxx
* Java version: xxx
### Steps to reproduce this issue
1. xxx
2. xxx
3. xxx
Pls. provide [GitHub address] to reproduce this issue.
### Expected Behavior
<!-- What do you expect from the above steps-->
### Actual Behavior
<!-- What actually happens? -->
If there is an exception, please attach the exception trace:
```
Just put your stack trace here!
```

View File

@ -1,8 +1,22 @@
blank_issues_enabled: true #
# 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.
#
blank_issues_enabled: false
contact_links: contact_links:
- name: Dubbo Community Repo - name: Question & FAQ & Proposal
url: https://github.com/apache/dubbo-website url: https://github.com/apache/dubbo/discussions/
about: Please see our community docs here. about: Ask a question, request support or submit a proposal for Apache Dubbo.
- name: Report a security issue
url: https://github.com/apache/dubbo/security/policy
about: Please report security vulnerabilities using these instructions.

View File

@ -1,11 +0,0 @@
---
name: Discussion
about: Start a discussion for Dubbo
title: ''
labels: type/discussion
assignees: ''
---
<!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->
<!-- For all design discussions please continue. -->

View File

@ -1,16 +0,0 @@
---
name: Feature Request
about: Create a Feature Request for Dubbo
title: ''
labels: type/feature
assignees: ''
---
<!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->
- [ ] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
- [ ] I have searched the [release notes](https://github.com/apache/dubbo/releases) of this repository and believe that this is not a duplicate.
## Describe the feature
<!-- Please also discuss possible business value -->

View File

@ -1,15 +0,0 @@
---
name: Proposal
about: Create a technical proposal for Dubbo
title: ''
labels: type/proposal
assignees: ''
---
<!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->
- [ ] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
## Describe the proposal
<!-- Please use this for a concrete design proposal for functionality. -->
<!-- If you just want to request a new feature and discuss the possible business value, create a Feature Request. -->

View File

@ -1,13 +0,0 @@
---
name: Question
about: Ask a question about Dubbo
title: ''
labels: type/question
assignees: ''
---
<!-- If you need to report a security issue please visit https://github.com/apache/dubbo/security/policy -->
- [ ] I have searched the [issues](https://github.com/apache/dubbo/issues) of this repository and believe that this is not a duplicate.
## Ask your question here

View File

@ -13,13 +13,54 @@ env:
VERSIONS_LIMIT: 4 VERSIONS_LIMIT: 4
JACOCO_ENABLE: true JACOCO_ENABLE: true
CANDIDATE_VERSIONS: ' CANDIDATE_VERSIONS: '
spring.version:4.3.30.RELEASE; spring.version:5.3.24;
spring-boot.version:1.5.22.RELEASE; spring-boot.version:2.7.6;
spring-boot.version:2.4.1;
' '
jobs: jobs:
check-format:
name: Check if code needs formatting
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Maven
uses: actions/setup-java@v4
with:
java-version: 21
distribution: zulu
- name: Check if code aligns with code style
id: check
run: mvn --log-file mvn.log spotless:check
continue-on-error: true
- name: Upload checkstyle result
uses: actions/upload-artifact@v4
with:
name: checkstyle-result
path: mvn.log
- name: Generate Summary for successful run
if: ${{ steps.check.outcome == 'success' }}
run: |
echo ":ballot_box_with_check: Kudos! No formatting issues found!" >> $GITHUB_STEP_SUMMARY
- name: Generate Summary for failed run
if: ${{ steps.check.outcome == 'failure' }}
run: |
echo "## :negative_squared_cross_mark: Formatting issues found!" >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
cat mvn.log | grep "ERROR" | sed 's/Check if code needs formatting Check if code aligns with code style [0-9A-Z:.-]\+//' | sed 's/\[ERROR] //' | head -n -11 >> $GITHUB_STEP_SUMMARY
echo "\`\`\`" >> $GITHUB_STEP_SUMMARY
echo "Please run \`mvn spotless:apply\` to fix the formatting issues." >> $GITHUB_STEP_SUMMARY
- name: Fail if code needs formatting
if: ${{ steps.check.outcome == 'failure' }}
uses: actions/github-script@v7.0.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
core.setFailed("Formatting issues found!")
license: license:
name: "Check License"
needs: check-format
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
@ -27,11 +68,11 @@ jobs:
uses: apache/skywalking-eyes@e1a02359b239bd28de3f6d35fdc870250fa513d5 uses: apache/skywalking-eyes@e1a02359b239bd28de3f6d35fdc870250fa513d5
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: "Set up JDK 17" - name: "Set up JDK 21"
uses: actions/setup-java@v3 uses: actions/setup-java@v3
with: with:
distribution: 'zulu' distribution: 'zulu'
java-version: 17 java-version: 21
- name: "Compile Dubbo (Linux)" - name: "Compile Dubbo (Linux)"
run: | run: |
./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true
@ -44,6 +85,8 @@ jobs:
mode: check mode: check
build-source: build-source:
name: "Build Dubbo"
needs: check-format
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
version: ${{ steps.dubbo-version.outputs.version }} version: ${{ steps.dubbo-version.outputs.version }}
@ -99,6 +142,7 @@ jobs:
unit-test-prepare: unit-test-prepare:
name: "Preparation for Unit Test" name: "Preparation for Unit Test"
needs: check-format
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
@ -147,7 +191,7 @@ jobs:
echo "--- End Print Rsa Public Key" echo "--- End Print Rsa Public Key"
unit-test: unit-test:
needs: [build-source, unit-test-prepare] needs: [check-format, build-source, unit-test-prepare]
name: "Unit Test On ubuntu-latest" name: "Unit Test On ubuntu-latest"
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
@ -164,7 +208,7 @@ jobs:
uses: actions/setup-java@v3 uses: actions/setup-java@v3
with: with:
distribution: 'zulu' distribution: 'zulu'
java-version: 17 java-version: 21
- uses: actions/cache@v3 - uses: actions/cache@v3
name: "Cache local Maven repository" name: "Cache local Maven repository"
with: with:
@ -212,7 +256,8 @@ jobs:
name: coverage-result name: coverage-result
path: "**/target/site/**/jacoco.xml" path: "**/target/site/**/jacoco.xml"
integration-test-prepare: samples-test-prepare:
needs: check-format
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
JOB_COUNT: 3 JOB_COUNT: 3
@ -227,12 +272,11 @@ jobs:
- name: "Upload test list" - name: "Upload test list"
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: test-list name: samples-test-list
path: test/jobs path: test/jobs
samples-test-job:
integration-test-job: needs: [check-format, build-source, samples-test-prepare]
needs: [build-source, integration-test-prepare] name: "Samples Test on ubuntu-latest (JobId: ${{matrix.job_id}})"
name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}})"
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 90 timeout-minutes: 90
env: env:
@ -263,6 +307,110 @@ jobs:
restore-keys: | restore-keys: |
${{ runner.os }}-dubbo-snapshot-${{ github.sha }} ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
${{ runner.os }}-dubbo-snapshot- ${{ runner.os }}-dubbo-snapshot-
- name: "Download test list"
uses: actions/download-artifact@v3
with:
name: samples-test-list
path: test/jobs/
- name: "Set up JDK 8"
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 8
- name: "Init Candidate Versions"
run: |
DUBBO_VERSION="${{needs.build-source.outputs.version}}"
CANDIDATE_VERSIONS="dubbo.version:$DUBBO_VERSION;compiler.version:$DUBBO_VERSION;$CANDIDATE_VERSIONS;dubbo.compiler.version:$DUBBO_VERSION"
echo "CANDIDATE_VERSIONS=$CANDIDATE_VERSIONS" >> $GITHUB_ENV
- name: "Build test image"
run: |
cd test && bash ./build-test-image.sh
- name: "Run tests"
run: cd test && bash ./run-tests.sh
- name: "merge jacoco resule"
run: |
cd test/dubbo-test-jacoco-merger && mvn clean compile exec:java -Dexec.mainClass="org.apache.dubbo.test.JacocoMerge" -Dexec.args="${{github.workspace}}"
- name: "Upload jacoco"
uses: actions/upload-artifact@v3
with:
name: samples-jacoco-result
path: target/jacoco*.exec
- name: "Upload test result"
if: always()
uses: actions/upload-artifact@v3
with:
name: samples-test-result
path: test/jobs/*-result*
samples-test-result:
needs: [check-format, samples-test-job]
if: always()
runs-on: ubuntu-latest
env:
JAVA_VER: 8
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-samples'
ref: master
- name: "Download test result"
uses: actions/download-artifact@v3
with:
name: samples-test-result
path: test/jobs/
- name: "Merge test result"
run: ./test/scripts/merge-test-results.sh
integration-test-prepare:
needs: check-format
runs-on: ubuntu-latest
env:
JOB_COUNT: 3
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
ref: main
- name: "Prepare test list"
run: |
bash ./test/scripts/prepare-test.sh
- name: "Upload test list"
uses: actions/upload-artifact@v3
with:
name: test-list
path: test/jobs
integration-test-job:
needs: [check-format, build-source, integration-test-prepare]
name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}})"
runs-on: ubuntu-latest
timeout-minutes: 90
env:
JAVA_VER: 8
TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
strategy:
fail-fast: false
matrix:
job_id: [1, 2, 3]
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
ref: main
- name: "Cache local Maven repository"
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- name: "Restore Dubbo cache"
uses: actions/cache@v3
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
${{ runner.os }}-dubbo-snapshot-
- name: "Download test list" - name: "Download test list"
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
@ -297,9 +445,8 @@ jobs:
with: with:
name: test-result name: test-result
path: test/jobs/*-result* path: test/jobs/*-result*
integration-test-result: integration-test-result:
needs: [integration-test-job] needs: [check-format, integration-test-job]
if: always() if: always()
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
@ -307,8 +454,8 @@ jobs:
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with: with:
repository: 'apache/dubbo-samples' repository: 'apache/dubbo-integration-cases'
ref: master ref: main
- name: "Download test result" - name: "Download test result"
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
@ -319,7 +466,7 @@ jobs:
jacoco-result-merge: jacoco-result-merge:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: [integration-test-result, unit-test] needs: [check-format, integration-test-result, samples-test-result, unit-test]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with: with:
@ -328,11 +475,15 @@ jobs:
with: with:
repository: 'apache/dubbo-samples' repository: 'apache/dubbo-samples'
path: "./dubbo-samples" path: "./dubbo-samples"
- name: "Set up JDK 17" - uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
path: "./dubbo-integration-cases"
- name: "Set up JDK 21"
uses: actions/setup-java@v3 uses: actions/setup-java@v3
with: with:
distribution: 'zulu' distribution: 'zulu'
java-version: 17 java-version: 21
- name: "Restore class result" - name: "Restore class result"
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
@ -345,12 +496,21 @@ jobs:
- name: "Restore jacoco exec" - name: "Restore jacoco exec"
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
name: jacoco-result name: samples-jacoco-result
path: dubbo-samples/target/ path: dubbo-samples/target/
- name: "Restore integration jacoco exec"
uses: actions/download-artifact@v3
with:
name: jacoco-result
path: dubbo-integration-cases/target/
- name: "Merge jacoco result" - name: "Merge jacoco result"
run: | run: |
cd ${{ github.workspace }}/dubbo-samples/test/dubbo-test-jacoco-merger cd ${{ github.workspace }}/dubbo-samples/test/dubbo-test-jacoco-merger
mvn clean compile exec:java -Dexec.mainClass="org.apache.dubbo.test.JacocoReport" -Dexec.args="${{github.workspace}}/dubbo-samples ${{github.workspace}}/dubbo" mvn clean compile exec:java -Dexec.mainClass="org.apache.dubbo.test.JacocoReport" -Dexec.args="${{github.workspace}}/dubbo-samples ${{github.workspace}}/dubbo"
- name: "Merge samples jacoco result"
run: |
cd ${{ github.workspace }}/dubbo-integration-cases/test/dubbo-test-jacoco-merger
mvn clean compile exec:java -Dexec.mainClass="org.apache.dubbo.test.JacocoReport" -Dexec.args="${{github.workspace}}/dubbo-integration-cases ${{github.workspace}}/dubbo"
- name: "Restore coverage result" - name: "Restore coverage result"
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
@ -358,8 +518,11 @@ jobs:
path: dubbo/ path: dubbo/
- name: "Upload coverage to Codecov" - name: "Upload coverage to Codecov"
uses: codecov/codecov-action@v3 uses: codecov/codecov-action@v3
with:
verbose: true
error-code-inspecting: error-code-inspecting:
needs: check-format
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
@ -372,11 +535,11 @@ jobs:
ref: main ref: main
path: "./dubbo-test-tools" path: "./dubbo-test-tools"
- name: "Set up JDK 17" - name: "Set up JDK 21"
uses: actions/setup-java@v3 uses: actions/setup-java@v3
with: with:
distribution: 'zulu' distribution: 'zulu'
java-version: 17 java-version: 21
- name: "Compile Dubbo (Linux)" - name: "Compile Dubbo (Linux)"
run: | run: |
@ -398,6 +561,7 @@ jobs:
path: ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt path: ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
native-image-inspecting: native-image-inspecting:
needs: check-format
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
@ -415,10 +579,10 @@ jobs:
- name: "Setup Zookeeper environment" - name: "Setup Zookeeper environment"
run: | run: |
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
mv apache-zookeeper-3.7.1-bin/conf/zoo_sample.cfg apache-zookeeper-3.7.1-bin/conf/zoo.cfg mv apache-zookeeper-3.8.4-bin/conf/zoo_sample.cfg apache-zookeeper-3.8.4-bin/conf/zoo.cfg
apache-zookeeper-3.7.1-bin/bin/zkServer.sh start apache-zookeeper-3.8.4-bin/bin/zkServer.sh start
- name: "Check environment" - name: "Check environment"
run: | run: |

View File

@ -1,251 +0,0 @@
name: Build and Test Scheduled On 3.0
on:
schedule:
- cron: '0 0/6 * * *'
workflow_dispatch:
permissions:
contents: read
env:
FORK_COUNT: 2
FAIL_FAST: 0
SHOW_ERROR_DETAIL: 1
#multi-version size limit
VERSIONS_LIMIT: 4
CANDIDATE_VERSIONS: '
spring.version:4.3.30.RELEASE;
spring-boot.version:1.5.22.RELEASE;
spring-boot.version:2.4.1;
'
jobs:
build-source:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.dubbo-version.outputs.version }}
steps:
- uses: actions/checkout@v3
with:
ref: "3.0"
path: dubbo
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 8
- uses: actions/cache@v3
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- name: "Dubbo cache"
uses: actions/cache@v3
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
- name: "Build Dubbo with Maven"
run: |
cd ./dubbo
./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean source:jar install -Pjacoco,checkstyle -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -Dmaven.test.skip=true -Dmaven.test.skip.exec=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
- name: "Pack checkstyle file if failure"
if: failure()
run: 7z a ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
- name: "Upload checkstyle file if failure"
if: failure()
uses: actions/upload-artifact@v3
with:
name: "checkstyle-file"
path: ${{ github.workspace }}/checkstyle.zip
- name: "Calculate Dubbo Version"
id: dubbo-version
run: |
REVISION=`awk '/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print $1;exit;}' ./dubbo/pom.xml`
echo "version=$REVISION" >> $GITHUB_OUTPUT
echo "dubbo version: $REVISION"
unit-test-prepare:
name: " Preparation for Unit Test On ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest ]
env:
ZOOKEEPER_VERSION: 3.6.3
steps:
- uses: actions/cache@v3
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
- name: "Set up msys2 if necessary"
if: ${{ startsWith( matrix.os, 'windows') && steps.cache-zookeeper.outputs.cache-hit != 'true' }}
uses: msys2/setup-msys2@v2
with:
release: false # support cache, see https://github.com/msys2/setup-msys2#context
- name: "Download zookeeper binary archive in Linux OS"
if: ${{ startsWith( matrix.os, 'ubuntu') && steps.cache-zookeeper.outputs.cache-hit != 'true' }}
run: |
mkdir -p ${{ github.workspace }}/.tmp/zookeeper
wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c https://apache.website-solution.net/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://apache.stu.edu.tw/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://mirror.apache-kr.org/apache/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
echo "list the downloaded zookeeper binary archive"
ls -al ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
- name: "Download zookeeper binary archive in Windows OS"
if: ${{ startsWith( matrix.os, 'windows') && steps.cache-zookeeper.outputs.cache-hit != 'true' }}
shell: msys2 {0}
run: |
mkdir -p ${{ github.workspace }}/.tmp/zookeeper
wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c https://apache.website-solution.net/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://apache.stu.edu.tw/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://mirror.apache-kr.org/apache/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
echo "list the downloaded zookeeper binary archive"
ls -al ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
unit-test:
needs: [build-source, unit-test-prepare]
name: "Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }})"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest ]
jdk: [ 8, 11, 17 ]
env:
DISABLE_FILE_SYSTEM_TEST: true
steps:
- uses: actions/checkout@v3
with:
ref: "3.0"
- name: "Set up JDK ${{ matrix.jdk }}"
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.jdk }}
- uses: actions/cache@v3
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- name: "Test with Maven with Integration Tests"
timeout-minutes: 70
if: ${{ startsWith( matrix.os, 'ubuntu') }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
- name: "Test with Maven without Integration Tests"
timeout-minutes: 90
if: ${{ startsWith( matrix.os, 'windows') }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
- name: "Upload coverage to Codecov"
uses: codecov/codecov-action@v3
integration-test-prepare:
runs-on: ubuntu-latest
env:
JOB_COUNT: 3
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-samples'
ref: master
- name: "Prepare test list"
run: |
bash ./test/scripts/prepare-test.sh
- name: "Upload test list"
uses: actions/upload-artifact@v3
with:
name: test-list
path: test/jobs
integration-test-job:
needs: [build-source, integration-test-prepare]
name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}})"
runs-on: ubuntu-latest
timeout-minutes: 30
env:
JAVA_VER: 8
TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
strategy:
fail-fast: false
matrix:
job_id: [1, 2, 3]
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-samples'
ref: master
- name: "Cache local Maven repository"
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- name: "Restore Dubbo cache"
uses: actions/cache@v3
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
${{ runner.os }}-dubbo-snapshot-
- name: "Download test list"
uses: actions/download-artifact@v3
with:
name: test-list
path: test/jobs/
- name: "Set up JDK 8"
uses: actions/setup-java@v1
with:
java-version: 8
- name: "Init Candidate Versions"
run: |
DUBBO_VERSION="${{needs.build-source.outputs.version}}"
CANDIDATE_VERSIONS="dubbo.version:$DUBBO_VERSION;compiler.version:$DUBBO_VERSION;$CANDIDATE_VERSIONS;dubbo.compiler.version:$DUBBO_VERSION"
echo "CANDIDATE_VERSIONS=$CANDIDATE_VERSIONS" >> $GITHUB_ENV
- name: "Build test image"
run: |
cd test && bash ./build-test-image.sh
- name: "Run tests"
run: cd test && bash ./run-tests.sh
- name: "Upload test result"
if: always()
uses: actions/upload-artifact@v3
with:
name: test-result
path: test/jobs/*-result*
integration-test-result:
needs: [integration-test-job]
if: always()
runs-on: ubuntu-latest
env:
JAVA_VER: 8
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-samples'
ref: master
- name: "Download test result"
uses: actions/download-artifact@v3
with:
name: test-result
path: test/jobs/
- name: "Merge test result"
run: ./test/scripts/merge-test-results.sh

View File

@ -134,7 +134,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ ubuntu-latest, windows-latest ] os: [ ubuntu-latest, windows-latest ]
jdk: [ 8, 11, 17, 19 ] jdk: [ 8, 11, 17, 21 ]
env: env:
DISABLE_FILE_SYSTEM_TEST: true DISABLE_FILE_SYSTEM_TEST: true
steps: steps:
@ -169,8 +169,6 @@ jobs:
timeout-minutes: 90 timeout-minutes: 90
if: ${{ startsWith( matrix.os, 'windows') }} if: ${{ startsWith( matrix.os, 'windows') }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper" run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
- name: "Upload coverage to Codecov"
uses: codecov/codecov-action@v3
unit-test-fastjson2: unit-test-fastjson2:
needs: [build-source, unit-test-prepare] needs: [build-source, unit-test-prepare]
@ -180,18 +178,17 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ ubuntu-latest, windows-latest ] os: [ ubuntu-latest, windows-latest ]
jdk: [ 8, 11, 17, 19 ] jdk: [ 8, 11, 17, 21 ]
env: env:
DISABLE_FILE_SYSTEM_TEST: true DISABLE_FILE_SYSTEM_TEST: true
DUBBO_DEFAULT_SERIALIZATION: fastjson2 DUBBO_DEFAULT_SERIALIZATION: fastjson2
MAVEN_SUREFIRE_ADD_OPENS: true MAVEN_SUREFIRE_ADD_OPENS: true
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with:
ref: "3.1"
- name: "Set up JDK ${{ matrix.jdk }}" - name: "Set up JDK ${{ matrix.jdk }}"
uses: actions/setup-java@v1 uses: actions/setup-java@v3
with: with:
distribution: 'zulu'
java-version: ${{ matrix.jdk }} java-version: ${{ matrix.jdk }}
- uses: actions/cache@v3 - uses: actions/cache@v3
name: "Cache local Maven repository" name: "Cache local Maven repository"
@ -209,18 +206,24 @@ jobs:
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }} key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: | restore-keys: |
zookeeper-${{ runner.os }}- zookeeper-${{ runner.os }}-
- name: "Test with Maven with Integration Tests on JDK 8"
timeout-minutes: 70
if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk == '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,'!jdk15ge' -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
- name: "Test with Maven without Integration Tests on JDK 8"
timeout-minutes: 90
if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk == '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,'!jdk15ge'" -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
- name: "Test with Maven with Integration Tests" - name: "Test with Maven with Integration Tests"
timeout-minutes: 70 timeout-minutes: 70
if: ${{ startsWith( matrix.os, 'ubuntu') }} if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk != '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,jdk15ge-simple,'!jdk15ge' -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
- name: "Test with Maven without Integration Tests" - name: "Test with Maven without Integration Tests"
timeout-minutes: 90 timeout-minutes: 90
if: ${{ startsWith( matrix.os, 'windows') }} if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk != '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper" run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,jdk15ge-simple,'!jdk15ge'" -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
- name: "Upload coverage to Codecov"
uses: codecov/codecov-action@v3
integration-test-prepare: samples-test-prepare:
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
JOB_COUNT: 5 JOB_COUNT: 5
@ -235,12 +238,11 @@ jobs:
- name: "Upload test list" - name: "Upload test list"
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: test-list name: samples-test-list
path: test/jobs path: test/jobs
samples-test-job:
integration-test-job: needs: [build-source, samples-test-prepare]
needs: [build-source, integration-test-prepare] name: "Samples Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}})"
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 90 timeout-minutes: 90
env: env:
@ -275,7 +277,7 @@ jobs:
- name: "Download test list" - name: "Download test list"
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
name: test-list name: samples-test-list
path: test/jobs/ path: test/jobs/
- name: "Set up JDK ${{matrix.jdk}}" - name: "Set up JDK ${{matrix.jdk}}"
uses: actions/setup-java@v1 uses: actions/setup-java@v1
@ -295,11 +297,10 @@ jobs:
if: always() if: always()
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: test-result-${{matrix.jdk}} name: samples-test-result-${{matrix.jdk}}
path: test/jobs/*-result* path: test/jobs/*-result*
samples-test-result:
integration-test-result: needs: [samples-test-job]
needs: [integration-test-job]
if: always() if: always()
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
@ -315,7 +316,105 @@ jobs:
- name: "Download test result" - name: "Download test result"
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
name: test-result-${{matrix.jdk}} name: samples-test-result-${{matrix.jdk}}
path: test/jobs/
- name: "Merge test result"
run: ./test/scripts/merge-test-results.sh
integration-test-prepare:
runs-on: ubuntu-latest
env:
JOB_COUNT: 5
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
ref: main
- name: "Prepare test list"
run: |
bash ./test/scripts/prepare-test.sh
- name: "Upload test list"
uses: actions/upload-artifact@v3
with:
name: integration-test-list
path: test/jobs
integration-test-job:
needs: [build-source, integration-test-prepare]
name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
runs-on: ubuntu-latest
timeout-minutes: 90
env:
JAVA_VER: ${{matrix.jdk}}
TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11 ]
job_id: [1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
ref: main
- name: "Cache local Maven repository"
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- name: "Restore Dubbo cache"
uses: actions/cache@v3
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
${{ runner.os }}-dubbo-snapshot-
- name: "Download test list"
uses: actions/download-artifact@v3
with:
name: integration-test-list
path: test/jobs/
- name: "Set up JDK ${{matrix.jdk}}"
uses: actions/setup-java@v1
with:
java-version: ${{matrix.jdk}}
- name: "Init Candidate Versions"
run: |
DUBBO_VERSION="${{needs.build-source.outputs.version}}"
CANDIDATE_VERSIONS="dubbo.version:$DUBBO_VERSION;compiler.version:$DUBBO_VERSION;$CANDIDATE_VERSIONS;dubbo.compiler.version:$DUBBO_VERSION"
echo "CANDIDATE_VERSIONS=$CANDIDATE_VERSIONS" >> $GITHUB_ENV
- name: "Build test image"
run: |
cd test && bash ./build-test-image.sh
- name: "Run tests"
run: cd test && bash ./run-tests.sh
- name: "Upload test result"
if: always()
uses: actions/upload-artifact@v3
with:
name: integration-test-result-${{matrix.jdk}}
path: test/jobs/*-result*
integration-test-result:
needs: [integration-test-job]
if: always()
runs-on: ubuntu-latest
env:
JAVA_VER: ${{matrix.jdk}}
strategy:
matrix:
jdk: [ 8, 11 ]
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
ref: main
- name: "Download test result"
uses: actions/download-artifact@v3
with:
name: integration-test-result-${{matrix.jdk}}
path: test/jobs/ path: test/jobs/
- name: "Merge test result" - name: "Merge test result"
run: ./test/scripts/merge-test-results.sh run: ./test/scripts/merge-test-results.sh
@ -334,10 +433,11 @@ jobs:
ref: main ref: main
path: "./dubbo-test-tools" path: "./dubbo-test-tools"
- name: "Set up JDK 17" - name: "Set up JDK 21"
uses: actions/setup-java@v1 uses: actions/setup-java@v3
with: with:
java-version: 17 distribution: 'zulu'
java-version: 21
- name: "Compile Dubbo (Linux)" - name: "Compile Dubbo (Linux)"
run: | run: |
@ -377,10 +477,10 @@ jobs:
- name: "Setup Zookeeper environment" - name: "Setup Zookeeper environment"
run: | run: |
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
mv apache-zookeeper-3.7.1-bin/conf/zoo_sample.cfg apache-zookeeper-3.7.1-bin/conf/zoo.cfg mv apache-zookeeper-3.8.4-bin/conf/zoo_sample.cfg apache-zookeeper-3.8.4-bin/conf/zoo.cfg
apache-zookeeper-3.7.1-bin/bin/zkServer.sh start apache-zookeeper-3.8.4-bin/bin/zkServer.sh start
- name: "Check environment" - name: "Check environment"
run: | run: |
@ -396,7 +496,7 @@ jobs:
run: | run: |
cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider
${{ github.workspace }}/dubbo/mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean package -P native -Dmaven.test.skip=true native:compile ${{ github.workspace }}/dubbo/mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean package -P native -Dmaven.test.skip=true native:compile
nohup ./target/demo-native-provider & nohup ./target/dubbo-demo-native-provider &
cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer
${{ github.workspace }}/dubbo/mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean package -P native -Dmaven.test.skip=true native:compile ${{ github.workspace }}/dubbo/mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean package -P native -Dmaven.test.skip=true native:compile
./target/demo-native-consumer ./target/dubbo-demo-native-consumer

View File

@ -134,7 +134,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ ubuntu-latest, windows-latest ] os: [ ubuntu-latest, windows-latest ]
jdk: [ 8, 11, 17, 19 ] jdk: [ 8, 11, 17, 21 ]
env: env:
DISABLE_FILE_SYSTEM_TEST: true DISABLE_FILE_SYSTEM_TEST: true
steps: steps:
@ -169,8 +169,6 @@ jobs:
timeout-minutes: 90 timeout-minutes: 90
if: ${{ startsWith( matrix.os, 'windows') }} if: ${{ startsWith( matrix.os, 'windows') }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper" run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
- name: "Upload coverage to Codecov"
uses: codecov/codecov-action@v3
unit-test-fastjson2: unit-test-fastjson2:
needs: [build-source, unit-test-prepare] needs: [build-source, unit-test-prepare]
@ -180,18 +178,17 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ ubuntu-latest, windows-latest ] os: [ ubuntu-latest, windows-latest ]
jdk: [ 8, 11, 17, 19 ] jdk: [ 8, 11, 17, 21 ]
env: env:
DISABLE_FILE_SYSTEM_TEST: true DISABLE_FILE_SYSTEM_TEST: true
DUBBO_DEFAULT_SERIALIZATION: fastjson2 DUBBO_DEFAULT_SERIALIZATION: fastjson2
MAVEN_SUREFIRE_ADD_OPENS: true MAVEN_SUREFIRE_ADD_OPENS: true
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with:
ref: "3.2"
- name: "Set up JDK ${{ matrix.jdk }}" - name: "Set up JDK ${{ matrix.jdk }}"
uses: actions/setup-java@v1 uses: actions/setup-java@v3
with: with:
distribution: 'zulu'
java-version: ${{ matrix.jdk }} java-version: ${{ matrix.jdk }}
- uses: actions/cache@v3 - uses: actions/cache@v3
name: "Cache local Maven repository" name: "Cache local Maven repository"
@ -209,18 +206,24 @@ jobs:
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }} key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: | restore-keys: |
zookeeper-${{ runner.os }}- zookeeper-${{ runner.os }}-
- name: "Test with Maven with Integration Tests on JDK 8"
timeout-minutes: 70
if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk == '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,'!jdk15ge' -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
- name: "Test with Maven without Integration Tests on JDK 8"
timeout-minutes: 90
if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk == '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,'!jdk15ge'" -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
- name: "Test with Maven with Integration Tests" - name: "Test with Maven with Integration Tests"
timeout-minutes: 70 timeout-minutes: 70
if: ${{ startsWith( matrix.os, 'ubuntu') }} if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk != '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,jdk15ge-simple,'!jdk15ge' -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,jdk15ge-simple,'!jdk15ge' -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
- name: "Test with Maven without Integration Tests" - name: "Test with Maven without Integration Tests"
timeout-minutes: 90 timeout-minutes: 90
if: ${{ startsWith( matrix.os, 'windows') }} if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk != '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,jdk15ge-simple,'!jdk15ge'" -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper" run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,jdk15ge-simple,'!jdk15ge'" -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
- name: "Upload coverage to Codecov"
uses: codecov/codecov-action@v3
integration-test-prepare: samples-test-prepare:
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
JOB_COUNT: 5 JOB_COUNT: 5
@ -235,12 +238,11 @@ jobs:
- name: "Upload test list" - name: "Upload test list"
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: test-list name: samples-test-list
path: test/jobs path: test/jobs
samples-test-job:
integration-test-job: needs: [build-source, samples-test-prepare]
needs: [build-source, integration-test-prepare] name: "Samples Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}})"
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 90 timeout-minutes: 90
env: env:
@ -249,7 +251,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
jdk: [ 8, 11, 17, 19 ] jdk: [ 8, 11, 17, 21 ]
job_id: [1, 2, 3, 4, 5] job_id: [1, 2, 3, 4, 5]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
@ -275,7 +277,7 @@ jobs:
- name: "Download test list" - name: "Download test list"
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
name: test-list name: samples-test-list
path: test/jobs/ path: test/jobs/
- name: "Set up JDK ${{matrix.jdk}}" - name: "Set up JDK ${{matrix.jdk}}"
uses: actions/setup-java@v1 uses: actions/setup-java@v1
@ -295,18 +297,17 @@ jobs:
if: always() if: always()
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: test-result-${{matrix.jdk}} name: samples-test-result-${{matrix.jdk}}
path: test/jobs/*-result* path: test/jobs/*-result*
samples-test-result:
integration-test-result: needs: [samples-test-job]
needs: [integration-test-job]
if: always() if: always()
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
JAVA_VER: ${{matrix.jdk}} JAVA_VER: ${{matrix.jdk}}
strategy: strategy:
matrix: matrix:
jdk: [ 8, 11, 17, 19 ] jdk: [ 8, 11, 17, 21 ]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with: with:
@ -315,7 +316,105 @@ jobs:
- name: "Download test result" - name: "Download test result"
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
name: test-result-${{matrix.jdk}} name: samples-test-result-${{matrix.jdk}}
path: test/jobs/
- name: "Merge test result"
run: ./test/scripts/merge-test-results.sh
integration-test-prepare:
runs-on: ubuntu-latest
env:
JOB_COUNT: 5
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
ref: main
- name: "Prepare test list"
run: |
bash ./test/scripts/prepare-test.sh
- name: "Upload test list"
uses: actions/upload-artifact@v3
with:
name: integration-test-list
path: test/jobs
integration-test-job:
needs: [build-source, integration-test-prepare]
name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
runs-on: ubuntu-latest
timeout-minutes: 90
env:
JAVA_VER: ${{matrix.jdk}}
TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11, 17, 21 ]
job_id: [1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
ref: main
- name: "Cache local Maven repository"
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- name: "Restore Dubbo cache"
uses: actions/cache@v3
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
${{ runner.os }}-dubbo-snapshot-
- name: "Download test list"
uses: actions/download-artifact@v3
with:
name: integration-test-list
path: test/jobs/
- name: "Set up JDK ${{matrix.jdk}}"
uses: actions/setup-java@v1
with:
java-version: ${{matrix.jdk}}
- name: "Init Candidate Versions"
run: |
DUBBO_VERSION="${{needs.build-source.outputs.version}}"
CANDIDATE_VERSIONS="dubbo.version:$DUBBO_VERSION;compiler.version:$DUBBO_VERSION;$CANDIDATE_VERSIONS;dubbo.compiler.version:$DUBBO_VERSION"
echo "CANDIDATE_VERSIONS=$CANDIDATE_VERSIONS" >> $GITHUB_ENV
- name: "Build test image"
run: |
cd test && bash ./build-test-image.sh
- name: "Run tests"
run: cd test && bash ./run-tests.sh
- name: "Upload test result"
if: always()
uses: actions/upload-artifact@v3
with:
name: integration-test-result-${{matrix.jdk}}
path: test/jobs/*-result*
integration-test-result:
needs: [integration-test-job]
if: always()
runs-on: ubuntu-latest
env:
JAVA_VER: ${{matrix.jdk}}
strategy:
matrix:
jdk: [ 8, 11, 17, 21 ]
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
ref: main
- name: "Download test result"
uses: actions/download-artifact@v3
with:
name: integration-test-result-${{matrix.jdk}}
path: test/jobs/ path: test/jobs/
- name: "Merge test result" - name: "Merge test result"
run: ./test/scripts/merge-test-results.sh run: ./test/scripts/merge-test-results.sh
@ -334,10 +433,11 @@ jobs:
ref: main ref: main
path: "./dubbo-test-tools" path: "./dubbo-test-tools"
- name: "Set up JDK 17" - name: "Set up JDK 21"
uses: actions/setup-java@v1 uses: actions/setup-java@v3
with: with:
java-version: 17 distribution: 'zulu'
java-version: 21
- name: "Compile Dubbo (Linux)" - name: "Compile Dubbo (Linux)"
run: | run: |
@ -377,10 +477,10 @@ jobs:
- name: "Setup Zookeeper environment" - name: "Setup Zookeeper environment"
run: | run: |
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
mv apache-zookeeper-3.7.1-bin/conf/zoo_sample.cfg apache-zookeeper-3.7.1-bin/conf/zoo.cfg mv apache-zookeeper-3.8.4-bin/conf/zoo_sample.cfg apache-zookeeper-3.8.4-bin/conf/zoo.cfg
apache-zookeeper-3.7.1-bin/bin/zkServer.sh start apache-zookeeper-3.8.4-bin/bin/zkServer.sh start
- name: "Check environment" - name: "Check environment"
run: | run: |

View File

@ -0,0 +1,502 @@
name: Build and Test Scheduled On 3.3
on:
schedule:
- cron: '0 0/6 * * *'
workflow_dispatch:
permissions:
contents: read
env:
FORK_COUNT: 2
FAIL_FAST: 0
SHOW_ERROR_DETAIL: 1
#multi-version size limit
VERSIONS_LIMIT: 4
ALL_REMOTE_VERSION: true
CANDIDATE_VERSIONS: '
spring.version:5.3.24;
spring-boot.version:2.7.6;
'
jobs:
license:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
ref: "3.3"
- name: Check License
uses: apache/skywalking-eyes@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-source:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.dubbo-version.outputs.version }}
steps:
- uses: actions/checkout@v3
with:
ref: "3.3"
path: dubbo
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 21
- uses: actions/cache@v3
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- name: "Dubbo cache"
uses: actions/cache@v3
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
- name: "Build Dubbo with Maven"
run: |
cd ./dubbo
./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean source:jar install -Pjacoco,checkstyle -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -Dmaven.test.skip=true -Dmaven.test.skip.exec=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
- name: "Pack checkstyle file if failure"
if: failure()
run: 7z a ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
- name: "Upload checkstyle file if failure"
if: failure()
uses: actions/upload-artifact@v3
with:
name: "checkstyle-file"
path: ${{ github.workspace }}/checkstyle.zip
- name: "Calculate Dubbo Version"
id: dubbo-version
run: |
REVISION=`awk '/<revision>[^<]+<\/revision>/{gsub(/<revision>|<\/revision>/,"",$1);print $1;exit;}' ./dubbo/pom.xml`
echo "version=$REVISION" >> $GITHUB_OUTPUT
echo "dubbo version: $REVISION"
unit-test-prepare:
name: " Preparation for Unit Test On ${{ matrix.os }}"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest ]
env:
ZOOKEEPER_VERSION: 3.6.3
steps:
- uses: actions/cache@v3
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
- name: "Set up msys2 if necessary"
if: ${{ startsWith( matrix.os, 'windows') && steps.cache-zookeeper.outputs.cache-hit != 'true' }}
uses: msys2/setup-msys2@v2
with:
release: false # support cache, see https://github.com/msys2/setup-msys2#context
- name: "Download zookeeper binary archive in Linux OS"
if: ${{ startsWith( matrix.os, 'ubuntu') && steps.cache-zookeeper.outputs.cache-hit != 'true' }}
run: |
mkdir -p ${{ github.workspace }}/.tmp/zookeeper
wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c https://apache.website-solution.net/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://apache.stu.edu.tw/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://mirror.apache-kr.org/apache/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
echo "list the downloaded zookeeper binary archive"
ls -al ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
- name: "Download zookeeper binary archive in Windows OS"
if: ${{ startsWith( matrix.os, 'windows') && steps.cache-zookeeper.outputs.cache-hit != 'true' }}
shell: msys2 {0}
run: |
mkdir -p ${{ github.workspace }}/.tmp/zookeeper
wget -c https://archive.apache.org/dist/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c https://apache.website-solution.net/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://apache.stu.edu.tw/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://apache.mirror.cdnetworks.com/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz ||
wget -c http://mirror.apache-kr.org/apache/zookeeper/zookeeper-${{ env.ZOOKEEPER_VERSION }}/apache-zookeeper-${{ env.ZOOKEEPER_VERSION }}-bin.tar.gz -O ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
echo "list the downloaded zookeeper binary archive"
ls -al ${{ github.workspace }}/.tmp/zookeeper/apache-zookeeper-bin.tar.gz
unit-test:
needs: [build-source, unit-test-prepare]
name: "Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }})"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest ]
jdk: [ 8, 11, 17, 21 ]
env:
DISABLE_FILE_SYSTEM_TEST: true
steps:
- uses: actions/checkout@v3
with:
ref: "3.3"
- name: "Set up JDK ${{ matrix.jdk }}"
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.jdk }}
- uses: actions/cache@v3
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- uses: actions/cache@v3
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-
- name: "Test with Maven with Integration Tests"
timeout-minutes: 70
if: ${{ startsWith( matrix.os, 'ubuntu') }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
- name: "Test with Maven without Integration Tests"
timeout-minutes: 90
if: ${{ startsWith( matrix.os, 'windows') }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
unit-test-fastjson2:
needs: [build-source, unit-test-prepare]
name: "Unit Test On ${{ matrix.os }} (JDK: ${{ matrix.jdk }}, Serialization: fastjson2)"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest ]
jdk: [ 8, 11, 17, 21 ]
env:
DISABLE_FILE_SYSTEM_TEST: true
DUBBO_DEFAULT_SERIALIZATION: fastjson2
MAVEN_SUREFIRE_ADD_OPENS: true
steps:
- uses: actions/checkout@v3
- name: "Set up JDK ${{ matrix.jdk }}"
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: ${{ matrix.jdk }}
- uses: actions/cache@v3
name: "Cache local Maven repository"
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- uses: actions/cache@v3
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-
- name: "Test with Maven with Integration Tests on JDK 8"
timeout-minutes: 70
if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk == '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,'!jdk15ge' -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
- name: "Test with Maven without Integration Tests on JDK 8"
timeout-minutes: 90
if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk == '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,'!jdk15ge'" -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
- name: "Test with Maven with Integration Tests"
timeout-minutes: 70
if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk != '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,jdk15ge-simple,'!jdk15ge' -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
- name: "Test with Maven without Integration Tests"
timeout-minutes: 90
if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk != '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,jdk15ge-simple,'!jdk15ge'" -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
samples-test-prepare:
runs-on: ubuntu-latest
env:
JOB_COUNT: 5
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-samples'
ref: master
- name: "Prepare test list"
run: |
bash ./test/scripts/prepare-test.sh
- name: "Upload test list"
uses: actions/upload-artifact@v3
with:
name: samples-test-list
path: test/jobs
samples-test-job:
needs: [build-source, samples-test-prepare]
name: "Samples Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
runs-on: ubuntu-latest
timeout-minutes: 90
env:
JAVA_VER: ${{matrix.jdk}}
TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11, 17, 21 ]
job_id: [1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-samples'
ref: master
- name: "Cache local Maven repository"
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- name: "Restore Dubbo cache"
uses: actions/cache@v3
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
${{ runner.os }}-dubbo-snapshot-
- name: "Download test list"
uses: actions/download-artifact@v3
with:
name: samples-test-list
path: test/jobs/
- name: "Set up JDK ${{matrix.jdk}}"
uses: actions/setup-java@v1
with:
java-version: ${{matrix.jdk}}
- name: "Init Candidate Versions"
run: |
DUBBO_VERSION="${{needs.build-source.outputs.version}}"
CANDIDATE_VERSIONS="dubbo.version:$DUBBO_VERSION;compiler.version:$DUBBO_VERSION;$CANDIDATE_VERSIONS;dubbo.compiler.version:$DUBBO_VERSION"
echo "CANDIDATE_VERSIONS=$CANDIDATE_VERSIONS" >> $GITHUB_ENV
- name: "Build test image"
run: |
cd test && bash ./build-test-image.sh
- name: "Run tests"
run: cd test && bash ./run-tests.sh
- name: "Upload test result"
if: always()
uses: actions/upload-artifact@v3
with:
name: samples-test-result-${{matrix.jdk}}
path: test/jobs/*-result*
samples-test-result:
needs: [samples-test-job]
if: always()
runs-on: ubuntu-latest
env:
JAVA_VER: ${{matrix.jdk}}
strategy:
matrix:
jdk: [ 8, 11, 17, 21 ]
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-samples'
ref: master
- name: "Download test result"
uses: actions/download-artifact@v3
with:
name: samples-test-result-${{matrix.jdk}}
path: test/jobs/
- name: "Merge test result"
run: ./test/scripts/merge-test-results.sh
integration-test-prepare:
runs-on: ubuntu-latest
env:
JOB_COUNT: 5
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
ref: main
- name: "Prepare test list"
run: |
bash ./test/scripts/prepare-test.sh
- name: "Upload test list"
uses: actions/upload-artifact@v3
with:
name: integration-test-list
path: test/jobs
integration-test-job:
needs: [build-source, integration-test-prepare]
name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
runs-on: ubuntu-latest
timeout-minutes: 90
env:
JAVA_VER: ${{matrix.jdk}}
TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11, 17, 21 ]
job_id: [1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
ref: main
- name: "Cache local Maven repository"
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- name: "Restore Dubbo cache"
uses: actions/cache@v3
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
${{ runner.os }}-dubbo-snapshot-
- name: "Download test list"
uses: actions/download-artifact@v3
with:
name: integration-test-list
path: test/jobs/
- name: "Set up JDK ${{matrix.jdk}}"
uses: actions/setup-java@v1
with:
java-version: ${{matrix.jdk}}
- name: "Init Candidate Versions"
run: |
DUBBO_VERSION="${{needs.build-source.outputs.version}}"
CANDIDATE_VERSIONS="dubbo.version:$DUBBO_VERSION;compiler.version:$DUBBO_VERSION;$CANDIDATE_VERSIONS;dubbo.compiler.version:$DUBBO_VERSION"
echo "CANDIDATE_VERSIONS=$CANDIDATE_VERSIONS" >> $GITHUB_ENV
- name: "Build test image"
run: |
cd test && bash ./build-test-image.sh
- name: "Run tests"
run: cd test && bash ./run-tests.sh
- name: "Upload test result"
if: always()
uses: actions/upload-artifact@v3
with:
name: integration-test-result-${{matrix.jdk}}
path: test/jobs/*-result*
integration-test-result:
needs: [integration-test-job]
if: always()
runs-on: ubuntu-latest
env:
JAVA_VER: ${{matrix.jdk}}
strategy:
matrix:
jdk: [ 8, 11, 17, 21 ]
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
ref: main
- name: "Download test result"
uses: actions/download-artifact@v3
with:
name: integration-test-result-${{matrix.jdk}}
path: test/jobs/
- name: "Merge test result"
run: ./test/scripts/merge-test-results.sh
error-code-inspecting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
ref: "3.3"
path: "./dubbo"
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-test-tools'
ref: main
path: "./dubbo-test-tools"
- name: "Set up JDK 21"
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 21
- name: "Compile Dubbo (Linux)"
run: |
cd ${{ github.workspace }}/dubbo
./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true
- name: "Run Error Code Inspecting"
env:
DUBBO_ECI_REPORT_AS_ERROR: true
run: |
cd ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector
../mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C package exec:java -Ddubbo.eci.report-as-error=${DUBBO_ECI_REPORT_AS_ERROR} -Dmaven.test.skip=true -Dmaven.test.skip.exec=true -Ddubbo.eci.path=${{ github.workspace }}/dubbo
- name: "Upload error code inspection result"
# always() should not be used here, since we don't need to handle the 'canceled' situation.
if: ${{ success() || failure() }}
uses: actions/upload-artifact@v3
with:
name: "error-inspection-result"
path: ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
native-image-inspecting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
ref: "3.3"
path: "./dubbo"
- name: "Setup GraalVM environment"
uses: graalvm/setup-graalvm@v1
with:
version: '22.3.0'
java-version: '17'
components: 'native-image'
github-token: ${{ secrets.GITHUB_TOKEN }}
native-image-job-reports: 'true'
- name: "Setup Zookeeper environment"
run: |
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
mv apache-zookeeper-3.8.4-bin/conf/zoo_sample.cfg apache-zookeeper-3.8.4-bin/conf/zoo.cfg
apache-zookeeper-3.8.4-bin/bin/zkServer.sh start
- name: "Check environment"
run: |
java --version
native-image --version
- name: "Compile Dubbo (Linux)"
run: |
cd ${{ github.workspace }}/dubbo
./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean install -DskipTests=true -DskipIntegrationTests=true -Dcheckstyle.skip=true -Dcheckstyle_unix.skip=true -Drat.skip=true -Dmaven.javadoc.skip=true
- name: "Compile and run Dubbo demo for native (Linux)"
run: |
cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-provider
${{ github.workspace }}/dubbo/mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean package -P native -Dmaven.test.skip=true native:compile
nohup ./target/dubbo-demo-native-provider &
cd ${{ github.workspace }}/dubbo/dubbo-demo/dubbo-demo-native/dubbo-demo-native-consumer
${{ github.workspace }}/dubbo/mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast -T 2C clean package -P native -Dmaven.test.skip=true native:compile
./target/dubbo-demo-native-consumer

View File

@ -64,7 +64,7 @@ jobs:
run: 7z a ${{ github.workspace }}/checkstyle.zip *checkstyle* -r run: 7z a ${{ github.workspace }}/checkstyle.zip *checkstyle* -r
- name: "Upload checkstyle file if failure" - name: "Upload checkstyle file if failure"
if: failure() if: failure()
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: "checkstyle-file" name: "checkstyle-file"
path: ${{ github.workspace }}/checkstyle.zip path: ${{ github.workspace }}/checkstyle.zip
@ -132,7 +132,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ ubuntu-latest, windows-latest ] os: [ ubuntu-latest, windows-latest ]
jdk: [ 8, 11, 17, 19 ] jdk: [ 8, 11, 17, 21 ]
env: env:
DISABLE_FILE_SYSTEM_TEST: true DISABLE_FILE_SYSTEM_TEST: true
steps: steps:
@ -150,6 +150,14 @@ jobs:
restore-keys: | restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven- ${{ runner.os }}-maven-
- uses: actions/cache@v3
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-
- name: "Test with Maven with Integration Tests" - name: "Test with Maven with Integration Tests"
timeout-minutes: 70 timeout-minutes: 70
if: ${{ startsWith( matrix.os, 'ubuntu') }} if: ${{ startsWith( matrix.os, 'ubuntu') }}
@ -158,8 +166,6 @@ jobs:
timeout-minutes: 90 timeout-minutes: 90
if: ${{ startsWith( matrix.os, 'windows') }} if: ${{ startsWith( matrix.os, 'windows') }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper" run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
- name: "Upload coverage to Codecov"
uses: codecov/codecov-action@v3
unit-test-fastjson2: unit-test-fastjson2:
needs: [build-source, unit-test-prepare] needs: [build-source, unit-test-prepare]
@ -169,7 +175,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ ubuntu-latest, windows-latest ] os: [ ubuntu-latest, windows-latest ]
jdk: [ 8, 11, 17, 19 ] jdk: [ 8, 11, 17, 21 ]
env: env:
DISABLE_FILE_SYSTEM_TEST: true DISABLE_FILE_SYSTEM_TEST: true
DUBBO_DEFAULT_SERIALIZATION: fastjson2 DUBBO_DEFAULT_SERIALIZATION: fastjson2
@ -189,18 +195,32 @@ jobs:
restore-keys: | restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven- ${{ runner.os }}-maven-
- uses: actions/cache@v3
name: "Cache zookeeper binary archive"
id: "cache-zookeeper"
with:
path: ${{ github.workspace }}/.tmp/zookeeper
key: zookeeper-${{ runner.os }}-${{ env.ZOOKEEPER_VERSION }}
restore-keys: |
zookeeper-${{ runner.os }}-
- name: "Test with Maven with Integration Tests on JDK 8"
timeout-minutes: 70
if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk == '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,'!jdk15ge' -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
- name: "Test with Maven without Integration Tests on JDK 8"
timeout-minutes: 90
if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk == '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,'!jdk15ge'" -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
- name: "Test with Maven with Integration Tests" - name: "Test with Maven with Integration Tests"
timeout-minutes: 70 timeout-minutes: 70
if: ${{ startsWith( matrix.os, 'ubuntu') }} if: ${{ startsWith( matrix.os, 'ubuntu') && matrix.jdk != '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco,jdk15ge-simple,'!jdk15ge' -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 -Dmaven.wagon.http.retryHandler.count=5 -DskipTests=false -DskipIntegrationTests=false -Dcheckstyle.skip=false -Dcheckstyle_unix.skip=false -Drat.skip=false -Dmaven.javadoc.skip=true -DembeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper
- name: "Test with Maven without Integration Tests" - name: "Test with Maven without Integration Tests"
timeout-minutes: 90 timeout-minutes: 90
if: ${{ startsWith( matrix.os, 'windows') }} if: ${{ startsWith( matrix.os, 'windows') && matrix.jdk != '8' }}
run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -Pjacoco -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper" run: ./mvnw --batch-mode --no-snapshot-updates -e --no-transfer-progress --fail-fast clean test verify -P"jacoco,jdk15ge-simple,'!jdk15ge'" -D"http.keepAlive=false" -D"maven.wagon.http.pool=false" -D"maven.wagon.httpconnectionManager.ttlSeconds=120" -D"maven.wagon.http.retryHandler.count=5" -DskipTests=false -DskipIntegrationTests=true -D"checkstyle.skip=false" -D"checkstyle_unix.skip=true" -D"rat.skip=false" -D"maven.javadoc.skip=true" -D"embeddedZookeeperPath=${{ github.workspace }}/.tmp/zookeeper"
- name: "Upload coverage to Codecov"
uses: codecov/codecov-action@v3
integration-test-prepare: samples-test-prepare:
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
JOB_COUNT: 5 JOB_COUNT: 5
@ -215,12 +235,11 @@ jobs:
- name: "Upload test list" - name: "Upload test list"
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: test-list name: samples-test-list
path: test/jobs path: test/jobs
samples-test-job:
integration-test-job: needs: [build-source, samples-test-prepare]
needs: [build-source, integration-test-prepare] name: "Samples Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}})"
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 90 timeout-minutes: 90
env: env:
@ -229,7 +248,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
jdk: [ 8, 11, 17, 19 ] jdk: [ 8, 11, 17, 21 ]
job_id: [1, 2, 3, 4, 5] job_id: [1, 2, 3, 4, 5]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
@ -255,7 +274,7 @@ jobs:
- name: "Download test list" - name: "Download test list"
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
name: test-list name: samples-test-list
path: test/jobs/ path: test/jobs/
- name: "Set up JDK ${{matrix.jdk}}" - name: "Set up JDK ${{matrix.jdk}}"
uses: actions/setup-java@v1 uses: actions/setup-java@v1
@ -275,18 +294,17 @@ jobs:
if: always() if: always()
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: test-result-${{matrix.jdk}} name: samples-test-result-${{matrix.jdk}}
path: test/jobs/*-result* path: test/jobs/*-result*
samples-test-result:
integration-test-result: needs: [samples-test-job]
needs: [integration-test-job]
if: always() if: always()
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
JAVA_VER: ${{matrix.jdk}} JAVA_VER: ${{matrix.jdk}}
strategy: strategy:
matrix: matrix:
jdk: [ 8, 11, 17, 19 ] jdk: [ 8, 11, 17, 21 ]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with: with:
@ -295,7 +313,105 @@ jobs:
- name: "Download test result" - name: "Download test result"
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
name: test-result-${{matrix.jdk}} name: samples-test-result-${{matrix.jdk}}
path: test/jobs/
- name: "Merge test result"
run: ./test/scripts/merge-test-results.sh
integration-test-prepare:
runs-on: ubuntu-latest
env:
JOB_COUNT: 5
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
ref: main
- name: "Prepare test list"
run: |
bash ./test/scripts/prepare-test.sh
- name: "Upload test list"
uses: actions/upload-artifact@v3
with:
name: integration-test-list
path: test/jobs
integration-test-job:
needs: [build-source, integration-test-prepare]
name: "Integration Test on ubuntu-latest (JobId: ${{matrix.job_id}} JavaVer: ${{matrix.jdk}})"
runs-on: ubuntu-latest
timeout-minutes: 90
env:
JAVA_VER: ${{matrix.jdk}}
TEST_CASE_FILE: jobs/testjob_${{matrix.job_id}}.txt
strategy:
fail-fast: false
matrix:
jdk: [ 8, 11, 17, 21 ]
job_id: [1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
ref: main
- name: "Cache local Maven repository"
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
${{ runner.os }}-maven-
- name: "Restore Dubbo cache"
uses: actions/cache@v3
with:
path: ~/.m2/repository/org/apache/dubbo
key: ${{ runner.os }}-dubbo-snapshot-${{ github.sha }}-${{ github.run_id }}
restore-keys: |
${{ runner.os }}-dubbo-snapshot-${{ github.sha }}
${{ runner.os }}-dubbo-snapshot-
- name: "Download test list"
uses: actions/download-artifact@v3
with:
name: integration-test-list
path: test/jobs/
- name: "Set up JDK ${{matrix.jdk}}"
uses: actions/setup-java@v1
with:
java-version: ${{matrix.jdk}}
- name: "Init Candidate Versions"
run: |
DUBBO_VERSION="${{needs.build-source.outputs.version}}"
CANDIDATE_VERSIONS="dubbo.version:$DUBBO_VERSION;compiler.version:$DUBBO_VERSION;$CANDIDATE_VERSIONS;dubbo.compiler.version:$DUBBO_VERSION"
echo "CANDIDATE_VERSIONS=$CANDIDATE_VERSIONS" >> $GITHUB_ENV
- name: "Build test image"
run: |
cd test && bash ./build-test-image.sh
- name: "Run tests"
run: cd test && bash ./run-tests.sh
- name: "Upload test result"
if: always()
uses: actions/upload-artifact@v3
with:
name: integration-test-result-${{matrix.jdk}}
path: test/jobs/*-result*
integration-test-result:
needs: [integration-test-job]
if: always()
runs-on: ubuntu-latest
env:
JAVA_VER: ${{matrix.jdk}}
strategy:
matrix:
jdk: [ 8, 11, 17, 21 ]
steps:
- uses: actions/checkout@v3
with:
repository: 'apache/dubbo-integration-cases'
ref: main
- name: "Download test result"
uses: actions/download-artifact@v3
with:
name: integration-test-result-${{matrix.jdk}}
path: test/jobs/ path: test/jobs/
- name: "Merge test result" - name: "Merge test result"
run: ./test/scripts/merge-test-results.sh run: ./test/scripts/merge-test-results.sh
@ -313,10 +429,10 @@ jobs:
ref: main ref: main
path: "./dubbo-test-tools" path: "./dubbo-test-tools"
- name: "Set up JDK 17" - name: "Set up JDK 21"
uses: actions/setup-java@v3 uses: actions/setup-java@v3
with: with:
java-version: 17 java-version: 21
distribution: 'zulu' distribution: 'zulu'
- name: "Compile Dubbo (Linux)" - name: "Compile Dubbo (Linux)"
@ -333,7 +449,7 @@ jobs:
- name: "Upload error code inspection result" - name: "Upload error code inspection result"
# always() should not be used here, since we don't need to handle the 'canceled' situation. # always() should not be used here, since we don't need to handle the 'canceled' situation.
if: ${{ success() || failure() }} if: ${{ success() || failure() }}
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: "error-inspection-result" name: "error-inspection-result"
path: ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt path: ${{ github.workspace }}/dubbo-test-tools/dubbo-error-code-inspector/error-inspection-result.txt
@ -356,10 +472,10 @@ jobs:
- name: "Setup Zookeeper environment" - name: "Setup Zookeeper environment"
run: | run: |
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz
mv apache-zookeeper-3.7.1-bin/conf/zoo_sample.cfg apache-zookeeper-3.7.1-bin/conf/zoo.cfg mv apache-zookeeper-3.8.4-bin/conf/zoo_sample.cfg apache-zookeeper-3.8.4-bin/conf/zoo.cfg
apache-zookeeper-3.7.1-bin/bin/zkServer.sh start apache-zookeeper-3.8.4-bin/bin/zkServer.sh start
- name: "Check environment" - name: "Check environment"
run: | run: |

5
.gitignore vendored
View File

@ -11,6 +11,8 @@ target/
.settings/ .settings/
.project .project
.classpath .classpath
.externalToolBuilders
maven-eclipse.xml
# idea ignore # idea ignore
.idea/ .idea/
@ -50,3 +52,6 @@ dubbo-demo/dubbo-demo-triple/build/*
.git.exec.error .git.exec.error
# log files generated by testcase.
dubbo-rpc/dubbo-rpc-api/custom-access.log*

View File

@ -38,7 +38,6 @@ header:
- '**/*.fc' - '**/*.fc'
- '**/*.javascript' - '**/*.javascript'
- '**/*.properties' - '**/*.properties'
- '**/*.thrift'
- '**/*.sh' - '**/*.sh'
- '**/*.bat' - '**/*.bat'
- '**/*.md' - '**/*.md'

2
NOTICE
View File

@ -1,5 +1,5 @@
Apache Dubbo Apache Dubbo
Copyright 2018-2023 The Apache Software Foundation Copyright 2018-2024 The Apache Software Foundation
This product includes software developed at This product includes software developed at
The Apache Software Foundation (http://www.apache.org/). The Apache Software Foundation (http://www.apache.org/).

View File

@ -6,13 +6,10 @@
![License](https://img.shields.io/github/license/alibaba/dubbo.svg) ![License](https://img.shields.io/github/license/alibaba/dubbo.svg)
[![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/apache/dubbo.svg)](http://isitmaintained.com/project/apache/dubbo "Average time to resolve an issue") [![Average time to resolve an issue](http://isitmaintained.com/badge/resolution/apache/dubbo.svg)](http://isitmaintained.com/project/apache/dubbo "Average time to resolve an issue")
[![Percentage of issues still open](http://isitmaintained.com/badge/open/apache/dubbo.svg)](http://isitmaintained.com/project/apache/dubbo "Percentage of issues still open") [![Percentage of issues still open](http://isitmaintained.com/badge/open/apache/dubbo.svg)](http://isitmaintained.com/project/apache/dubbo "Percentage of issues still open")
[![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Apache%20Dubbo%20is%20a%20high-performance%2C%20java%20based%2C%20open%20source%20RPC%20framework.&url=http://dubbo.apache.org/&via=ApacheDubbo&hashtags=rpc,java,dubbo,micro-service)
[![Twitter Follow](https://img.shields.io/twitter/follow/ApacheDubbo.svg?label=Follow&style=social&logoWidth=0)](https://twitter.com/intent/follow?screen_name=ApacheDubbo)
[![Gitter](https://badges.gitter.im/alibaba/dubbo.svg)](https://gitter.im/alibaba/dubbo?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
Apache Dubbo is a high-performance, Java-based open-source RPC framework. Please visit the [official site](http://dubbo.apache.org) for the quick start guide and documentation, as well as the [wiki](https://github.com/apache/dubbo/wiki) for news, FAQ, and release notes. Apache Dubbo is a high-performance, Java-based open-source RPC framework. Please visit the [official site](http://dubbo.apache.org) for the quick start guide and documentation, as well as the [wiki](https://github.com/apache/dubbo/wiki) for news, FAQ, and release notes.
We are now collecting Dubbo user info to help us to improve Dubbo further. Kindly support us by providing your usage information on [issue#9436: Wanted: who's using dubbo](https://github.com/apache/dubbo/issues/9436), thanks :) We are now collecting Dubbo user info to help us to improve Dubbo further. Kindly support us by providing your usage information on [Wanted: who's using dubbo](https://github.com/apache/dubbo/discussions/13842), thanks :)
## Architecture ## Architecture
@ -42,7 +39,7 @@ There's a [README](https://github.com/apache/dubbo-samples/blob/389cd612f1ea57ee
```xml ```xml
<properties> <properties>
<dubbo.version>3.2.5</dubbo.version> <dubbo.version>3.2.13-SNAPSHOT</dubbo.version>
</properties> </properties>
<dependencies> <dependencies>
@ -186,55 +183,85 @@ To avoid intermittent test failures (i.e., flaky tests), it is recommended to ha
* Minimum of 2CPUs. * Minimum of 2CPUs.
* Minimum of 2Gb of RAM. * Minimum of 2Gb of RAM.
## Contact ### How does the Dubbo Community collaborate?
* Mailing list: The Dubbo Community primarily communicates on GitHub through issues, discussions, and pull requests.
* dev list: for dev/user discussion. [subscribe](mailto:dev-subscribe@dubbo.apache.org), [unsubscribe](mailto:dev-unsubscribe@dubbo.apache.org), [archive](https://lists.apache.org/list.html?dev@dubbo.apache.org), [guide](https://github.com/apache/dubbo/wiki/Mailing-list-subscription-guide)
* Bugs: [Issues](https://github.com/apache/dubbo/issues/new?template=dubbo-issue-report-template.md) - Issues: We use issues to track bugs and tasks. Any **work-related** item is associated with an issue.
* Gitter: [Gitter channel](https://gitter.im/alibaba/dubbo) - Discussions: We use discussions for questions, early proposals, and announcements. Any **idea-related** item is associated with a discussion.
* Twitter: [@ApacheDubbo](https://twitter.com/ApacheDubbo) - Pull Requests: We use pull requests to merge a set of changes from contributors into Dubbo.
## Contributing We have also implemented [a project board](https://github.com/orgs/apache/projects/337) to monitor all the items.
See [CONTRIBUTING](https://github.com/apache/dubbo/blob/master/CONTRIBUTING.md) for details on submitting patches and the contribution workflow. Any essential changes should be discussed on the mailing list before they happen.
### How can I contribute? ### Seeking for help
* Take a look at issues with tags marked [`Good first issue`](https://github.com/apache/dubbo/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) or [`Help wanted`](https://github.com/apache/dubbo/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22). If you have questions such as:
* Join the discussion on the mailing list, subscription [guide](https://github.com/apache/dubbo/wiki/Mailing-list-subscription-guide).
* Answer questions on [issues](https://github.com/apache/dubbo/issues). - What is Dubbo?
* Fix bugs reported on [issues](https://github.com/apache/dubbo/issues), and send us a pull request. - How do I use Dubbo?
* Review the existing [pull request](https://github.com/apache/dubbo/pulls). - Why did an unexpected result occur?
* Improve the [website](https://github.com/apache/dubbo-website), typically we need
* blog post Please start a discussion at https://github.com/apache/dubbo/discussions.
* translation on documentation
* use cases around the integration of Dubbo in enterprise systems. However, if you encounter the following situations:
* Improve the [dubbo-admin/dubbo-monitor](https://github.com/apache/dubbo-admin).
* Contribute to the projects listed in [ecosystem](https://github.com/dubbo). - You're certain there's a bug that Dubbo needs to fix,
* Other forms of contribution not explicitly enumerated above. - You believe a feature could be enhanced,
* If you would like to contribute, please send an email to dev@dubbo.apache.org to let us know! - You have a detailed proposal for improving Dubbo,
Please open an issue at https://github.com/apache/dubbo/issues.
To ask effective questions, we recommend reading **[How To Ask Questions The Smart Way](https://github.com/selfteaching/How-To-Ask-Questions-The-Smart-Way/blob/master/How-To-Ask-Questions-The-Smart-Way.md)** first.
### Contribution
- Browse the "help wanted" tasks in the [Dubbo project board](https://github.com/orgs/apache/projects/337).
- Participate in discussions on the mailing list. See the subscription [guide](https://github.com/apache/dubbo/wiki/Mailing-list-subscription-guide).
- Respond to queries in the [discussions](https://github.com/apache/dubbo/issues).
- Resolve bugs reported in [issues](https://github.com/apache/dubbo/issues) and send us a pull request.
- Review existing [pull requests](https://github.com/apache/dubbo/pulls).
- Enhance the [website](https://github.com/apache/dubbo-website). We typically need:
- Blog posts
- Translations for documentation
- Use cases showcasing Dubbo integration in enterprise systems.
- Improve the [dubbo-admin](https://github.com/apache/dubbo-admin).
- Contribute to the projects listed in the [ecosystem](https://github.com/apache/?q=dubbo&type=all&language=&sort=).
- Any other forms of contribution not listed above are also welcome.
- If you're interested in contributing, please send an email to [dev@dubbo.apache.org](mailto:dev@dubbo.apache.org) to let us know!
For further details, please refer our [guide](https://github.com/apache/dubbo/blob/master/CONTRIBUTING.md) about how to contribute Dubbo.
## Reporting bugs ## Reporting bugs
Please follow the [template](https://github.com/apache/dubbo/issues/new?template=dubbo-issue-report-template.md) for reporting any issues. Please follow the [template](https://github.com/apache/dubbo/issues/new?template=dubbo-issue-report-template.md) for reporting any issues.
## Reporting a security vulnerability ## Reporting a security vulnerability
Please report security vulnerabilities to [us](mailto:security@dubbo.apache.org) privately. Please report security vulnerabilities to [us](mailto:security@dubbo.apache.org) privately.
## Contact
* Mailing list:
* dev list: for dev/user discussion. [subscribe](mailto:dev-subscribe@dubbo.apache.org), [unsubscribe](mailto:dev-unsubscribe@dubbo.apache.org), [archive](https://lists.apache.org/list.html?dev@dubbo.apache.org), [guide](https://github.com/apache/dubbo/wiki/Mailing-list-subscription-guide)
* Bugs: [Issues](https://github.com/apache/dubbo/issues/new?template=dubbo-issue-report-template.md)
* Gitter: [Gitter channel](https://gitter.im/alibaba/dubbo)
* Twitter: [@ApacheDubbo](https://twitter.com/ApacheDubbo)
## Dubbo ecosystem ## Dubbo ecosystem
* [Dubbo Ecosystem Entry](https://github.com/apache?utf8=%E2%9C%93&q=dubbo&type=&language=) - A GitHub group `dubbo` to gather all Dubbo relevant projects not appropriate in [apache](https://github.com/apache) group yet * [Dubbo Ecosystem Entry](https://github.com/apache?utf8=%E2%9C%93&q=dubbo&type=&language=) - A GitHub group `dubbo` to gather all Dubbo relevant projects not appropriate in [apache](https://github.com/apache) group yet
* [Dubbo Website](https://github.com/apache/dubbo-website) - Apache Dubbo official website * [Dubbo Website](https://github.com/apache/dubbo-website) - Apache Dubbo official website
* [Dubbo Samples](https://github.com/apache/dubbo-samples) - samples for Apache Dubbo * [Dubbo Samples](https://github.com/apache/dubbo-samples) - samples for Apache Dubbo
* [Dubbo Spring Boot](https://github.com/apache/dubbo-spring-boot-project) - Spring Boot Project for Dubbo
* [Dubbo Admin](https://github.com/apache/dubbo-admin) - The reference implementation for Dubbo admin * [Dubbo Admin](https://github.com/apache/dubbo-admin) - The reference implementation for Dubbo admin
* [Dubbo Awesome](https://github.com/apache/dubbo-awesome) - Dubbo's slides and video links in Meetup * [Dubbo Awesome](https://github.com/apache/dubbo-awesome) - Dubbo's slides and video links in Meetup
#### Language #### Language
* [Go](https://github.com/dubbo/dubbo-go) (recommended) * [Go](https://github.com/apache/dubbo-go) (recommended)
* [Rust](https://github.com/apache/dubbo-rust)
* [Node.js](https://github.com/apache/dubbo-js) * [Node.js](https://github.com/apache/dubbo-js)
* [Python](https://github.com/dubbo/py-client-for-apache-dubbo) * [Python](https://github.com/dubbo/py-client-for-apache-dubbo)
* [PHP](https://github.com/apache/dubbo-php-framework) * [PHP](https://github.com/apache/dubbo-php-framework)
@ -242,4 +269,4 @@ Please report security vulnerabilities to [us](mailto:security@dubbo.apache.org)
## License ## License
Apache Dubbo software is licensed under the Apache License Version 2.0. See the [LICENSE](https://github.com/apache/dubbo/blob/master/LICENSE) file for details. Apache Dubbo software is licensed under the Apache License Version 2.0. See the [LICENSE](https://github.com/apache/dubbo/blob/master/LICENSE) file for details.

View File

@ -5,13 +5,15 @@
Below is a table that shows versions that we accept security fixes. Below is a table that shows versions that we accept security fixes.
| Version | Supported | | Version | Supported |
| ------- | ------------------ | |---------| ------------------ |
| 3.0.x | :white_check_mark: | | 3.3.x | :white_check_mark: |
| 2.7.x | :white_check_mark: | | 3.2.x | :white_check_mark: |
| 2.6.x | :white_check_mark: | | 3.1.x | :white_check_mark: |
| 3.0.x | :x: |
| 2.7.x | :x: |
| 2.6.x | :x: |
| 2.5.x | :x: | | 2.5.x | :x: |
## Reporting a Vulnerability ## Reporting a Vulnerability
The Apache Software Foundation takes a rigorous standpoint in annihilating the security issues in its software projects. Apache Dubbo is highly sensitive and forthcoming to issues pertaining to its features and functionality. The Apache Software Foundation takes a rigorous standpoint in annihilating the security issues in its software projects. Apache Dubbo is highly sensitive and forthcoming to issues pertaining to its features and functionality.

View File

@ -32,4 +32,3 @@ ignore:
- "**/dubbo-native-plugin/**" - "**/dubbo-native-plugin/**"
- "**/dubbo-common/src/main/java/org/apache/dubbo/common/json/*.java" # internal JSON impl is deprecate, ignore test coverage for them - "**/dubbo-common/src/main/java/org/apache/dubbo/common/json/*.java" # internal JSON impl is deprecate, ignore test coverage for them
- "**/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/AnnotationBean.java" # Deprecated - "**/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/AnnotationBean.java" # Deprecated
- "**/dubbo-rpc/dubbo-rpc-thrift/**"

View File

@ -13,18 +13,77 @@
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
--> -->
<project xmlns="http://maven.apache.org/POM/4.0.0" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <modelVersion>4.0.0</modelVersion>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.dubbo</groupId> <groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-build-tools</artifactId> <artifactId>dubbo-build-tools</artifactId>
<version>1.0.0</version> <version>1.0.0</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<properties> <properties>
<maven.deploy.skip>true</maven.deploy.skip> <maven.deploy.skip>true</maven.deploy.skip>
</properties> <spotless-maven-plugin.version>2.43.0</spotless-maven-plugin.version>
<spotless.action>check</spotless.action>
<dubbo-shared-resources.version>1.0.0</dubbo-shared-resources.version>
<palantirJavaFormat.version>2.38.0</palantirJavaFormat.version>
</properties>
</project> <profiles>
<profile>
<id>java11+</id>
<activation>
<jdk>[11,)</jdk>
</activation>
<build>
<!--- newer versions of plugins requires JDK 11 -->
<plugins>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>${spotless-maven-plugin.version}</version>
<configuration>
<java>
<palantirJavaFormat>
<version>${palantirJavaFormat.version}</version>
</palantirJavaFormat>
<removeUnusedImports />
<importOrder>
<file>dubbo-importorder.txt</file>
</importOrder>
<licenseHeader>
<file>checkstyle-header.txt</file>
</licenseHeader>
</java>
<pom>
<sortPom>
<expandEmptyElements>false</expandEmptyElements>
<spaceBeforeCloseEmptyElement>true</spaceBeforeCloseEmptyElement>
</sortPom>
</pom>
<upToDateChecking>
<enabled>true</enabled>
</upToDateChecking>
</configuration>
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo-shared-resources</artifactId>
<version>${dubbo-shared-resources.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<goals>
<goal>${spotless.action}</goal>
</goals>
<phase>process-sources</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -1,3 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- <!--
Licensed to the Apache Software Foundation (ASF) under one or more Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with contributor license agreements. See the NOTICE file distributed with
@ -14,82 +15,104 @@
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
--> -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion>
<modelVersion>4.0.0</modelVersion> <parent>
<parent> <groupId>org.apache.dubbo</groupId>
<groupId>org.apache.dubbo</groupId> <artifactId>dubbo-parent</artifactId>
<artifactId>dubbo-parent</artifactId> <version>${revision}</version>
<version>${revision}</version> <relativePath>../pom.xml</relativePath>
<relativePath>../pom.xml</relativePath> </parent>
</parent> <artifactId>dubbo-cluster</artifactId>
<artifactId>dubbo-cluster</artifactId> <packaging>jar</packaging>
<packaging>jar</packaging> <name>${project.artifactId}</name>
<name>${project.artifactId}</name> <description>The cluster module of dubbo project</description>
<description>The cluster module of dubbo project</description> <properties>
<properties> <skip_maven_deploy>false</skip_maven_deploy>
<skip_maven_deploy>false</skip_maven_deploy> <nashorn-core.version>15.4</nashorn-core.version>
</properties> </properties>
<dependencies> <dependencies>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-rpc-api</artifactId>
<version>${project.parent.version}</version>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-rpc-injvm</artifactId>
<version>${project.parent.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-serialization-hessian2</artifactId>
<version>${project.parent.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-serialization-fastjson2</artifactId>
<version>${project.parent.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-test-check</artifactId>
<version>${project.parent.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-metrics-registry</artifactId>
<version>${project.parent.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-metrics-default</artifactId>
<version>${project.parent.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-integration-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<profiles>
<!--
https://github.com/openjdk/nashorn
Nashorn used to be part of the JDK until Java 14.
This project provides a standalone version of Nashorn suitable for use with Java 11 and later.
-->
<profile>
<id>nashorn-jdk11</id>
<activation>
<jdk>[11,)</jdk>
</activation>
<dependencies>
<dependency> <dependency>
<groupId>org.apache.dubbo</groupId> <groupId>org.openjdk.nashorn</groupId>
<artifactId>dubbo-rpc-api</artifactId> <artifactId>nashorn-core</artifactId>
<version>${project.parent.version}</version> <version>${nashorn-core.version}</version>
<scope>test</scope>
</dependency> </dependency>
<dependency> </dependencies>
<groupId>org.yaml</groupId> </profile>
<artifactId>snakeyaml</artifactId> </profiles>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-rpc-injvm</artifactId>
<version>${project.parent.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-serialization-hessian2</artifactId>
<version>${project.parent.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-serialization-fastjson2</artifactId>
<version>${project.parent.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-test-check</artifactId>
<version>${project.parent.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-metrics-registry</artifactId>
<version>${project.parent.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-metrics-default</artifactId>
<version>${project.parent.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-integration-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project> </project>

View File

@ -35,8 +35,5 @@ public interface AddressListener {
*/ */
List<URL> notify(List<URL> addresses, URL consumerUrl, Directory registryDirectory); List<URL> notify(List<URL> addresses, URL consumerUrl, Directory registryDirectory);
default void destroy(URL consumerUrl, Directory registryDirectory) { default void destroy(URL consumerUrl, Directory registryDirectory) {}
}
} }

View File

@ -55,6 +55,8 @@ public interface Cluster {
if (StringUtils.isEmpty(name)) { if (StringUtils.isEmpty(name)) {
name = Cluster.DEFAULT; name = Cluster.DEFAULT;
} }
return ScopeModelUtil.getApplicationModel(scopeModel).getExtensionLoader(Cluster.class).getExtension(name, wrap); return ScopeModelUtil.getApplicationModel(scopeModel)
.getExtensionLoader(Cluster.class)
.getExtension(name, wrap);
} }
} }

View File

@ -51,7 +51,6 @@ public interface Configurator extends Comparable<Configurator> {
*/ */
URL configure(URL url); URL configure(URL url);
/** /**
* Convert override urls to map for use when re-refer. Send all rules every time, the urls will be reassembled and * Convert override urls to map for use when re-refer. Send all rules every time, the urls will be reassembled and
* calculated * calculated
@ -73,7 +72,9 @@ public interface Configurator extends Comparable<Configurator> {
return Optional.empty(); return Optional.empty();
} }
ConfiguratorFactory configuratorFactory = urls.get(0).getOrDefaultApplicationModel().getExtensionLoader(ConfiguratorFactory.class) ConfiguratorFactory configuratorFactory = urls.get(0)
.getOrDefaultApplicationModel()
.getExtensionLoader(ConfiguratorFactory.class)
.getAdaptiveExtension(); .getAdaptiveExtension();
List<Configurator> configurators = new ArrayList<>(urls.size()); List<Configurator> configurators = new ArrayList<>(urls.size());
@ -83,7 +84,8 @@ public interface Configurator extends Comparable<Configurator> {
break; break;
} }
Map<String, String> override = new HashMap<>(url.getParameters()); Map<String, String> override = new HashMap<>(url.getParameters());
//The anyhost parameter of override may be added automatically, it can't change the judgement of changing url // The anyhost parameter of override may be added automatically, it can't change the judgement of changing
// url
override.remove(ANYHOST_KEY); override.remove(ANYHOST_KEY);
if (CollectionUtils.isEmptyMap(override)) { if (CollectionUtils.isEmptyMap(override)) {
continue; continue;

View File

@ -36,5 +36,4 @@ public interface ConfiguratorFactory {
*/ */
@Adaptive(CommonConstants.PROTOCOL_KEY) @Adaptive(CommonConstants.PROTOCOL_KEY)
Configurator getConfigurator(URL url); Configurator getConfigurator(URL url);
} }

View File

@ -100,7 +100,6 @@ public interface Constants {
String OVERRIDE_PROVIDERS_KEY = "providerAddresses"; String OVERRIDE_PROVIDERS_KEY = "providerAddresses";
/** /**
* key for router type, for e.g., "script"/"file", corresponding to ScriptRouterFactory.NAME, FileRouterFactory.NAME * key for router type, for e.g., "script"/"file", corresponding to ScriptRouterFactory.NAME, FileRouterFactory.NAME
*/ */

View File

@ -46,5 +46,4 @@ public interface LoadBalance {
*/ */
@Adaptive("loadbalance") @Adaptive("loadbalance")
<T> Invoker<T> select(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException; <T> Invoker<T> select(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException;
} }

View File

@ -22,5 +22,4 @@ import org.apache.dubbo.common.extension.SPI;
public interface Merger<T> { public interface Merger<T> {
T merge(T... items); T merge(T... items);
} }

View File

@ -33,7 +33,9 @@ public interface ProviderURLMergeProcessor {
*/ */
URL mergeUrl(URL remoteUrl, Map<String, String> localParametersMap); URL mergeUrl(URL remoteUrl, Map<String, String> localParametersMap);
default Map<String, String> mergeLocalParams(Map<String, String> localMap) { return localMap; } default Map<String, String> mergeLocalParams(Map<String, String> localMap) {
return localMap;
}
default boolean accept(URL providerUrl, Map<String, String> localParametersMap) { default boolean accept(URL providerUrl, Map<String, String> localParametersMap) {
return true; return true;

View File

@ -68,8 +68,8 @@ public interface Router extends Comparable<Router> {
* @return state with route result * @return state with route result
* @throws RpcException * @throws RpcException
*/ */
default <T> RouterResult<Invoker<T>> route(List<Invoker<T>> invokers, URL url, Invocation invocation, default <T> RouterResult<Invoker<T>> route(
boolean needToPrintMessage) throws RpcException { List<Invoker<T>> invokers, URL url, Invocation invocation, boolean needToPrintMessage) throws RpcException {
return new RouterResult<>(route(invokers, url, invocation)); return new RouterResult<>(route(invokers, url, invocation));
} }
@ -80,9 +80,7 @@ public interface Router extends Comparable<Router> {
* @param invokers invoker list * @param invokers invoker list
* @param <T> invoker's type * @param <T> invoker's type
*/ */
default <T> void notify(List<Invoker<T>> invokers) { default <T> void notify(List<Invoker<T>> invokers) {}
}
/** /**
* To decide whether this router need to execute every time an RPC comes or should only execute when addresses or * To decide whether this router need to execute every time an RPC comes or should only execute when addresses or
@ -109,7 +107,7 @@ public interface Router extends Comparable<Router> {
int getPriority(); int getPriority();
default void stop() { default void stop() {
//do nothing by default // do nothing by default
} }
@Override @Override

View File

@ -16,12 +16,6 @@
*/ */
package org.apache.dubbo.rpc.cluster; package org.apache.dubbo.rpc.cluster;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.stream.Collectors;
import org.apache.dubbo.common.URL; import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.config.ConfigurationUtils; import org.apache.dubbo.common.config.ConfigurationUtils;
import org.apache.dubbo.common.constants.LoggerCodeConstants; import org.apache.dubbo.common.constants.LoggerCodeConstants;
@ -36,6 +30,12 @@ import org.apache.dubbo.rpc.cluster.router.state.StateRouterFactory;
import org.apache.dubbo.rpc.model.ModuleModel; import org.apache.dubbo.rpc.model.ModuleModel;
import org.apache.dubbo.rpc.model.ScopeModelUtil; import org.apache.dubbo.rpc.model.ScopeModelUtil;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.stream.Collectors;
import static org.apache.dubbo.rpc.cluster.Constants.ROUTER_KEY; import static org.apache.dubbo.rpc.cluster.Constants.ROUTER_KEY;
/** /**
@ -52,31 +52,30 @@ public class RouterChain<T> {
public static <T> RouterChain<T> buildChain(Class<T> interfaceClass, URL url) { public static <T> RouterChain<T> buildChain(Class<T> interfaceClass, URL url) {
SingleRouterChain<T> chain1 = buildSingleChain(interfaceClass, url); SingleRouterChain<T> chain1 = buildSingleChain(interfaceClass, url);
SingleRouterChain<T> chain2 = buildSingleChain(interfaceClass, url); SingleRouterChain<T> chain2 = buildSingleChain(interfaceClass, url);
return new RouterChain<>(new SingleRouterChain[]{chain1, chain2}); return new RouterChain<>(new SingleRouterChain[] {chain1, chain2});
} }
public static <T> SingleRouterChain<T> buildSingleChain(Class<T> interfaceClass, URL url) { public static <T> SingleRouterChain<T> buildSingleChain(Class<T> interfaceClass, URL url) {
ModuleModel moduleModel = url.getOrDefaultModuleModel(); ModuleModel moduleModel = url.getOrDefaultModuleModel();
List<RouterFactory> extensionFactories = moduleModel.getExtensionLoader(RouterFactory.class) List<RouterFactory> extensionFactories =
.getActivateExtension(url, ROUTER_KEY); moduleModel.getExtensionLoader(RouterFactory.class).getActivateExtension(url, ROUTER_KEY);
List<Router> routers = extensionFactories.stream() List<Router> routers = extensionFactories.stream()
.map(factory -> factory.getRouter(url)) .map(factory -> factory.getRouter(url))
.sorted(Router::compareTo) .sorted(Router::compareTo)
.collect(Collectors.toList()); .collect(Collectors.toList());
List<StateRouter<T>> stateRouters = moduleModel List<StateRouter<T>> stateRouters =
.getExtensionLoader(StateRouterFactory.class) moduleModel.getExtensionLoader(StateRouterFactory.class).getActivateExtension(url, ROUTER_KEY).stream()
.getActivateExtension(url, ROUTER_KEY) .map(factory -> factory.getRouter(interfaceClass, url))
.stream() .collect(Collectors.toList());
.map(factory -> factory.getRouter(interfaceClass, url))
.collect(Collectors.toList());
boolean shouldFailFast = Boolean.parseBoolean(
ConfigurationUtils.getProperty(moduleModel, Constants.SHOULD_FAIL_FAST_KEY, "true"));
boolean shouldFailFast = Boolean.parseBoolean(ConfigurationUtils.getProperty(moduleModel, Constants.SHOULD_FAIL_FAST_KEY, "true")); RouterSnapshotSwitcher routerSnapshotSwitcher =
ScopeModelUtil.getFrameworkModel(moduleModel).getBeanFactory().getBean(RouterSnapshotSwitcher.class);
RouterSnapshotSwitcher routerSnapshotSwitcher = ScopeModelUtil.getFrameworkModel(moduleModel).getBeanFactory().getBean(RouterSnapshotSwitcher.class);
return new SingleRouterChain<>(routers, stateRouters, shouldFailFast, routerSnapshotSwitcher); return new SingleRouterChain<>(routers, stateRouters, shouldFailFast, routerSnapshotSwitcher);
} }
@ -106,9 +105,9 @@ public class RouterChain<T> {
// If `availableInvokers` is created from origin invokers => use backup chain // If `availableInvokers` is created from origin invokers => use backup chain
// If `availableInvokers` is created from newly invokers => use main chain // If `availableInvokers` is created from newly invokers => use main chain
BitList<Invoker<T>> notifying = notifyingInvokers.get(); BitList<Invoker<T>> notifying = notifyingInvokers.get();
if (notifying != null && if (notifying != null
currentChain == backupChain && && currentChain == backupChain
availableInvokers.getOriginList() == notifying.getOriginList()) { && availableInvokers.getOriginList() == notifying.getOriginList()) {
return mainChain; return mainChain;
} }
return currentChain; return currentChain;
@ -140,7 +139,8 @@ public class RouterChain<T> {
} }
// Refresh main chain. // Refresh main chain.
// No one can request to use main chain. `currentChain` is backup chain. `route` method cannot access main chain. // No one can request to use main chain. `currentChain` is backup chain. `route` method cannot access main
// chain.
try { try {
// Lock main chain to wait all invocation end // Lock main chain to wait all invocation end
// To wait until no one is using main chain. // To wait until no one is using main chain.
@ -157,26 +157,32 @@ public class RouterChain<T> {
} }
// Set the reference of newly invokers to temp variable. // Set the reference of newly invokers to temp variable.
// Reason: The next step will switch the invokers reference in directory, so we should check the `availableInvokers` // Reason: The next step will switch the invokers reference in directory, so we should check the
// argument when `route`. If the current invocation use newly invokers, we should use main chain to route, and // `availableInvokers`
// argument when `route`. If the current invocation use newly invokers, we should use main chain to
// route, and
// this can prevent use newly invokers to route backup chain, which can only route origin invokers now. // this can prevent use newly invokers to route backup chain, which can only route origin invokers now.
notifyingInvokers.set(invokers); notifyingInvokers.set(invokers);
// Switch the invokers reference in directory. // Switch the invokers reference in directory.
// Cannot switch before update main chain or after backup chain update success. Or that will cause state inconsistent. // Cannot switch before update main chain or after backup chain update success. Or that will cause state
// inconsistent.
switchAction.run(); switchAction.run();
try { try {
// Lock to prevent directory continue list // Lock to prevent directory continue list
// The invokers reference in directory now should be the newly one and should always use the newly one once lock released. // The invokers reference in directory now should be the newly one and should always use the newly one once
// lock released.
lock.writeLock().lock(); lock.writeLock().lock();
// Switch to main chain. Will update backup chain later. // Switch to main chain. Will update backup chain later.
currentChain = mainChain; currentChain = mainChain;
// Clean up temp variable. // Clean up temp variable.
// `availableInvokers` check is useless now, because `route` method will no longer receive any `availableInvokers` related // `availableInvokers` check is useless now, because `route` method will no longer receive any
// with the origin invokers. The getter of invokers reference in directory is locked now, and will return newly invokers // `availableInvokers` related
// with the origin invokers. The getter of invokers reference in directory is locked now, and will return
// newly invokers
// once lock released. // once lock released.
notifyingInvokers.set(null); notifyingInvokers.set(null);
} finally { } finally {
@ -186,7 +192,8 @@ public class RouterChain<T> {
} }
// Refresh main chain. // Refresh main chain.
// No one can request to use main chain. `currentChain` is main chain. `route` method cannot access backup chain. // No one can request to use main chain. `currentChain` is main chain. `route` method cannot access backup
// chain.
try { try {
// Lock main chain to wait all invocation end // Lock main chain to wait all invocation end
backupChain.getLock().writeLock().lock(); backupChain.getLock().writeLock().lock();

View File

@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.dubbo.rpc.cluster; package org.apache.dubbo.rpc.cluster;
import org.apache.dubbo.common.URL; import org.apache.dubbo.common.URL;
@ -26,5 +25,4 @@ import java.util.List;
public interface RuleConverter { public interface RuleConverter {
List<URL> convert(URL subscribeUrl, Object source); List<URL> convert(URL subscribeUrl, Object source);
} }

View File

@ -16,13 +16,6 @@
*/ */
package org.apache.dubbo.rpc.cluster; package org.apache.dubbo.rpc.cluster;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.apache.dubbo.common.URL; import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.Version; import org.apache.dubbo.common.Version;
import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
@ -40,6 +33,13 @@ import org.apache.dubbo.rpc.cluster.router.state.BitList;
import org.apache.dubbo.rpc.cluster.router.state.StateRouter; import org.apache.dubbo.rpc.cluster.router.state.StateRouter;
import org.apache.dubbo.rpc.cluster.router.state.TailStateRouter; import org.apache.dubbo.rpc.cluster.router.state.TailStateRouter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_STOP; import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_STOP;
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_NO_VALID_PROVIDER; import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_NO_VALID_PROVIDER;
import static org.apache.dubbo.common.constants.LoggerCodeConstants.INTERNAL_ERROR; import static org.apache.dubbo.common.constants.LoggerCodeConstants.INTERNAL_ERROR;
@ -79,7 +79,11 @@ public class SingleRouterChain<T> {
private final ReadWriteLock lock = new ReentrantReadWriteLock(); private final ReadWriteLock lock = new ReentrantReadWriteLock();
public SingleRouterChain(List<Router> routers, List<StateRouter<T>> stateRouters, boolean shouldFailFast, RouterSnapshotSwitcher routerSnapshotSwitcher) { public SingleRouterChain(
List<Router> routers,
List<StateRouter<T>> stateRouters,
boolean shouldFailFast,
RouterSnapshotSwitcher routerSnapshotSwitcher) {
initWithRouters(routers); initWithRouters(routers);
initWithStateRouters(stateRouters); initWithStateRouters(stateRouters);
@ -134,9 +138,12 @@ public class SingleRouterChain<T> {
public List<Invoker<T>> route(URL url, BitList<Invoker<T>> availableInvokers, Invocation invocation) { public List<Invoker<T>> route(URL url, BitList<Invoker<T>> availableInvokers, Invocation invocation) {
if (invokers.getOriginList() != availableInvokers.getOriginList()) { if (invokers.getOriginList() != availableInvokers.getOriginList()) {
logger.error(INTERNAL_ERROR, "", "Router's invoker size: " + invokers.getOriginList().size() + logger.error(
" Invocation's invoker size: " + availableInvokers.getOriginList().size(), INTERNAL_ERROR,
"Reject to route, because the invokers has changed."); "",
"Router's invoker size: " + invokers.getOriginList().size() + " Invocation's invoker size: "
+ availableInvokers.getOriginList().size(),
"Reject to route, because the invokers has changed.");
throw new IllegalStateException("reject to route, because the invokers has changed."); throw new IllegalStateException("reject to route, because the invokers has changed.");
} }
if (RpcContext.getServiceContext().isNeedPrintRouterSnapshot()) { if (RpcContext.getServiceContext().isNeedPrintRouterSnapshot()) {
@ -202,9 +209,10 @@ public class SingleRouterChain<T> {
/** /**
* Build each router's result * Build each router's result
*/ */
public RouterSnapshotNode<T> buildRouterSnapshot(URL url, BitList<Invoker<T>> availableInvokers, Invocation invocation) { public RouterSnapshotNode<T> buildRouterSnapshot(
URL url, BitList<Invoker<T>> availableInvokers, Invocation invocation) {
BitList<Invoker<T>> resultInvokers = availableInvokers.clone(); BitList<Invoker<T>> resultInvokers = availableInvokers.clone();
RouterSnapshotNode<T> parentNode = new RouterSnapshotNode<T>("Parent", resultInvokers.clone()); RouterSnapshotNode<T> parentNode = new RouterSnapshotNode<>("Parent", resultInvokers.clone());
parentNode.setNodeOutputInvokers(resultInvokers.clone()); parentNode.setNodeOutputInvokers(resultInvokers.clone());
// 1. route state router // 1. route state router
@ -219,7 +227,7 @@ public class SingleRouterChain<T> {
return parentNode; return parentNode;
} }
RouterSnapshotNode<T> commonRouterNode = new RouterSnapshotNode<T>("CommonRouter", resultInvokers.clone()); RouterSnapshotNode<T> commonRouterNode = new RouterSnapshotNode<>("CommonRouter", resultInvokers.clone());
parentNode.appendNode(commonRouterNode); parentNode.appendNode(commonRouterNode);
List<Invoker<T>> commonRouterResult = resultInvokers; List<Invoker<T>> commonRouterResult = resultInvokers;
@ -228,7 +236,8 @@ public class SingleRouterChain<T> {
// Copy resultInvokers to a arrayList. BitList not support // Copy resultInvokers to a arrayList. BitList not support
List<Invoker<T>> inputInvokers = new ArrayList<>(commonRouterResult); List<Invoker<T>> inputInvokers = new ArrayList<>(commonRouterResult);
RouterSnapshotNode<T> currentNode = new RouterSnapshotNode<T>(router.getClass().getSimpleName(), inputInvokers); RouterSnapshotNode<T> currentNode =
new RouterSnapshotNode<>(router.getClass().getSimpleName(), inputInvokers);
// append to router node chain // append to router node chain
commonRouterNode.appendNode(currentNode); commonRouterNode.appendNode(currentNode);
@ -268,24 +277,27 @@ public class SingleRouterChain<T> {
} }
private void logRouterSnapshot(URL url, Invocation invocation, RouterSnapshotNode<T> snapshotNode) { private void logRouterSnapshot(URL url, Invocation invocation, RouterSnapshotNode<T> snapshotNode) {
if (snapshotNode.getChainOutputInvokers() == null || if (snapshotNode.getChainOutputInvokers() == null
snapshotNode.getChainOutputInvokers().isEmpty()) { || snapshotNode.getChainOutputInvokers().isEmpty()) {
if (logger.isWarnEnabled()) { if (logger.isWarnEnabled()) {
String message = "No provider available after route for the service " + url.getServiceKey() String message = "No provider available after route for the service " + url.getServiceKey()
+ " from registry " + url.getAddress() + " from registry " + url.getAddress()
+ " on the consumer " + NetUtils.getLocalHost() + " on the consumer " + NetUtils.getLocalHost()
+ " using the dubbo version " + Version.getVersion() + ". Router snapshot is below: \n" + snapshotNode.toString(); + " using the dubbo version " + Version.getVersion() + ". Router snapshot is below: \n"
+ snapshotNode.toString();
if (routerSnapshotSwitcher.isEnable()) { if (routerSnapshotSwitcher.isEnable()) {
routerSnapshotSwitcher.setSnapshot(message); routerSnapshotSwitcher.setSnapshot(message);
} }
logger.warn(CLUSTER_NO_VALID_PROVIDER, "No provider available after route for the service", "", message); logger.warn(
CLUSTER_NO_VALID_PROVIDER, "No provider available after route for the service", "", message);
} }
} else { } else {
if (logger.isInfoEnabled()) { if (logger.isInfoEnabled()) {
String message = "Router snapshot service " + url.getServiceKey() String message = "Router snapshot service " + url.getServiceKey()
+ " from registry " + url.getAddress() + " from registry " + url.getAddress()
+ " on the consumer " + NetUtils.getLocalHost() + " on the consumer " + NetUtils.getLocalHost()
+ " using the dubbo version " + Version.getVersion() + " is below: \n" + snapshotNode.toString(); + " using the dubbo version " + Version.getVersion() + " is below: \n"
+ snapshotNode.toString();
if (routerSnapshotSwitcher.isEnable()) { if (routerSnapshotSwitcher.isEnable()) {
routerSnapshotSwitcher.setSnapshot(message); routerSnapshotSwitcher.setSnapshot(message);
} }
@ -330,7 +342,12 @@ public class SingleRouterChain<T> {
try { try {
router.stop(); router.stop();
} catch (Exception e) { } catch (Exception e) {
logger.error(CLUSTER_FAILED_STOP, "route stop failed", "", "Error trying to stop router " + router.getClass(), e); logger.error(
CLUSTER_FAILED_STOP,
"route stop failed",
"",
"Error trying to stop router " + router.getClass(),
e);
} }
} }
routers = Collections.emptyList(); routers = Collections.emptyList();
@ -340,7 +357,12 @@ public class SingleRouterChain<T> {
try { try {
router.stop(); router.stop();
} catch (Exception e) { } catch (Exception e) {
logger.error(CLUSTER_FAILED_STOP, "StateRouter stop failed", "", "Error trying to stop StateRouter " + router.getClass(), e); logger.error(
CLUSTER_FAILED_STOP,
"StateRouter stop failed",
"",
"Error trying to stop StateRouter " + router.getClass(),
e);
} }
} }
stateRouters = Collections.emptyList(); stateRouters = Collections.emptyList();

View File

@ -72,7 +72,10 @@ public abstract class AbstractConfigurator implements Configurator {
@Override @Override
public URL configure(URL url) { public URL configure(URL url) {
// If override url is not enabled or is invalid, just return. // If override url is not enabled or is invalid, just return.
if (!configuratorUrl.getParameter(ENABLED_KEY, true) || configuratorUrl.getHost() == null || url == null || url.getHost() == null) { if (!configuratorUrl.getParameter(ENABLED_KEY, true)
|| configuratorUrl.getHost() == null
|| url == null
|| url.getHost() == null) {
logger.info("Cannot apply configurator rule, the rule is disabled or is invalid: \n" + configuratorUrl); logger.info("Cannot apply configurator rule, the rule is disabled or is invalid: \n" + configuratorUrl);
return url; return url;
} }
@ -98,7 +101,9 @@ public abstract class AbstractConfigurator implements Configurator {
@Deprecated @Deprecated
private URL configureDeprecated(URL url) { private URL configureDeprecated(URL url) {
// If override url has port, means it is a provider address. We want to control a specific provider with this override url, it may take effect on the specific provider instance or on consumers holding this provider instance. // If override url has port, means it is a provider address. We want to control a specific provider with this
// override url, it may take effect on the specific provider instance or on consumers holding this provider
// instance.
if (configuratorUrl.getPort() != 0) { if (configuratorUrl.getPort() != 0) {
if (url.getPort() == configuratorUrl.getPort()) { if (url.getPort() == configuratorUrl.getPort()) {
return configureIfMatch(url.getHost(), url); return configureIfMatch(url.getHost(), url);
@ -131,7 +136,8 @@ public abstract class AbstractConfigurator implements Configurator {
if (matcher.isMatch(host, url)) { if (matcher.isMatch(host, url)) {
return doConfigure(url, configuratorUrl.removeParameters(conditionKeys)); return doConfigure(url, configuratorUrl.removeParameters(conditionKeys));
} else { } else {
logger.debug("Cannot apply configurator rule, param mismatch, current params are " + url + ", params in rule is " + matcher); logger.debug("Cannot apply configurator rule, param mismatch, current params are " + url
+ ", params in rule is " + matcher);
} }
} else { } else {
return doConfigure(url, configuratorUrl.removeParameters(conditionKeys)); return doConfigure(url, configuratorUrl.removeParameters(conditionKeys));
@ -141,7 +147,8 @@ public abstract class AbstractConfigurator implements Configurator {
} }
} }
} else { } else {
logger.debug("Cannot apply configurator rule, host mismatch, current host is " + host + ", host in rule is " + configuratorUrl.getHost()); logger.debug("Cannot apply configurator rule, host mismatch, current host is " + host + ", host in rule is "
+ configuratorUrl.getHost());
} }
return url; return url;
} }
@ -159,15 +166,16 @@ public abstract class AbstractConfigurator implements Configurator {
String[] providerAddresses = providers.split(CommonConstants.COMMA_SEPARATOR); String[] providerAddresses = providers.split(CommonConstants.COMMA_SEPARATOR);
for (String address : providerAddresses) { for (String address : providerAddresses) {
if (address.equals(url.getAddress()) if (address.equals(url.getAddress())
|| address.equals(ANYHOST_VALUE) || address.equals(ANYHOST_VALUE)
|| address.equals(ANYHOST_VALUE + CommonConstants.GROUP_CHAR_SEPARATOR + ANY_VALUE) || address.equals(ANYHOST_VALUE + CommonConstants.GROUP_CHAR_SEPARATOR + ANY_VALUE)
|| address.equals(ANYHOST_VALUE + CommonConstants.GROUP_CHAR_SEPARATOR + url.getPort()) || address.equals(ANYHOST_VALUE + CommonConstants.GROUP_CHAR_SEPARATOR + url.getPort())
|| address.equals(url.getHost())) { || address.equals(url.getHost())) {
match = true; match = true;
} }
} }
if (!match) { if (!match) {
logger.debug("Cannot apply configurator rule, provider address mismatch, current address " + url.getAddress() + ", address in rule is " + providers); logger.debug("Cannot apply configurator rule, provider address mismatch, current address "
+ url.getAddress() + ", address in rule is " + providers);
return false; return false;
} }
} }
@ -175,17 +183,18 @@ public abstract class AbstractConfigurator implements Configurator {
String configApplication = configuratorUrl.getApplication(configuratorUrl.getUsername()); String configApplication = configuratorUrl.getApplication(configuratorUrl.getUsername());
String currentApplication = url.getApplication(url.getUsername()); String currentApplication = url.getApplication(url.getUsername());
if (configApplication != null if (configApplication != null
&& !ANY_VALUE.equals(configApplication) && !ANY_VALUE.equals(configApplication)
&& !configApplication.equals(currentApplication)) { && !configApplication.equals(currentApplication)) {
logger.debug("Cannot apply configurator rule, application name mismatch, current application is " + currentApplication + ", application in rule is " + configApplication); logger.debug("Cannot apply configurator rule, application name mismatch, current application is "
+ currentApplication + ", application in rule is " + configApplication);
return false; return false;
} }
String configServiceKey = configuratorUrl.getServiceKey(); String configServiceKey = configuratorUrl.getServiceKey();
String currentServiceKey = url.getServiceKey(); String currentServiceKey = url.getServiceKey();
if (!ANY_VALUE.equals(configServiceKey) if (!ANY_VALUE.equals(configServiceKey) && !configServiceKey.equals(currentServiceKey)) {
&& !configServiceKey.equals(currentServiceKey)) { logger.debug("Cannot apply configurator rule, service mismatch, current service is " + currentServiceKey
logger.debug("Cannot apply configurator rule, service mismatch, current service is " + currentServiceKey + ", service in rule is " + configServiceKey); + ", service in rule is " + configServiceKey);
return false; return false;
} }
@ -202,8 +211,9 @@ public abstract class AbstractConfigurator implements Configurator {
if (startWithTilde) { if (startWithTilde) {
conditionKeys.add(key); conditionKeys.add(key);
} }
if (value != null && !ANY_VALUE.equals(value) if (value != null
&& !value.equals(url.getParameter(startWithTilde ? key.substring(1) : key))) { && !ANY_VALUE.equals(value)
&& !value.equals(url.getParameter(startWithTilde ? key.substring(1) : key))) {
result = false; result = false;
break; break;
} }
@ -213,7 +223,7 @@ public abstract class AbstractConfigurator implements Configurator {
} }
private Set<String> genConditionKeys() { private Set<String> genConditionKeys() {
Set<String> conditionKeys = new HashSet<String>(); Set<String> conditionKeys = new HashSet<>();
conditionKeys.add(CATEGORY_KEY); conditionKeys.add(CATEGORY_KEY);
conditionKeys.add(Constants.CHECK_KEY); conditionKeys.add(Constants.CHECK_KEY);
conditionKeys.add(DYNAMIC_KEY); conditionKeys.add(DYNAMIC_KEY);
@ -233,5 +243,4 @@ public abstract class AbstractConfigurator implements Configurator {
} }
protected abstract URL doConfigure(URL currentUrl, URL configUrl); protected abstract URL doConfigure(URL currentUrl, URL configUrl);
} }

View File

@ -32,5 +32,4 @@ public class AbsentConfigurator extends AbstractConfigurator {
public URL doConfigure(URL currentUrl, URL configUrl) { public URL doConfigure(URL currentUrl, URL configUrl) {
return currentUrl.addParametersIfAbsent(configUrl.getParameters()); return currentUrl.addParametersIfAbsent(configUrl.getParameters());
} }
} }

View File

@ -30,5 +30,4 @@ public class AbsentConfiguratorFactory implements ConfiguratorFactory {
public Configurator getConfigurator(URL url) { public Configurator getConfigurator(URL url) {
return new AbsentConfigurator(url); return new AbsentConfigurator(url);
} }
} }

View File

@ -36,5 +36,4 @@ public class OverrideConfigurator extends AbstractConfigurator {
logger.info("Start overriding url " + currentUrl + " with override url " + configUrl); logger.info("Start overriding url " + currentUrl + " with override url " + configUrl);
return currentUrl.addParameters(configUrl.getParameters()); return currentUrl.addParameters(configUrl.getParameters());
} }
} }

View File

@ -30,5 +30,4 @@ public class OverrideConfiguratorFactory implements ConfiguratorFactory {
public Configurator getConfigurator(URL url) { public Configurator getConfigurator(URL url) {
return new OverrideConfigurator(url); return new OverrideConfigurator(url);
} }
} }

View File

@ -23,14 +23,14 @@ import org.apache.dubbo.common.utils.StringUtils;
import org.apache.dubbo.rpc.cluster.configurator.parser.model.ConfigItem; import org.apache.dubbo.rpc.cluster.configurator.parser.model.ConfigItem;
import org.apache.dubbo.rpc.cluster.configurator.parser.model.ConfiguratorConfig; import org.apache.dubbo.rpc.cluster.configurator.parser.model.ConfiguratorConfig;
import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor;
import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE; import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;
import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER; import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER;
import static org.apache.dubbo.common.constants.RegistryConstants.APP_DYNAMIC_CONFIGURATORS_CATEGORY; import static org.apache.dubbo.common.constants.RegistryConstants.APP_DYNAMIC_CONFIGURATORS_CATEGORY;
@ -104,7 +104,12 @@ public class ConfigParser {
if (CollectionUtils.isNotEmpty(apps)) { if (CollectionUtils.isNotEmpty(apps)) {
apps.forEach(app -> { apps.forEach(app -> {
StringBuilder tmpUrlBuilder = new StringBuilder(urlBuilder); StringBuilder tmpUrlBuilder = new StringBuilder(urlBuilder);
urls.add(appendMatchCondition(URL.valueOf(tmpUrlBuilder.append("&application=").append(app).toString()), item)); urls.add(appendMatchCondition(
URL.valueOf(tmpUrlBuilder
.append("&application=")
.append(app)
.toString()),
item));
}); });
} else { } else {
urls.add(appendMatchCondition(URL.valueOf(urlBuilder.toString()), item)); urls.add(appendMatchCondition(URL.valueOf(urlBuilder.toString()), item));
@ -155,8 +160,8 @@ public class ConfigParser {
} }
Map<String, String> parameters = item.getParameters(); Map<String, String> parameters = item.getParameters();
if (CollectionUtils.isEmptyMap(parameters)) { if (CollectionUtils.isEmptyMap(parameters)) {
throw new IllegalStateException("Invalid configurator rule, please specify at least one parameter " + throw new IllegalStateException("Invalid configurator rule, please specify at least one parameter "
"you want to change in the rule."); + "you want to change in the rule.");
} }
parameters.forEach((k, v) -> { parameters.forEach((k, v) -> {

View File

@ -101,12 +101,11 @@ public class ConditionMatch {
@Override @Override
public String toString() { public String toString() {
return "ConditionMatch{" + return "ConditionMatch{" + "address='"
"address='" + address + '\'' + + address + '\'' + "providerAddress='"
"providerAddress='" + providerAddress + '\'' + + providerAddress + '\'' + ", service='"
", service='" + service + '\'' + + service + '\'' + ", app='"
", app='" + app + '\'' + + app + '\'' + ", param='"
", param='" + param + '\'' + + param + '\'' + '}';
'}';
} }
} }

View File

@ -68,32 +68,33 @@ public class ConfigItem {
Object addresses = map.get(ADDRESSES_KEY); Object addresses = map.get(ADDRESSES_KEY);
if (addresses != null && List.class.isAssignableFrom(addresses.getClass())) { if (addresses != null && List.class.isAssignableFrom(addresses.getClass())) {
configItem.setAddresses(((List<Object>) addresses).stream() configItem.setAddresses(
.map(String::valueOf).collect(Collectors.toList())); ((List<Object>) addresses).stream().map(String::valueOf).collect(Collectors.toList()));
} }
Object providerAddresses = map.get(PROVIDER_ADDRESSES_KEY); Object providerAddresses = map.get(PROVIDER_ADDRESSES_KEY);
if (providerAddresses != null && List.class.isAssignableFrom(providerAddresses.getClass())) { if (providerAddresses != null && List.class.isAssignableFrom(providerAddresses.getClass())) {
configItem.setProviderAddresses(((List<Object>) providerAddresses).stream() configItem.setProviderAddresses(((List<Object>) providerAddresses)
.map(String::valueOf).collect(Collectors.toList())); .stream().map(String::valueOf).collect(Collectors.toList()));
} }
Object services = map.get(SERVICES_KEY); Object services = map.get(SERVICES_KEY);
if (services != null && List.class.isAssignableFrom(services.getClass())) { if (services != null && List.class.isAssignableFrom(services.getClass())) {
configItem.setServices(((List<Object>) services).stream() configItem.setServices(
.map(String::valueOf).collect(Collectors.toList())); ((List<Object>) services).stream().map(String::valueOf).collect(Collectors.toList()));
} }
Object applications = map.get(APPLICATIONS_KEY); Object applications = map.get(APPLICATIONS_KEY);
if (applications != null && List.class.isAssignableFrom(applications.getClass())) { if (applications != null && List.class.isAssignableFrom(applications.getClass())) {
configItem.setApplications(((List<Object>) applications).stream() configItem.setApplications(
.map(String::valueOf).collect(Collectors.toList())); ((List<Object>) applications).stream().map(String::valueOf).collect(Collectors.toList()));
} }
Object parameters = map.get(PARAMETERS_KEY); Object parameters = map.get(PARAMETERS_KEY);
if (parameters != null && Map.class.isAssignableFrom(parameters.getClass())) { if (parameters != null && Map.class.isAssignableFrom(parameters.getClass())) {
configItem.setParameters(((Map<String, Object>) parameters).entrySet() configItem.setParameters(((Map<String, Object>) parameters)
.stream().collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().toString()))); .entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue()
.toString())));
} }
try { try {
@ -102,7 +103,12 @@ public class ConfigItem {
configItem.setMatch(PojoUtils.mapToPojo((Map<String, Object>) match, ConditionMatch.class)); configItem.setMatch(PojoUtils.mapToPojo((Map<String, Object>) match, ConditionMatch.class));
} }
} catch (Throwable t) { } catch (Throwable t) {
logger.error(CLUSTER_FAILED_RECEIVE_RULE, " Failed to parse dynamic configuration rule", String.valueOf(map.get(MATCH_KEY)), "Error occurred when parsing rule component.", t); logger.error(
CLUSTER_FAILED_RECEIVE_RULE,
" Failed to parse dynamic configuration rule",
String.valueOf(map.get(MATCH_KEY)),
"Error occurred when parsing rule component.",
t);
} }
configItem.setSide((String) map.get(SIDE_KEY)); configItem.setSide((String) map.get(SIDE_KEY));

View File

@ -52,8 +52,8 @@ public class ConfiguratorConfig {
Object configs = map.get(CONFIGS_KEY); Object configs = map.get(CONFIGS_KEY);
if (configs != null && List.class.isAssignableFrom(configs.getClass())) { if (configs != null && List.class.isAssignableFrom(configs.getClass())) {
configuratorConfig.setConfigs(((List<Map<String, Object>>) configs).stream() configuratorConfig.setConfigs(((List<Map<String, Object>>) configs)
.map(ConfigItem::parseFromMap).collect(Collectors.toList())); .stream().map(ConfigItem::parseFromMap).collect(Collectors.toList()));
} }
return configuratorConfig; return configuratorConfig;

View File

@ -50,9 +50,6 @@ public class ParamMatch {
@Override @Override
public String toString() { public String toString() {
return "ParamMatch{" + return "ParamMatch{" + "key='" + key + '\'' + ", value='" + value + '\'' + '}';
"key='" + key + '\'' +
", value='" + value + '\'' +
'}';
} }
} }

View File

@ -25,6 +25,7 @@ import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
import org.apache.dubbo.common.logger.LoggerFactory; import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.common.threadpool.manager.FrameworkExecutorRepository; import org.apache.dubbo.common.threadpool.manager.FrameworkExecutorRepository;
import org.apache.dubbo.common.utils.ConcurrentHashSet; import org.apache.dubbo.common.utils.ConcurrentHashSet;
import org.apache.dubbo.common.utils.LockUtils;
import org.apache.dubbo.common.utils.NetUtils; import org.apache.dubbo.common.utils.NetUtils;
import org.apache.dubbo.common.utils.StringUtils; import org.apache.dubbo.common.utils.StringUtils;
import org.apache.dubbo.metrics.event.MetricsEventBus; import org.apache.dubbo.metrics.event.MetricsEventBus;
@ -56,6 +57,8 @@ import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.Semaphore; import java.util.concurrent.Semaphore;
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.locks.ReentrantLock;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER; import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER;
@ -122,6 +125,8 @@ public abstract class AbstractDirectory<T> implements Directory<T> {
private volatile ScheduledFuture<?> connectivityCheckFuture; private volatile ScheduledFuture<?> connectivityCheckFuture;
private final ReentrantLock invokerRefreshLock = new ReentrantLock();
/** /**
* The max count of invokers for each reconnect task select to try to reconnect. * The max count of invokers for each reconnect task select to try to reconnect.
*/ */
@ -160,18 +165,20 @@ public abstract class AbstractDirectory<T> implements Directory<T> {
// remove some local only parameters // remove some local only parameters
applicationModel = url.getOrDefaultApplicationModel(); applicationModel = url.getOrDefaultApplicationModel();
this.queryMap = applicationModel.getBeanFactory().getBean(ClusterUtils.class).mergeLocalParams(queryMap); this.queryMap =
applicationModel.getBeanFactory().getBean(ClusterUtils.class).mergeLocalParams(queryMap);
if (consumerUrl == null) { if (consumerUrl == null) {
String host = isNotEmpty(queryMap.get(REGISTER_IP_KEY)) ? queryMap.get(REGISTER_IP_KEY) : this.url.getHost(); String host =
isNotEmpty(queryMap.get(REGISTER_IP_KEY)) ? queryMap.get(REGISTER_IP_KEY) : this.url.getHost();
String path = isNotEmpty(queryMap.get(PATH_KEY)) ? queryMap.get(PATH_KEY) : queryMap.get(INTERFACE_KEY); String path = isNotEmpty(queryMap.get(PATH_KEY)) ? queryMap.get(PATH_KEY) : queryMap.get(INTERFACE_KEY);
String consumedProtocol = isNotEmpty(queryMap.get(PROTOCOL_KEY)) ? queryMap.get(PROTOCOL_KEY) : CONSUMER; String consumedProtocol = isNotEmpty(queryMap.get(PROTOCOL_KEY)) ? queryMap.get(PROTOCOL_KEY) : CONSUMER;
URL consumerUrlFrom = this.url URL consumerUrlFrom = this.url
.setHost(host) .setHost(host)
.setPort(0) .setPort(0)
.setProtocol(consumedProtocol) .setProtocol(consumedProtocol)
.setPath(path); .setPath(path);
if (isUrlFromRegistry) { if (isUrlFromRegistry) {
// reserve parameters if url is already a consumer url // reserve parameters if url is already a consumer url
consumerUrlFrom = consumerUrlFrom.clearParameters(); consumerUrlFrom = consumerUrlFrom.clearParameters();
@ -179,19 +186,23 @@ public abstract class AbstractDirectory<T> implements Directory<T> {
this.consumerUrl = consumerUrlFrom.addParameters(queryMap); this.consumerUrl = consumerUrlFrom.addParameters(queryMap);
} }
this.connectivityExecutor = applicationModel.getFrameworkModel().getBeanFactory() this.connectivityExecutor = applicationModel
.getBean(FrameworkExecutorRepository.class).getConnectivityScheduledExecutor(); .getFrameworkModel()
.getBeanFactory()
.getBean(FrameworkExecutorRepository.class)
.getConnectivityScheduledExecutor();
Configuration configuration = ConfigurationUtils.getGlobalConfiguration(url.getOrDefaultModuleModel()); Configuration configuration = ConfigurationUtils.getGlobalConfiguration(url.getOrDefaultModuleModel());
this.reconnectTaskTryCount = configuration.getInt(RECONNECT_TASK_TRY_COUNT, DEFAULT_RECONNECT_TASK_TRY_COUNT); this.reconnectTaskTryCount = configuration.getInt(RECONNECT_TASK_TRY_COUNT, DEFAULT_RECONNECT_TASK_TRY_COUNT);
this.reconnectTaskPeriod = configuration.getInt(RECONNECT_TASK_PERIOD, DEFAULT_RECONNECT_TASK_PERIOD); this.reconnectTaskPeriod = configuration.getInt(RECONNECT_TASK_PERIOD, DEFAULT_RECONNECT_TASK_PERIOD);
setRouterChain(routerChain); setRouterChain(routerChain);
} }
@Override @Override
public List<Invoker<T>> list(Invocation invocation) throws RpcException { public List<Invoker<T>> list(Invocation invocation) throws RpcException {
if (destroyed) { if (destroyed) {
throw new RpcException("Directory of type " + this.getClass().getSimpleName() + " already destroyed for service " + getConsumerUrl().getServiceKey() + " from registry " + getUrl()); throw new RpcException(
"Directory of type " + this.getClass().getSimpleName() + " already destroyed for service "
+ getConsumerUrl().getServiceKey() + " from registry " + getUrl());
} }
BitList<Invoker<T>> availableInvokers; BitList<Invoker<T>> availableInvokers;
@ -222,12 +233,16 @@ public abstract class AbstractDirectory<T> implements Directory<T> {
if (routedResult.isEmpty()) { if (routedResult.isEmpty()) {
// 2-2 - No provider available. // 2-2 - No provider available.
logger.warn(CLUSTER_NO_VALID_PROVIDER, "provider server or registry center crashed", "", logger.warn(
"No provider available after connectivity filter for the service " + getConsumerUrl().getServiceKey() CLUSTER_NO_VALID_PROVIDER,
+ " All routed invokers' size: " + routedResult.size() "provider server or registry center crashed",
+ " from registry " + this "",
+ " on the consumer " + NetUtils.getLocalHost() "No provider available after connectivity filter for the service "
+ " using the dubbo version " + Version.getVersion() + "."); + getConsumerUrl().getServiceKey()
+ " All routed invokers' size: " + routedResult.size()
+ " from registry " + this
+ " on the consumer " + NetUtils.getLocalHost()
+ " using the dubbo version " + Version.getVersion() + ".");
} }
return Collections.unmodifiableList(routedResult); return Collections.unmodifiableList(routedResult);
} finally { } finally {
@ -283,74 +298,109 @@ public abstract class AbstractDirectory<T> implements Directory<T> {
@Override @Override
public void addInvalidateInvoker(Invoker<T> invoker) { public void addInvalidateInvoker(Invoker<T> invoker) {
// 1. remove this invoker from validInvokers list, this invoker will not be listed in the next time LockUtils.safeLock(invokerRefreshLock, LockUtils.DEFAULT_TIMEOUT, () -> {
if (removeValidInvoker(invoker)) { // 1. remove this invoker from validInvokers list, this invoker will not be listed in the next time
// 2. add this invoker to reconnect list if (removeValidInvoker(invoker)) {
invokersToReconnect.add(invoker); // 2. add this invoker to reconnect list
// 3. try start check connectivity task invokersToReconnect.add(invoker);
checkConnectivity(); // 3. try start check connectivity task
checkConnectivity();
logger.info("The invoker " + invoker.getUrl() + " has been added to invalidate list due to connectivity problem. " + logger.info("The invoker " + invoker.getUrl()
"Will trying to reconnect to it in the background."); + " has been added to invalidate list due to connectivity problem. "
} + "Will trying to reconnect to it in the background.");
}
});
} }
public void checkConnectivity() { public void checkConnectivity() {
// try to submit task, to ensure there is only one task at most for each directory // try to submit task, to ensure there is only one task at most for each directory
if (checkConnectivityPermit.tryAcquire()) { if (checkConnectivityPermit.tryAcquire()) {
this.connectivityCheckFuture = connectivityExecutor.schedule(() -> { this.connectivityCheckFuture = connectivityExecutor.schedule(
try { () -> {
if (isDestroyed()) { try {
return; if (isDestroyed()) {
} return;
RpcContext.getServiceContext().setConsumerUrl(getConsumerUrl());
List<Invoker<T>> needDeleteList = new ArrayList<>();
List<Invoker<T>> invokersToTry = new ArrayList<>();
// 1. pick invokers from invokersToReconnect
// limit max reconnectTaskTryCount, prevent this task hang up all the connectivityExecutor for long time
if (invokersToReconnect.size() < reconnectTaskTryCount) {
invokersToTry.addAll(invokersToReconnect);
} else {
for (int i = 0; i < reconnectTaskTryCount; i++) {
Invoker<T> tInvoker = invokersToReconnect.get(ThreadLocalRandom.current().nextInt(invokersToReconnect.size()));
if (!invokersToTry.contains(tInvoker)) {
// ignore if is selected, invokersToTry's size is always smaller than reconnectTaskTryCount + 1
invokersToTry.add(tInvoker);
} }
} RpcContext.getServiceContext().setConsumerUrl(getConsumerUrl());
} List<Invoker<T>> needDeleteList = new ArrayList<>();
List<Invoker<T>> invokersToTry = new ArrayList<>();
// 2. try to check the invoker's status // 1. pick invokers from invokersToReconnect
for (Invoker<T> invoker : invokersToTry) { // limit max reconnectTaskTryCount, prevent this task hang up all the connectivityExecutor
if (invokers.contains(invoker)) { // for long time
if (invoker.isAvailable()) { LockUtils.safeLock(invokerRefreshLock, LockUtils.DEFAULT_TIMEOUT, () -> {
needDeleteList.add(invoker); if (invokersToReconnect.size() < reconnectTaskTryCount) {
invokersToTry.addAll(invokersToReconnect);
} else {
for (int i = 0; i < reconnectTaskTryCount; i++) {
Invoker<T> tInvoker = invokersToReconnect.get(
ThreadLocalRandom.current().nextInt(invokersToReconnect.size()));
if (!invokersToTry.contains(tInvoker)) {
// ignore if is selected, invokersToTry's size is always smaller than
// reconnectTaskTryCount + 1
invokersToTry.add(tInvoker);
}
}
}
});
// 2. try to check the invoker's status
for (Invoker<T> invoker : invokersToTry) {
AtomicBoolean invokerExist = new AtomicBoolean(false);
LockUtils.safeLock(invokerRefreshLock, LockUtils.DEFAULT_TIMEOUT, () -> {
invokerExist.set(invokers.contains(invoker));
});
// Should not lock here, `invoker.isAvailable` may need some time to check
if (invokerExist.get()) {
if (invoker.isAvailable()) {
needDeleteList.add(invoker);
}
} else {
needDeleteList.add(invoker);
}
} }
} else {
needDeleteList.add(invoker);
}
}
// 3. recover valid invoker // 3. recover valid invoker
for (Invoker<T> tInvoker : needDeleteList) { LockUtils.safeLock(invokerRefreshLock, LockUtils.DEFAULT_TIMEOUT, () -> {
if (invokers.contains(tInvoker)) { for (Invoker<T> tInvoker : needDeleteList) {
addValidInvoker(tInvoker); if (invokers.contains(tInvoker)) {
logger.info("Recover service address: " + tInvoker.getUrl() + " from invalid list."); addValidInvoker(tInvoker);
logger.info("Recover service address: " + tInvoker.getUrl()
+ " from invalid list.");
} else {
logger.info(
"The invoker " + tInvoker.getUrl()
+ " has been removed from invokers list. Will remove it in reconnect list.");
}
invokersToReconnect.remove(tInvoker);
}
});
} catch (Throwable t) {
logger.error(
LoggerCodeConstants.INTERNAL_ERROR,
"",
"",
"Error occurred when check connectivity. ",
t);
} finally {
checkConnectivityPermit.release();
} }
invokersToReconnect.remove(tInvoker);
}
} finally {
checkConnectivityPermit.release();
}
// 4. submit new task if it has more to recover // 4. submit new task if it has more to recover
if (!invokersToReconnect.isEmpty()) { LockUtils.safeLock(invokerRefreshLock, LockUtils.DEFAULT_TIMEOUT, () -> {
checkConnectivity(); if (!invokersToReconnect.isEmpty()) {
} checkConnectivity();
}, reconnectTaskPeriod, TimeUnit.MILLISECONDS); }
});
MetricsEventBus.publish(RegistryEvent.refreshDirectoryEvent(
applicationModel, getSummary(), getDirectoryMeta()));
},
reconnectTaskPeriod,
TimeUnit.MILLISECONDS);
} }
MetricsEventBus.publish(RegistryEvent.refreshDirectoryEvent(applicationModel, getSummary(), getDirectoryMeta())); MetricsEventBus.publish(
RegistryEvent.refreshDirectoryEvent(applicationModel, getSummary(), getDirectoryMeta()));
} }
/** /**
@ -361,17 +411,20 @@ public abstract class AbstractDirectory<T> implements Directory<T> {
* 4. all the invokers disappeared from total invokers should be removed in the disabled invokers list * 4. all the invokers disappeared from total invokers should be removed in the disabled invokers list
*/ */
public void refreshInvoker() { public void refreshInvoker() {
if (invokersInitialized) { LockUtils.safeLock(invokerRefreshLock, LockUtils.DEFAULT_TIMEOUT, () -> {
refreshInvokerInternal(); if (invokersInitialized) {
} refreshInvokerInternal();
MetricsEventBus.publish(RegistryEvent.refreshDirectoryEvent(applicationModel, getSummary(), getDirectoryMeta())); }
});
MetricsEventBus.publish(
RegistryEvent.refreshDirectoryEvent(applicationModel, getSummary(), getDirectoryMeta()));
} }
protected Map<String, String> getDirectoryMeta() { protected Map<String, String> getDirectoryMeta() {
return Collections.emptyMap(); return Collections.emptyMap();
} }
private synchronized void refreshInvokerInternal() { private void refreshInvokerInternal() {
BitList<Invoker<T>> copiedInvokers = invokers.clone(); BitList<Invoker<T>> copiedInvokers = invokers.clone();
refreshInvokers(copiedInvokers, invokersToReconnect); refreshInvokers(copiedInvokers, invokersToReconnect);
refreshInvokers(copiedInvokers, disabledInvokers); refreshInvokers(copiedInvokers, disabledInvokers);
@ -392,37 +445,47 @@ public abstract class AbstractDirectory<T> implements Directory<T> {
@Override @Override
public void addDisabledInvoker(Invoker<T> invoker) { public void addDisabledInvoker(Invoker<T> invoker) {
if (invokers.contains(invoker)) { LockUtils.safeLock(invokerRefreshLock, LockUtils.DEFAULT_TIMEOUT, () -> {
disabledInvokers.add(invoker); if (invokers.contains(invoker)) {
removeValidInvoker(invoker); disabledInvokers.add(invoker);
logger.info("Disable service address: " + invoker.getUrl() + "."); removeValidInvoker(invoker);
} logger.info("Disable service address: " + invoker.getUrl() + ".");
MetricsEventBus.publish(RegistryEvent.refreshDirectoryEvent(applicationModel, getSummary(), getDirectoryMeta())); }
});
MetricsEventBus.publish(
RegistryEvent.refreshDirectoryEvent(applicationModel, getSummary(), getDirectoryMeta()));
} }
@Override @Override
public void recoverDisabledInvoker(Invoker<T> invoker) { public void recoverDisabledInvoker(Invoker<T> invoker) {
if (disabledInvokers.remove(invoker)) { LockUtils.safeLock(invokerRefreshLock, LockUtils.DEFAULT_TIMEOUT, () -> {
try { if (disabledInvokers.remove(invoker)) {
addValidInvoker(invoker); try {
logger.info("Recover service address: " + invoker.getUrl() + " from disabled list."); addValidInvoker(invoker);
} catch (Throwable ignore) { logger.info("Recover service address: " + invoker.getUrl() + " from disabled list.");
} catch (Throwable ignore) {
}
} }
} });
MetricsEventBus.publish(RegistryEvent.refreshDirectoryEvent(applicationModel, getSummary(), getDirectoryMeta())); MetricsEventBus.publish(
RegistryEvent.refreshDirectoryEvent(applicationModel, getSummary(), getDirectoryMeta()));
} }
protected final void refreshRouter(BitList<Invoker<T>> newlyInvokers, Runnable switchAction) { protected final void refreshRouter(BitList<Invoker<T>> newlyInvokers, Runnable switchAction) {
try { try {
routerChain.setInvokers(newlyInvokers.clone(), switchAction); routerChain.setInvokers(newlyInvokers.clone(), switchAction);
} catch (Throwable t) { } catch (Throwable t) {
logger.error(LoggerCodeConstants.INTERNAL_ERROR, "", "", "Error occurred when refreshing router chain. " + logger.error(
"The addresses from notification: " + LoggerCodeConstants.INTERNAL_ERROR,
newlyInvokers.stream() "",
.map(Invoker::getUrl) "",
.map(URL::getAddress) "Error occurred when refreshing router chain. " + "The addresses from notification: "
.collect(Collectors.joining(", ")), t); + newlyInvokers.stream()
.map(Invoker::getUrl)
.map(URL::getAddress)
.collect(Collectors.joining(", ")),
t);
throw t; throw t;
} }
@ -463,40 +526,48 @@ public abstract class AbstractDirectory<T> implements Directory<T> {
} }
protected void setInvokers(BitList<Invoker<T>> invokers) { protected void setInvokers(BitList<Invoker<T>> invokers) {
this.invokers = invokers; LockUtils.safeLock(invokerRefreshLock, LockUtils.DEFAULT_TIMEOUT, () -> {
refreshInvokerInternal(); this.invokers = invokers;
this.invokersInitialized = true; refreshInvokerInternal();
this.invokersInitialized = true;
});
MetricsEventBus.publish(RegistryEvent.refreshDirectoryEvent(applicationModel, getSummary(), getDirectoryMeta())); MetricsEventBus.publish(
RegistryEvent.refreshDirectoryEvent(applicationModel, getSummary(), getDirectoryMeta()));
} }
protected void destroyInvokers() { protected void destroyInvokers() {
// set empty instead of clearing to support concurrent access. // set empty instead of clearing to support concurrent access.
this.invokers = BitList.emptyList(); LockUtils.safeLock(invokerRefreshLock, LockUtils.DEFAULT_TIMEOUT, () -> {
this.validInvokers = BitList.emptyList(); this.invokers = BitList.emptyList();
this.invokersInitialized = false; this.validInvokers = BitList.emptyList();
this.invokersInitialized = false;
});
} }
private boolean addValidInvoker(Invoker<T> invoker) { private boolean addValidInvoker(Invoker<T> invoker) {
boolean result; AtomicBoolean result = new AtomicBoolean(false);
synchronized (this.validInvokers) { LockUtils.safeLock(invokerRefreshLock, LockUtils.DEFAULT_TIMEOUT, () -> {
result = this.validInvokers.add(invoker); result.set(this.validInvokers.add(invoker));
} });
MetricsEventBus.publish(RegistryEvent.refreshDirectoryEvent(applicationModel, getSummary(), getDirectoryMeta())); MetricsEventBus.publish(
return result; RegistryEvent.refreshDirectoryEvent(applicationModel, getSummary(), getDirectoryMeta()));
return result.get();
} }
private boolean removeValidInvoker(Invoker<T> invoker) { private boolean removeValidInvoker(Invoker<T> invoker) {
boolean result; AtomicBoolean result = new AtomicBoolean(false);
synchronized (this.validInvokers) { LockUtils.safeLock(invokerRefreshLock, LockUtils.DEFAULT_TIMEOUT, () -> {
result = this.validInvokers.remove(invoker); result.set(this.validInvokers.remove(invoker));
} });
MetricsEventBus.publish(RegistryEvent.refreshDirectoryEvent(applicationModel, getSummary(), getDirectoryMeta())); MetricsEventBus.publish(
return result; RegistryEvent.refreshDirectoryEvent(applicationModel, getSummary(), getDirectoryMeta()));
return result.get();
} }
protected abstract List<Invoker<T>> doList(SingleRouterChain<T> singleRouterChain, protected abstract List<Invoker<T>> doList(
BitList<Invoker<T>> invokers, Invocation invocation) throws RpcException; SingleRouterChain<T> singleRouterChain, BitList<Invoker<T>> invokers, Invocation invocation)
throws RpcException;
protected String joinValidInvokerAddresses() { protected String joinValidInvokerAddresses() {
BitList<Invoker<T>> validInvokers = getValidInvokers().clone(); BitList<Invoker<T>> validInvokers = getValidInvokers().clone();
@ -504,10 +575,10 @@ public abstract class AbstractDirectory<T> implements Directory<T> {
return "empty"; return "empty";
} }
return validInvokers.stream() return validInvokers.stream()
.limit(5) .limit(5)
.map(Invoker::getUrl) .map(Invoker::getUrl)
.map(URL::getAddress) .map(URL::getAddress)
.collect(Collectors.joining(",")); .collect(Collectors.joining(","));
} }
private Map<MetricsKey, Map<String, Integer>> getSummary() { private Map<MetricsKey, Map<String, Integer>> getSummary() {
@ -526,25 +597,27 @@ public abstract class AbstractDirectory<T> implements Directory<T> {
@Override @Override
public String toString() { public String toString() {
return "Directory(" + return "Directory(" + "invokers: "
"invokers: " + invokers.size() + "[" + + invokers.size() + "["
invokers.stream() + invokers.stream()
.map(Invoker::getUrl) .map(Invoker::getUrl)
.map(URL::getAddress) .map(URL::getAddress)
.limit(3) .limit(3)
.collect(Collectors.joining(", ")) + "]" + .collect(Collectors.joining(", "))
", validInvokers: " + validInvokers.size() + "[" + + "]" + ", validInvokers: "
validInvokers.stream() + validInvokers.size() + "["
.map(Invoker::getUrl) + validInvokers.stream()
.map(URL::getAddress) .map(Invoker::getUrl)
.limit(3) .map(URL::getAddress)
.collect(Collectors.joining(", ")) + "]" + .limit(3)
", invokersToReconnect: " + invokersToReconnect.size() + "[" + .collect(Collectors.joining(", "))
invokersToReconnect.stream() + "]" + ", invokersToReconnect: "
.map(Invoker::getUrl) + invokersToReconnect.size() + "["
.map(URL::getAddress) + invokersToReconnect.stream()
.limit(3) .map(Invoker::getUrl)
.collect(Collectors.joining(", ")) + "]" + .map(URL::getAddress)
')'; .limit(3)
.collect(Collectors.joining(", "))
+ "]" + ')';
} }
} }

View File

@ -55,7 +55,12 @@ public class StaticDirectory<T> extends AbstractDirectory<T> {
} }
public StaticDirectory(URL url, List<Invoker<T>> invokers, RouterChain<T> routerChain) { public StaticDirectory(URL url, List<Invoker<T>> invokers, RouterChain<T> routerChain) {
super(url == null && CollectionUtils.isNotEmpty(invokers) ? invokers.get(0).getUrl() : url, routerChain, false); super(
url == null && CollectionUtils.isNotEmpty(invokers)
? invokers.get(0).getUrl()
: url,
routerChain,
false);
if (CollectionUtils.isEmpty(invokers)) { if (CollectionUtils.isEmpty(invokers)) {
throw new IllegalArgumentException("invokers == null"); throw new IllegalArgumentException("invokers == null");
} }
@ -101,28 +106,34 @@ public class StaticDirectory<T> extends AbstractDirectory<T> {
public void buildRouterChain() { public void buildRouterChain() {
RouterChain<T> routerChain = RouterChain.buildChain(getInterface(), getUrl()); RouterChain<T> routerChain = RouterChain.buildChain(getInterface(), getUrl());
routerChain.setInvokers(getInvokers(), () -> { routerChain.setInvokers(getInvokers(), () -> {});
});
this.setRouterChain(routerChain); this.setRouterChain(routerChain);
} }
public void notify(List<Invoker<T>> invokers) { public void notify(List<Invoker<T>> invokers) {
BitList<Invoker<T>> bitList = new BitList<>(invokers); BitList<Invoker<T>> bitList = new BitList<>(invokers);
if (routerChain != null) { if (routerChain != null) {
refreshRouter(bitList.clone(), () -> this.setInvokers(bitList)); refreshRouter(bitList.clone(), () -> this.setInvokers(bitList));
} else { } else {
this.setInvokers(bitList); this.setInvokers(bitList);
} }
} }
@Override @Override
protected List<Invoker<T>> doList(SingleRouterChain<T> singleRouterChain, BitList<Invoker<T>> invokers, Invocation invocation) throws RpcException { protected List<Invoker<T>> doList(
SingleRouterChain<T> singleRouterChain, BitList<Invoker<T>> invokers, Invocation invocation)
throws RpcException {
if (singleRouterChain != null) { if (singleRouterChain != null) {
try { try {
List<Invoker<T>> finalInvokers = singleRouterChain.route(getConsumerUrl(), invokers, invocation); List<Invoker<T>> finalInvokers = singleRouterChain.route(getConsumerUrl(), invokers, invocation);
return finalInvokers == null ? BitList.emptyList() : finalInvokers; return finalInvokers == null ? BitList.emptyList() : finalInvokers;
} catch (Throwable t) { } catch (Throwable t) {
logger.error(CLUSTER_FAILED_SITE_SELECTION, "Failed to execute router", "", "Failed to execute router: " + getUrl() + ", cause: " + t.getMessage(), t); logger.error(
CLUSTER_FAILED_SITE_SELECTION,
"Failed to execute router",
"",
"Failed to execute router: " + getUrl() + ", cause: " + t.getMessage(),
t);
return BitList.emptyList(); return BitList.emptyList();
} }
} }

View File

@ -21,5 +21,4 @@ import org.apache.dubbo.common.extension.SPI;
import org.apache.dubbo.rpc.BaseFilter; import org.apache.dubbo.rpc.BaseFilter;
@SPI(scope = ExtensionScope.MODULE) @SPI(scope = ExtensionScope.MODULE)
public interface ClusterFilter extends BaseFilter { public interface ClusterFilter extends BaseFilter {}
}

View File

@ -47,12 +47,14 @@ public class DefaultFilterChainBuilder implements FilterChainBuilder {
List<ModuleModel> moduleModels = getModuleModelsFromUrl(url); List<ModuleModel> moduleModels = getModuleModelsFromUrl(url);
List<Filter> filters; List<Filter> filters;
if (moduleModels != null && moduleModels.size() == 1) { if (moduleModels != null && moduleModels.size() == 1) {
filters = ScopeModelUtil.getExtensionLoader(Filter.class, moduleModels.get(0)).getActivateExtension(url, key, group); filters = ScopeModelUtil.getExtensionLoader(Filter.class, moduleModels.get(0))
.getActivateExtension(url, key, group);
} else if (moduleModels != null && moduleModels.size() > 1) { } else if (moduleModels != null && moduleModels.size() > 1) {
filters = new ArrayList<>(); filters = new ArrayList<>();
List<ExtensionDirector> directors = new ArrayList<>(); List<ExtensionDirector> directors = new ArrayList<>();
for (ModuleModel moduleModel : moduleModels) { for (ModuleModel moduleModel : moduleModels) {
List<Filter> tempFilters = ScopeModelUtil.getExtensionLoader(Filter.class, moduleModel).getActivateExtension(url, key, group); List<Filter> tempFilters = ScopeModelUtil.getExtensionLoader(Filter.class, moduleModel)
.getActivateExtension(url, key, group);
filters.addAll(tempFilters); filters.addAll(tempFilters);
directors.add(moduleModel.getExtensionDirector()); directors.add(moduleModel.getExtensionDirector());
} }
@ -62,7 +64,6 @@ public class DefaultFilterChainBuilder implements FilterChainBuilder {
filters = ScopeModelUtil.getExtensionLoader(Filter.class, null).getActivateExtension(url, key, group); filters = ScopeModelUtil.getExtensionLoader(Filter.class, null).getActivateExtension(url, key, group);
} }
if (!CollectionUtils.isEmpty(filters)) { if (!CollectionUtils.isEmpty(filters)) {
for (int i = filters.size() - 1; i >= 0; i--) { for (int i = filters.size() - 1; i >= 0; i--) {
final Filter filter = filters.get(i); final Filter filter = filters.get(i);
@ -79,25 +80,29 @@ public class DefaultFilterChainBuilder implements FilterChainBuilder {
* build consumer cluster filter chain * build consumer cluster filter chain
*/ */
@Override @Override
public <T> ClusterInvoker<T> buildClusterInvokerChain(final ClusterInvoker<T> originalInvoker, String key, String group) { public <T> ClusterInvoker<T> buildClusterInvokerChain(
final ClusterInvoker<T> originalInvoker, String key, String group) {
ClusterInvoker<T> last = originalInvoker; ClusterInvoker<T> last = originalInvoker;
URL url = originalInvoker.getUrl(); URL url = originalInvoker.getUrl();
List<ModuleModel> moduleModels = getModuleModelsFromUrl(url); List<ModuleModel> moduleModels = getModuleModelsFromUrl(url);
List<ClusterFilter> filters; List<ClusterFilter> filters;
if (moduleModels != null && moduleModels.size() == 1) { if (moduleModels != null && moduleModels.size() == 1) {
filters = ScopeModelUtil.getExtensionLoader(ClusterFilter.class, moduleModels.get(0)).getActivateExtension(url, key, group); filters = ScopeModelUtil.getExtensionLoader(ClusterFilter.class, moduleModels.get(0))
.getActivateExtension(url, key, group);
} else if (moduleModels != null && moduleModels.size() > 1) { } else if (moduleModels != null && moduleModels.size() > 1) {
filters = new ArrayList<>(); filters = new ArrayList<>();
List<ExtensionDirector> directors = new ArrayList<>(); List<ExtensionDirector> directors = new ArrayList<>();
for (ModuleModel moduleModel : moduleModels) { for (ModuleModel moduleModel : moduleModels) {
List<ClusterFilter> tempFilters = ScopeModelUtil.getExtensionLoader(ClusterFilter.class, moduleModel).getActivateExtension(url, key, group); List<ClusterFilter> tempFilters = ScopeModelUtil.getExtensionLoader(ClusterFilter.class, moduleModel)
.getActivateExtension(url, key, group);
filters.addAll(tempFilters); filters.addAll(tempFilters);
directors.add(moduleModel.getExtensionDirector()); directors.add(moduleModel.getExtensionDirector());
} }
filters = sortingAndDeduplication(filters, directors); filters = sortingAndDeduplication(filters, directors);
} else { } else {
filters = ScopeModelUtil.getExtensionLoader(ClusterFilter.class, null).getActivateExtension(url, key, group); filters =
ScopeModelUtil.getExtensionLoader(ClusterFilter.class, null).getActivateExtension(url, key, group);
} }
if (!CollectionUtils.isEmpty(filters)) { if (!CollectionUtils.isEmpty(filters)) {
@ -141,5 +146,4 @@ public class DefaultFilterChainBuilder implements FilterChainBuilder {
} }
return moduleModels; return moduleModels;
} }
} }

View File

@ -92,7 +92,8 @@ public interface FilterChainBuilder {
public Result invoke(Invocation invocation) throws RpcException { public Result invoke(Invocation invocation) throws RpcException {
Result asyncResult; Result asyncResult;
try { try {
InvocationProfilerUtils.enterDetailProfiler(invocation, () -> "Filter " + filter.getClass().getName() + " invoke."); InvocationProfilerUtils.enterDetailProfiler(
invocation, () -> "Filter " + filter.getClass().getName() + " invoke.");
asyncResult = filter.invoke(nextNode, invocation); asyncResult = filter.invoke(nextNode, invocation);
} catch (Exception e) { } catch (Exception e) {
InvocationProfilerUtils.releaseDetailProfiler(invocation); InvocationProfilerUtils.releaseDetailProfiler(invocation);
@ -159,12 +160,11 @@ public interface FilterChainBuilder {
* @param <TYPE> * @param <TYPE>
*/ */
class ClusterFilterChainNode<T, TYPE extends ClusterInvoker<T>, FILTER extends BaseFilter> class ClusterFilterChainNode<T, TYPE extends ClusterInvoker<T>, FILTER extends BaseFilter>
extends FilterChainNode<T, TYPE, FILTER> implements ClusterInvoker<T> { extends FilterChainNode<T, TYPE, FILTER> implements ClusterInvoker<T> {
public ClusterFilterChainNode(TYPE originalInvoker, Invoker<T> nextNode, FILTER filter) { public ClusterFilterChainNode(TYPE originalInvoker, Invoker<T> nextNode, FILTER filter) {
super(originalInvoker, nextNode, filter); super(originalInvoker, nextNode, filter);
} }
@Override @Override
public URL getRegistryUrl() { public URL getRegistryUrl() {
return getOriginalInvoker().getRegistryUrl(); return getOriginalInvoker().getRegistryUrl();
@ -182,7 +182,8 @@ public interface FilterChainBuilder {
} }
class CallbackRegistrationInvoker<T, FILTER extends BaseFilter> implements Invoker<T> { class CallbackRegistrationInvoker<T, FILTER extends BaseFilter> implements Invoker<T> {
private static final ErrorTypeAwareLogger LOGGER = LoggerFactory.getErrorTypeAwareLogger(CallbackRegistrationInvoker.class); private static final ErrorTypeAwareLogger LOGGER =
LoggerFactory.getErrorTypeAwareLogger(CallbackRegistrationInvoker.class);
final Invoker<T> filterInvoker; final Invoker<T> filterInvoker;
final List<FILTER> filters; final List<FILTER> filters;
@ -223,9 +224,20 @@ public interface FilterChainBuilder {
} }
} }
} catch (RuntimeException runtimeException) { } catch (RuntimeException runtimeException) {
LOGGER.error(CLUSTER_EXECUTE_FILTER_EXCEPTION, "the custom filter is abnormal", "", String.format("Exception occurred while executing the %s filter named %s.", i, filter.getClass().getSimpleName())); LOGGER.error(
CLUSTER_EXECUTE_FILTER_EXCEPTION,
"the custom filter is abnormal",
"",
String.format(
"Exception occurred while executing the %s filter named %s.",
i, filter.getClass().getSimpleName()));
if (LOGGER.isDebugEnabled()) { if (LOGGER.isDebugEnabled()) {
LOGGER.debug(String.format("Whole filter list is: %s", filters.stream().map(tmpFilter -> tmpFilter.getClass().getSimpleName()).collect(Collectors.toList()))); LOGGER.debug(String.format(
"Whole filter list is: %s",
filters.stream()
.map(tmpFilter ->
tmpFilter.getClass().getSimpleName())
.collect(Collectors.toList())));
} }
filterRuntimeException = runtimeException; filterRuntimeException = runtimeException;
t = runtimeException; t = runtimeException;
@ -264,11 +276,12 @@ public interface FilterChainBuilder {
} }
} }
class ClusterCallbackRegistrationInvoker<T, FILTER extends BaseFilter> extends CallbackRegistrationInvoker<T, FILTER> class ClusterCallbackRegistrationInvoker<T, FILTER extends BaseFilter>
implements ClusterInvoker<T> { extends CallbackRegistrationInvoker<T, FILTER> implements ClusterInvoker<T> {
private ClusterInvoker<T> originalInvoker; private ClusterInvoker<T> originalInvoker;
public ClusterCallbackRegistrationInvoker(ClusterInvoker<T> originalInvoker, Invoker<T> filterInvoker, List<FILTER> filters) { public ClusterCallbackRegistrationInvoker(
ClusterInvoker<T> originalInvoker, Invoker<T> filterInvoker, List<FILTER> filters) {
super(filterInvoker, filters); super(filterInvoker, filters);
this.originalInvoker = originalInvoker; this.originalInvoker = originalInvoker;
} }
@ -293,10 +306,11 @@ public interface FilterChainBuilder {
} }
} }
@Experimental(
@Experimental("Works for the same purpose as FilterChainNode, replace FilterChainNode with this one when proved stable enough") "Works for the same purpose as FilterChainNode, replace FilterChainNode with this one when proved stable enough")
class CopyOfFilterChainNode<T, TYPE extends Invoker<T>, FILTER extends BaseFilter> implements Invoker<T> { class CopyOfFilterChainNode<T, TYPE extends Invoker<T>, FILTER extends BaseFilter> implements Invoker<T> {
private static final ErrorTypeAwareLogger LOGGER = LoggerFactory.getErrorTypeAwareLogger(CopyOfFilterChainNode.class); private static final ErrorTypeAwareLogger LOGGER =
LoggerFactory.getErrorTypeAwareLogger(CopyOfFilterChainNode.class);
TYPE originalInvoker; TYPE originalInvoker;
Invoker<T> nextNode; Invoker<T> nextNode;
FILTER filter; FILTER filter;
@ -330,11 +344,14 @@ public interface FilterChainBuilder {
public Result invoke(Invocation invocation) throws RpcException { public Result invoke(Invocation invocation) throws RpcException {
Result asyncResult; Result asyncResult;
try { try {
InvocationProfilerUtils.enterDetailProfiler(invocation, () -> "Filter " + filter.getClass().getName() + " invoke."); InvocationProfilerUtils.enterDetailProfiler(
invocation, () -> "Filter " + filter.getClass().getName() + " invoke.");
asyncResult = filter.invoke(nextNode, invocation); asyncResult = filter.invoke(nextNode, invocation);
if (!(asyncResult instanceof AsyncRpcResult)) { if (!(asyncResult instanceof AsyncRpcResult)) {
String msg = "The result of filter invocation must be AsyncRpcResult. (If you want to recreate a result, please use AsyncRpcResult.newDefaultAsyncResult.) " + String msg =
"Filter class: " + filter.getClass().getName() + ". Result class: " + asyncResult.getClass().getName() + "."; "The result of filter invocation must be AsyncRpcResult. (If you want to recreate a result, please use AsyncRpcResult.newDefaultAsyncResult.) "
+ "Filter class: " + filter.getClass().getName() + ". Result class: "
+ asyncResult.getClass().getName() + ".";
LOGGER.error(INTERNAL_ERROR, "", "", msg); LOGGER.error(INTERNAL_ERROR, "", "", msg);
throw new RpcException(msg); throw new RpcException(msg);
} }
@ -372,14 +389,14 @@ public interface FilterChainBuilder {
} }
} }
@Experimental("Works for the same purpose as ClusterFilterChainNode, replace ClusterFilterChainNode with this one when proved stable enough") @Experimental(
"Works for the same purpose as ClusterFilterChainNode, replace ClusterFilterChainNode with this one when proved stable enough")
class CopyOfClusterFilterChainNode<T, TYPE extends ClusterInvoker<T>, FILTER extends BaseFilter> class CopyOfClusterFilterChainNode<T, TYPE extends ClusterInvoker<T>, FILTER extends BaseFilter>
extends CopyOfFilterChainNode<T, TYPE, FILTER> implements ClusterInvoker<T> { extends CopyOfFilterChainNode<T, TYPE, FILTER> implements ClusterInvoker<T> {
public CopyOfClusterFilterChainNode(TYPE originalInvoker, Invoker<T> nextNode, FILTER filter) { public CopyOfClusterFilterChainNode(TYPE originalInvoker, Invoker<T> nextNode, FILTER filter) {
super(originalInvoker, nextNode, filter); super(originalInvoker, nextNode, filter);
} }
@Override @Override
public URL getRegistryUrl() { public URL getRegistryUrl() {
return getOriginalInvoker().getRegistryUrl(); return getOriginalInvoker().getRegistryUrl();

View File

@ -62,7 +62,8 @@ public class ProtocolFilterWrapper implements Protocol {
} }
private <T> FilterChainBuilder getFilterChainBuilder(URL url) { private <T> FilterChainBuilder getFilterChainBuilder(URL url) {
return ScopeModelUtil.getExtensionLoader(FilterChainBuilder.class, url.getScopeModel()).getDefaultExtension(); return ScopeModelUtil.getExtensionLoader(FilterChainBuilder.class, url.getScopeModel())
.getDefaultExtension();
} }
@Override @Override
@ -83,5 +84,4 @@ public class ProtocolFilterWrapper implements Protocol {
public List<ProtocolServer> getServers() { public List<ProtocolServer> getServers() {
return protocol.getServers(); return protocol.getServers();
} }
} }

View File

@ -35,8 +35,8 @@ public class ConsumerClassLoaderFilter implements ClusterFilter {
ClassLoader originClassLoader = Thread.currentThread().getContextClassLoader(); ClassLoader originClassLoader = Thread.currentThread().getContextClassLoader();
try { try {
Optional.ofNullable(invocation.getServiceModel()) Optional.ofNullable(invocation.getServiceModel())
.map(ServiceModel::getClassLoader) .map(ServiceModel::getClassLoader)
.ifPresent(Thread.currentThread()::setContextClassLoader); .ifPresent(Thread.currentThread()::setContextClassLoader);
return invoker.invoke(invocation); return invoker.invoke(invocation);
} finally { } finally {
Thread.currentThread().setContextClassLoader(originClassLoader); Thread.currentThread().setContextClassLoader(originClassLoader);

View File

@ -19,7 +19,6 @@ package org.apache.dubbo.rpc.cluster.filter.support;
import org.apache.dubbo.common.extension.Activate; import org.apache.dubbo.common.extension.Activate;
import org.apache.dubbo.common.extension.ExtensionLoader; import org.apache.dubbo.common.extension.ExtensionLoader;
import org.apache.dubbo.common.utils.CollectionUtils; import org.apache.dubbo.common.utils.CollectionUtils;
import org.apache.dubbo.common.utils.NetUtils;
import org.apache.dubbo.rpc.AsyncRpcResult; import org.apache.dubbo.rpc.AsyncRpcResult;
import org.apache.dubbo.rpc.Filter; import org.apache.dubbo.rpc.Filter;
import org.apache.dubbo.rpc.Invocation; import org.apache.dubbo.rpc.Invocation;
@ -56,16 +55,14 @@ public class ConsumerContextFilter implements ClusterFilter, ClusterFilter.Liste
private Set<PenetrateAttachmentSelector> supportedSelectors; private Set<PenetrateAttachmentSelector> supportedSelectors;
public ConsumerContextFilter(ApplicationModel applicationModel) { public ConsumerContextFilter(ApplicationModel applicationModel) {
ExtensionLoader<PenetrateAttachmentSelector> selectorExtensionLoader = applicationModel.getExtensionLoader(PenetrateAttachmentSelector.class); ExtensionLoader<PenetrateAttachmentSelector> selectorExtensionLoader =
applicationModel.getExtensionLoader(PenetrateAttachmentSelector.class);
supportedSelectors = selectorExtensionLoader.getSupportedExtensionInstances(); supportedSelectors = selectorExtensionLoader.getSupportedExtensionInstances();
} }
@Override @Override
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException { public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
RpcContext.getServiceContext() RpcContext.getServiceContext().setInvoker(invoker).setInvocation(invocation);
.setInvoker(invoker)
.setInvocation(invocation)
.setLocalAddress(NetUtils.getLocalHost(), 0);
RpcContext context = RpcContext.getClientAttachment(); RpcContext context = RpcContext.getClientAttachment();
context.setAttachment(REMOTE_APPLICATION_KEY, invoker.getUrl().getApplication()); context.setAttachment(REMOTE_APPLICATION_KEY, invoker.getUrl().getApplication());
@ -75,15 +72,18 @@ public class ConsumerContextFilter implements ClusterFilter, ClusterFilter.Liste
if (CollectionUtils.isNotEmpty(supportedSelectors)) { if (CollectionUtils.isNotEmpty(supportedSelectors)) {
for (PenetrateAttachmentSelector supportedSelector : supportedSelectors) { for (PenetrateAttachmentSelector supportedSelector : supportedSelectors) {
Map<String, Object> selected = supportedSelector.select(invocation, RpcContext.getClientAttachment(), RpcContext.getServerAttachment()); Map<String, Object> selected = supportedSelector.select(
invocation, RpcContext.getClientAttachment(), RpcContext.getServerAttachment());
if (CollectionUtils.isNotEmptyMap(selected)) { if (CollectionUtils.isNotEmptyMap(selected)) {
((RpcInvocation) invocation).addObjectAttachments(selected); ((RpcInvocation) invocation).addObjectAttachments(selected);
} }
} }
} else { } else {
((RpcInvocation) invocation).addObjectAttachments(RpcContext.getServerAttachment().getObjectAttachments()); ((RpcInvocation) invocation)
.addObjectAttachments(RpcContext.getServerAttachment().getObjectAttachments());
} }
Map<String, Object> contextAttachments = RpcContext.getClientAttachment().getObjectAttachments(); Map<String, Object> contextAttachments =
RpcContext.getClientAttachment().getObjectAttachments();
if (CollectionUtils.isNotEmptyMap(contextAttachments)) { if (CollectionUtils.isNotEmptyMap(contextAttachments)) {
/** /**
* invocation.addAttachmentsIfAbsent(context){@link RpcInvocation#addAttachmentsIfAbsent(Map)}should not be used here, * invocation.addAttachmentsIfAbsent(context){@link RpcInvocation#addAttachmentsIfAbsent(Map)}should not be used here,
@ -106,9 +106,12 @@ public class ConsumerContextFilter implements ClusterFilter, ClusterFilter.Liste
TimeoutCountDown timeoutCountDown = (TimeoutCountDown) countDown; TimeoutCountDown timeoutCountDown = (TimeoutCountDown) countDown;
if (timeoutCountDown.isExpired()) { if (timeoutCountDown.isExpired()) {
return AsyncRpcResult.newDefaultAsyncResult(new RpcException(RpcException.TIMEOUT_TERMINATE, return AsyncRpcResult.newDefaultAsyncResult(
"No time left for making the following call: " + invocation.getServiceName() + "." new RpcException(
+ RpcUtils.getMethodName(invocation) + ", terminate directly."), invocation); RpcException.TIMEOUT_TERMINATE,
"No time left for making the following call: " + invocation.getServiceName() + "."
+ RpcUtils.getMethodName(invocation) + ", terminate directly."),
invocation);
} }
} }
} }
@ -135,14 +138,15 @@ public class ConsumerContextFilter implements ClusterFilter, ClusterFilter.Liste
RpcInvocation rpcInvocation = (RpcInvocation) invocation; RpcInvocation rpcInvocation = (RpcInvocation) invocation;
if (rpcInvocation.getInvokeMode() != null) { if (rpcInvocation.getInvokeMode() != null) {
// clear service context if not in sync mode // clear service context if not in sync mode
if (rpcInvocation.getInvokeMode() == InvokeMode.ASYNC || rpcInvocation.getInvokeMode() == InvokeMode.FUTURE) { if (rpcInvocation.getInvokeMode() == InvokeMode.ASYNC
|| rpcInvocation.getInvokeMode() == InvokeMode.FUTURE) {
RpcContext.removeServiceContext(); RpcContext.removeServiceContext();
} }
} }
} }
// server context must not be removed because user might use it on callback. // server context must not be removed because user might use it on callback.
// So the clear of is delayed til the start of the next rpc call, see RpcContext.removeServerContext(); in invoke() above // So the clear of is delayed til the start of the next rpc call, see RpcContext.removeServerContext(); in
// invoke() above
// RpcContext.removeServerContext(); // RpcContext.removeServerContext();
} }
} }

View File

@ -14,15 +14,14 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.dubbo.rpc.cluster.filter.support; package org.apache.dubbo.rpc.cluster.filter.support;
import org.apache.dubbo.common.extension.Activate; import org.apache.dubbo.common.extension.Activate;
import org.apache.dubbo.metrics.collector.DefaultMetricsCollector; import org.apache.dubbo.metrics.collector.DefaultMetricsCollector;
import org.apache.dubbo.metrics.event.MetricsDispatcher; import org.apache.dubbo.metrics.event.MetricsDispatcher;
import org.apache.dubbo.metrics.event.MetricsEventBus; import org.apache.dubbo.metrics.event.MetricsEventBus;
import org.apache.dubbo.metrics.event.RequestEvent; import org.apache.dubbo.metrics.event.RequestEvent;
import org.apache.dubbo.metrics.model.MethodMetric;
import org.apache.dubbo.rpc.BaseFilter; import org.apache.dubbo.rpc.BaseFilter;
import org.apache.dubbo.rpc.Invocation; import org.apache.dubbo.rpc.Invocation;
import org.apache.dubbo.rpc.Invoker; import org.apache.dubbo.rpc.Invoker;
@ -42,6 +41,7 @@ public class MetricsClusterFilter implements ClusterFilter, BaseFilter.Listener,
private DefaultMetricsCollector collector; private DefaultMetricsCollector collector;
private String appName; private String appName;
private MetricsDispatcher metricsDispatcher; private MetricsDispatcher metricsDispatcher;
private boolean serviceLevel;
@Override @Override
public void setApplicationModel(ApplicationModel applicationModel) { public void setApplicationModel(ApplicationModel applicationModel) {
@ -49,6 +49,7 @@ public class MetricsClusterFilter implements ClusterFilter, BaseFilter.Listener,
this.collector = applicationModel.getBeanFactory().getBean(DefaultMetricsCollector.class); this.collector = applicationModel.getBeanFactory().getBean(DefaultMetricsCollector.class);
this.appName = applicationModel.tryGetApplicationName(); this.appName = applicationModel.tryGetApplicationName();
this.metricsDispatcher = applicationModel.getBeanFactory().getBean(MetricsDispatcher.class); this.metricsDispatcher = applicationModel.getBeanFactory().getBean(MetricsDispatcher.class);
this.serviceLevel = MethodMetric.isServiceLevel(applicationModel);
} }
@Override @Override
@ -73,9 +74,15 @@ public class MetricsClusterFilter implements ClusterFilter, BaseFilter.Listener,
if (t instanceof RpcException) { if (t instanceof RpcException) {
RpcException e = (RpcException) t; RpcException e = (RpcException) t;
if (e.isForbidden()) { if (e.isForbidden()) {
MetricsEventBus.publish(RequestEvent.toRequestErrorEvent(applicationModel, appName, metricsDispatcher, invocation, CONSUMER_SIDE, e.getCode())); MetricsEventBus.publish(RequestEvent.toRequestErrorEvent(
applicationModel,
appName,
metricsDispatcher,
invocation,
CONSUMER_SIDE,
e.getCode(),
serviceLevel));
} }
} }
} }
} }

View File

@ -27,10 +27,11 @@ import org.apache.dubbo.rpc.cluster.filter.ClusterFilter;
import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER; import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER;
@Activate(group = {CONSUMER}, order = Integer.MIN_VALUE + 100) @Activate(
group = {CONSUMER},
order = Integer.MIN_VALUE + 100)
public class MetricsConsumerFilter extends MetricsFilter implements ClusterFilter, BaseFilter.Listener { public class MetricsConsumerFilter extends MetricsFilter implements ClusterFilter, BaseFilter.Listener {
public MetricsConsumerFilter() { public MetricsConsumerFilter() {}
}
@Override @Override
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException { public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {

View File

@ -50,7 +50,8 @@ public class ObservationSenderFilter implements ClusterFilter, BaseFilter.Listen
applicationModel.getApplicationConfigManager().getTracing().ifPresent(cfg -> { applicationModel.getApplicationConfigManager().getTracing().ifPresent(cfg -> {
if (Boolean.TRUE.equals(cfg.getEnabled())) { if (Boolean.TRUE.equals(cfg.getEnabled())) {
observationRegistry = applicationModel.getBeanFactory().getBean(ObservationRegistry.class); observationRegistry = applicationModel.getBeanFactory().getBean(ObservationRegistry.class);
clientObservationConvention = applicationModel.getBeanFactory().getBean(DubboClientObservationConvention.class); clientObservationConvention =
applicationModel.getBeanFactory().getBean(DubboClientObservationConvention.class);
} }
}); });
} }
@ -64,7 +65,8 @@ public class ObservationSenderFilter implements ClusterFilter, BaseFilter.Listen
final Observation observation = DubboObservationDocumentation.CLIENT.observation( final Observation observation = DubboObservationDocumentation.CLIENT.observation(
this.clientObservationConvention, this.clientObservationConvention,
DefaultDubboClientObservationConvention.getInstance(), DefaultDubboClientObservationConvention.getInstance(),
() -> senderContext, observationRegistry); () -> senderContext,
observationRegistry);
invocation.put(Observation.class, observation.start()); invocation.put(Observation.class, observation.start());
return observation.scoped(() -> invoker.invoke(invocation)); return observation.scoped(() -> invoker.invoke(invocation));
} }

View File

@ -56,5 +56,4 @@ public class DefaultGovernanceRuleRepositoryImpl implements GovernanceRuleReposi
private DynamicConfiguration getDynamicConfiguration() { private DynamicConfiguration getDynamicConfiguration() {
return moduleModel.modelEnvironment().getDynamicConfiguration().orElse(null); return moduleModel.modelEnvironment().getDynamicConfiguration().orElse(null);
} }
} }

View File

@ -36,7 +36,6 @@ public interface GovernanceRuleRepository {
addListener(key, DEFAULT_GROUP, listener); addListener(key, DEFAULT_GROUP, listener);
} }
/** /**
* {@link #removeListener(String, String, ConfigurationListener)} * {@link #removeListener(String, String, ConfigurationListener)}
* *

View File

@ -47,7 +47,7 @@ public abstract class AbstractLoadBalance implements LoadBalance {
* @return weight which takes warmup into account * @return weight which takes warmup into account
*/ */
static int calculateWarmupWeight(int uptime, int warmup, int weight) { static int calculateWarmupWeight(int uptime, int warmup, int weight) {
int ww = (int) ( uptime / ((float) warmup / weight)); int ww = (int) (uptime / ((float) warmup / weight));
return ww < 1 ? 1 : (Math.min(ww, weight)); return ww < 1 ? 1 : (Math.min(ww, weight));
} }
@ -64,7 +64,6 @@ public abstract class AbstractLoadBalance implements LoadBalance {
protected abstract <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation); protected abstract <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation);
/** /**
* Get the weight of the invoker's invocation which takes warmup time into account * Get the weight of the invoker's invocation which takes warmup time into account
* if the uptime is within the warmup time, the weight will be reduce proportionally * if the uptime is within the warmup time, the weight will be reduce proportionally
@ -94,7 +93,7 @@ public abstract class AbstractLoadBalance implements LoadBalance {
} }
int warmup = invoker.getUrl().getParameter(WARMUP_KEY, DEFAULT_WARMUP); int warmup = invoker.getUrl().getParameter(WARMUP_KEY, DEFAULT_WARMUP);
if (uptime > 0 && uptime < warmup) { if (uptime > 0 && uptime < warmup) {
weight = calculateWarmupWeight((int)uptime, warmup, weight); weight = calculateWarmupWeight((int) uptime, warmup, weight);
} }
} }
} }

View File

@ -41,36 +41,36 @@ public class AdaptiveLoadBalance extends AbstractLoadBalance {
public static final String NAME = "adaptive"; public static final String NAME = "adaptive";
//default key // default key
private String attachmentKey = "mem,load"; private String attachmentKey = "mem,load";
private final AdaptiveMetrics adaptiveMetrics; private final AdaptiveMetrics adaptiveMetrics;
public AdaptiveLoadBalance(ApplicationModel scopeModel){ public AdaptiveLoadBalance(ApplicationModel scopeModel) {
adaptiveMetrics = scopeModel.getBeanFactory().getBean(AdaptiveMetrics.class); adaptiveMetrics = scopeModel.getBeanFactory().getBean(AdaptiveMetrics.class);
} }
@Override @Override
protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) { protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) {
Invoker<T> invoker = selectByP2C(invokers,invocation); Invoker<T> invoker = selectByP2C(invokers, invocation);
invocation.setAttachment(Constants.ADAPTIVE_LOADBALANCE_ATTACHMENT_KEY,attachmentKey); invocation.setAttachment(Constants.ADAPTIVE_LOADBALANCE_ATTACHMENT_KEY, attachmentKey);
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
invocation.getAttributes().put(Constants.ADAPTIVE_LOADBALANCE_START_TIME,startTime); invocation.getAttributes().put(Constants.ADAPTIVE_LOADBALANCE_START_TIME, startTime);
invocation.getAttributes().put(LOADBALANCE_KEY,LoadbalanceRules.ADAPTIVE); invocation.getAttributes().put(LOADBALANCE_KEY, LoadbalanceRules.ADAPTIVE);
adaptiveMetrics.addConsumerReq(getServiceKey(invoker,invocation)); adaptiveMetrics.addConsumerReq(getServiceKey(invoker, invocation));
adaptiveMetrics.setPickTime(getServiceKey(invoker,invocation),startTime); adaptiveMetrics.setPickTime(getServiceKey(invoker, invocation), startTime);
return invoker; return invoker;
} }
private <T> Invoker<T> selectByP2C(List<Invoker<T>> invokers, Invocation invocation){ private <T> Invoker<T> selectByP2C(List<Invoker<T>> invokers, Invocation invocation) {
int length = invokers.size(); int length = invokers.size();
if(length == 1) { if (length == 1) {
return invokers.get(0); return invokers.get(0);
} }
if(length == 2) { if (length == 2) {
return chooseLowLoadInvoker(invokers.get(0),invokers.get(1),invocation); return chooseLowLoadInvoker(invokers.get(0), invokers.get(1), invocation);
} }
int pos1 = ThreadLocalRandom.current().nextInt(length); int pos1 = ThreadLocalRandom.current().nextInt(length);
@ -79,22 +79,22 @@ public class AdaptiveLoadBalance extends AbstractLoadBalance {
pos2 = pos2 + 1; pos2 = pos2 + 1;
} }
return chooseLowLoadInvoker(invokers.get(pos1),invokers.get(pos2),invocation); return chooseLowLoadInvoker(invokers.get(pos1), invokers.get(pos2), invocation);
} }
private String getServiceKey(Invoker<?> invoker,Invocation invocation){ private String getServiceKey(Invoker<?> invoker, Invocation invocation) {
String key = (String) invocation.getAttributes().get(invoker); String key = (String) invocation.getAttributes().get(invoker);
if (StringUtils.isNotEmpty(key)){ if (StringUtils.isNotEmpty(key)) {
return key; return key;
} }
key = buildServiceKey(invoker,invocation); key = buildServiceKey(invoker, invocation);
invocation.getAttributes().put(invoker,key); invocation.getAttributes().put(invoker, key);
return key; return key;
} }
private String buildServiceKey(Invoker<?> invoker,Invocation invocation){ private String buildServiceKey(Invoker<?> invoker, Invocation invocation) {
URL url = invoker.getUrl(); URL url = invoker.getUrl();
StringBuilder sb = new StringBuilder(128); StringBuilder sb = new StringBuilder(128);
sb.append(url.getAddress()).append(":").append(invocation.getProtocolServiceKey()); sb.append(url.getAddress()).append(":").append(invocation.getProtocolServiceKey());
@ -104,16 +104,19 @@ public class AdaptiveLoadBalance extends AbstractLoadBalance {
private int getTimeout(Invoker<?> invoker, Invocation invocation) { private int getTimeout(Invoker<?> invoker, Invocation invocation) {
URL url = invoker.getUrl(); URL url = invoker.getUrl();
String methodName = RpcUtils.getMethodName(invocation); String methodName = RpcUtils.getMethodName(invocation);
return (int) RpcUtils.getTimeout(url,methodName, RpcContext.getClientAttachment(),invocation, DEFAULT_TIMEOUT); return (int)
RpcUtils.getTimeout(url, methodName, RpcContext.getClientAttachment(), invocation, DEFAULT_TIMEOUT);
} }
private <T> Invoker<T> chooseLowLoadInvoker(Invoker<T> invoker1,Invoker<T> invoker2,Invocation invocation){ private <T> Invoker<T> chooseLowLoadInvoker(Invoker<T> invoker1, Invoker<T> invoker2, Invocation invocation) {
int weight1 = getWeight(invoker1, invocation); int weight1 = getWeight(invoker1, invocation);
int weight2 = getWeight(invoker2, invocation); int weight2 = getWeight(invoker2, invocation);
int timeout1 = getTimeout(invoker1, invocation); int timeout1 = getTimeout(invoker1, invocation);
int timeout2 = getTimeout(invoker2, invocation); int timeout2 = getTimeout(invoker2, invocation);
long load1 = Double.doubleToLongBits(adaptiveMetrics.getLoad(getServiceKey(invoker1,invocation),weight1,timeout1 )); long load1 = Double.doubleToLongBits(
long load2 = Double.doubleToLongBits(adaptiveMetrics.getLoad(getServiceKey(invoker2,invocation),weight2,timeout2 )); adaptiveMetrics.getLoad(getServiceKey(invoker1, invocation), weight1, timeout1));
long load2 = Double.doubleToLongBits(
adaptiveMetrics.getLoad(getServiceKey(invoker2, invocation), weight2, timeout2));
if (load1 == load2) { if (load1 == load2) {
// The sum of weights // The sum of weights
@ -129,5 +132,4 @@ public class AdaptiveLoadBalance extends AbstractLoadBalance {
} }
return load1 > load2 ? invoker2 : invoker1; return load1 > load2 ? invoker2 : invoker1;
} }
} }

View File

@ -46,7 +46,7 @@ public class ConsistentHashLoadBalance extends AbstractLoadBalance {
*/ */
public static final String HASH_ARGUMENTS = "hash.arguments"; public static final String HASH_ARGUMENTS = "hash.arguments";
private final ConcurrentMap<String, ConsistentHashSelector<?>> selectors = new ConcurrentHashMap<String, ConsistentHashSelector<?>>(); private final ConcurrentMap<String, ConsistentHashSelector<?>> selectors = new ConcurrentHashMap<>();
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
@ -74,7 +74,7 @@ public class ConsistentHashLoadBalance extends AbstractLoadBalance {
private final int[] argumentIndex; private final int[] argumentIndex;
ConsistentHashSelector(List<Invoker<T>> invokers, String methodName, int identityHashCode) { ConsistentHashSelector(List<Invoker<T>> invokers, String methodName, int identityHashCode) {
this.virtualInvokers = new TreeMap<Long, Invoker<T>>(); this.virtualInvokers = new TreeMap<>();
this.identityHashCode = identityHashCode; this.identityHashCode = identityHashCode;
URL url = invokers.get(0).getUrl(); URL url = invokers.get(0).getUrl();
this.replicaNumber = url.getMethodParameter(methodName, HASH_NODES, 160); this.replicaNumber = url.getMethodParameter(methodName, HASH_NODES, 160);
@ -96,12 +96,10 @@ public class ConsistentHashLoadBalance extends AbstractLoadBalance {
} }
public Invoker<T> select(Invocation invocation) { public Invoker<T> select(Invocation invocation) {
byte[] digest = Bytes.getMD5(RpcUtils.getMethodName(invocation)); String key = toKey(RpcUtils.getArguments(invocation));
return selectForKey(hash(digest, 0));
}
private String toKey(Object[] args, boolean isGeneric) { byte[] digest = Bytes.getMD5(key);
return isGeneric ? toKey((Object[]) args[1]) : toKey(args); return selectForKey(hash(digest, 0));
} }
private String toKey(Object[] args) { private String toKey(Object[] args) {
@ -124,11 +122,10 @@ public class ConsistentHashLoadBalance extends AbstractLoadBalance {
private long hash(byte[] digest, int number) { private long hash(byte[] digest, int number) {
return (((long) (digest[3 + number * 4] & 0xFF) << 24) return (((long) (digest[3 + number * 4] & 0xFF) << 24)
| ((long) (digest[2 + number * 4] & 0xFF) << 16) | ((long) (digest[2 + number * 4] & 0xFF) << 16)
| ((long) (digest[1 + number * 4] & 0xFF) << 8) | ((long) (digest[1 + number * 4] & 0xFF) << 8)
| (digest[number * 4] & 0xFF)) | (digest[number * 4] & 0xFF))
& 0xFFFFFFFFL; & 0xFFFFFFFFL;
} }
} }
} }

View File

@ -56,17 +56,18 @@ public class LeastActiveLoadBalance extends AbstractLoadBalance {
// Every least active invoker has the same weight value? // Every least active invoker has the same weight value?
boolean sameWeight = true; boolean sameWeight = true;
// Filter out all the least active invokers // Filter out all the least active invokers
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
Invoker<T> invoker = invokers.get(i); Invoker<T> invoker = invokers.get(i);
// Get the active number of the invoker // Get the active number of the invoker
int active = RpcStatus.getStatus(invoker.getUrl(), RpcUtils.getMethodName(invocation)).getActive(); int active = RpcStatus.getStatus(invoker.getUrl(), RpcUtils.getMethodName(invocation))
.getActive();
// Get the weight of the invoker's configuration. The default value is 100. // Get the weight of the invoker's configuration. The default value is 100.
int afterWarmup = getWeight(invoker, invocation); int afterWarmup = getWeight(invoker, invocation);
// save for later use // save for later use
weights[i] = afterWarmup; weights[i] = afterWarmup;
// If it is the first invoker or the active number of the invoker is less than the current least active number // If it is the first invoker or the active number of the invoker is less than the current least active
// number
if (leastActive == -1 || active < leastActive) { if (leastActive == -1 || active < leastActive) {
// Reset the active number of the current invoker to the least active number // Reset the active number of the current invoker to the least active number
leastActive = active; leastActive = active;

View File

@ -78,7 +78,8 @@ public class RandomLoadBalance extends AbstractLoadBalance {
} }
} }
if (totalWeight > 0 && !sameWeight) { if (totalWeight > 0 && !sameWeight) {
// If (not every invoker has the same weight & at least one invoker's weight>0), select randomly based on totalWeight. // If (not every invoker has the same weight & at least one invoker's weight>0), select randomly based on
// totalWeight.
int offset = ThreadLocalRandom.current().nextInt(totalWeight); int offset = ThreadLocalRandom.current().nextInt(totalWeight);
// Return an invoker based on the random value. // Return an invoker based on the random value.
if (length <= 4) { if (length <= 4) {
@ -92,7 +93,7 @@ public class RandomLoadBalance extends AbstractLoadBalance {
if (i < 0) { if (i < 0) {
i = -i - 1; i = -i - 1;
} else { } else {
while (weights[i+1] == offset) { while (weights[i + 1] == offset) {
i++; i++;
} }
i++; i++;

View File

@ -37,7 +37,8 @@ public class RoundRobinLoadBalance extends AbstractLoadBalance {
private static final int RECYCLE_PERIOD = 60000; private static final int RECYCLE_PERIOD = 60000;
private final ConcurrentMap<String, ConcurrentMap<String, WeightedRoundRobin>> methodWeightMap = new ConcurrentHashMap<>(); private final ConcurrentMap<String, ConcurrentMap<String, WeightedRoundRobin>> methodWeightMap =
new ConcurrentHashMap<>();
protected static class WeightedRoundRobin { protected static class WeightedRoundRobin {
private int weight; private int weight;
@ -91,7 +92,8 @@ public class RoundRobinLoadBalance extends AbstractLoadBalance {
@Override @Override
protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) { protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) {
String key = invokers.get(0).getUrl().getServiceKey() + "." + RpcUtils.getMethodName(invocation); String key = invokers.get(0).getUrl().getServiceKey() + "." + RpcUtils.getMethodName(invocation);
ConcurrentMap<String, WeightedRoundRobin> map = ConcurrentHashMapUtils.computeIfAbsent(methodWeightMap, key, k -> new ConcurrentHashMap<>()); ConcurrentMap<String, WeightedRoundRobin> map =
ConcurrentHashMapUtils.computeIfAbsent(methodWeightMap, key, k -> new ConcurrentHashMap<>());
int totalWeight = 0; int totalWeight = 0;
long maxCurrent = Long.MIN_VALUE; long maxCurrent = Long.MIN_VALUE;
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
@ -107,7 +109,7 @@ public class RoundRobinLoadBalance extends AbstractLoadBalance {
}); });
if (weight != weightedRoundRobin.getWeight()) { if (weight != weightedRoundRobin.getWeight()) {
//weight changed // weight changed
weightedRoundRobin.setWeight(weight); weightedRoundRobin.setWeight(weight);
} }
long cur = weightedRoundRobin.increaseCurrent(); long cur = weightedRoundRobin.increaseCurrent();
@ -129,5 +131,4 @@ public class RoundRobinLoadBalance extends AbstractLoadBalance {
// should not happen here // should not happen here
return invokers.get(0); return invokers.get(0);
} }
} }

View File

@ -59,9 +59,15 @@ public class ShortestResponseLoadBalance extends AbstractLoadBalance implements
@Override @Override
public void setApplicationModel(ApplicationModel applicationModel) { public void setApplicationModel(ApplicationModel applicationModel) {
slidePeriod = applicationModel.modelEnvironment().getConfiguration().getInt(Constants.SHORTEST_RESPONSE_SLIDE_PERIOD, 30_000); slidePeriod = applicationModel
executorService = applicationModel.getFrameworkModel().getBeanFactory() .modelEnvironment()
.getBean(FrameworkExecutorRepository.class).getSharedExecutor(); .getConfiguration()
.getInt(Constants.SHORTEST_RESPONSE_SLIDE_PERIOD, 30_000);
executorService = applicationModel
.getFrameworkModel()
.getBeanFactory()
.getBean(FrameworkExecutorRepository.class)
.getSharedExecutor();
} }
protected static class SlideWindowData { protected static class SlideWindowData {
@ -118,9 +124,11 @@ public class ShortestResponseLoadBalance extends AbstractLoadBalance implements
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
Invoker<T> invoker = invokers.get(i); Invoker<T> invoker = invokers.get(i);
RpcStatus rpcStatus = RpcStatus.getStatus(invoker.getUrl(), RpcUtils.getMethodName(invocation)); RpcStatus rpcStatus = RpcStatus.getStatus(invoker.getUrl(), RpcUtils.getMethodName(invocation));
SlideWindowData slideWindowData = ConcurrentHashMapUtils.computeIfAbsent(methodMap, rpcStatus, SlideWindowData::new); SlideWindowData slideWindowData =
ConcurrentHashMapUtils.computeIfAbsent(methodMap, rpcStatus, SlideWindowData::new);
// Calculate the estimated response time from the product of active connections and succeeded average elapsed time. // Calculate the estimated response time from the product of active connections and succeeded average
// elapsed time.
long estimateResponse = slideWindowData.getEstimateResponse(); long estimateResponse = slideWindowData.getEstimateResponse();
int afterWarmup = getWeight(invoker, invocation); int afterWarmup = getWeight(invoker, invocation);
weights[i] = afterWarmup; weights[i] = afterWarmup;
@ -135,16 +143,15 @@ public class ShortestResponseLoadBalance extends AbstractLoadBalance implements
} else if (estimateResponse == shortestResponse) { } else if (estimateResponse == shortestResponse) {
shortestIndexes[shortestCount++] = i; shortestIndexes[shortestCount++] = i;
totalWeight += afterWarmup; totalWeight += afterWarmup;
if (sameWeight && i > 0 if (sameWeight && i > 0 && afterWarmup != firstWeight) {
&& afterWarmup != firstWeight) {
sameWeight = false; sameWeight = false;
} }
} }
} }
if (System.currentTimeMillis() - lastUpdateTime > slidePeriod if (System.currentTimeMillis() - lastUpdateTime > slidePeriod
&& onResetSlideWindow.compareAndSet(false, true)) { && onResetSlideWindow.compareAndSet(false, true)) {
//reset slideWindowData in async way // reset slideWindowData in async way
executorService.execute(() -> { executorService.execute(() -> {
methodMap.values().forEach(SlideWindowData::reset); methodMap.values().forEach(SlideWindowData::reset);
lastUpdateTime = System.currentTimeMillis(); lastUpdateTime = System.currentTimeMillis();

View File

@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.dubbo.rpc.cluster.merger; package org.apache.dubbo.rpc.cluster.merger;
import org.apache.dubbo.common.utils.ArrayUtils; import org.apache.dubbo.common.utils.ArrayUtils;
@ -43,5 +42,4 @@ public class BooleanArrayMerger implements Merger<boolean[]> {
} }
return result; return result;
} }
} }

View File

@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.dubbo.rpc.cluster.merger; package org.apache.dubbo.rpc.cluster.merger;
import org.apache.dubbo.common.utils.ArrayUtils; import org.apache.dubbo.common.utils.ArrayUtils;
@ -43,5 +42,4 @@ public class ByteArrayMerger implements Merger<byte[]> {
} }
return result; return result;
} }
} }

View File

@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.dubbo.rpc.cluster.merger; package org.apache.dubbo.rpc.cluster.merger;
import org.apache.dubbo.common.utils.ArrayUtils; import org.apache.dubbo.common.utils.ArrayUtils;

View File

@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.dubbo.rpc.cluster.merger; package org.apache.dubbo.rpc.cluster.merger;
import org.apache.dubbo.common.utils.ArrayUtils; import org.apache.dubbo.common.utils.ArrayUtils;
@ -30,7 +29,8 @@ public class DoubleArrayMerger implements Merger<double[]> {
if (ArrayUtils.isEmpty(items)) { if (ArrayUtils.isEmpty(items)) {
return new double[0]; return new double[0];
} }
return Arrays.stream(items).filter(Objects::nonNull) return Arrays.stream(items)
.filter(Objects::nonNull)
.flatMapToDouble(Arrays::stream) .flatMapToDouble(Arrays::stream)
.toArray(); .toArray();
} }

View File

@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.dubbo.rpc.cluster.merger; package org.apache.dubbo.rpc.cluster.merger;
import org.apache.dubbo.common.utils.ArrayUtils; import org.apache.dubbo.common.utils.ArrayUtils;

View File

@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.dubbo.rpc.cluster.merger; package org.apache.dubbo.rpc.cluster.merger;
import org.apache.dubbo.common.utils.ArrayUtils; import org.apache.dubbo.common.utils.ArrayUtils;
@ -30,9 +29,9 @@ public class IntArrayMerger implements Merger<int[]> {
if (ArrayUtils.isEmpty(items)) { if (ArrayUtils.isEmpty(items)) {
return new int[0]; return new int[0];
} }
return Arrays.stream(items).filter(Objects::nonNull) return Arrays.stream(items)
.filter(Objects::nonNull)
.flatMapToInt(Arrays::stream) .flatMapToInt(Arrays::stream)
.toArray(); .toArray();
} }
} }

View File

@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.dubbo.rpc.cluster.merger; package org.apache.dubbo.rpc.cluster.merger;
import org.apache.dubbo.common.utils.ArrayUtils; import org.apache.dubbo.common.utils.ArrayUtils;
@ -34,10 +33,9 @@ public class ListMerger implements Merger<List<?>> {
if (ArrayUtils.isEmpty(items)) { if (ArrayUtils.isEmpty(items)) {
return Collections.emptyList(); return Collections.emptyList();
} }
return Stream.of(items).filter(Objects::nonNull) return Stream.of(items)
.filter(Objects::nonNull)
.flatMap(Collection::stream) .flatMap(Collection::stream)
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
} }

View File

@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.dubbo.rpc.cluster.merger; package org.apache.dubbo.rpc.cluster.merger;
import org.apache.dubbo.common.utils.ArrayUtils; import org.apache.dubbo.common.utils.ArrayUtils;
@ -30,7 +29,8 @@ public class LongArrayMerger implements Merger<long[]> {
if (ArrayUtils.isEmpty(items)) { if (ArrayUtils.isEmpty(items)) {
return new long[0]; return new long[0];
} }
return Arrays.stream(items).filter(Objects::nonNull) return Arrays.stream(items)
.filter(Objects::nonNull)
.flatMapToLong(Arrays::stream) .flatMapToLong(Arrays::stream)
.toArray(); .toArray();
} }

View File

@ -32,9 +32,8 @@ public class MapMerger implements Merger<Map<?, ?>> {
if (ArrayUtils.isEmpty(items)) { if (ArrayUtils.isEmpty(items)) {
return Collections.emptyMap(); return Collections.emptyMap();
} }
Map<Object, Object> result = new HashMap<Object, Object>(); Map<Object, Object> result = new HashMap<>();
Stream.of(items).filter(Objects::nonNull).forEach(result::putAll); Stream.of(items).filter(Objects::nonNull).forEach(result::putAll);
return result; return result;
} }
} }

View File

@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.dubbo.rpc.cluster.merger; package org.apache.dubbo.rpc.cluster.merger;
import org.apache.dubbo.common.logger.ErrorTypeAwareLogger; import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
@ -37,7 +36,7 @@ public class MergerFactory implements ScopeModelAware {
private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(MergerFactory.class); private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(MergerFactory.class);
private ConcurrentMap<Class<?>, Merger<?>> MERGER_CACHE = new ConcurrentHashMap<Class<?>, Merger<?>>(); private ConcurrentMap<Class<?>, Merger<?>> MERGER_CACHE = new ConcurrentHashMap<>();
private ScopeModel scopeModel; private ScopeModel scopeModel;
@Override @Override
@ -69,13 +68,17 @@ public class MergerFactory implements ScopeModelAware {
} }
private void loadMergers() { private void loadMergers() {
Set<String> names = scopeModel.getExtensionLoader(Merger.class) Set<String> names = scopeModel.getExtensionLoader(Merger.class).getSupportedExtensions();
.getSupportedExtensions();
for (String name : names) { for (String name : names) {
Merger m = scopeModel.getExtensionLoader(Merger.class).getExtension(name); Merger m = scopeModel.getExtensionLoader(Merger.class).getExtension(name);
Class<?> actualTypeArg = getActualTypeArgument(m.getClass()); Class<?> actualTypeArg = getActualTypeArgument(m.getClass());
if (actualTypeArg == null) { if (actualTypeArg == null) {
logger.warn(CLUSTER_FAILED_LOAD_MERGER,"load merger config failed","","Failed to get actual type argument from merger " + m.getClass().getName()); logger.warn(
CLUSTER_FAILED_LOAD_MERGER,
"load merger config failed",
"",
"Failed to get actual type argument from merger "
+ m.getClass().getName());
continue; continue;
} }
MERGER_CACHE.putIfAbsent(actualTypeArg, m); MERGER_CACHE.putIfAbsent(actualTypeArg, m);
@ -94,7 +97,7 @@ public class MergerFactory implements ScopeModelAware {
ParameterizedType mergerType; ParameterizedType mergerType;
for (Type it : interfaceTypes) { for (Type it : interfaceTypes) {
if (it instanceof ParameterizedType if (it instanceof ParameterizedType
&& (mergerType = ((ParameterizedType) it)).getRawType() == Merger.class) { && (mergerType = ((ParameterizedType) it)).getRawType() == Merger.class) {
Type typeArg = mergerType.getActualTypeArguments()[0]; Type typeArg = mergerType.getActualTypeArguments()[0];
return TypeUtils.getRawClass(typeArg); return TypeUtils.getRawClass(typeArg);
} }

View File

@ -32,7 +32,7 @@ public class SetMerger implements Merger<Set<?>> {
if (ArrayUtils.isEmpty(items)) { if (ArrayUtils.isEmpty(items)) {
return Collections.emptySet(); return Collections.emptySet();
} }
Set<Object> result = new HashSet<Object>(); Set<Object> result = new HashSet<>();
Stream.of(items).filter(Objects::nonNull).forEach(result::addAll); Stream.of(items).filter(Objects::nonNull).forEach(result::addAll);
return result; return result;
} }

View File

@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.dubbo.rpc.cluster.merger; package org.apache.dubbo.rpc.cluster.merger;
import org.apache.dubbo.common.utils.ArrayUtils; import org.apache.dubbo.common.utils.ArrayUtils;

View File

@ -28,12 +28,13 @@ public abstract class AbstractRouter implements Router {
private GovernanceRuleRepository ruleRepository; private GovernanceRuleRepository ruleRepository;
public AbstractRouter(URL url) { public AbstractRouter(URL url) {
this.ruleRepository = url.getOrDefaultModuleModel().getExtensionLoader(GovernanceRuleRepository.class).getDefaultExtension(); this.ruleRepository = url.getOrDefaultModuleModel()
.getExtensionLoader(GovernanceRuleRepository.class)
.getDefaultExtension();
this.url = url; this.url = url;
} }
public AbstractRouter() { public AbstractRouter() {}
}
@Override @Override
public URL getUrl() { public URL getUrl() {
@ -67,8 +68,7 @@ public abstract class AbstractRouter implements Router {
this.priority = priority; this.priority = priority;
} }
public GovernanceRuleRepository getRuleRepository(){ public GovernanceRuleRepository getRuleRepository() {
return this.ruleRepository; return this.ruleRepository;
} }
} }

View File

@ -34,7 +34,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER;
public class RouterSnapshotFilter implements ClusterFilter, BaseFilter.Listener { public class RouterSnapshotFilter implements ClusterFilter, BaseFilter.Listener {
private final RouterSnapshotSwitcher switcher; private final RouterSnapshotSwitcher switcher;
private final static Logger logger = LoggerFactory.getLogger(RouterSnapshotFilter.class); private static final Logger logger = LoggerFactory.getLogger(RouterSnapshotFilter.class);
public RouterSnapshotFilter(FrameworkModel frameworkModel) { public RouterSnapshotFilter(FrameworkModel frameworkModel) {
this.switcher = frameworkModel.getBeanFactory().getBean(RouterSnapshotSwitcher.class); this.switcher = frameworkModel.getBeanFactory().getBean(RouterSnapshotSwitcher.class);

View File

@ -114,43 +114,55 @@ public class RouterSnapshotNode<T> {
public String toString(int level) { public String toString(int level) {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("[ ") stringBuilder
.append(name) .append("[ ")
.append(' ') .append(name)
.append("(Input: ").append(beforeSize).append(") ") .append(' ')
.append("(Current Node Output: ").append(nodeOutputSize).append(") ") .append("(Input: ")
.append("(Chain Node Output: ").append(chainOutputSize).append(')') .append(beforeSize)
.append(routerMessage == null ? "" : " Router message: ") .append(") ")
.append(routerMessage == null ? "" : routerMessage) .append("(Current Node Output: ")
.append(" ] "); .append(nodeOutputSize)
.append(") ")
.append("(Chain Node Output: ")
.append(chainOutputSize)
.append(')')
.append(routerMessage == null ? "" : " Router message: ")
.append(routerMessage == null ? "" : routerMessage)
.append(" ] ");
if (level == 1) { if (level == 1) {
stringBuilder.append("Input: ") stringBuilder
.append(CollectionUtils.isEmpty(inputInvokers) ? "Empty" : .append("Input: ")
inputInvokers.subList(0, Math.min(5, inputInvokers.size())) .append(
.stream() CollectionUtils.isEmpty(inputInvokers)
.map(Invoker::getUrl) ? "Empty"
.map(URL::getAddress) : inputInvokers.subList(0, Math.min(5, inputInvokers.size())).stream()
.collect(Collectors.joining(","))) .map(Invoker::getUrl)
.append(" -> "); .map(URL::getAddress)
.collect(Collectors.joining(",")))
.append(" -> ");
stringBuilder.append("Chain Node Output: ") stringBuilder
.append(CollectionUtils.isEmpty(chainOutputInvokers) ? "Empty" : .append("Chain Node Output: ")
chainOutputInvokers.subList(0, Math.min(5, chainOutputInvokers.size())) .append(
.stream() CollectionUtils.isEmpty(chainOutputInvokers)
.map(Invoker::getUrl) ? "Empty"
.map(URL::getAddress) : chainOutputInvokers.subList(0, Math.min(5, chainOutputInvokers.size())).stream()
.collect(Collectors.joining(","))); .map(Invoker::getUrl)
.map(URL::getAddress)
.collect(Collectors.joining(",")));
} else { } else {
stringBuilder.append("Current Node Output: ") stringBuilder
.append(CollectionUtils.isEmpty(nodeOutputInvokers) ? "Empty" : .append("Current Node Output: ")
nodeOutputInvokers.subList(0, Math.min(5, nodeOutputInvokers.size())) .append(
.stream() CollectionUtils.isEmpty(nodeOutputInvokers)
.map(Invoker::getUrl) ? "Empty"
.map(URL::getAddress) : nodeOutputInvokers.subList(0, Math.min(5, nodeOutputInvokers.size())).stream()
.collect(Collectors.joining(","))); .map(Invoker::getUrl)
.map(URL::getAddress)
.collect(Collectors.joining(",")));
} }
if (nodeOutputInvokers != null && nodeOutputInvokers.size() > 5) { if (nodeOutputInvokers != null && nodeOutputInvokers.size() > 5) {
stringBuilder.append("..."); stringBuilder.append("...");
} }

View File

@ -26,7 +26,7 @@ public class RouterSnapshotSwitcher {
private volatile boolean enable; private volatile boolean enable;
private final Set<String> enabledService = new ConcurrentHashSet<>(); private final Set<String> enabledService = new ConcurrentHashSet<>();
private final static int MAX_LENGTH = 1 << 5; // 2 ^ 5 = 31 private static final int MAX_LENGTH = 1 << 5; // 2 ^ 5 = 31
private final AtomicInteger offset = new AtomicInteger(0); private final AtomicInteger offset = new AtomicInteger(0);
private volatile String[] recentSnapshot = new String[MAX_LENGTH]; private volatile String[] recentSnapshot = new String[MAX_LENGTH];

View File

@ -84,7 +84,8 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
super(url); super(url);
this.setForce(force); this.setForce(force);
this.enabled = enabled; this.enabled = enabled;
matcherFactories = moduleModel.getExtensionLoader(ConditionMatcherFactory.class).getActivateExtensions(); matcherFactories =
moduleModel.getExtensionLoader(ConditionMatcherFactory.class).getActivateExtensions();
if (enabled) { if (enabled) {
this.init(rule); this.init(rule);
} }
@ -94,7 +95,8 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
super(url); super(url);
this.setUrl(url); this.setUrl(url);
this.setForce(url.getParameter(FORCE_KEY, false)); this.setForce(url.getParameter(FORCE_KEY, false));
matcherFactories = moduleModel.getExtensionLoader(ConditionMatcherFactory.class).getActivateExtensions(); matcherFactories =
moduleModel.getExtensionLoader(ConditionMatcherFactory.class).getActivateExtensions();
this.enabled = url.getParameter(ENABLED_KEY, true); this.enabled = url.getParameter(ENABLED_KEY, true);
if (enabled) { if (enabled) {
init(url.getParameterAndDecoded(RULE_KEY)); init(url.getParameterAndDecoded(RULE_KEY));
@ -110,8 +112,10 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
int i = rule.indexOf("=>"); int i = rule.indexOf("=>");
String whenRule = i < 0 ? null : rule.substring(0, i).trim(); String whenRule = i < 0 ? null : rule.substring(0, i).trim();
String thenRule = i < 0 ? rule.trim() : rule.substring(i + 2).trim(); String thenRule = i < 0 ? rule.trim() : rule.substring(i + 2).trim();
Map<String, ConditionMatcher> when = StringUtils.isBlank(whenRule) || "true".equals(whenRule) ? new HashMap<>() : parseRule(whenRule); Map<String, ConditionMatcher> when =
Map<String, ConditionMatcher> then = StringUtils.isBlank(thenRule) || "false".equals(thenRule) ? null : parseRule(thenRule); StringUtils.isBlank(whenRule) || "true".equals(whenRule) ? new HashMap<>() : parseRule(whenRule);
Map<String, ConditionMatcher> then =
StringUtils.isBlank(thenRule) || "false".equals(thenRule) ? null : parseRule(thenRule);
// NOTE: It should be determined on the business level whether the `When condition` can be empty or not. // NOTE: It should be determined on the business level whether the `When condition` can be empty or not.
this.whenCondition = when; this.whenCondition = when;
this.thenCondition = then; this.thenCondition = then;
@ -120,8 +124,7 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
} }
} }
private Map<String, ConditionMatcher> parseRule(String rule) private Map<String, ConditionMatcher> parseRule(String rule) throws ParseException {
throws ParseException {
Map<String, ConditionMatcher> condition = new HashMap<>(); Map<String, ConditionMatcher> condition = new HashMap<>();
if (StringUtils.isBlank(rule)) { if (StringUtils.isBlank(rule)) {
return condition; return condition;
@ -151,10 +154,12 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
// The Value in the KV part. // The Value in the KV part.
else if ("=".equals(separator)) { else if ("=".equals(separator)) {
if (matcherPair == null) { if (matcherPair == null) {
throw new ParseException("Illegal route rule \"" throw new ParseException(
+ rule + "\", The error char '" + separator "Illegal route rule \""
+ "' at index " + matcher.start() + " before \"" + rule + "\", The error char '" + separator
+ content + "\".", matcher.start()); + "' at index " + matcher.start() + " before \""
+ content + "\".",
matcher.start());
} }
values = matcherPair.getMatches(); values = matcherPair.getMatches();
@ -163,10 +168,12 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
// The Value in the KV part. // The Value in the KV part.
else if ("!=".equals(separator)) { else if ("!=".equals(separator)) {
if (matcherPair == null) { if (matcherPair == null) {
throw new ParseException("Illegal route rule \"" throw new ParseException(
+ rule + "\", The error char '" + separator "Illegal route rule \""
+ "' at index " + matcher.start() + " before \"" + rule + "\", The error char '" + separator
+ content + "\".", matcher.start()); + "' at index " + matcher.start() + " before \""
+ content + "\".",
matcher.start());
} }
values = matcherPair.getMismatches(); values = matcherPair.getMismatches();
@ -175,25 +182,34 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
// The Value in the KV part, if Value have more than one items. // The Value in the KV part, if Value have more than one items.
else if (",".equals(separator)) { // Should be separated by ',' else if (",".equals(separator)) { // Should be separated by ','
if (values == null || values.isEmpty()) { if (values == null || values.isEmpty()) {
throw new ParseException("Illegal route rule \"" throw new ParseException(
+ rule + "\", The error char '" + separator "Illegal route rule \""
+ "' at index " + matcher.start() + " before \"" + rule + "\", The error char '" + separator
+ content + "\".", matcher.start()); + "' at index " + matcher.start() + " before \""
+ content + "\".",
matcher.start());
} }
values.add(content); values.add(content);
} else { } else {
throw new ParseException("Illegal route rule \"" + rule throw new ParseException(
+ "\", The error char '" + separator + "' at index " "Illegal route rule \"" + rule
+ matcher.start() + " before \"" + content + "\".", matcher.start()); + "\", The error char '" + separator + "' at index "
+ matcher.start() + " before \"" + content + "\".",
matcher.start());
} }
} }
return condition; return condition;
} }
@Override @Override
protected BitList<Invoker<T>> doRoute(BitList<Invoker<T>> invokers, URL url, Invocation invocation, protected BitList<Invoker<T>> doRoute(
boolean needToPrintMessage, Holder<RouterSnapshotNode<T>> nodeHolder, BitList<Invoker<T>> invokers,
Holder<String> messageHolder) throws RpcException { URL url,
Invocation invocation,
boolean needToPrintMessage,
Holder<RouterSnapshotNode<T>> nodeHolder,
Holder<String> messageHolder)
throws RpcException {
if (!enabled) { if (!enabled) {
if (needToPrintMessage) { if (needToPrintMessage) {
messageHolder.set("Directly return. Reason: ConditionRouter disabled."); messageHolder.set("Directly return. Reason: ConditionRouter disabled.");
@ -215,7 +231,13 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
return invokers; return invokers;
} }
if (thenCondition == null) { if (thenCondition == null) {
logger.warn(CLUSTER_CONDITIONAL_ROUTE_LIST_EMPTY,"condition state router thenCondition is empty","","The current consumer in the service blacklist. consumer: " + NetUtils.getLocalHost() + ", service: " + url.getServiceKey()); if (needToPrintMessage) { logger.warn(
CLUSTER_CONDITIONAL_ROUTE_LIST_EMPTY,
"condition state router thenCondition is empty",
"",
"The current consumer in the service blocklist. consumer: " + NetUtils.getLocalHost()
+ ", service: " + url.getServiceKey());
if (needToPrintMessage) {
messageHolder.set("Empty return. Reason: ThenCondition is empty."); messageHolder.set("Empty return. Reason: ThenCondition is empty.");
} }
return BitList.emptyList(); return BitList.emptyList();
@ -229,14 +251,26 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
} }
return result; return result;
} else if (this.isForce()) { } else if (this.isForce()) {
logger.warn(CLUSTER_CONDITIONAL_ROUTE_LIST_EMPTY,"execute condition state router result list is empty. and force=true","","The route result is empty and force execute. consumer: " + NetUtils.getLocalHost() + ", service: " + url.getServiceKey() + ", router: " + url.getParameterAndDecoded(RULE_KEY)); logger.warn(
CLUSTER_CONDITIONAL_ROUTE_LIST_EMPTY,
"execute condition state router result list is empty. and force=true",
"",
"The route result is empty and force execute. consumer: " + NetUtils.getLocalHost()
+ ", service: " + url.getServiceKey() + ", router: "
+ url.getParameterAndDecoded(RULE_KEY));
if (needToPrintMessage) { if (needToPrintMessage) {
messageHolder.set("Empty return. Reason: Empty result from condition and condition is force."); messageHolder.set("Empty return. Reason: Empty result from condition and condition is force.");
} }
return result; return result;
} }
} catch (Throwable t) { } catch (Throwable t) {
logger.error(CLUSTER_FAILED_EXEC_CONDITION_ROUTER,"execute condition state router exception","","Failed to execute condition router rule: " + getUrl() + ", invokers: " + invokers + ", cause: " + t.getMessage(),t); logger.error(
CLUSTER_FAILED_EXEC_CONDITION_ROUTER,
"execute condition state router exception",
"",
"Failed to execute condition router rule: " + getUrl() + ", invokers: " + invokers + ", cause: "
+ t.getMessage(),
t);
} }
if (needToPrintMessage) { if (needToPrintMessage) {
messageHolder.set("Directly return. Reason: Error occurred ( or result is empty )."); messageHolder.set("Directly return. Reason: Error occurred ( or result is empty ).");
@ -247,7 +281,7 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
@Override @Override
public boolean isRuntime() { public boolean isRuntime() {
// We always return true for previously defined Router, that is, old Router doesn't support cache anymore. // We always return true for previously defined Router, that is, old Router doesn't support cache anymore.
// return true; // return true;
return this.getUrl().getParameter(RUNTIME_KEY, false); return this.getUrl().getParameter(RUNTIME_KEY, false);
} }
@ -257,7 +291,10 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
return factory.createMatcher(key, moduleModel); return factory.createMatcher(key, moduleModel);
} }
} }
return moduleModel.getExtensionLoader(ConditionMatcherFactory.class).getExtension("param").createMatcher(key, moduleModel); return moduleModel
.getExtensionLoader(ConditionMatcherFactory.class)
.getExtension("param")
.createMatcher(key, moduleModel);
} }
boolean matchWhen(URL url, Invocation invocation) { boolean matchWhen(URL url, Invocation invocation) {
@ -276,7 +313,12 @@ public class ConditionStateRouter<T> extends AbstractStateRouter<T> {
return doMatch(url, param, null, thenCondition, false); return doMatch(url, param, null, thenCondition, false);
} }
private boolean doMatch(URL url, URL param, Invocation invocation, Map<String, ConditionMatcher> conditions, boolean isWhenCondition) { private boolean doMatch(
URL url,
URL param,
Invocation invocation,
Map<String, ConditionMatcher> conditions,
boolean isWhenCondition) {
Map<String, String> sample = url.toOriginalMap(); Map<String, String> sample = url.toOriginalMap();
for (Map.Entry<String, ConditionMatcher> entry : conditions.entrySet()) { for (Map.Entry<String, ConditionMatcher> entry : conditions.entrySet()) {
ConditionMatcher matchPair = entry.getValue(); ConditionMatcher matchPair = entry.getValue();

View File

@ -30,6 +30,6 @@ public class ConditionStateRouterFactory extends CacheableStateRouterFactory {
@Override @Override
protected <T> StateRouter<T> createRouter(Class<T> interfaceClass, URL url) { protected <T> StateRouter<T> createRouter(Class<T> interfaceClass, URL url) {
return new ConditionStateRouter<T>(url); return new ConditionStateRouter<>(url);
} }
} }

View File

@ -50,7 +50,8 @@ public abstract class ListenableStateRouter<T> extends AbstractStateRouter<T> im
public static final String NAME = "LISTENABLE_ROUTER"; public static final String NAME = "LISTENABLE_ROUTER";
public static final String RULE_SUFFIX = ".condition-router"; public static final String RULE_SUFFIX = ".condition-router";
private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(ListenableStateRouter.class); private static final ErrorTypeAwareLogger logger =
LoggerFactory.getErrorTypeAwareLogger(ListenableStateRouter.class);
private volatile ConditionRouterRule routerRule; private volatile ConditionRouterRule routerRule;
private volatile List<ConditionStateRouter<T>> conditionRouters = Collections.emptyList(); private volatile List<ConditionStateRouter<T>> conditionRouters = Collections.emptyList();
private final String ruleKey; private final String ruleKey;
@ -65,8 +66,8 @@ public abstract class ListenableStateRouter<T> extends AbstractStateRouter<T> im
@Override @Override
public synchronized void process(ConfigChangedEvent event) { public synchronized void process(ConfigChangedEvent event) {
if (logger.isInfoEnabled()) { if (logger.isInfoEnabled()) {
logger.info("Notification of condition rule, change type is: " + event.getChangeType() + logger.info("Notification of condition rule, change type is: " + event.getChangeType() + ", raw rule is:\n "
", raw rule is:\n " + event.getContent()); + event.getContent());
} }
if (event.getChangeType().equals(ConfigChangeType.DELETED)) { if (event.getChangeType().equals(ConfigChangeType.DELETED)) {
@ -77,18 +78,31 @@ public abstract class ListenableStateRouter<T> extends AbstractStateRouter<T> im
routerRule = ConditionRuleParser.parse(event.getContent()); routerRule = ConditionRuleParser.parse(event.getContent());
generateConditions(routerRule); generateConditions(routerRule);
} catch (Exception e) { } catch (Exception e) {
logger.error(CLUSTER_FAILED_RULE_PARSING,"Failed to parse the raw condition rule","","Failed to parse the raw condition rule and it will not take effect, please check " + logger.error(
"if the condition rule matches with the template, the raw rule is:\n " + event.getContent(),e); CLUSTER_FAILED_RULE_PARSING,
"Failed to parse the raw condition rule",
"",
"Failed to parse the raw condition rule and it will not take effect, please check "
+ "if the condition rule matches with the template, the raw rule is:\n "
+ event.getContent(),
e);
} }
} }
} }
@Override @Override
public BitList<Invoker<T>> doRoute(BitList<Invoker<T>> invokers, URL url, Invocation invocation, public BitList<Invoker<T>> doRoute(
boolean needToPrintMessage, Holder<RouterSnapshotNode<T>> nodeHolder, Holder<String> messageHolder) throws RpcException { BitList<Invoker<T>> invokers,
URL url,
Invocation invocation,
boolean needToPrintMessage,
Holder<RouterSnapshotNode<T>> nodeHolder,
Holder<String> messageHolder)
throws RpcException {
if (CollectionUtils.isEmpty(invokers) || conditionRouters.size() == 0) { if (CollectionUtils.isEmpty(invokers) || conditionRouters.size() == 0) {
if (needToPrintMessage) { if (needToPrintMessage) {
messageHolder.set("Directly return. Reason: Invokers from previous router is empty or conditionRouters is empty."); messageHolder.set(
"Directly return. Reason: Invokers from previous router is empty or conditionRouters is empty.");
} }
return invokers; return invokers;
} }
@ -123,9 +137,9 @@ public abstract class ListenableStateRouter<T> extends AbstractStateRouter<T> im
private void generateConditions(ConditionRouterRule rule) { private void generateConditions(ConditionRouterRule rule) {
if (rule != null && rule.isValid()) { if (rule != null && rule.isValid()) {
this.conditionRouters = rule.getConditions() this.conditionRouters = rule.getConditions().stream()
.stream() .map(condition ->
.map(condition -> new ConditionStateRouter<T>(getUrl(), condition, rule.isForce(), rule.isEnabled())) new ConditionStateRouter<T>(getUrl(), condition, rule.isForce(), rule.isEnabled()))
.collect(Collectors.toList()); .collect(Collectors.toList());
for (ConditionStateRouter<T> conditionRouter : this.conditionRouters) { for (ConditionStateRouter<T> conditionRouter : this.conditionRouters) {
conditionRouter.setNextRouter(TailStateRouter.getInstance()); conditionRouter.setNextRouter(TailStateRouter.getInstance());

View File

@ -33,7 +33,8 @@ import static org.apache.dubbo.common.utils.StringUtils.isEmpty;
* Application level router, "application.condition-router" * Application level router, "application.condition-router"
*/ */
public class ProviderAppStateRouter<T> extends ListenableStateRouter<T> { public class ProviderAppStateRouter<T> extends ListenableStateRouter<T> {
private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(ListenableStateRouter.class); private static final ErrorTypeAwareLogger logger =
LoggerFactory.getErrorTypeAwareLogger(ListenableStateRouter.class);
public static final String NAME = "PROVIDER_APP_ROUTER"; public static final String NAME = "PROVIDER_APP_ROUTER";
private String application; private String application;
private final String currentApplication; private final String currentApplication;
@ -55,7 +56,11 @@ public class ProviderAppStateRouter<T> extends ListenableStateRouter<T> {
// provider application is empty or equals with the current application // provider application is empty or equals with the current application
if (isEmpty(providerApplication)) { if (isEmpty(providerApplication)) {
logger.warn(CLUSTER_TAG_ROUTE_EMPTY, "condition router get providerApplication is empty, will not subscribe to provider app rules.", "", ""); logger.warn(
CLUSTER_TAG_ROUTE_EMPTY,
"condition router get providerApplication is empty, will not subscribe to provider app rules.",
"",
"");
return; return;
} }
if (providerApplication.equals(currentApplication)) { if (providerApplication.equals(currentApplication)) {

View File

@ -32,7 +32,6 @@ public class ServiceStateRouterFactory extends CacheableStateRouterFactory {
@Override @Override
protected <T> StateRouter<T> createRouter(Class<T> interfaceClass, URL url) { protected <T> StateRouter<T> createRouter(Class<T> interfaceClass, URL url) {
return new ServiceStateRouter<T>(url); return new ServiceStateRouter<>(url);
} }
} }

View File

@ -34,15 +34,14 @@ public class ConditionRouterRule extends AbstractRouterRule {
Object conditions = map.get(CONDITIONS_KEY); Object conditions = map.get(CONDITIONS_KEY);
if (conditions != null && List.class.isAssignableFrom(conditions.getClass())) { if (conditions != null && List.class.isAssignableFrom(conditions.getClass())) {
conditionRouterRule.setConditions(((List<Object>) conditions).stream() conditionRouterRule.setConditions(
.map(String::valueOf).collect(Collectors.toList())); ((List<Object>) conditions).stream().map(String::valueOf).collect(Collectors.toList()));
} }
return conditionRouterRule; return conditionRouterRule;
} }
public ConditionRouterRule() { public ConditionRouterRule() {}
}
public List<String> getConditions() { public List<String> getConditions() {
return conditions; return conditions;

View File

@ -18,12 +18,12 @@ package org.apache.dubbo.rpc.cluster.router.condition.config.model;
import org.apache.dubbo.common.utils.CollectionUtils; import org.apache.dubbo.common.utils.CollectionUtils;
import java.util.Map;
import org.yaml.snakeyaml.LoaderOptions; import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor; import org.yaml.snakeyaml.constructor.SafeConstructor;
import java.util.Map;
/** /**
* %YAML1.2 * %YAML1.2
* *
@ -51,5 +51,4 @@ public class ConditionRuleParser {
return rule; return rule;
} }
} }

View File

@ -38,7 +38,8 @@ import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAIL
* provides the common match logics. * provides the common match logics.
*/ */
public abstract class AbstractConditionMatcher implements ConditionMatcher { public abstract class AbstractConditionMatcher implements ConditionMatcher {
public static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(AbstractConditionMatcher.class); public static final ErrorTypeAwareLogger logger =
LoggerFactory.getErrorTypeAwareLogger(AbstractConditionMatcher.class);
public static final String DOES_NOT_FOUND_VALUE = "dubbo_internal_not_found_argument_condition_value"; public static final String DOES_NOT_FOUND_VALUE = "dubbo_internal_not_found_argument_condition_value";
final Set<String> matches = new HashSet<>(); final Set<String> matches = new HashSet<>();
final Set<String> mismatches = new HashSet<>(); final Set<String> mismatches = new HashSet<>();
@ -52,9 +53,10 @@ public abstract class AbstractConditionMatcher implements ConditionMatcher {
this.valueMatchers = model.getExtensionLoader(ValuePattern.class).getActivateExtensions(); this.valueMatchers = model.getExtensionLoader(ValuePattern.class).getActivateExtensions();
} }
public static String getSampleValueFromUrl(String conditionKey, Map<String, String> sample, URL param, Invocation invocation) { public static String getSampleValueFromUrl(
String conditionKey, Map<String, String> sample, URL param, Invocation invocation) {
String sampleValue; String sampleValue;
//get real invoked method name from invocation // get real invoked method name from invocation
if (invocation != null && (METHOD_KEY.equals(conditionKey) || METHODS_KEY.equals(conditionKey))) { if (invocation != null && (METHOD_KEY.equals(conditionKey) || METHODS_KEY.equals(conditionKey))) {
sampleValue = RpcUtils.getMethodName(invocation); sampleValue = RpcUtils.getMethodName(invocation);
} else { } else {
@ -67,7 +69,8 @@ public abstract class AbstractConditionMatcher implements ConditionMatcher {
public boolean isMatch(Map<String, String> sample, URL param, Invocation invocation, boolean isWhenCondition) { public boolean isMatch(Map<String, String> sample, URL param, Invocation invocation, boolean isWhenCondition) {
String value = getValue(sample, param, invocation); String value = getValue(sample, param, invocation);
if (value == null) { if (value == null) {
// if key does not present in whichever of url, invocation or attachment based on the matcher type, then return false. // if key does not present in whichever of url, invocation or attachment based on the matcher type, then
// return false.
return false; return false;
} }
@ -90,7 +93,7 @@ public abstract class AbstractConditionMatcher implements ConditionMatcher {
} }
if (!matches.isEmpty() && !mismatches.isEmpty()) { if (!matches.isEmpty() && !mismatches.isEmpty()) {
//when both mismatches and matches contain the same value, then using mismatches first // when both mismatches and matches contain the same value, then using mismatches first
for (String mismatch : mismatches) { for (String mismatch : mismatches) {
if (doPatternMatch(mismatch, value, param, invocation, isWhenCondition)) { if (doPatternMatch(mismatch, value, param, invocation, isWhenCondition)) {
return false; return false;
@ -117,16 +120,23 @@ public abstract class AbstractConditionMatcher implements ConditionMatcher {
} }
// range, equal or other methods // range, equal or other methods
protected boolean doPatternMatch(String pattern, String value, URL url, Invocation invocation, boolean isWhenCondition) { protected boolean doPatternMatch(
String pattern, String value, URL url, Invocation invocation, boolean isWhenCondition) {
for (ValuePattern valueMatcher : valueMatchers) { for (ValuePattern valueMatcher : valueMatchers) {
if (valueMatcher.shouldMatch(pattern)) { if (valueMatcher.shouldMatch(pattern)) {
return valueMatcher.match(pattern, value, url, invocation, isWhenCondition); return valueMatcher.match(pattern, value, url, invocation, isWhenCondition);
} }
} }
// this should never happen. // this should never happen.
logger.error(CLUSTER_FAILED_EXEC_CONDITION_ROUTER, "Executing condition rule value match expression error.", "pattern is " + pattern + ", value is " + value + ", condition type " + (isWhenCondition ? "when" : "then"), "There should at least has one ValueMatcher instance that applies to all patterns, will force to use wildcard matcher now."); logger.error(
CLUSTER_FAILED_EXEC_CONDITION_ROUTER,
"Executing condition rule value match expression error.",
"pattern is " + pattern + ", value is " + value + ", condition type "
+ (isWhenCondition ? "when" : "then"),
"There should at least has one ValueMatcher instance that applies to all patterns, will force to use wildcard matcher now.");
ValuePattern paramValueMatcher = model.getExtensionLoader(ValuePattern.class).getExtension("wildcard"); ValuePattern paramValueMatcher =
model.getExtensionLoader(ValuePattern.class).getExtension("wildcard");
return paramValueMatcher.match(pattern, value, url, invocation, isWhenCondition); return paramValueMatcher.match(pattern, value, url, invocation, isWhenCondition);
} }
@ -135,5 +145,4 @@ public abstract class AbstractConditionMatcher implements ConditionMatcher {
* This makes condition rule possible to check values in any place of a request. * This makes condition rule possible to check values in any place of a request.
*/ */
protected abstract String getValue(Map<String, String> sample, URL url, Invocation invocation); protected abstract String getValue(Map<String, String> sample, URL url, Invocation invocation);
} }

View File

@ -38,7 +38,8 @@ import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAIL
*/ */
@Activate @Activate
public class ArgumentConditionMatcher extends AbstractConditionMatcher { public class ArgumentConditionMatcher extends AbstractConditionMatcher {
private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(ArgumentConditionMatcher.class); private static final ErrorTypeAwareLogger logger =
LoggerFactory.getErrorTypeAwareLogger(ArgumentConditionMatcher.class);
private static final Pattern ARGUMENTS_PATTERN = Pattern.compile("arguments\\[([0-9]+)\\]"); private static final Pattern ARGUMENTS_PATTERN = Pattern.compile("arguments\\[([0-9]+)\\]");
public ArgumentConditionMatcher(String key, ModuleModel model) { public ArgumentConditionMatcher(String key, ModuleModel model) {
@ -56,16 +57,21 @@ public class ArgumentConditionMatcher extends AbstractConditionMatcher {
return DOES_NOT_FOUND_VALUE; return DOES_NOT_FOUND_VALUE;
} }
//extract the argument index // extract the argument index
int index = Integer.parseInt(matcher.group(1)); int index = Integer.parseInt(matcher.group(1));
if (index < 0 || index > invocation.getArguments().length) { if (index < 0 || index > invocation.getArguments().length) {
return DOES_NOT_FOUND_VALUE; return DOES_NOT_FOUND_VALUE;
} }
//extract the argument value // extract the argument value
return String.valueOf(invocation.getArguments()[index]); return String.valueOf(invocation.getArguments()[index]);
} catch (Exception e) { } catch (Exception e) {
logger.warn(CLUSTER_FAILED_EXEC_CONDITION_ROUTER, "Parse argument match condition failed", "", "Invalid , will ignore., ", e); logger.warn(
CLUSTER_FAILED_EXEC_CONDITION_ROUTER,
"Parse argument match condition failed",
"",
"Invalid , will ignore., ",
e);
} }
return DOES_NOT_FOUND_VALUE; return DOES_NOT_FOUND_VALUE;
} }

View File

@ -38,7 +38,8 @@ import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAIL
*/ */
@Activate @Activate
public class AttachmentConditionMatcher extends AbstractConditionMatcher { public class AttachmentConditionMatcher extends AbstractConditionMatcher {
private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(AttachmentConditionMatcher.class); private static final ErrorTypeAwareLogger logger =
LoggerFactory.getErrorTypeAwareLogger(AttachmentConditionMatcher.class);
private static final Pattern ATTACHMENTS_PATTERN = Pattern.compile("attachments\\[(.+)\\]"); private static final Pattern ATTACHMENTS_PATTERN = Pattern.compile("attachments\\[(.+)\\]");
public AttachmentConditionMatcher(String key, ModuleModel model) { public AttachmentConditionMatcher(String key, ModuleModel model) {
@ -56,20 +57,21 @@ public class AttachmentConditionMatcher extends AbstractConditionMatcher {
return DOES_NOT_FOUND_VALUE; return DOES_NOT_FOUND_VALUE;
} }
//extract the argument index // extract the argument index
String attachmentKey = matcher.group(1); String attachmentKey = matcher.group(1);
if (StringUtils.isEmpty(attachmentKey)) { if (StringUtils.isEmpty(attachmentKey)) {
return DOES_NOT_FOUND_VALUE; return DOES_NOT_FOUND_VALUE;
} }
//extract the argument value // extract the argument value
return invocation.getAttachment(attachmentKey); return invocation.getAttachment(attachmentKey);
} catch (Exception e) { } catch (Exception e) {
logger.warn(CLUSTER_FAILED_EXEC_CONDITION_ROUTER, logger.warn(
"condition state router attachment match failed", CLUSTER_FAILED_EXEC_CONDITION_ROUTER,
"", "condition state router attachment match failed",
"Invalid match condition: " + key, "",
e); "Invalid match condition: " + key,
e);
} }
return DOES_NOT_FOUND_VALUE; return DOES_NOT_FOUND_VALUE;
} }

View File

@ -37,5 +37,4 @@ public class UrlParamConditionMatcher extends AbstractConditionMatcher {
protected String getValue(Map<String, String> sample, URL url, Invocation invocation) { protected String getValue(Map<String, String> sample, URL url, Invocation invocation) {
return getSampleValueFromUrl(key, sample, url, invocation); return getSampleValueFromUrl(key, sample, url, invocation);
} }
} }

View File

@ -46,7 +46,11 @@ public class RangeValuePattern implements ValuePattern {
String[] arr = pattern.split("~"); String[] arr = pattern.split("~");
if (arr.length < 2) { if (arr.length < 2) {
logger.error(CLUSTER_FAILED_EXEC_CONDITION_ROUTER, "", "", "Invalid condition rule " + pattern + " or value " + value + ", will ignore."); logger.error(
CLUSTER_FAILED_EXEC_CONDITION_ROUTER,
"",
"",
"Invalid condition rule " + pattern + " or value " + value + ", will ignore.");
return defaultValue; return defaultValue;
} }
@ -75,7 +79,12 @@ public class RangeValuePattern implements ValuePattern {
} }
} }
} catch (Exception e) { } catch (Exception e) {
logger.error(CLUSTER_FAILED_EXEC_CONDITION_ROUTER, "Parse integer error", "", "Invalid condition rule " + pattern + " or value " + value + ", will ignore.", e); logger.error(
CLUSTER_FAILED_EXEC_CONDITION_ROUTER,
"Parse integer error",
"",
"Invalid condition rule " + pattern + " or value " + value + ", will ignore.",
e);
return defaultValue; return defaultValue;
} }

View File

@ -46,7 +46,9 @@ public class FileStateRouterFactory implements StateRouterFactory {
try { try {
// Transform File URL into Script Route URL, and Load // Transform File URL into Script Route URL, and Load
// file:///d:/path/to/route.js?router=script ==> script:///d:/path/to/route.js?type=js&rule=<file-content> // file:///d:/path/to/route.js?router=script ==> script:///d:/path/to/route.js?type=js&rule=<file-content>
String protocol = url.getParameter(ROUTER_KEY, ScriptStateRouterFactory.NAME); // Replace original protocol (maybe 'file') with 'script' String protocol = url.getParameter(
ROUTER_KEY,
ScriptStateRouterFactory.NAME); // Replace original protocol (maybe 'file') with 'script'
String type = null; // Use file suffix to config script type, e.g., js, groovy ... String type = null; // Use file suffix to config script type, e.g., js, groovy ...
String path = url.getPath(); String path = url.getPath();
if (path != null) { if (path != null) {
@ -71,5 +73,4 @@ public class FileStateRouterFactory implements StateRouterFactory {
throw new IllegalStateException(e.getMessage(), e); throw new IllegalStateException(e.getMessage(), e);
} }
} }
} }

View File

@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.dubbo.rpc.cluster.router.mesh.route; package org.apache.dubbo.rpc.cluster.router.mesh.route;
import org.apache.dubbo.common.config.configcenter.ConfigChangeType; import org.apache.dubbo.common.config.configcenter.ConfigChangeType;
@ -26,24 +25,23 @@ import org.apache.dubbo.common.utils.CollectionUtils;
import org.apache.dubbo.rpc.cluster.router.mesh.util.MeshRuleDispatcher; import org.apache.dubbo.rpc.cluster.router.mesh.util.MeshRuleDispatcher;
import org.apache.dubbo.rpc.cluster.router.mesh.util.MeshRuleListener; import org.apache.dubbo.rpc.cluster.router.mesh.util.MeshRuleListener;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor;
import org.yaml.snakeyaml.representer.Representer;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.HashMap; import java.util.HashMap;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor;
import org.yaml.snakeyaml.representer.Representer;
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_RECEIVE_RULE; import static org.apache.dubbo.common.constants.LoggerCodeConstants.CLUSTER_FAILED_RECEIVE_RULE;
import static org.apache.dubbo.rpc.cluster.router.mesh.route.MeshRuleConstants.METADATA_KEY; import static org.apache.dubbo.rpc.cluster.router.mesh.route.MeshRuleConstants.METADATA_KEY;
import static org.apache.dubbo.rpc.cluster.router.mesh.route.MeshRuleConstants.NAME_KEY; import static org.apache.dubbo.rpc.cluster.router.mesh.route.MeshRuleConstants.NAME_KEY;
import static org.apache.dubbo.rpc.cluster.router.mesh.route.MeshRuleConstants.STANDARD_ROUTER_KEY; import static org.apache.dubbo.rpc.cluster.router.mesh.route.MeshRuleConstants.STANDARD_ROUTER_KEY;
public class MeshAppRuleListener implements ConfigurationListener { public class MeshAppRuleListener implements ConfigurationListener {
private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(MeshAppRuleListener.class); private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(MeshAppRuleListener.class);
@ -62,8 +60,7 @@ public class MeshAppRuleListener implements ConfigurationListener {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void receiveConfigInfo(String configInfo) { public void receiveConfigInfo(String configInfo) {
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug(MessageFormat.format("[MeshAppRule] Received rule for app [{0}]: {1}.", logger.debug(MessageFormat.format("[MeshAppRule] Received rule for app [{0}]: {1}.", appName, configInfo));
appName, configInfo));
} }
try { try {
Map<String, List<Map<String, Object>>> groupMap = new HashMap<>(); Map<String, List<Map<String, Object>>> groupMap = new HashMap<>();
@ -79,19 +76,34 @@ public class MeshAppRuleListener implements ConfigurationListener {
String ruleType = computeRuleType(resultMap); String ruleType = computeRuleType(resultMap);
if (ruleType != null) { if (ruleType != null) {
groupMap.computeIfAbsent(ruleType, (k)-> new LinkedList<>()).add(resultMap); groupMap.computeIfAbsent(ruleType, (k) -> new LinkedList<>())
.add(resultMap);
} else { } else {
logger.error(CLUSTER_FAILED_RECEIVE_RULE,"receive mesh app route rule is invalid","","Unable to get rule type from raw rule. " + logger.error(
"Probably the metadata.name is absent. App Name: " + appName + " RawRule: " + configInfo); CLUSTER_FAILED_RECEIVE_RULE,
"receive mesh app route rule is invalid",
"",
"Unable to get rule type from raw rule. "
+ "Probably the metadata.name is absent. App Name: " + appName + " RawRule: "
+ configInfo);
} }
} else { } else {
logger.error(CLUSTER_FAILED_RECEIVE_RULE,"receive mesh app route rule is invalid","","Rule format is unacceptable. App Name: " + appName + " RawRule: " + configInfo); logger.error(
CLUSTER_FAILED_RECEIVE_RULE,
"receive mesh app route rule is invalid",
"",
"Rule format is unacceptable. App Name: " + appName + " RawRule: " + configInfo);
} }
} }
ruleMapHolder = groupMap; ruleMapHolder = groupMap;
} catch (Exception e) { } catch (Exception e) {
logger.error(CLUSTER_FAILED_RECEIVE_RULE,"failed to receive mesh app route rule","","[MeshAppRule] parse failed: " + configInfo,e); logger.error(
CLUSTER_FAILED_RECEIVE_RULE,
"failed to receive mesh app route rule",
"",
"[MeshAppRule] parse failed: " + configInfo,
e);
} }
if (ruleMapHolder != null) { if (ruleMapHolder != null) {
meshRuleDispatcher.post(ruleMapHolder); meshRuleDispatcher.post(ruleMapHolder);
@ -123,7 +135,6 @@ public class MeshAppRuleListener implements ConfigurationListener {
meshRuleDispatcher.register(subscriber); meshRuleDispatcher.register(subscriber);
} }
public <T> void unregister(MeshRuleListener subscriber) { public <T> void unregister(MeshRuleListener subscriber) {
meshRuleDispatcher.unregister(subscriber); meshRuleDispatcher.unregister(subscriber);
} }

View File

@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.dubbo.rpc.cluster.router.mesh.route; package org.apache.dubbo.rpc.cluster.router.mesh.route;
/** /**

Some files were not shown because too many files have changed in this diff Show More