Skip to main content

28 posts tagged with "Apache ShenYu"

View All Tags

Yu Siheng 2025 Open Source Summer Summary | From Open Source Newbie to Campus Ambassador

· 5 min read
478320

Reflecting on my connection with the Shenyu gateway, it feels like a destined encounter. Initially, I was just an ordinary student interested in the "Open Source Summer" program. At that time, I casually posted a question on a technical forum seeking advice on how to choose an open source community. Soon after, I received a warm reply from ZangZang in the Dromara community. Through the Dromara community, I read about A Chao’s legendary journey and also learned about the founder of Dromara, Mao Da. Unfortunately, the Dromara community was not participating in the Open Source Summer program.

Therefore, I searched again on the OSPP platform for a community that resonated with me, and unexpectedly I discovered the Shenyu community there. I was deeply interested in Shenyu, and to my surprise, I found many of the big contributors I had seen in the Dromara community were also actively contributing to Shenyu. This coincidence sparked a strong interest in the Shenyu community. It was this wonderful fate that led me to step into the vibrant Shenyu open source community for the first time and started my own open source journey.

From Theory to Practice: Taking the First Step into Open Source

With the guidance and support of many community mentors, I successfully submitted my first PR. After going through rigorous CI checks, it was finally merged. At that moment, I truly felt a profound sense of accomplishment. I continuously delved into Shenyu’s code architecture, asynchronous programming, synchronization mechanisms, and plugin chain design, while steadily contributing code. Participating in open source gradually became a natural choice for me and no longer felt difficult. I deeply relate to a senior from my school who once said, “Open source is all around us.”

Open Source Summer: The Transformation from Participant to Community Member

In the 2025 "Open Source Summer" event, I was fortunate to be selected for the "Apache ShenYu Proxy Plugin Fine-grained Service Configuration" project. This project aims to enhance the capabilities of the Apache Shenyu gateway by enabling flexible configuration of plugin behaviors at the Selector level. With the careful guidance of mentors and senior community members, I gained a deeper understanding of the plugin chain architecture and plugin scheduling process. Below is one of the diagrams I drew during my learning journey:

ospp-2025-478320-flow.png

After three months of dedicated effort, I successfully delivered fine-grained configuration features for Proxy, Cache, Logging, AI, and other plugins. This significantly improved the flexibility of traffic management, meeting the needs of more complex business scenarios. This experience not only deepened my understanding of the Shenyu configuration system and SPI mechanism but also equipped me with practical skills in system call implementation, synchronization mechanism design, and efficient debugging.

Role Upgrade: The Responsibility and Mission of a Campus Ambassador

This "Open Source Summer" experience was deeply meaningful to me, making me fully realize the true essence of openness, open source, and sharing. Open source is not just about making code public; it embodies a spirit of collaborative creation. With this belief, I hope more students interested in open source can learn about and participate in Open Source Summer. Therefore, this year I applied to become a Campus Ambassador for Open Source Summer at Fuzhou University, aiming to share my experiences and insights, guide new students to get involved, and witness many beginners grow into active contributors within the community.

Summary of Gains: Valuable Lessons on the Path of Growth

Looking back on the entire OSPP process, I deeply appreciate the critical importance of maintaining high scalability and flexibility in programming. Avoiding rigid, hard-coded solutions greatly facilitates future feature expansion and maintenance. However, my greatest gain from this event was not just the improvement of coding skills but the broadening of my horizons. I realized what kind of code is truly needed and discovered that I was capable of achieving more than I had expected. Equally important, I learned how to communicate effectively with mentors and made many friends in the community. The help and support from all the senior contributors were invaluable, and I am sincerely grateful to everyone in the community.

Looking Ahead: Continuing the Open Source Journey

In the future, I look forward to expanding my technical knowledge while meeting more like-minded partners. I also hope that someday I can give back to the community and bring along new friends to grow together. Meanwhile, I plan to continue dedicating myself to the open source community and help more students experience the growth and joy that open source brings.

This bond with Shenyu and my participation in OSPP have not only equipped me with valuable technical skills but also helped me understand the true meaning of sharing and collaboration. I wish to continue walking the open source path hand in hand with the Shenyu community in the years to come.

Become a Committer

· 2 min read
shown

Self-Introduction

Hello everyone, I'm Musheng (shown), currently a Go/Java development engineer. I'm very excited to receive the invitation to become a Committer of the Apache ShenYu project. It's an honor to officially join as an Apache ShenYu Committer and contribute to the project's growth.

I've always been passionate about open source communities and am also a Committer for Apache Hertzbeat and a PMC member of the Spring AI Alibaba project.

My Journey with Apache ShenYu

I've always had a strong interest in gateway projects. By chance, I met @Asia00 in the Apache Hertzbeat community. At that time, the ShenYu project was developing rapidly and had many "help wanted" and "good first issue" tags.

So I started submitting PRs to participate in the open source development of Apache ShenYu. After more than three months of continuous contributions, totaling 18k lines of code changes, I was nominated by @Asia00 and became a Committer.

Experience Sharing

The journey of open source begins with interest and grows through practice. Open source is not only a carrier of technical enthusiasm, but also a journey of growing together with the community.

For developers participating in open source for the first time, being brave to try is the most important step. Even the smallest contribution can accumulate valuable experience. In daily work, actively participate in community discussions and code reviews, learning continuously through communication; maintain patience and persistence, as every challenge and difficulty encountered is an opportunity for growth.

In the Apache ShenYu community, there are many opportunities to actually participate in the project. Pay more attention to the Issue list and communicate more - there will always be someone actively responding to your ideas and getting inspired by your perspectives.

Conclusion

I sincerely thank all community partners for their patient reviews and careful guidance. Becoming a Committer is just a small milestone for me. I look forward to continuing to uphold the spirit of open source with Apache ShenYu, attracting more excellent developers, and jointly building a technologically advanced and vibrant community. May the Apache ShenYu project soon reach 10k stars!

[Apache ShenYu 2.7.3 Version Release]

