This is an automated email from the ASF dual-hosted git repository.

albumenj pushed a commit to branch 3.3
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit da2dd6d2a1f5a5266a343b6cb1bf0a73b2f53233
Merge: cb92fcc19e 501bdfaaef
Author: Albumen Kevin <jhq0...@gmail.com>
AuthorDate: Tue Mar 12 11:36:55 2024 +0800

    Merge branch 'apache-3.2' into apache-3.3
    
    # Conflicts:
    #       README.md
    #       
dubbo-container/dubbo-container-api/src/main/java/org/apache/dubbo/container/Main.java

 .../general.yml}                                   | 66 ++++++++++----------
 .../question.yml}                                  | 66 ++++++++++----------
 .github/ISSUE_TEMPLATE/1-bug.yml                   | 20 ++++++-
 .github/ISSUE_TEMPLATE/2-feature.yml               | 18 +++++-
 .../PULL_REQUEST_TEMPLATE.md                       |  0
 README.md                                          | 70 +++++++++++++++++++---
 .../filter/support/ConsumerContextFilter.java      |  6 +-
 .../common/beans/factory/ScopeBeanFactory.java     |  6 +-
 .../threadpool/support/AbortPolicyWithReport.java  |  4 +-
 .../java/org/apache/dubbo/config/ModuleConfig.java |  2 +-
 .../builder/PrimitiveTypeDefinitionBuilder.java    |  2 +-
 .../dubbo/remoting/codec/ExchangeCodecTest.java    |  2 +-
 .../dubbo/rpc/protocol/dubbo/DubboInvoker.java     |  2 +
 .../dubbo/rpc/protocol/tri/TripleInvoker.java      |  1 +
 .../endpoint/metadata/AbstractDubboMetadata.java   |  2 +-
 15 files changed, 175 insertions(+), 92 deletions(-)

diff --cc README.md
index 7e1d6569bf,975deece80..520c2b04a1
--- a/README.md
+++ b/README.md
@@@ -6,101 -6,249 +6,156 @@@
  ![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")
  [![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 an easy-to-use Web and RPC framework that provides multiple
 +language implementations(Java, [Go](https://github.com/apache/dubbo-go), 
[Rust](https://github.com/apache/dubbo-rust), 
[Node.js](https://github.com/apache/dubbo-js), 
[Web](https://github.com/apache/dubbo-js)) for communication, service 
discovery, traffic management,
 +observability, security, tools, and best practices for building 
enterprise-ready microservices.
  
- Visit [the official website](https://dubbo.apache.org/) for more information.
+ 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](https://dubbo.apache.org/imgs/architecture.png)
  
 -## Features
 -
 -* Transparent interface based RPC
 -* Intelligent load balancing
 -* Automatic service registration and discovery
 -* High extensibility
 -* Runtime traffic routing
 -* Visualized service governance
 +* Consumer and provider communicate with each other using RPC protocol like 
triple, tcp, rest, etc.
 +* Consumers automatically trace provider instances registered in 
registries(Zookeeper, Nacos) and distribute traffic among them by following 
traffic strategies.
 +* Rich features for monitoring and managing the cluster with dynamic 
configuration, metrics, tracing, security, and visualized console.
  
  ## Getting started
 +Follow the instructions below to learn how to:
  
 -The following code snippet comes from [Dubbo 
Samples](https://github.com/apache/dubbo-samples.git). You may clone the sample 
project and step into the `dubbo-samples-api` subdirectory before proceeding.
 -
 -```bash
 -git clone https://github.com/apache/dubbo-samples.git
 -cd dubbo-samples/1-basic/dubbo-samples-api
 -```
 -
 -There's a 
[README](https://github.com/apache/dubbo-samples/blob/389cd612f1ea57ee6e575005b32f195c442c35a2/1-basic/dubbo-samples-api/README.md)
 file under `dubbo-samples-api` directory. We recommend referencing the samples 
in that directory by following the below-mentioned instructions:
 -
 -### Maven dependency
 -
 -```xml
 -<properties>
 -    <dubbo.version>3.2.11</dubbo.version>
 -</properties>
 -
 -<dependencies>
 -    <dependency>
 -        <groupId>org.apache.dubbo</groupId>
 -        <artifactId>dubbo</artifactId>
 -        <version>${dubbo.version}</version>
 -    </dependency>
 -    <dependency>
 -        <groupId>org.apache.dubbo</groupId>
 -        <artifactId>dubbo-dependencies-zookeeper</artifactId>
 -        <version>${dubbo.version}</version>
 -        <type>pom</type>
 -    </dependency>
 -</dependencies>
 -```
 -
 -### Define service interfaces
 -
 -```java
 -package org.apache.dubbo.samples.api;
 -
 -public interface GreetingsService {
 -    String sayHi(String name);
 -}
 -```
 -
 -*See 
[api/GreetingsService.java](https://github.com/apache/dubbo-samples/blob/389cd612f1ea57ee6e575005b32f195c442c35a2/1-basic/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/api/GreetingsService.java)
 on GitHub.*
 -
 -### Implement service interface for the provider
 -
 -```java
 -package org.apache.dubbo.samples.provider;
 -
 -import org.apache.dubbo.samples.api.GreetingsService;
 -
 -public class GreetingsServiceImpl implements GreetingsService {
 -    @Override
 -    public String sayHi(String name) {
 -        return "hi, " + name;
 -    }
 -}
 -```
 -
 -*See 
[provider/GreetingsServiceImpl.java](https://github.com/apache/dubbo-samples/blob/389cd612f1ea57ee6e575005b32f195c442c35a2/1-basic/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/provider/GreetingsServiceImpl.java)
 on GitHub.*
 -
 -### Start service provider
 -
 -```java
 -package org.apache.dubbo.samples.provider;
 -
 -
 -import org.apache.dubbo.config.ApplicationConfig;
 -import org.apache.dubbo.config.RegistryConfig;
 -import org.apache.dubbo.config.ServiceConfig;
 -import org.apache.dubbo.samples.api.GreetingsService;
 -
 -import java.util.concurrent.CountDownLatch;
 -
 -public class Application {
 -    private static String zookeeperHost = 
System.getProperty("zookeeper.address", "127.0.0.1");
 -
 -    public static void main(String[] args) throws Exception {
 -        ServiceConfig<GreetingsService> service = new ServiceConfig<>();
 -        service.setApplication(new ApplicationConfig("first-dubbo-provider"));
 -        service.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost 
+ ":2181"));
 -        service.setInterface(GreetingsService.class);
 -        service.setRef(new GreetingsServiceImpl());
 -        service.export();
 -
 -        System.out.println("dubbo service started");
 -        new CountDownLatch(1).await();
 -    }
 -}
 -```
 +### Programming with lightweight RPC API
 +[5 minutes step-by-step 
guide](https://dubbo.apache.org/zh-cn/overview/quickstart/rpc/java)
  
 -*See 
[provider/Application.java](https://github.com/apache/dubbo-samples/blob/389cd612f1ea57ee6e575005b32f195c442c35a2/1-basic/dubbo-samples-spring-xml/src/main/java/org/apache/dubbo/samples/provider/Application.java)
 on GitHub.*
 +Dubbo supports building RPC services with only a few lines of code while 
depending only on a lightweight SDK (<10MB). The protocol on the wire can be 
[Triple](https://dubbo.apache.org/zh-cn/overview/reference/protocols/triple/)(fully
 gRPC compatible and HTTP-friendly), Dubbo2(TCP), REST, or any protocol of your 
choice.
  
 -### Build and run the provider
  
 -```bash
 -mvn clean package
 -mvn -Djava.net.preferIPv4Stack=true 
-Dexec.mainClass=org.apache.dubbo.samples.provider.Application exec:java
 -```
 +### Building a microservice application with Spring Boot
 +[5 minutes step-by-step 
guide](https://dubbo.apache.org/zh-cn/overview/quickstart/microservice)
  
 -### Call remote service in the consumer
 +It's highly recommended to start your microservice application with the 
Spring Boot Starter `dubbo-spring-boot-starter` provided by Dubbo. With only a 
single dependency and yaml file, and optionally a bunch of other useful spring 
boot starters, you can enable all of the Dubo features like service discovery, 
observability, tracing, etc.
  
 -```java
 -package org.apache.dubbo.samples.client;
 +Next, learn how to 
[deploy](https://dubbo.apache.org/zh-cn/overview/tasks/deploy/), 
[monitor](https://dubbo.apache.org/zh-cn/overview/tasks/observability/), and 
[manage the 
traffic](https://dubbo.apache.org/zh-cn/overview/tasks/traffic-management/) of 
your Dubbo application and cluster.
  
 +## More Features
 +Get more details by visiting the links below to get your hands dirty with 
some well-designed tasks on our website.
  
 -import org.apache.dubbo.config.ApplicationConfig;
 -import org.apache.dubbo.config.ReferenceConfig;
 -import org.apache.dubbo.config.RegistryConfig;
 -import org.apache.dubbo.samples.api.GreetingsService;
 +* [Launch a Dubbo 
project](https://dubbo.apache.org/zh-cn/overview/tasks/develop/template/)
 +* [RPC 
protocols](https://dubbo.apache.org/zh-cn/overview/core-features/protocols/)
 +* [Traffic 
management](https://dubbo.apache.org/zh-cn/overview/core-features/traffic/)
 +* [Service 
discovery](https://dubbo.apache.org/zh-cn/overview/core-features/service-discovery/)
 +* 
[Observability](https://dubbo.apache.org/zh-cn/overview/core-features/observability/)
 +* 
[Extensibility](https://dubbo.apache.org/zh-cn/overview/core-features/extensibility/)
 +* [Security](https://dubbo.apache.org/zh-cn/overview/core-features/security/)
 +* [Visualized console and control 
plane](https://dubbo.apache.org/zh-cn/overview/reference/admin/)
 +* [Kubernetes and Service 
mesh](https://dubbo.apache.org/zh-cn/overview/core-features/service-mesh/)
  
 -public class Application {
 -    private static String zookeeperHost = 
System.getProperty("zookeeper.address", "127.0.0.1");
 +## Which Dubbo version should I use?
 +| **Dubbo3** | **JDK** | **Dependencies** | **Description** |
 +| --- | --- | --- | --- |
 +| 3.3.0-beta| 1.8 ~ 17 | [dependency 
list](https://github.com/apache/dubbo/blob/3.3/dubbo-dependencies-bom/pom.xml#L94)
  | **- Unstable version** <br/> **- Features** <br/> &nbsp;&nbsp;  - Triple - 
gRPC and cURL compatible.<br/>  &nbsp;&nbsp;  - Rest-style programming 
support.<br/>  &nbsp;&nbsp;  - Spring Boot Starters. |
 +| 3.2.5 | 1.8 ~ 17 | [dependency 
list](https://github.com/apache/dubbo/blob/dubbo-3.2.5/dubbo-dependencies-bom/pom.xml#L94)
 | **- Stable version (active)** <br/> **- Features** <br/> &nbsp;&nbsp;- 
Out-of-box metrics and tracing support.<br/> &nbsp;&nbsp;- Threadpool 
Isolation<br/> &nbsp;&nbsp;- 30% performance<br/> &nbsp;&nbsp;- Native Image|
 +| 3.1.11 | 1.8 ~ 11 | [dependency 
list](https://github.com/apache/dubbo/blob/dubbo-3.2.11/dubbo-dependencies-bom/pom.xml#L94)
 | **Stable version (not active)** |
  
 -    public static void main(String[] args) {
 -        ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
 -        reference.setApplication(new 
ApplicationConfig("first-dubbo-consumer"));
 -        reference.setRegistry(new RegistryConfig("zookeeper://" + 
zookeeperHost + ":2181"));
 -        reference.setInterface(GreetingsService.class);
 -        GreetingsService service = reference.get();
 -        String message = service.sayHi("dubbo");
 -        System.out.println(message);
 -    }
 -}
 -```
 -*See 
[client/Application.java](https://github.com/apache/dubbo-samples/blob/389cd612f1ea57ee6e575005b32f195c442c35a2/1-basic/dubbo-samples-api/src/main/java/org/apache/dubbo/samples/client/Application.java)
 on GitHub.*
 +| **Dubbo2** | **JDK** | **Dependencies** | **Description** |
 +| --- | --- | --- | --- |
 +| 2.7.23 | 1.8 | [dependency 
list](https://github.com/apache/dubbo/blob/dubbo-2.7.23/dubbo-dependencies-bom/pom.xml#L92)
 | EOL |
 +| 2.6.x, 2.5.x | 1.6 ~ 1.7 |  | EOL |
  
 -### Build and run the consumer
 -
 -```bash
 -mvn clean package
 -mvn -Djava.net.preferIPv4Stack=true 
-Dexec.mainClass=org.apache.dubbo.samples.client.Application exec:java
 -```
 -
 -The consumer will print out `hi, dubbo` on the screen.
 -
 -
 -### Next steps
 -
 -* [Your first Dubbo 
application](https://dubbo.apache.org/en/blog/2018/08/07/dubbo-101/) - A 101 
tutorial to reveal more details, with the same code above.
 -* [Dubbo user manual](https://dubbo.apache.org/en/overview/what/) - How to 
use Dubbo and all its features.
 -* [Dubbo developer guide](https://dubbo.apache.org/en/docs3-v2/java-sdk/) - 
How to involve in Dubbo development.
 -* [Dubbo admin manual](https://dubbo.apache.org/en/docs/v2.7/admin/ops/) - 
How to admin and manage Dubbo services.
 -
 -## Building
 -
 -If you want to try out the cutting-edge features, you can build with the 
following commands. (Java 1.8 is needed to build the master branch)
 -
 -```
 -  mvn clean install
 -```
 -
 -## Recommended Test Environment
 -To avoid intermittent test failures (i.e., flaky tests), it is recommended to 
have a machine or virtual machine with the following specifications:
 -
 -* Minimum of 2CPUs.
 -* Minimum of 2Gb of RAM.
 +## Contributing
 +See 
[CONTRIBUTING](https://github.com/apache/dubbo/blob/master/CONTRIBUTING.md) for 
details on submitting patches and the contribution workflow.
  
+ ### How does the Dubbo Community collaborate?
+ 
+ The Dubbo Community primarily communicates on GitHub through issues, 
discussions, and pull requests.
+ 
+ - Issues: We use issues to track bugs and tasks. Any **work-related** item is 
associated with an issue.
+ - Discussions: We use discussions for questions, early proposals, and 
announcements. Any **idea-related** item is associated with a discussion.
+ - Pull Requests: We use pull requests to merge a set of changes from 
contributors into Dubbo.
+ 
+ We have also implemented [a project 
board](https://github.com/orgs/apache/projects/337) to monitor all the items.
+ 
+ Any essential changes should be discussed on the mailing list before they 
happen.
+ 
+ ### Seeking for help
+ 
+ If you have questions such as:
+ 
+ - What is Dubbo?
+ - How do I use Dubbo?
+ - Why did an unexpected result occur?
+ 
+ Please start a discussion at https://github.com/apache/dubbo/discussions.
+ 
+ However, if you encounter the following situations:
+ 
+ - You're certain there's a bug that Dubbo needs to fix,
+ - You believe a feature could be enhanced,
+ - 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 
[d...@dubbo.apache.org](mailto:d...@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
+ 
+ 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
+ 
+ Please report security vulnerabilities to 
[us](mailto:secur...@dubbo.apache.org) privately.
+ 
  ## Contact
 +* WeChat: apachedubbo
 +* DingTalk group: 37290003945
 +* Mailing list: [guide](https://dubbo.apache.org/zh-cn/contact/)
 +* Twitter: [@ApacheDubbo](https://twitter.com/ApacheDubbo)
 +* Security issues: please mail to [us](mailto:secur...@dubbo.apache.org) 
privately.
  
 -* Mailing list:
 -    * dev list: for dev/user discussion. 
[subscribe](mailto:dev-subscr...@dubbo.apache.org), 
[unsubscribe](mailto:dev-unsubscr...@dubbo.apache.org), 
[archive](https://lists.apache.org/list.html?d...@dubbo.apache.org),  
[guide](https://github.com/apache/dubbo/wiki/Mailing-list-subscription-guide)
 +## Contributing
  
 -* 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)
 +See 
[CONTRIBUTING](https://github.com/apache/dubbo/blob/master/CONTRIBUTING.md) for 
details on submitting patches and the contribution workflow.
 +
 +### How can I contribute?
 +
 +* 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).
 +* 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).
 +* Fix bugs reported on [issues](https://github.com/apache/dubbo/issues), and 
send us a pull request.
 +* Review the existing [pull request](https://github.com/apache/dubbo/pulls).
 +* Improve the [website](https://github.com/apache/dubbo-website), typically 
we need
-     * blog post
-     * translation on documentation
-     * use cases around the integration of Dubbo in enterprise systems.
++  * blog post
++  * translation on documentation
++  * use cases around the integration of Dubbo in enterprise systems.
 +* Improve the 
[dubbo-admin/dubbo-monitor](https://github.com/apache/dubbo-admin).
 +* Contribute to the projects listed in [ecosystem](https://github.com/dubbo).
 +* Other forms of contribution not explicitly enumerated above.
 +* If you would like to contribute, please send an email to 
d...@dubbo.apache.org to let us know!
 +
 +## Reporting bugs
 +
 +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
 +
 +Please report security vulnerabilities to 
[us](mailto:secur...@dubbo.apache.org) privately.
  
  ## Dubbo ecosystem
  

Reply via email to