· 9 min read

Apache ShenYu

Apache ShenYu is a responsive API gateway developed using Java Reactor. With its high performance, dynamic and flexible traffic control, hot swap, easy deployment and other features, out of the box to provide users with a full lifecycle of 'API' gateway, including 'API' registration, service proxy, protocol conversion, 'API' documentation and 'API' governance and other functions. Apache ShenYu graduated as an Apache top-level project in 'July 2022'.

website: https://shenyu.apache.org

GitHub: https://github.com/apache/shenyu

Version preview

Three months later, Apache ShenYu released version 2.7.0.3. This version merged 77 pull requests, added 29 new features, and made several improvements, refactored many functions, and fixed several bugs. Version history: https://github.com/apache/shenyu/compare/v2.7.0.2...v2.7.0.3

What's Changed

  • feat(ut): add some tests by @yuluo-yx in #6105
  • [type: release] 2.7.0.2 release by @Aias00 in #6111
  • Bugfix: NacosConfig Test error by @Wweiei in #6116
  • Bugfix: MCP server plugin requestConfig too long by @Wweiei in #6115
  • fix: fix redisRateLimiter type cast error, for #6103 by @yuluo-yx in #6120
  • [fix] EtcdInstanceRegisterRepositoryTest run error by @Wweiei in #6127
  • Update comment to English in pom.xml by @yuluo-yx in #6128
  • fix: ShenyuBootstrapApplication run failed when using Nacos data sync by @Wweiei in #6124
  • fix: increase default timeout and improve error handling in MCP tools by @Aias00 in #6131
  • fix: replace deprecated Base64 class with java.util.Base64 by @Aias00 in #6132
  • sync dashboard by @Wweiei in #6133
  • Fix the issue where the cache is not properly deleted after removing a selector in the Nacos data synchronization method. by @17661152 in #6140
  • feat(ut): add shenyu-registry-api unit test by @yuluo-yx in #6135
  • feat: refactor registry reserved keyword fields by @Wweiei in #6139
  • feat: add sync data api unit test by @yuluo-yx in #6142
  • chore: update chinese comment to english and add license by @yuluo-yx in #6146
  • feat: refactor selector reserved keyword fields by @Wweiei in #6141
  • chore: translate zh to en by @yuluo-yx in #6149
  • [type:optimize] Optimize instance comparison logic in EurekaInstanceRegisterRepository by @yqw570994511 in #6154
  • [feat] refactor rule reserved keyword fields by @Wweiei in #6147
  • chore: translate zh to en by @yuluo-yx in #6151
  • [type:optimize] Optimize instance comparison logic in NacosInstanceRegisterRepository by @yqw570994511 in #6153
  • feat: Add more friendly prompt information to facilitate debugging by @yuluo-yx in #6157
  • test: add more test for FallbackShenyuClientRegisterService by @yuluo-yx in #6155
  • feat: adaptor other db for tag and appAuth by @yuluo-yx in #6152
  • [feat] mcpServer support object and array param. by @Wweiei in #6150
  • feat: sync dashboard by @Wweiei in #6160
  • Modify the test data of the sample test MotanPluginTest by @ywwana in #6164
  • [fix] fix data sync bug by @ywwana in #6165
  • [feat] motan plugin config based on selector by @478320 in #6058
  • chore: fix typo by @yuluo-yx in #6172
  • [type:fix] fix_e2e_kafka by @xcsnx in #6170
  • chore: add new line by @yuluo-yx in #6171
  • [fix] AiResponseTransformerPluginTest run error by @Wweiei in #6169
  • [feat] refactor reserved keyword fields for discovery_upstream table by @Wweiei in #6167
  • [type:fix] fix oracle schema.sql by @eye-gu in #6162
  • [feat] Gateway and client status management by @xchoox in #6057
  • [feat]: shenyu mcp plugin auto register by @478320 in #6163
  • [feat] cache plugin config based on selector by @478320 in #6068
  • feat: Ai Proxy enhanced with SpringAI & Fallback & Proxy apikey by @fantasy-lotus in #6145
  • [type:fix] fix init sql by @eye-gu in #6176
  • fix some bug of mcp-auto-register by @478320 in #6180
  • feat: ai proxy replace old with enhanced by @fantasy-lotus in #6174
  • fix shenyu-registry-nacos : modify nacos instance check. by @BraveheartStone in #6178
  • fix: doSelectMaster by @fantasy-lotus in #6185
  • fix: fix shenyu-sync-data-http sync password error by @yuluo-yx in #6181
  • feat: ai proxy sync dashboard by @fantasy-lotus in #6186
  • [fix] The "name" field of TagVO has been changed by @Wweiei in #6190
  • feat: adapt other db for discovery sql fields by @yuluo-yx in #6166
  • chore(deps): bump org.apache.zookeeper:zookeeper from 3.9.3 to 3.9.4 by @dependabot[bot] in #6183
  • [type:feat] add unit test by @xchoox in #6182
  • [feat] loggingRabbitMQ plugin config based on selector by @478320 in #6059
  • [feat] sofa plugin config based on selector by @478320 in #6062
  • [feat]: loggingKafka plugin config based on selector by @478320 in #6074
  • [type:optimize] Optimize LogCollectUtils by @liangjh98 in #6191
  • [type:feat] Change bootstrap heartbeat reporting by @xchoox in #6187
  • [type:feat] HTTP and WebSocket synchronous mode supports heartbeat detection by @xchoox in #6179
  • feat: add shenyu-register-client-api unit test by @yuluo-yx in #6192
  • [feat] github ci by @Aias00 in #6031
  • infra: add auto notify GHA when issue is created by @yuluo-yx in #6198
  • feat: add shenyu-register-client-beat module unit test by @yuluo-yx in #6193
  • infra: add issue label manager GHA by @yuluo-yx in #6197
  • [feat] mvnd by @Aias00 in #6041
  • [ISSUE #6144] This issue was fixed because when discovering downstream services via Nacos, the old IP address would overwrite the new IP address after the downstream service restarted. This caused the error "Can not find healthy upstream URL, please check your configuration!" when calling downstream services via Shenyu. by @BraveheartStone in #6201
  • [fix] the path truncation of get requests set by shenyuContext in MCP Server by @MaMengzhen in #6209
  • fix: When there are multiple indices under the alias shenyu-access-lo… by @wusuobuzai in #6203
  • Fix typo in active committers list by @yuluo-yx in #6205
  • feat: add shenyu-registry-k8s module unit test by @yuluo-yx in #6206
  • fix: remove unnecessary mock return value in MotanProxyServiceTest by @Aias00 in #6210
  • feat(ci): replace prow action with local issue-manager script by @yuluo-yx in #6211
  • Mcp auto register bug fix by @478320 in #6212
  • feat: mcp server autoRegister enhance by @478320 in #6213
  • fix: The use of outdated dependencies due to mvnd cache by @478320 in #6217
  • Fix the issue of multiple selectors connecting to different registry centers by @yunlongn in #6218
  • feat: import mcp server config by swagger doc by @478320 in #6219
  • refactor: extract base data for plugin, selector and rule data class by @yuluo-yx in #6215
  • feat: remove shenyu-infra-x-module by @yuluo-yx in #6216
  • chore: fix typos in some files by @khanhkhanhlele in #6224
  • fix: shenyu-examples-mcp by @478320 in #6226
  • Fix shenyu mcp bugs by @478320 in #6227
  • chore: update LICENSE with new dependencies and versions by @Aias00 in #6234

New Contributors

  • @17661152 made their first contribution in #6140
  • @xchoox made their first contribution in #6057
  • @BraveheartStone made their first contribution in #6178
  • @liangjh98 made their first contribution in #6191
  • @MaMengzhen made their first contribution in #6209
  • @wusuobuzai made their first contribution in #6203
  • @khanhkhanhlele made their first contribution in #6224

Become a contributor

We welcome every contributor to join ShenYu, and welcome contributors to participate in ShenYu in the spirit of Apache Way!

See the contributor guidelines:

https://shenyu.apache.org/zh/community/contributor-guide

[Apache ShenYu 2.7.0.2 Version Release]

· 6 min read

Apache ShenYu

Apache ShenYu is a responsive API gateway developed using Java Reactor. With its high performance, dynamic and flexible traffic control, hot swap, easy deployment and other features, out of the box to provide users with a full lifecycle of 'API' gateway, including 'API' registration, service proxy, protocol conversion, 'API' documentation and 'API' governance and other functions. Apache ShenYu graduated as an Apache top-level project in 'July 2022'.

website: https://shenyu.apache.org

GitHub: https://github.com/apache/shenyu

Version preview

Three months later, Apache ShenYu released version 2.7.0.2, which submitted a total of 54+ Pull requests, added about 19+ new features, added several enhancements, refactored several features, and fixed several bugs. A total of 20 contributors participated, with a cumulative total of 411+ contributors.

version records: https://github.com/apache/shenyu/compare/v2.7.0.1...v2.7.0.2

What's Changed

New Contributors

Become a contributor

We welcome every contributor to join ShenYu, and welcome contributors to participate in ShenYu in the spirit of Apache Way!

See the contributor guidelines:

https://shenyu.apache.org/zh/community/contributor-guide

[Apache ShenYu 2.7.0.1 Version Release]

· 8 min read

Apache ShenYu

Apache ShenYu is a responsive API gateway developed using Java Reactor. With its high performance, dynamic and flexible traffic control, hot swap, easy deployment and other features, out of the box to provide users with a full lifecycle of 'API' gateway, including 'API' registration, service proxy, protocol conversion, 'API' documentation and 'API' governance and other functions. Apache ShenYu graduated as an Apache top-level project in 'July 2022'.

website: https://shenyu.apache.org

GitHub: https://github.com/apache/shenyu

Version preview

Three months later, Apache ShenYu released version 2.7.0.1, which submitted a total of 72+ Pull requests, added about 17+ new features, added several enhancements, refactored several features, and fixed several bugs. A total of 32 contributors participated, with a cumulative total of 403+ contributors.

version records: https://github.com/apache/shenyu/compare/v2.7.0...v2.7.0.1

What's Changed

New Contributors

Become a contributor

We welcome every contributor to join ShenYu, and welcome contributors to participate in ShenYu in the spirit of Apache Way!

See the contributor guidelines:

https://shenyu.apache.org/zh/community/contributor-guide

【From Deep User to Apache ShenYu Committer】

· 5 min read
Wei Wei

Self Introduction

Name: Wei Wei

Github: https://github.com/Wweiei/

Email: weiwei@apache.org

Hello everyone, I am Wei Wei. I am very honored to be invited to become a Committer of the Apache ShenYu community. It is a great honor to grow with the community and contribute my part to the ShenYu project.

First Encounter with Apache ShenYu Gateway

I first came into contact with Apache ShenYu quite early, when it was still called SOUL and was in the Apache incubation stage. At that time, in my company had several API management projects that required a gateway. After comparing it with other open-source gateways of the same period, we found that Apache ShenYu was flexible in configuration, simple and easy to operate, rich in plugins and easy to extend. It also matched our technology stack very well, making it suitable for secondary development. Most importantly, the community was very active. Based on these factors, we finally selected Apache ShenYu as our gateway solution and applied it to our business gateway.

The Road to Open Source Contribution

Due to business needs at work, I needed to modify most of the existing plugins in ShenYu and develop many customized plugins. Therefore, I started reading ShenYu's source code, sorting out the overall call chain, and analyzing the specific implementation principles of most plugins.

After deeply using Apache ShenYu, I found that the ShenYu project is excellent in both architecture design and code implementation, and I learned a lot from it. This made me more determined to become a Committer of the Apache ShenYu community.

Following ShenYu's iterations and upgrades, I continuously discovered some bugs in the data synchronization process during usage. At the same time, I met Asia00 in the community and sought his guidance on how to participate in the project.

Subsequently, I subscribed to the ShenYu project mailing list, attended bi-weekly meetings, followed the issue list, and started to keep an eye on the project's development trends. I successively submitted some PRs to fix bugs and took on some community development tasks.

Here are my main contributions:

  • Fixed some bugs in data synchronization after version 2.7.0
  • Optimized the MCP plugin to support object type input parameters, and fixed some bugs in the MCP plugin during page editing and invocation
  • Optimized the Dubbo plugin logic to support selector-based configuration
  • Added registry management function

Community Participation and Growth

I grew from a user to a committer, from fixing bugs to optimizing plugins, and then to adding new features. During this process, I improved myself significantly.

Every two weeks on Thursday, I attend the Apache ShenYu community bi-weekly meeting. At the meeting, I can hear discussions about ShenYu functions and learn about the latest trends in the community.

In the process of using, developing plugins, and discovering problems, I need to constantly read ShenYu source code deeply and understand the implementation principles of each link. During this process, my coding ability has been greatly improved, and ShenYu has also given me a lot of inspiration in architectural design.

I would like to express my special thanks to the partners in the community who have helped me, thank you for your patient guidance and help.

Advice for Open Source Developers

Since I started working, I have always yearned for open source and wanted to contribute to the open source community, but I couldn't find a direction. Participating in open source is also a process of rapid self-improvement. At the beginning, it feels very difficult. I can't find a project to participate in, don't know how to submit issues and PRs, and don't know where to pick up tasks.

For beginners like me, you must be bold in trying open source and brave in participating in the community. When you find problems during use, you must study hard, analyze deeply, and find the root cause of the problem. Then boldly submit issues and PRs to the community and put forward your own suggestions.

Secondly, keep paying attention to the project, follow the project's issue list, participate in the project's bi-weekly meetings, pay attention to the latest trends of the project, be brave to challenge yourself, undertake the latest tasks of the community, participate in project discussions, and put forward your ideas and suggestions in time.

How to Participate in ShenYu

If you also want to contribute to Apache ShenYu, you can start from the following points:

Conclusion

I am very honored to be able to contribute to Apache ShenYu, and I thank the friends in the community for their help and support. Becoming a Committer is a new starting point for me. I also hope that more friends can join the Apache ShenYu community and contribute their strength to the open source cause together.

[Apache ShenYu 2.7.0 Version Release]

· 12 min read

Apache ShenYu

Apache ShenYu is a responsive API gateway developed using Java Reactor. With its high performance, dynamic and flexible traffic control, hot swap, easy deployment and other features, out of the box to provide users with a full lifecycle of 'API' gateway, including 'API' registration, service proxy, protocol conversion, 'API' documentation and 'API' governance and other functions. Apache ShenYu graduated as an Apache top-level project in 'July 2022'.

website: https://shenyu.apache.org

GitHub: https://github.com/apache/shenyu

Version preview

Six months later, Apache ShenYu released version 2.7.0, which submitted a total of 254+ Pull requests, added about 17+ new features, added several enhancements, refactored several features, and fixed several bugs. A total of 61 contributors participated, with a cumulative total of 350+ contributors.

version records: https://github.com/apache/shenyu/compare/v2.6.1...v2.7.0

✨ New Features

1.Upgrade dockerfile java runtime version 8 to 17

specific pr please see: https://github.com/apache/shenyu/pull/5374

2.Upgrade SpringBoot to 3.x

specific pr please see: https://github.com/apache/shenyu/pull/5583

3.Support ShenYu Admin Cluster

specific pr please see: https://github.com/apache/shenyu/pull/5544

https://github.com/apache/shenyu/pull/5592

4.Upgrade checkstyle plugin to 3.4.0

specific pr please see: https://github.com/apache/shenyu/pull/5614

5.Datasource support OceanBase

specific pr please see: https://github.com/apache/shenyu/pull/5617

6.Supports batch modification of selector/rule status

specific pr please see: https://github.com/apache/shenyu/pull/5499

7.Supports batch modification of PathAuth status

specific pr please see: https://github.com/apache/shenyu/pull/5488

8.Upgrade apache dubbo version

specific pr please see: https://github.com/apache/shenyu/pull/5527

9.Support Contribute with Gitpod

specific pr please see: https://github.com/apache/shenyu/pull/5610

10.Support Configs Export And Import

specific pr please see: https://github.com/apache/shenyu/pull/5474

11.Add shenyu client heartbeat

specific pr please see: https://github.com/apache/shenyu/pull/5659

12.Support Namespace

the specific use please see: https://shenyu.apache.org/docs/user-guide/admin-usage/namepsace

specific pr please see: https://github.com/apache/shenyu/pull/5584

https://github.com/apache/shenyu/pull/5715

https://github.com/apache/shenyu/pull/5716

https://github.com/apache/shenyu/pull/5719

https://github.com/apache/shenyu/pull/5729

https://github.com/apache/shenyu/pull/5734

https://github.com/apache/shenyu/pull/5735

https://github.com/apache/shenyu/pull/5740

https://github.com/apache/shenyu/pull/5746

https://github.com/apache/shenyu/pull/5757

https://github.com/apache/shenyu/pull/5760

https://github.com/apache/shenyu/pull/5765

https://github.com/apache/shenyu/pull/5769

https://github.com/apache/shenyu/pull/5771

https://github.com/apache/shenyu/pull/5779

https://github.com/apache/shenyu/pull/5786

https://github.com/apache/shenyu/pull/5790

https://github.com/apache/shenyu/pull/5798

https://github.com/apache/shenyu/pull/5799

https://github.com/apache/shenyu/pull/5823

https://github.com/apache/shenyu/pull/5847

https://github.com/apache/shenyu/pull/5857

13.Support k8s dynamically scale

specific pr please see: https://github.com/apache/shenyu/pull/5686

14.Invalidate Previous Tokens on New Login by Implementing Client ID Validation

specific pr please see: https://github.com/apache/shenyu/pull/5600

15.Support for gray release in divide-plugin

specific pr please see: https://github.com/apache/shenyu/pull/5763

16.Support Kubernetes registry

specific pr please see: https://github.com/apache/shenyu/pull/5769

⚡ Enhancement

1.Add rocketmq logging e2e test

specific pr please see: https://github.com/apache/shenyu/pull/5439

2.Enhance metrics-ratelimiter collect

specific pr please see: https://github.com/apache/shenyu/pull/5461

3.Enhance metrics collection for Sentinel, Resilience4j, and Hystrix

specific pr please see: https://github.com/apache/shenyu/pull/5468

4.Arrange sofa common tools dependencies

specific pr please see: https://github.com/apache/shenyu/pull/5609

6.Add missing license

specific pr please see: https://github.com/apache/shenyu/pull/5503

7.Set up callback for send message on Kafka

specific pr please see: https://github.com/apache/shenyu/pull/5748

8.Use the loadbalance configuration from metadata for Dubbo

specific pr please see: https://github.com/apache/shenyu/pull/5806

9.Add non null validation for upstream which obtained from select

specific pr please see: https://github.com/apache/shenyu/pull/5804

10.Set timeout which from rule handle to dubbo rpc context

specific pr please see: https://github.com/apache/shenyu/pull/5778

11.Publish event when enable selector and rule

specific pr please see: https://github.com/apache/shenyu/pull/5762

12.Remove closed session from the NAMESPACE_SESSION_MAP

specific pr please see: https://github.com/apache/shenyu/pull/5734

13.Add test case for ShenyuClientURIExecutorSubscriber

specific pr please see: https://github.com/apache/shenyu/pull/5413

14.Add test case for ShenyuClientIllegalArgumentException

specific pr please see: https://github.com/apache/shenyu/pull/5408

15.Add test case for ShenyuClientRegisterEventPublisher

specific pr please see: https://github.com/apache/shenyu/pull/5417

16.Add test case for ShenyuClientMetadataExecutorSubscriber

specific pr please see: https://github.com/apache/shenyu/pull/5404

17.Add test case for AbstractWasmPluginDataHandler

specific pr please see: https://github.com/apache/shenyu/pull/5451

18.Add test case for ShenyuClientRegisterRepositoryFactoryTest

specific pr please see: https://github.com/apache/shenyu/pull/5443

19.Add test case for AbstractWasmDiscoveryHandler

specific pr please see: https://github.com/apache/shenyu/pull/5453

20.Upgrade sofa rpc version support

specific pr please see: https://github.com/apache/shenyu/pull/5526

21.Add header key of Sign plugin to CrossFilter config

specific pr please see: https://github.com/apache/shenyu/pull/5627

22.Encrypt the password

specific pr please see: https://github.com/apache/shenyu/pull/5436

23.Add AbstractShenyuWasmPluginTest

specific pr please see: https://github.com/apache/shenyu/pull/5450

24.RewritePlugin/ContextPathPlugin supports across application and plugin

specific pr please see: https://github.com/apache/shenyu/pull/5438

25.Remove duplicate path check

specific pr please see: https://github.com/apache/shenyu/pull/5514

26.Remove Alibaba Dubbo Support

specific pr please see: https://github.com/apache/shenyu/pull/5500

27.Support docker env set http path

specific pr please see: https://github.com/apache/shenyu/pull/5833

28.Add some code refactor improve

specific pr please see: https://github.com/apache/shenyu/pull/5613

29.Support get token from cookie\header\param

specific pr please see: https://github.com/apache/shenyu/pull/5547

30.Make the default value of ShenyuDubboService annotation equal to that of DubboService annotation

specific pr please see: https://github.com/apache/shenyu/pull/5816

31.Add db script into admin package

specific pr please see: https://github.com/apache/shenyu/pull/5724

32.Get rid of the dead code and add some improvements

specific pr please see: https://github.com/apache/shenyu/pull/5849

https://github.com/apache/shenyu/pull/5803

https://github.com/apache/shenyu/pull/5789

33.MotanServiceEventListenerTest case optimization

specific pr please see: https://github.com/apache/shenyu/pull/5745

34.Delete duplicate maven in shenyu-registry-eureka.xml

specific pr please see: https://github.com/apache/shenyu/pull/5836

35.Jwt dependency updated

specific pr please see: https://github.com/apache/shenyu/pull/5480

36.Print plugin execute time

specific pr please see: https://github.com/apache/shenyu/pull/5437

37.Discovery Local support upstream health check in Admin

specific pr please see: https://github.com/apache/shenyu/pull/5596

38.Close rule cache

specific pr please see: https://github.com/apache/shenyu/pull/5589

39.Less concurrency

specific pr please see: https://github.com/apache/shenyu/pull/5587

40.Optimize logic to avoid "orElse" execution,Update VersionTwoExtractor.java

specific pr please see: https://github.com/apache/shenyu/pull/5415

♻️ Refactor

1.Admin distributed lock by spring-integration-jdbc

specific pr please see: https://github.com/apache/shenyu/pull/5457

2.Refactor beanUtils

specific pr please see: https://github.com/apache/shenyu/pull/5497

3.Remove macos ci

specific pr please see: https://github.com/apache/shenyu/pull/5559

4.Update logging plugin DataBuffer deprecated method

specific pr please see: https://github.com/apache/shenyu/pull/5620

5.Modify e2e k8s to docker compose

specific pr please see: https://github.com/apache/shenyu/pull/5710

6.Migrate Admin swagger from springfox to springdoc

specific pr please see: https://github.com/apache/shenyu/pull/5630

7.Refactor springcloud plugin

specific pr please see: https://github.com/apache/shenyu/pull/5695

8.Refactor some code

specific pr please see: https://github.com/apache/shenyu/pull/5568

9.Delete SO_SNDBUF & SO_RCVBUF

specific pr please see: https://github.com/apache/shenyu/pull/5502

10.Refactor shenyu-sync-data-http : replace log %s -> .

specific pr please see: https://github.com/apache/shenyu/pull/5465

11.Optimizing the node type listener

specific pr please see: https://github.com/apache/shenyu/pull/5435

12.Refactor plugin lifecycle

specific pr please see: https://github.com/apache/shenyu/pull/5432

13.Adjust code order and remove invalid input parameters

specific pr please see: https://github.com/apache/shenyu/pull/5397

🐛 Bug Fix

1.Fix duplicate header for request plugin

specific pr please see: https://github.com/apache/shenyu/pull/5846

2.Fix proxy.selector and discovery not delete when delete divide selector

specific pr please see: https://github.com/apache/shenyu/pull/5845

3.Fix LoggingPlugin error log catch

specific pr please see: https://github.com/apache/shenyu/pull/5842

4.Fix logging plugin sample bug

specific pr please see: https://github.com/apache/shenyu/pull/5429

5.Fix memory overflow

specific pr please see: https://github.com/apache/shenyu/pull/5407

6.Fix rewrite integrated test

specific pr please see: https://github.com/apache/shenyu/pull/5445

7.Fix AbstractWasmPluginDataHandlerTest

specific pr please see: https://github.com/apache/shenyu/pull/5464

8.Fix missing PRIMARY KEY in sql-script/h2/schema.sql

specific pr please see: https://github.com/apache/shenyu/pull/5481

9.Fix Data dictionary page data sorting exception

specific pr please see: https://github.com/apache/shenyu/pull/5483

10.FIx doc error

specific pr please see: https://github.com/apache/shenyu/pull/5505

11.Resolve dashboard routing mismatch post context-path update

specific pr please see: https://github.com/apache/shenyu/pull/5510

12.Fix etcd sync config problem

specific pr please see: https://github.com/apache/shenyu/pull/5535

13.Fix consul sync problem

specific pr please see: https://github.com/apache/shenyu/pull/5546

14.Fix the bug of being unable to query without registration

specific pr please see: https://github.com/apache/shenyu/pull/5578

15.Fix Plugin Edit Page Issue by Correcting Plugin ID Query and Updating Data Type

specific pr please see: https://github.com/apache/shenyu/pull/5622

16.Fix class AdminConstants has word spelling error

specific pr please see: https://github.com/apache/shenyu/pull/5637

17.Fix shenyu-examples-springmvc start failed

specific pr please see: https://github.com/apache/shenyu/pull/5664

18.Fix dashboard menu children sort not working problem

specific pr please see: https://github.com/apache/shenyu/pull/5691

19.Fix ShenyuApacheDubboXmlProviderApplication config

specific pr please see: https://github.com/apache/shenyu/pull/5811

20.Fix data sync dataId for proxy selector and discovery is not unique

specific pr please see: https://github.com/apache/shenyu/pull/5783

21.Filter disable dict option

specific pr please see: https://github.com/apache/shenyu/pull/5776

22.Fix SpringCloudParser MetaData null data

specific pr please see: https://github.com/apache/shenyu/pull/5737

23.Fix client register validation

specific pr please see: https://github.com/apache/shenyu/pull/5764

24.Config dubbo serialize-check-status=DISABLE

specific pr please see: https://github.com/apache/shenyu/pull/5756

25.Fix example TestApacheDubboXmlApplication start failed

specific pr please see: https://github.com/apache/shenyu/pull/5754

26.Fix the nacos data sync model missing the contextPath configuration

specific pr please see: https://github.com/apache/shenyu/pull/5722

27.Fix SPI create non singleton objects in multi-threaded scenarios

specific pr please see: https://github.com/apache/shenyu/pull/5713

28.Fix BadSqlGrammarException

specific pr please see: https://github.com/apache/shenyu/pull/5707

29.Fix ListUtil->merge exception

specific pr please see: https://github.com/apache/shenyu/pull/5642

30.Fix metaData disable not filtered

specific pr please see: https://github.com/apache/shenyu/pull/5638

31.Fix divide logging request method

specific pr please see: https://github.com/apache/shenyu/pull/5607

32.Fix e2e chunk header error

specific pr please see: https://github.com/apache/shenyu/pull/5593

33.Fix cookie error and sql check

specific pr please see: https://github.com/apache/shenyu/pull/5567

34.Fixed NPE issue

specific pr please see: https://github.com/apache/shenyu/pull/5539

https://github.com/apache/shenyu/pull/5530

35.Fix Invalid path error

specific pr please see: https://github.com/apache/shenyu/pull/5533

36.Fix hot load issue

specific pr please see: https://github.com/apache/shenyu/pull/5509

37.Fix e2e test case can not run wget command

specific pr please see: https://github.com/apache/shenyu/pull/5519

38.Fix fallback issue

specific pr please see: https://github.com/apache/shenyu/pull/5496

39.Resolve the sql error in rule-sqlmap.xml

specific pr please see: https://github.com/apache/shenyu/pull/5644

40.Fix readYmlBuildRepository NPE

specific pr please see: https://github.com/apache/shenyu/pull/5819

41.Fix nacos cannot be registered in the Shenyu-examples-SpringCloud project

specific pr please see: https://github.com/apache/shenyu/pull/5825

42.Fix springCloud ruleData path setting didn't used

specific pr please see: https://github.com/apache/shenyu/pull/5841

https://github.com/apache/shenyu/pull/5843

43.Fix shenyu-plugin-logging-elasticsearch : modify setIndexName of ElasticSearchLogConfig

specific pr please see: https://github.com/apache/shenyu/pull/5830

44.Fix Not first offline from the gateway when stopping service

specific pr please see: https://github.com/apache/shenyu/pull/5507

45.Fix k8s liveness probe can not run wget command error

specific pr please see: https://github.com/apache/shenyu/pull/5513

46.Fix AbstractNodeDataSyncService load discoverUpstream on startup

specific pr please see: https://github.com/apache/shenyu/pull/5473

Contributors

Special thanks to the following contributors for their support and participation in the '2.7.0' release (in no particular order).

0xmkzt,Divyansh200102,IceFoxs,JJellyfish,Kerwin Bryant,M.G. Ting,Misaya295,NanMu,Qi Xu,RayayChung,Ricco Chen,Sinsy, VampireAchao,WindSearcher,Wweiei,Yu Siheng,aias00,caaaaaat,crazyStar,crudboy,dragon-zhang,dyjxg4xygary,dyp314417995, eye-gu,frank,hdgaadd,hql0312,j@ckzh0u,jerbo99,loongs-zhang,mmengLong,moremind,po-168,tomsun28,ttfont,wlngo,wyfvsfy, xcsnx,xiangqianZ,xiaoyu,yunlongn,ywwana,zhengke zhou,zhengpeng,ywj1352

Become a contributor

We welcome every contributor to join ShenYu, and welcome contributors to participate in ShenYu in the spirit of Apache Way!

See the contributor guidelines:

https://shenyu.apache.org/zh/community/contributor-guide

Start small, become a Committer

· 4 min read
achao

Personal Introduction

First Encounter with Apache ShenYu Gateway

When I first came into contact with Apache ShenYu, I was involved in development work with the Dromara community. At that time, Yu Xiao (the founder and VP of Apache ShenYu) initiated a frontend development request within the community. Since I was familiar with the React technology used by ShenYu, I decided to join the contributors. Although I was not a direct user of ShenYu, contributing my frontend skills to the community felt like a very natural choice.

The Path of Open Source Contribution

During my contributions to the ShenYu project, I gradually clarified my direction and deepened my understanding of the project structure by reading the source code. In this process, I actively submitted code and performed fixes. Here are some of my contributions to the ShenYu project:

ShenYu

13 commits
6,084 ++ 2,379 --

  • Feature Development: Implemented client ID validation to invalidate old tokens on new login (#5600)
  • Feature Addition: Added menu buttons and permissions for the alert module (#5156)
  • Testing Expansion: Added unit test cases for PortUtils.findPort (#4604)
  • Default Configuration Improvement: Set NettyClient as the default HttpClient (#5200)
  • Bug Fix: Fixed routing mismatch issues due to context-path updates (#5510)
  • Time Format Correction: Resolved LocalDateTime formatting issues in the alert module (#5180)

ShenYu Dashboard

27 commits
1,780 ++ 402 --

  • Feature Development: Enabled token invalidation on new login to enhance security (#467)
  • New Feature: Added namespace selection for common components (#462)
  • Security Enhancement: Required verification code after multiple incorrect password attempts (#465)
  • UI Optimization: Removed unnecessary admin info edit buttons to simplify the interface (#463)
  • Batch Operation Support: Added batch enable/disable functionality for selectors and rules (#452)
  • User Experience Improvement: Enhanced the JSON editor experience (#374)
  • Performance Optimization: Improved React lifecycle management to boost Dashboard responsiveness (#369)
  • Module Improvement: Key optimizations for the alert module (#346)
  • Integration Enhancement: Integrated management interface and functions for the alert module (#333)
  • Parameter Management: Automatically use default parameters from documentation when API request parameters are missing (#332)
  • Documentation Standardization: Unified API documentation format and fixed multiple integration issues (#303)
  • Documentation Improvement: Comprehensive optimization of API documentation (#301)
  • Navigation Feature: Added system and resource search functionality in menu navigation (#279)
  • Routing Fix: Corrected routing mismatch issues after context-path updates (#428)
  • Tag Management: Resolved issues with tag deletion in the alert module (#377)
  • Deletion Confirmation: Added confirmation step for API tag deletion to prevent accidental deletions (#375)
  • Page Error Fix: Fixed proxy page errors caused by component mounting (#351)
  • Query Rendering Fix: Resolved query rendering issues in HeadersEditor (#331)

Community Participation and Growth

By participating in ShenYu's community meetings and contributing code, I not only improved my technical skills but also learned how to collaborate more effectively in open source projects. Working with community members gave me a deep appreciation for the openness and inclusiveness of the open source community.

Advice for Open Source Developers

For developers looking to join open source projects, my advice is: start with small tasks and don't be afraid of the small things. As long as it contributes to the project, every contribution will be valued by the community. Continuously learn and keep trying, and you will eventually find the contribution path that suits you.

Contributing to ShenYu Together

If you want to contribute to Apache ShenYu, you can start with the following:

Conclusion

Being nominated as a ShenYu Committer is a significant milestone for me. I will continue to contribute to ShenYu and look forward to more developers joining us to drive ShenYu's development forward.

[My Open Source Journey with Apache ShenYu]

· 4 min read
Hongyu Liu

Personal Introduction

Name: Liu Hongyu

GitHub: https://github.com/Aias00/

Email: liuhongyu@apache.org

First Encounter with Apache ShenYu Gateway

I first came across the Apache ShenYu Gateway during a business transformation project at my company when we were evaluating gateway technologies. At that time, Apache ShenYu was still in the Apache Incubator. Compared to other similar products, Apache ShenYu offered a user-friendly control management interface, rich plugin features, and a perfect match with our technology stack. The active community was the icing on the cake, making Apache ShenYu our ultimate choice for the gateway solution. It has been widely used in various business scenarios since then.

The Journey of Open Source Contributions

As I applied Apache ShenYu in my work, I gradually went from a simple user to a deep understanding of the system. In order to solve some potential problems and customize some business plugins, I started reading ShenYu's source code and learning its design ideas and implementation principles.

After Apache ShenYu graduated from the Incubator, I aspired to transition from a regular user to a contributor and make some contributions to the ShenYu community.

I started by reading the contributor guide, subscribing to the developer mailing list, and following the ShenYu GitHub repository to check issues and pull requests.

After reading a few issues, I found one about supplementing unit tests, so I decided to give it a try. I forked the ShenYu repository, cloned it locally, modified the unit test content, and submitted a pull request. This PR was merged quickly, marking my first contribution to the ShenYu community.

When I saw my code merged into the main branch, I was overwhelmed with excitement. This experience solidified my determination to "become a ShenYu Committer."

Subsequently, I started to delve deeper into the project by reading documents and source code, as well as participating in bi-weekly meetings. I started with simple issue tasks, continuously learning, and gradually took on more challenging tasks. My main contributions include:

  • Added batch import and export functionality for configurations
  • Upgraded the Sofa Rpc version
  • Removed Alibaba Dubbo dependency
  • Upgraded the Apache Dubbo version
  • Upgraded from JDK8 to JDK17 in collaboration with community partners
  • Fixed some issues encountered during GitHub pipeline execution
  • Added Shenyu Admin cluster functionality
  • Upgraded the SpringBoot version
  • Developed the KubeSphere extension for Apache ShenYu

Community Participation and Growth

Apache ShenYu contributors have a fixed online meeting every other Thursday evening. The meeting mainly discusses features in the Roadmap and some issues raised by the community. At the same time, we can also speak freely if we have any questions or ideas.

In these meetings, I met many partners who are passionate about open source. Through meeting discussions and task assignments, I continuously learn new knowledge and have the opportunity to contribute my strength to the community and the industry.

In this process, I not only improved my technical skills but also learned how to collaborate with others, how to communicate and cooperate better.

I would like to express my sincere gratitude to the partners who have helped me in the community. Thanks to their patient guidance and assistance, I was able to integrate into the community more quickly and better contribute to the community.

Suggestions for Open Source Developers

Open source development is a meaningful but challenging endeavor that requires a significant investment of time and energy. It involves continuous learning and experimentation, but it also brings a lot of satisfaction and happiness.

Sometimes you may encounter various problems, but don't give up. Try more, think more, and you will find that the problem is not that difficult to solve.

At the same time, participate more in community activities and communicate more with community partners. You will find that the open source community is a place full of love and kindness, where everyone helps each other and makes progress together.

How to Participate in ShenYu

If you also want to join the Apache ShenYu community, you can refer to the following methods:

  1. Check the contributor guide provided on the Apache ShenYu official website: https://shenyu.apache.org/zh/community/contributor-guide

  2. Follow ShenYu's GitHub Issues and participate in feature development and bug fixing: https://github.com/apache/shenyu/issues

Conclusion

Becoming a Committer is a new starting point. I hope to keep my original intention and continue to contribute to the open source cause. I also hope that more friends can join the Apache ShenYu community and work together to contribute to the open source cause.

[Co-authoring the future with ShenYu]

· 4 min read
kerwin612

Self Introduction:

Hello everyone, I'm Le Zhang, with the github-id: kerwin612. I am extremely grateful to the Apache ShenYu community for recognizing my contributions and giving me the opportunity to become a Committer for this outstanding open-source project. Today, I would like to share my experience participating in the Apache ShenYu project, the growth I have achieved, and some suggestions.

Getting to know Apache ShenYu

My journey with Apache ShenYu began during my exploration of gateway technology options for my company. Upon discovering the ShenYu project, I was immediately intrigued by its high performance, multi-protocol support, easy scalability, and the wealth of ready-to-use plugins it offered. As a result, I decided to delve deeper into it and successfully ran the dev version of ShenYu in my local environment.

My way to Open source

As a full-stack engineer, I have a certain understanding of both front-end and back-end technologies, which enabled me to comprehensively understand and experience ShenYu. During my trial period, I identified numerous areas for optimization and decided to take action. I created a task list, tackled each issue one by one, and submitted my improvements to the community.

On the front-end side, my optimizations primarily included:

  • Thoroughly reviewing the entire website's styling and fixing multiple style anomalies. Although these anomalies seemed minor, they directly impacted users' visual experience. By addressing these issues, I was able to enhance the cleanliness and aesthetics of ShenYu's front-end interface, thereby improving users' overall experience.

  • Implementing multiple experience enhancements. These enhancements ranged from adjusting the position of a button to improving the interaction logic of an interface. By making these optimizations, I made ShenYu's front-end interface more intuitive and significantly enhanced users' convenience.

  • Actively addressing over twenty front-end-related issues. These issues included both problems encountered by users during their usage and suggestions for improvement proposed by community members. I carefully analyzed the causes of each issue and successfully resolved them, contributing to the stability of ShenYu's front-end.

On the back-end side, my contributions mainly focused on:

  • Handling over ten back-end-related issues. These issues encompassed bug fixes and feature enhancements. Through referencing documentation, debugging code, and ultimately seeking feedback from project managers, I resolved each issue.

  • Implementing a new isBlank conditional judgment function. This function facilitates the determination of whether a request contains a specific parameter, providing convenience for back-end logical processing.

  • Developing a new plugin, basic-auth. This plugin enables basic authentication and authorization functionality. Through collaboration with other community members, I successfully completed the plugin's development and testing, integrating it into ShenYu.

My experience in Apahce ShenYu Community

As I submitted more and more pull requests, I gradually delved deeper into the core of the Apache ShenYu community. Here, I felt the enthusiasm and openness of the community members. They were always willing to share knowledge and experience, helping me better understand and use ShenYu. After a period of hard work and accumulation, I received an invitation from the ShenYu community to officially become a Committer of this outstanding team.

Becoming an Apache Committer is not only an honor for me but also a responsibility and commitment. It represents the community's trust and recognition of me, and it also strengthened my determination to contribute to the community. I am well aware that becoming a Committer is merely a new starting point. In the days ahead, I will continue to participate in ShenYu's optimization and development work, constantly enhancing my skills and capabilities. I will keep up with community updates and demands, actively participate in community activities and discussions, and contribute even more to ShenYu's growth.

Moreover, I plan to further delve into the technical details and architectural principles of Apache ShenYu, enabling me to better provide technical support and solutions to the community. I believe that through continuous learning and practice, I can become a more accomplished Committer and make even greater contributions to Apache ShenYu's development.

Finally, I want to express my gratitude to the Apache ShenYu community for giving me this opportunity and trust, as well as to all community members for their support and assistance. I am confident that with our collective efforts, Apache ShenYu will continue to excel!

Thanks all!