This is an automated email from the ASF dual-hosted git repository.
liuhongyu pushed a change to branch feat/github_ci
in repository https://gitbox.apache.org/repos/asf/shenyu.git
from 447aebf712 Merge branch 'master' into feat/github_ci
add 602123b4c7 fix admin : modify addProxySelector function of the admin
application is missing the namespace_id (#6046)
add f69767e4d7 [fix] ai request transformer plugin (#6047)
add fe7545c7bc Bump org.apache.zookeeper:zookeeper from 3.9.2 to 3.9.3
(#6042)
add b38315977f [fix] fix application.xml (#6048)
add e2cb6f3abc [type:feat] mcp server plugin (#5999)
add e40e30cd2d Bump org.apache.commons:commons-lang3 from 3.12.0 to 3.18.0
(#6052)
add 13c70320e7 [feat] optimize aiTokenLimiterPlugin for streaming tokens
(#6055)
add 2627a12519 [fix] fix config import (#6051)
add aca751ae9a [type:feature] Add Swagger Import Functionality to ShenYu
Admin (#6050)
add 7de2558788 [feat] mcp streamable http (#6061)
add 8f65ce0947 feat: add other infra module template (#6067)
add 0eaec1e63a feat(ut): add ai plugin proxy unit test (#6070)
add 9c8b78f782 chore: delete useless empty paths (#6066)
add d782a64e87 e2e: comment for now (#6073)
add 319ca4fd9f feat(ut): add ai plugin unit test (#6069)
add d074596153 Update application.yml (#6064)
add 4f9e69c54f feat(ut): add ai prompt (#6075)
add 7c1e43bf6f feat: add shenyu-common utils unit test (#6077)
add 85307386b9 feat(ut): add ai plugin unit test (#6078)
add 15278cf6e6 [feat] add aiRequestTransformer config based on rule sql
(#6053)
add 0933a2c450 feat: add diruptor unit test (#6079)
add 1b245d325d feat: extracted public data entities (#6084)
add bbd14bbda8 refactor(infra): Refactor ShenYu-Infra module (#6082)
add ff204b8ebf fix: correct logic in local key validation in
LocalDispatcherFilter (#6086)
add 77f925def4 [fix] resource leak risk (#6085)
add 9c0124ccf5 feat(ut): update infra nacos module unit test (#6089)
add df133fc950 fix: correct logic in local key validation in
LocalDispatcherFilter (#6088)
add e00098b2bf feat: add infra-etcd unit test (#6087)
add b829f1606a fix: resolve duplicate header issue for JWT values with dot
notation (#6092)
add 7d971dc52a [feat]: add ai response transformer (#6095)
add 717cbe9f73 [test] add RoundRobinLoadBalancer tests for selection logic
and distribution (#6093)
add ee69057112 chore(deps): bump io.grpc:grpc-protobuf (#6100)
add d233ab4d45 fix: fix vulnerability (#6099)
add 0a2b9f5eef improve the function of dubbo plugin configuration based on
selector, add registry config. (#6096)
add e77f1f037c chore: update LICENSE and pom.xml to reflect new
dependencies and versions (#6104)
add c81ad832f0 sync dashboard (#6106)
add 781e7222fe feat(ut): add some tests (#6105)
add 69cd1d5721 [type: release] 2.7.0.2 release (#6111)
add caf382db58 fix:NacosConfig Test error (#6116)
add 36d9fd2313 fix:MCP server plugin requestConfig too long (#6115)
add 9e8576a2ae fix: fix redisReteLimter type cast error, for #6103 (#6120)
add eaa2f9503d fix:EtcdInstanceRegisterRepositoryTest run error (#6127)
add 0184d4b658 Update comment to English in pom.xml (#6128)
add cde3f548f7 fix:ShenyuBootstrapApplication run failed when using Nacos
data sync (#6124)
add 1f595adefa fix: increase default timeout and improve error handling in
MCP tools (#6131)
add c25dc204c3 fix: replace deprecated Base64 class with java.util.Base64
(#6132)
add 07453a26d2 sync dashboard (#6133)
add e624a19aae 修复nacos数据同步方式,删除选择器后,缓存未被正确删除的问题 (#6140)
add e4177b6c0e feat(ut): add shenyu-registry-api unit test (#6135)
add d2705ef19d feat:refactor registry reserved keyword fields (#6139)
add 161625cd7e feat: add sync data api unit test (#6142)
add 7a36aab29e chore: update chinese comment to english and add license
(#6146)
add f6a09ec9fb feat:refactor selector reserved keyword fields (#6141)
add fce9c8f014 chore: translate zh to en (#6149)
add cf0bbba7d6 [type:optimize] Optimize instance comparison logic in
EurekaInstanceRegisterRepository (#6154)
add da78f467d9 [feat] refactor rule reserved keyword fields (#6147)
add 1f913296a7 chore: translate zh to en (#6151)
add 1b9492bf26 [type:optimize] Optimize instance comparison logic in
NacosInstanceRegisterRepository (#6153)
add 5e90930a33 feat: Add more friendly prompt information to facilitate
debugging (#6157)
add 9234be312b test: add more test for FallbackShenyuClientRegisterService
(#6155)
add 89bbacd7de feat: adaptor other db for tag and appAuth (#6152)
add 164ad63538 feat:mcpServer support object and array param. (#6150)
add aed85167c2 feat:sync dashboard (#6160)
add 21d66345d8 [fix] Modify the test data of the sample test
MotanPluginTest (#6164)
add 6632d5e170 [fix] fix data sync bug (#6165)
add 3e7df1cea3 [feat] motan plugin config based on selector (#6058)
add 84060e37df chore: fix typo (#6172)
add 67bde62990 fix (#6170)
add b44103919b chore: add new line (#6171)
add 449832413d fix:AiResponseTransformerPluginTest run error (#6169)
add feadbd2215 feat:refactor reserved keyword fields for discovery
upstream (#6167)
add 812e0b9478 [type:fix] fix oracle schema.sql (#6162)
add e6e87ec1ee [feat]Gateway and client status management (#6057)
add 4cc679efec [feat]: shenyu mcp plugin auto register (#6163)
add ab1d57a591 [feat] cache plugin config based on selector (#6068)
add 16736b3e9c feat: Ai Proxy enhanced with SpringAI & Fallback & Proxy
apikey (#6145)
add cdf637acbd [type:fix] fix init sql (#6176)
add e765dbf81f fix some bug (#6180)
add 44995b73bb feat: ai proxy replace old with enhanced (#6174)
add df1389f3f0 fix shenyu-registry-nacos : modify nacos instance check.
(#6178)
add 5c591f12eb fix doSelectMaster (#6185)
add ab3b52bc4a fix: fix shenyu-sync-data-http sync password error (#6181)
add 51a8a95134 sync dashboard (#6186)
add 5543b938a8 fix: the "name" field of TagVO has been changed (#6190)
add 8d0c4e9b75 feat: adapt other db for discovery sql fields (#6166)
add f8141dbe6a chore(deps): bump org.apache.zookeeper:zookeeper from 3.9.3
to 3.9.4 (#6183)
add a09cfb270c [type:feat]add unit test (#6182)
add aeba1f3cbf [feat] loggingRabbitMQ plugin config based on selector
(#6059)
add 0af754d949 [feat] sofa plugin config based on selector (#6062)
add dd57fb78da [feat]:loggingKafka plugin config based on selector (#6074)
add 2a4a7fb621 [type:optimize] Optimize LogCollectUtils (#6191)
add 555f9b456f [type:feat]Change bootstrap heartbeat reporting (#6187)
add fc8c796b97 [type:feat]HTTP and WebSocket synchronous mode supports
heartbeat detection (#6179)
add d0994fa94d feat: add shenyu-register-client-api unit test (#6192)
add 47c65b92eb Merge branch 'master' into feat/github_ci
No new revisions were added by this update.
Summary of changes:
.github/filters.yml | 2 +-
.github/workflows/e2e-k8s.yml | 12 +-
.github/workflows/integrated-test.yml | 2 +-
.gitpod.Dockerfile | 19 +
.gitpod.yml | 19 +
.idea/vcs.xml | 35 +-
changelog.sh | 46 +-
db/init/mysql/schema.sql | 212 ++++-
db/init/ob/schema.sql | 206 ++++-
db/init/og/create-table.sql | 287 ++++--
db/init/oracle/schema.sql | 520 +++++++++--
db/init/pg/create-table.sql | 287 ++++--
db/upgrade/2.4.1-upgrade-2.4.2-mysql.sql | 2 +-
db/upgrade/2.4.2-upgrade-2.4.3-mysql.sql | 2 +-
db/upgrade/2.6.1-upgrade-2.7.0-mysql.sql | 2 +-
db/upgrade/2.6.1-upgrade-2.7.0-pg.sql | 2 +-
db/upgrade/2.7.0-upgrade-2.7.1-mysql.sql | 130 ++-
db/upgrade/2.7.0-upgrade-2.7.1-ob.sql | 127 ++-
db/upgrade/2.7.0-upgrade-2.7.1-og.sql | 137 ++-
db/upgrade/2.7.0-upgrade-2.7.1-oracle.sql | 236 ++++-
db/upgrade/2.7.0-upgrade-2.7.1-pg.sql | 135 ++-
pom.xml | 24 +-
shenyu-admin-listener/pom.xml | 3 +-
.../shenyu-admin-listener-api/pom.xml | 2 +-
.../shenyu/admin/listener/DataChangedListener.java | 10 +
.../shenyu-admin-listener-apollo/pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../shenyu-admin-listener-consul/pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../shenyu-admin-listener-etcd/pom.xml | 15 +-
.../shenyu/admin/config/EtcdSyncConfiguration.java | 32 +-
.../admin/config/properties/EtcdProperties.java | 107 ---
.../shenyu/admin/listener/etcd/EtcdClient.java | 108 ---
.../admin/listener/etcd/EtcdDataChangedInit.java | 1 +
.../listener/etcd/EtcdDataDataChangedListener.java | 1 +
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../admin/config/EtcdSyncConfigurationTest.java | 2 +-
.../config/properties/EtcdPropertiesTest.java | 40 -
.../shenyu/admin/listener/etcd/EtcdClientTest.java | 92 --
.../listener/etcd/EtcdDataChangedInitTest.java | 1 +
.../etcd/EtcdDataDataChangedListenerTest.java | 1 +
.../shenyu-admin-listener-nacos/pom.xml | 7 +-
.../admin/config/NacosSyncConfiguration.java | 35 +-
.../admin/config/properties/NacosProperties.java | 251 ------
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../admin/config/NacosSyncConfigurationTest.java | 36 +-
.../properties/AbstractConfigurationTest.java | 69 --
.../config/properties/NacosPropertiesTest.java | 75 --
.../shenyu-admin-listener-polaris/pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../shenyu-admin-listener-zookeeper/pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
shenyu-admin/pom.xml | 4 +-
.../http-debug-registry-config-controller-api.http | 79 ++
.../shenyu/admin/config/ClusterConfiguration.java | 4 +
.../admin/config/HttpUtilsConfiguration.java | 20 +-
.../admin/config/KubernetesConfiguration.java | 4 +-
.../admin/config/ShenyuAdminConfiguration.java | 7 +
.../admin/config/StandaloneConfiguration.java | 6 +-
.../admin/controller/AiProxyApiKeyController.java | 216 +++++
.../shenyu/admin/controller/ApiController.java | 4 +-
.../controller/ConfigsExportImportController.java | 4 +-
.../admin/controller/DashboardUserController.java | 4 +-
.../admin/controller/DiscoveryController.java | 2 +-
.../controller/DiscoveryUpstreamController.java | 2 +-
.../admin/controller/InstanceController.java | 63 +-
.../shenyu/admin/controller/PluginController.java | 4 +-
.../admin/controller/PluginHandleController.java | 4 +-
.../admin/controller/ProxySelectorController.java | 2 +-
...paceController.java => RegistryController.java} | 88 +-
.../admin/controller/ResourceController.java | 4 +-
.../shenyu/admin/controller/RoleController.java | 4 +-
.../shenyu/admin/controller/RuleController.java | 4 +-
.../admin/controller/SelectorController.java | 4 +-
.../ShenyuClientHttpRegistryController.java | 17 +
.../admin/controller/ShenyuDictController.java | 2 +-
.../admin/controller/SwaggerImportController.java | 91 ++
.../shenyu/admin/controller/TagController.java | 2 +-
.../discovery/AbstractDiscoveryProcessor.java | 8 +-
.../DiscoveryDataChangedEventSyncListener.java | 2 +-
.../listener/DataChangedEventListener.java | 2 +-
.../RegisterClientServerDisruptorPublisher.java | 2 +
...ava => McpToolsRegisterExecutorSubscriber.java} | 32 +-
.../subscriber/URIRegisterExecutorSubscriber.java | 2 +-
.../listener/AbstractDataChangedListener.java | 23 +
.../AiProxySelectorResolverInvalidator.java | 115 +++
.../admin/listener/DataChangedEventDispatcher.java | 22 +-
.../http/HttpLongPollingDataChangedListener.java | 21 +
.../listener/websocket/WebsocketCollector.java | 62 +-
.../listener/websocket/WebsocketConfigurator.java | 1 +
.../websocket/WebsocketDataChangedListener.java | 177 +++-
.../listener/websocket/WebsocketListener.java | 5 +
.../shenyu/admin/mapper/AiProxyApiKeyMapper.java | 76 ++
.../apache/shenyu/admin/mapper/AppAuthMapper.java | 3 +-
.../admin/mapper/DiscoveryUpstreamMapper.java | 16 +-
.../apache/shenyu/admin/mapper/RegistryMapper.java | 132 +++
.../org/apache/shenyu/admin/mapper/RuleMapper.java | 3 +-
.../apache/shenyu/admin/mapper/SelectorMapper.java | 3 +-
.../mode/cluster/service/ShenyuClusterService.java | 13 +-
.../mode/standalone/ShenyuStandaloneService.java | 11 +-
.../apache/shenyu/admin/model/dto/BatchIdsDTO.java | 39 +-
.../admin/model/dto/DiscoveryUpstreamDTO.java | 12 +-
.../NamespaceVO.java => dto/ProxyApiKeyDTO.java} | 103 +--
.../admin/model/dto/ProxySelectorAddDTO.java | 8 +-
.../apache/shenyu/admin/model/dto/RegistryDTO.java | 199 ++++
.../admin/model/dto/SwaggerImportRequest.java | 70 ++
.../org/apache/shenyu/admin/model/dto/TagDTO.java | 17 +-
.../shenyu/admin/model/entity/DiscoveryDO.java | 93 +-
.../admin/model/entity/DiscoveryUpstreamDO.java | 38 +-
.../shenyu/admin/model/entity/InstanceInfoDO.java | 67 +-
.../shenyu/admin/model/entity/ProxyApiKeyDO.java | 106 +++
.../shenyu/admin/model/entity/RegistryDO.java | 352 ++++++++
.../apache/shenyu/admin/model/entity/RuleDO.java | 84 +-
.../shenyu/admin/model/entity/SelectorDO.java | 122 +--
.../apache/shenyu/admin/model/entity/TagDO.java | 43 +-
.../event/instance/InstanceInfoReportEvent.java | 301 +++++++
.../model/event/role/BatchRoleDeletedEvent.java | 2 -
.../admin/model/event/role/RoleChangedEvent.java | 1 -
.../admin/model/event/role/RoleCreatedEvent.java | 3 +-
.../model/event/rule/BatchRuleDeletedEvent.java | 2 +-
.../admin/model/event/rule/RuleChangedEvent.java | 12 +-
.../event/selector/BatchSelectorDeletedEvent.java | 2 +-
.../model/event/selector/SelectorChangedEvent.java | 16 +-
.../{MetaDataQuery.java => ProxyApiKeyQuery.java} | 99 +-
.../{NamespaceQuery.java => RegistryQuery.java} | 80 +-
.../apache/shenyu/admin/model/query/TagQuery.java | 16 +-
.../admin/model/vo/DataPermissionPageVO.java | 4 +-
.../apache/shenyu/admin/model/vo/DiscoveryVO.java | 35 +-
...ocItemVO.java => InstanceDataVisualLineVO.java} | 62 +-
.../admin/model/vo/InstanceDataVisualVO.java | 112 +++
.../shenyu/admin/model/vo/InstanceInfoVO.java | 48 +-
.../vo/{NamespaceVO.java => ProxyApiKeyVO.java} | 121 ++-
.../apache/shenyu/admin/model/vo/RegistryVO.java | 212 +++++
.../org/apache/shenyu/admin/model/vo/RuleVO.java | 2 +-
.../apache/shenyu/admin/model/vo/SelectorVO.java | 6 +-
.../org/apache/shenyu/admin/model/vo/TagVO.java | 5 +-
.../monitor/subject/cache/ScaleRuleCache.java | 2 +-
.../scale/scaler/dynamic/TaskSchedulerManager.java | 2 +-
.../shenyu/admin/service/AiProxyApiKeyService.java | 100 +++
...tService.java => AiProxyConnectionService.java} | 16 +-
.../shenyu/admin/service/InstanceInfoService.java | 11 +-
...{NamespaceService.java => RegistryService.java} | 48 +-
...rdLogService.java => SwaggerImportService.java} | 27 +-
.../service/impl/AiProxyApiKeyServiceImpl.java | 288 ++++++
.../service/impl/AiProxyConnectionServiceImpl.java | 94 ++
.../admin/service/impl/AppAuthServiceImpl.java | 3 +-
.../admin/service/impl/DiscoveryServiceImpl.java | 36 +-
.../service/impl/DiscoveryUpstreamServiceImpl.java | 12 +-
.../admin/service/impl/InstanceCheckService.java | 262 ++++++
.../service/impl/InstanceInfoServiceImpl.java | 33 +-
.../admin/service/impl/PluginServiceImpl.java | 11 +-
.../service/impl/ProxySelectorServiceImpl.java | 20 +-
.../admin/service/impl/RegistryServiceImpl.java | 134 +++
.../shenyu/admin/service/impl/RuleServiceImpl.java | 7 +-
.../admin/service/impl/SelectorServiceImpl.java | 36 +-
.../service/impl/SwaggerImportServiceImpl.java | 151 ++++
.../admin/service/impl/SyncDataServiceImpl.java | 19 +-
.../shenyu/admin/service/impl/TagServiceImpl.java | 23 +-
.../admin/service/impl/UpstreamCheckService.java | 4 +-
.../service/manager/impl/SwaggerDocParser.java | 223 ++++-
....java => InstanceInfoReportEventPublisher.java} | 25 +-
.../AbstractShenyuClientRegisterServiceImpl.java | 30 +-
.../FallbackShenyuClientRegisterService.java | 31 +-
.../ShenyuClientRegisterDivideServiceImpl.java | 2 +-
.../ShenyuClientRegisterGrpcServiceImpl.java | 2 +-
.../ShenyuClientRegisterMcpServiceImpl.java | 129 +++
.../ShenyuClientRegisterWebSocketServiceImpl.java | 2 +-
.../service/support/AiProxyRealKeyResolver.java | 194 ++++
.../shenyu/admin/spring/LocalDataSourceLoader.java | 49 +-
.../shenyu/admin/transfer/DiscoveryTransfer.java | 24 +-
.../shenyu/admin/transfer/ProxyApiKeyTransfer.java | 77 ++
...amespaceTransfer.java => RegistryTransfer.java} | 26 +-
.../shenyu/admin/utils/UrlSecurityUtils.java | 217 +++++
.../src/main/resources/application-mysql.yml | 2 +-
shenyu-admin/src/main/resources/application.yml | 2 +-
.../resources/mappers/ai-proxy-api-key-sqlmap.xml | 228 +++++
.../resources/mappers/api-rule-relation-sqlmap.xml | 2 +-
.../src/main/resources/mappers/api-sqlmap.xml | 2 +-
.../src/main/resources/mappers/detail-sqlmap.xml | 2 +-
.../main/resources/mappers/discovery-sqlmap.xml | 78 +-
.../mappers/discovery-upstream-sqlmap.xml | 52 +-
.../src/main/resources/mappers/field-sqlmap.xml | 2 +-
.../src/main/resources/mappers/model-sqlmap.xml | 2 +-
.../src/main/resources/mappers/registry-sqlmap.xml | 267 ++++++
.../src/main/resources/mappers/rule-sqlmap.xml | 60 +-
.../resources/mappers/scale-history-sqlmap.xml | 2 +-
.../src/main/resources/mappers/selector-sqlmap.xml | 88 +-
.../src/main/resources/mappers/tag-sqlmap.xml | 35 +-
.../src/main/resources/sql-script/h2/schema.sql | 172 +++-
.../{index.2a428c0d.css => index.7892d888.css} | 4 +-
.../src/main/resources/static/index.a6d776d6.js | 1 +
.../src/main/resources/static/index.db384a79.js | 1 -
shenyu-admin/src/main/resources/static/index.html | 4 +-
.../admin/controller/InstanceControllerTest.java | 145 +++
.../shenyu/admin/controller/TagControllerTest.java | 7 +-
.../discovery/DefaultDiscoveryProcessorTest.java | 2 +-
.../discovery/DiscoveryProcessorHolderTest.java | 6 +-
.../listener/AbstractDataChangedListenerTest.java | 7 +
.../HttpLongPollingDataChangedListenerTest.java | 2 +
.../admin/mapper/DiscoveryUpstreamMapperTest.java | 4 +-
.../admin/mapper/InstanceInfoMapperTest.java | 150 ++++
.../admin/mapper/NamespacePluginRelMapperTest.java | 2 +-
.../apache/shenyu/admin/mapper/RuleMapperTest.java | 6 +-
.../shenyu/admin/mapper/SelectorMapperTest.java | 14 +-
.../apache/shenyu/admin/mapper/TagMapperTest.java | 15 +-
.../instance/InstanceInfoReportEventTest.java | 36 +-
.../selector/BatchSelectorDeletedEventTest.java | 2 +-
.../event/selector/SelectorChangedEventTest.java | 17 +-
.../model/query/InstanceQueryConditionTest.java | 27 +-
.../model/vo/InstanceDataVisualLineVOTest.java | 20 +-
.../admin/model/vo/InstanceDataVisualVOTest.java | 49 +
.../InstanceInfoVOTest.java} | 53 +-
.../admin/service/AlertDispatchServiceTest.java | 526 +++++++++++
.../service/DiscoveryUpstreamServiceTest.java | 12 +-
.../admin/service/InstanceInfoServiceTest.java | 133 +++
.../shenyu/admin/service/PluginServiceTest.java | 5 +-
.../shenyu/admin/service/SelectorServiceTest.java | 2 +-
...ImplTest.java => SwaggerImportServiceTest.java} | 48 +-
.../shenyu/admin/service/SyncDataServiceTest.java | 7 +
.../shenyu/admin/service/TagServiceTest.java | 17 +-
.../admin/service/UpstreamCheckServiceTest.java | 8 +-
.../service/impl/AiProxyApiKeyServiceImplTest.java | 181 ++++
.../service/impl/InstanceCheckServiceTest.java | 179 ++++
.../InstanceInfoReportEventPublisherTest.java | 41 +-
.../FallbackShenyuClientRegisterServiceTest.java | 41 +
shenyu-alert/pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
shenyu-bootstrap/pom.xml | 23 +-
.../src/main/resources/application.yml | 6 +
shenyu-client/pom.xml | 3 +-
.../shenyu-client-api-docs-annotations/pom.xml | 2 +-
shenyu-client/shenyu-client-autoconfig/pom.xml | 2 +-
shenyu-client/shenyu-client-core/pom.xml | 22 +-
.../ShenyuClientRegisterEventPublisher.java | 2 +
...java => ShenyuClientMcpExecutorSubscriber.java} | 18 +-
.../ShenyuClientURIExecutorSubscriber.java | 4 +-
shenyu-client/shenyu-client-dubbo/pom.xml | 2 +-
.../shenyu-client-apache-dubbo/pom.xml | 2 +-
.../shenyu-client-dubbo-common/pom.xml | 2 +-
shenyu-client/shenyu-client-grpc/pom.xml | 2 +-
shenyu-client/shenyu-client-http/pom.xml | 2 +-
.../shenyu-client-springmvc/pom.xml | 2 +-
.../pom.xml | 16 +-
.../shenyu-client-mcp-common}/pom.xml | 29 +-
.../mcp/common/annotation/ShenyuMcpHeader.java | 23 +-
.../common/annotation/ShenyuMcpRequestConfig.java | 26 +-
.../mcp/common/annotation/ShenyuMcpTool.java} | 43 +-
.../mcp/common/annotation/ShenyuMcpToolParam.java | 16 +-
.../mcp/common/constants/OpenApiConstants.java | 124 +++
.../common/constants/RequestTemplateConstants.java | 37 +-
.../constants/ShenyuToolConfigConstants.java | 38 +-
.../client/mcp/generator/McpOpenApiGenerator.java | 90 ++
.../mcp/generator/McpRequestConfigGenerator.java | 77 ++
.../generator/McpToolsRegisterDTOGenerator.java | 59 ++
.../client/mcp/utils/OpenApiConvertorUtil.java | 84 ++
.../shenyu-client-mcp-register}/pom.xml | 12 +-
.../shenyu/client/mcp/McpServiceEventListener.java | 284 ++++++
shenyu-client/shenyu-client-motan/pom.xml | 2 +-
shenyu-client/shenyu-client-sofa/pom.xml | 2 +-
shenyu-client/shenyu-client-tars/pom.xml | 2 +-
shenyu-client/shenyu-client-websocket/pom.xml | 2 +-
.../shenyu-client-spring-websocket/pom.xml | 2 +-
shenyu-common/pom.xml | 2 +-
.../apache/shenyu/common/config/ShenyuConfig.java | 76 ++
.../apache/shenyu/common/constant/Constants.java | 408 +++++----
...peConstants.java => ShenyuModuleConstants.java} | 18 +-
.../apache/shenyu/common/dto/ProxyApiKeyData.java | 176 ++++
...onfig.java => AiResponseTransformerConfig.java} | 8 +-
.../common/dto/convert/rule/AiProxyHandle.java | 339 ++++++-
.../AiResponseTransformerHandle.java} | 22 +-
.../common/dto/convert/selector/CacheUpstream.java | 509 +++++++++++
.../{TarsUpstream.java => MotanUpstream.java} | 147 ++-
.../{DubboUpstream.java => SofaUpstream.java} | 145 +--
.../shenyu/common/enums/ConfigGroupEnum.java | 8 +-
.../{WafEnum.java => InstanceStatusEnum.java} | 44 +-
.../org/apache/shenyu/common/enums/PluginEnum.java | 12 +-
.../apache/shenyu/common/enums/RpcTypeEnum.java | 7 +-
.../{HttpSchemeEnum.java => SwaggerVersion.java} | 39 +-
.../shenyu/common/timer/AbstractRetryTask.java | 4 +-
.../org/apache/shenyu/common/utils/JsonUtils.java | 4 +-
.../shenyu/common/utils/PluginNameAdapter.java | 2 +
.../shenyu/common/utils/SystemInfoUtils.java | 37 +-
.../shenyu/common/timer/TimerTaskListTest.java | 116 +++
.../apache/shenyu/common/utils/AesUtilsTest.java | 88 ++
.../shenyu/common/utils/NamespaceIDUtilsTest.java | 49 +
.../shenyu/common/utils/PluginNameAdapterTest.java | 3 +-
.../org.apache.shenyu.common.utils.SpiInterface | 2 +-
shenyu-disruptor/pom.xml | 2 +-
.../{event/DataEvent.java => common/Data.java} | 9 +-
.../disruptor/consumer/QueueConsumerExecutor.java | 22 +-
.../apache/shenyu/disruptor/event/DataEvent.java | 22 +-
.../disruptor/DisruptorProviderManagerTest.java | 4 +-
.../disruptor/consumer/QueueConsumerTest.java | 112 +++
.../disruptor/provider/DisruptorProviderTest.java | 109 +++
.../thread/DisruptorThreadFactoryTest.java | 4 +-
shenyu-dist/pom.xml | 2 +-
shenyu-dist/shenyu-admin-dist/pom.xml | 2 +-
.../src/main/release-docs/LICENSE | 4 +
.../src/main/resources/logback.xml | 2 +-
shenyu-dist/shenyu-bootstrap-dist/pom.xml | 2 +-
.../src/main/release-docs/LICENSE | 32 +-
.../src/main/resources/logback.xml | 2 +-
shenyu-dist/shenyu-docker-compose-dist/pom.xml | 2 +-
shenyu-dist/shenyu-src-dist/pom.xml | 2 +-
shenyu-e2e/pom.xml | 2 +-
.../compose/storage/shenyu-storage-h2.yml | 2 +-
.../compose/storage/shenyu-storage-mysql.yml | 2 +-
.../compose/storage/shenyu-storage-opengauss.yml | 2 +-
.../compose/storage/shenyu-storage-postgres.yml | 2 +-
.../shenyu-e2e-case/compose/sync/shenyu-nacos.yml | 2 +-
.../compose/sync/shenyu-sync-etcd-eureka.yml | 2 +-
.../compose/sync/shenyu-sync-etcd.yml | 2 +-
.../compose/sync/shenyu-sync-http-eureka.yml | 2 +-
.../compose/sync/shenyu-sync-http.yml | 2 +-
.../sync/shenyu-sync-websocket-cluster-jdbc.yml | 2 +-
.../shenyu-sync-websocket-cluster-zookeeper.yml | 2 +-
.../compose/sync/shenyu-sync-websocket-eureka.yml | 2 +-
.../compose/sync/shenyu-sync-websocket.yml | 2 +-
.../compose/sync/shenyu-sync-zookeeper-eureka.yml | 2 +-
.../compose/sync/shenyu-sync-zookeeper.yml | 2 +-
.../k8s/script/init/opengauss_container_init.sh | 2 +-
.../k8s/script/init/postgres_container_init.sh | 2 +-
.../k8s/script/storage/storage_init_opengauss.sh | 2 +-
.../k8s/script/storage/storage_init_postgres.sh | 2 +-
shenyu-e2e/shenyu-e2e-case/k8s/shenyu-mysql.yml | 2 +-
shenyu-e2e/shenyu-e2e-case/k8s/shenyu-nacos.yml | 2 +-
.../shenyu-e2e-case/k8s/shenyu-opengauss.yml | 2 +-
shenyu-e2e/shenyu-e2e-case/k8s/shenyu-postgres.yml | 2 +-
shenyu-e2e/shenyu-e2e-case/pom.xml | 2 +-
.../shenyu-e2e-case-apache-dubbo/pom.xml | 2 +-
.../k8s/shenyu-cluster-jdbc.yml | 2 +-
.../k8s/shenyu-cluster-zookeeper.yml | 2 +-
.../shenyu-e2e-case-cluster/pom.xml | 2 +-
.../shenyu-e2e-case/shenyu-e2e-case-grpc/pom.xml | 2 +-
.../compose/shenyu-rocketmq-compose.yml | 2 +-
.../shenyu-e2e-case-http/k8s/shenyu-rocketmq.yml | 2 +-
.../e2e/testcase/http/DividePluginCases.java | 2 +-
.../compose/script/e2e-logging-kafka-compose.sh | 2 +-
.../compose/shenyu-kafka-compose.yml | 2 +-
.../k8s/shenyu-kafka.yml | 2 +-
.../testcase/logging/kafka/DividePluginCases.java | 16 +-
.../compose/shenyu-rocketmq-compose.yml | 2 +-
.../k8s/shenyu-kafka.yml | 2 +-
.../shenyu-e2e-case/shenyu-e2e-case-motan/pom.xml | 2 +-
.../shenyu-e2e-case/shenyu-e2e-case-sofa/pom.xml | 2 +-
.../k8s/shenyu-examples-eureka.yml | 2 +-
.../shenyu-e2e-case-spring-cloud/pom.xml | 2 +-
.../compose/script/e2e-h2-compose.sh | 2 +-
.../compose/script/e2e-mysql-compose.sh | 2 +-
.../compose/script/e2e-opengauss-compose.sh | 2 +-
.../compose/script/e2e-postgres-compose.sh | 2 +-
.../k8s/shenyu-app-service-h2.yml | 2 +-
.../k8s/shenyu-app-service-mysql.yml | 2 +-
.../k8s/shenyu-app-service-opengauss.yml | 2 +-
.../k8s/shenyu-app-service-postgres.yml | 2 +-
.../k8s/shenyu-deployment-h2.yml | 2 +-
.../shenyu-e2e-case-websocket/pom.xml | 2 +-
.../testcase/websocket/WebSocketPluginCases.java | 3 +-
.../testcase/websocket/WebSocketPluginTest.java | 1 -
shenyu-e2e/shenyu-e2e-client/pom.xml | 2 +-
shenyu-e2e/shenyu-e2e-common/pom.xml | 2 +-
shenyu-e2e/shenyu-e2e-engine/pom.xml | 2 +-
shenyu-examples/pom.xml | 3 +-
shenyu-examples/shenyu-examples-common/pom.xml | 2 +-
.../src/main/resources/META-INF/spring.provides | 2 +-
shenyu-examples/shenyu-examples-dubbo/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../src/main/resources/application.yml | 2 +-
.../src/main/resources/shenyu.xml | 2 +-
.../shenyu-examples-apache-dubbo-service/pom.xml | 2 +-
.../shenyu-examples-dubbo-api/pom.xml | 2 +-
shenyu-examples/shenyu-examples-eureka/pom.xml | 2 +-
shenyu-examples/shenyu-examples-grpc/pom.xml | 2 +-
.../src/main/resources/proto/stream.proto | 2 +-
.../shenyu-examples-http-swagger3/pom.xml | 2 +-
.../shenyu-examples-http/k8s/shenyu-deployment.yml | 2 +-
.../shenyu-examples-http/k8s/shenyu-service.yml | 2 +-
shenyu-examples/shenyu-examples-http/pom.xml | 2 +-
.../src/main/resources/application.yml | 1 -
shenyu-examples/shenyu-examples-https/pom.xml | 2 +-
.../src/main/resources/keystore.p12 | Bin 2729 -> 2730 bytes
.../pom.xml | 27 +-
.../apache/shenyu/ShenyuTestMcpApplication.java} | 8 +-
.../apache/shenyu/controller/OrderController.java | 110 +++
.../main/java/org/apache/shenyu}/dto/OrderDTO.java | 2 +-
.../src/main/resources/application.yml | 19 +-
shenyu-examples/shenyu-examples-motan/pom.xml | 2 +-
.../shenyu-examples-motan-api/pom.xml | 2 +-
.../shenyu-examples-motan-service/pom.xml | 2 +-
shenyu-examples/shenyu-examples-plugin/pom.xml | 2 +-
shenyu-examples/shenyu-examples-sdk/pom.xml | 2 +-
.../shenyu-examples-sdk-dubbo/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../src/main/resources/application.yml | 2 +-
.../src/main/resources/shenyu.xml | 2 +-
.../shenyu-examples-sdk-feign/pom.xml | 2 +-
.../shenyu-examples-sdk-grpc/pom.xml | 2 +-
.../shenyu-examples-sdk-grpc-consumer/pom.xml | 2 +-
.../shenyu-examples-sdk-grpc-provider/pom.xml | 2 +-
.../shenyu-examples-sdk-http/pom.xml | 2 +-
.../shenyu-examples-sdk-springcloud/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
shenyu-examples/shenyu-examples-sofa/pom.xml | 2 +-
.../shenyu-examples-sofa-api/pom.xml | 2 +-
.../shenyu-examples-sofa-service/pom.xml | 4 +-
.../shenyu-examples-springcloud/pom.xml | 2 +-
.../shenyu-examples-springmvc-tomcat/pom.xml | 2 +-
.../src/main/http/http-test-api-local.http | 2 +-
.../src/main/http/http-test-api.http | 2 +-
.../src/main/resources/context/shenyu.xml | 2 +-
.../src/main/resources/spring-mvc.xml | 2 +-
shenyu-examples/shenyu-examples-springmvc/pom.xml | 2 +-
.../src/main/http/http-test-api-local.http | 2 +-
.../src/main/http/http-test-api.http | 2 +-
.../src/main/resources/application.yml | 2 +-
shenyu-examples/shenyu-examples-tars/README.md | 2 +-
shenyu-examples/shenyu-examples-tars/pom.xml | 2 +-
.../src/main/resources/application.yml | 2 +-
shenyu-examples/shenyu-examples-websocket/pom.xml | 2 +-
.../pom.xml | 2 +-
.../src/main/resources/application.yml | 2 +-
.../shenyu-example-spring-native-websocket/pom.xml | 2 +-
.../pom.xml | 2 +-
shenyu-infra/pom.xml | 6 +-
.../shenyu-infra-common}/pom.xml | 27 +-
.../apache/shenyu/infra/common/InfraConstants.java | 23 +-
.../shenyu/infra/common/InfraParentProperties.java | 14 +-
.../shenyu-infra-etcd}/pom.xml | 42 +-
.../infra/etcd/autoconfig/ConditionOnSyncEtcd.java | 16 +-
.../infra/etcd/autoconfig/EtcdConfiguration.java | 44 +-
.../infra/etcd/autoconfig/EtcdProperties.java | 50 ++
.../shenyu/infra/etcd/client}/EtcdClient.java | 198 +++-
.../shenyu/infra/etcd/config}/EtcdConfig.java | 61 +-
.../src/main/resources/META-INF/spring.factories | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../infra/etcd/autoconfig/EtcdPropertiesTest.java | 53 ++
.../shenyu/infra/etcd/client}/EtcdClientTest.java | 20 +-
.../shenyu-infra-nacos}/pom.xml | 9 +-
.../nacos/autoconfig/ConditionOnSyncNacos.java | 13 +-
.../infra/nacos/autoconfig/NacosProperties.java | 48 +
.../shenyu/infra}/nacos/config/NacosACMConfig.java | 64 +-
.../shenyu/infra}/nacos/config/NacosConfig.java | 74 +-
.../nacos/autoconfig/NacosPropertiesTest.java | 28 +-
.../infra}/nacos/config/NacosACMConfigTest.java | 45 +-
.../infra}/nacos/config/NacosConfigTest.java | 36 +-
shenyu-infra/shenyu-infra-redis/pom.xml | 26 +-
.../shenyu/infra}/redis/RedisConfigProperties.java | 2 +-
.../infra}/redis/RedisConnectionFactory.java | 2 +-
.../infra/redis}/ShenyuReactiveRedisTemplate.java | 2 +-
.../infra/redis}/ShenyuReactiveScriptExecutor.java | 2 +-
.../redis/serializer/ByteArrayRedisSerializer.java | 2 +-
.../ShenyuRedisSerializationContext.java | 2 +-
.../infra}/redis/RedisConfigPropertiesTest.java | 2 +-
.../infra}/redis/RedisConnectionFactoryTest.java | 6 +-
.../redis/ShenyuRedisSerializationContextTest.java | 4 +-
.../pom.xml | 4 +-
.../java/org/apache/shenyu/infra/x/XConfig.java} | 4 +-
.../java/org/apache/shenyu/infra/x/XTests.java | 4 +-
.../pom.xml | 4 +-
.../shenyu/infra}/zookeeper/ZookeeperConfig.java | 3 +-
.../shenyu/infra/zookeeper/ZookeeperTests.java | 4 +-
shenyu-integrated-test/pom.xml | 4 +-
.../shenyu-integrated-test-apache-dubbo/pom.xml | 2 +-
.../shenyu-integrated-test-combination/pom.xml | 2 +-
.../shenyu-integrated-test-common/pom.xml | 2 +-
.../shenyu-integrated-test-grpc/pom.xml | 2 +-
.../shenyu-integrated-test-http/config/broker.conf | 2 +-
.../shenyu-integrated-test-http/pom.xml | 2 +-
.../shenyu-integrated-test-https/pom.xml | 2 +-
.../script/services.list | 2 +-
.../src/main/resources/keystore.p12 | Bin 2729 -> 2730 bytes
.../deploy/kind-config.yaml | 2 +-
.../pom.xml | 2 +-
.../deploy/kind-config.yaml | 2 +-
.../pom.xml | 2 +-
.../deploy/kind-config.yaml | 2 +-
.../pom.xml | 2 +-
.../deploy/kind-config.yaml | 2 +-
.../pom.xml | 2 +-
.../deploy/kind-config.yaml | 2 +-
.../pom.xml | 2 +-
.../script/build_k8s_cluster.sh | 2 +-
.../deploy/kind-config.yaml | 2 +-
.../pom.xml | 2 +-
.../shenyu-integrated-test-motan/pom.xml | 2 +-
.../script/services.list | 2 +-
.../integrated/test/motan/MotanPluginTest.java | 2 +-
.../shenyu-integrated-test-rewrite/pom.xml | 2 +-
.../pom.xml | 2 +-
.../docker-compose.yml | 2 +-
.../shenyu-integrated-test-sdk-http/pom.xml | 2 +-
.../shenyu-integrated-test-sofa/pom.xml | 2 +-
.../shenyu-integrated-test-spring-cloud/pom.xml | 2 +-
.../shenyu-integrated-test-upload-plugin/pom.xml | 2 +-
.../shenyu-custom-plugin/pom.xml | 2 +-
.../shenyu-integrated-test-admin/pom.xml | 2 +-
.../pom.xml | 2 +-
.../shenyu-integrated-test-websocket/pom.xml | 2 +-
shenyu-kubernetes-controller/pom.xml | 2 +-
shenyu-loadbalancer/pom.xml | 2 +-
...org.apache.shenyu.loadbalancer.spi.LoadBalancer | 2 +-
.../spi/RoundRobinLoadBalanceTest.java | 29 +-
shenyu-plugin/pom.xml | 3 +-
shenyu-plugin/shenyu-plugin-ai/pom.xml | 11 +-
.../shenyu-plugin-ai-common/pom.xml | 2 +-
.../plugin/ai/common/config/AiCommonConfig.java | 53 +-
.../spring/ai/factory/OpenAiModelFactory.java | 2 +-
.../shenyu/plugin/ai/common/strategy/AiModel.java | 54 --
.../plugin/ai/common/strategy/AiModelFactory.java | 47 -
.../ai/common/strategy/FallbackStrategy.java | 49 +
.../strategy/SimpleModelFallbackStrategy.java | 68 ++
.../plugin/ai/common/strategy/openai/OpenAI.java | 107 ---
.../ai/common/utils/ResponseBodyCaptureUtils.java} | 25 +-
.../ai/factory/DeepSeekModelFactoryTest.java | 67 ++
.../spring/ai/factory/OpenAiModelFactoryTest.java | 67 ++
.../ai/registry/AiModelFactoryRegistryTest.java | 66 ++
.../utils/ResponseBodyCaptureUtilsTest.java} | 30 +-
.../shenyu-plugin-ai-prompt/pom.xml | 2 +-
.../plugin/ai/prompt/AiPromptPluginTest.java} | 34 +-
.../handler/AiPromptPluginDataHandlerTest.java | 88 ++
.../pom.xml | 34 +-
.../plugin/ai/proxy/enhanced/AiProxyPlugin.java | 272 ++++++
.../proxy/enhanced/cache/AiProxyApiKeyCache.java | 133 +++
.../ai/proxy/enhanced/cache/ChatClientCache.java | 88 ++
.../enhanced}/handler/AiProxyPluginHandler.java | 57 +-
.../enhanced/service/AiProxyConfigService.java | 124 +++
.../enhanced/service/AiProxyExecutorService.java | 116 +++
.../CommonAiProxyApiKeyDataSubscriber.java | 59 ++
.../ai/proxy/enhanced/AiProxyPluginTest.java | 339 +++++++
.../enhanced/cache/AiProxyApiKeyCacheTest.java | 73 ++
.../enhanced/service/AiProxyConfigServiceTest.java | 146 +++
.../service/AiProxyExecutorServiceTest.java | 143 +++
.../CommonAiProxyApiKeyDataSubscriberTest.java | 208 +++++
.../shenyu/plugin/ai/proxy/AiProxyPlugin.java | 127 ---
.../shenyu-plugin-ai-request-transformer/pom.xml | 2 +-
.../request/AiRequestTransformerPlugin.java | 23 +-
.../transformer/request/cache/ChatClientCache.java | 5 +-
.../handler/AiRequestTransformerPluginHandler.java | 1 -
.../request/AiRequestTransformerPluginTest.java | 133 +++
.../request/cache/ChatClientCacheTest.java | 83 ++
.../AiRequestTransformerPluginHandlerTest.java | 99 ++
.../template/AiRequestTransformerTemplateTest.java | 124 +++
.../pom.xml | 6 +-
.../response/AiResponseTransformerPlugin.java | 407 +++++++++
.../response}/cache/ChatClientCache.java | 9 +-
.../AiResponseTransformerPluginHandler.java | 118 +++
.../template/AiResponseTransformerTemplate.java} | 75 +-
.../response/AiResponseTransformerPluginTest.java | 239 +++++
.../AiResponseTransformerPluginHandlerTest.java | 308 +++++++
.../AiResponseTransformerTemplateTest.java | 384 ++++++++
.../shenyu-plugin-ai-token-limiter/pom.xml | 18 +-
.../ai/token/limiter/AiTokenLimiterPlugin.java | 139 ++-
.../handler/AiTokenLimiterPluginHandler.java | 8 +-
.../token/limiter/redis/RedisConfigProperties.java | 259 ------
.../limiter/redis/RedisConnectionFactory.java | 135 ---
.../limiter/redis/ShenyuReactiveRedisTemplate.java | 53 --
.../redis/ShenyuReactiveScriptExecutor.java | 73 --
.../redis/serializer/ByteArrayRedisSerializer.java | 40 -
.../ShenyuRedisSerializationContext.java | 56 --
shenyu-plugin/shenyu-plugin-api/pom.xml | 2 +-
shenyu-plugin/shenyu-plugin-base/pom.xml | 2 +-
.../base/cache/CommonPluginDataSubscriber.java | 29 +-
.../plugin/base/utils/ServerWebExchangeUtils.java | 2 +-
...shenyu.plugin.base.condition.data.ParameterData | 2 +-
shenyu-plugin/shenyu-plugin-cache/pom.xml | 2 +-
.../shenyu-plugin-cache-handler/pom.xml | 2 +-
.../apache/shenyu/plugin/cache/CachePlugin.java | 39 +-
.../plugin/cache/cache/ApplicationConfigCache.java | 130 +++
.../cache/handler/CachePluginDataHandler.java | 9 +
.../plugin/cache/ApplicationConfigCacheTest.java | 93 ++
.../plugin/cache/CachePluginDataHandlerTest.java | 2 +-
.../shenyu/plugin/cache/CachePluginTest.java | 10 +-
.../shenyu-plugin-cache-memory/pom.xml | 2 +-
.../org.apache.shenyu.plugin.cache.ICacheBuilder | 2 +-
.../shenyu-plugin-cache-redis/pom.xml | 16 +-
.../shenyu/plugin/cache/redis/RedisCache.java | 4 +-
.../plugin/cache/redis/RedisCacheBuilder.java | 1 +
.../shenyu/plugin/cache/redis/RedisCacheTest.java | 1 +
.../shenyu-plugin-cache-spi/pom.xml | 2 +-
shenyu-plugin/shenyu-plugin-context-path/pom.xml | 2 +-
.../shenyu-plugin-fault-tolerance/pom.xml | 2 +-
.../shenyu-plugin-hystrix/pom.xml | 2 +-
.../shenyu-plugin-ratelimiter/pom.xml | 2 +-
.../ratelimiter/executor/RedisRateLimiter.java | 4 +-
.../handler/RateLimiterPluginDataHandler.java | 7 +-
.../scripts/concurrent_request_rate_limiter.lua | 2 +-
.../scripts/request_leaky_rate_limiter.lua | 2 +-
...ugin.ratelimiter.algorithm.RateLimiterAlgorithm | 2 +-
...gin.ratelimiter.resolver.RateLimiterKeyResolver | 2 +-
.../executor/RedisRateLimiterScriptsTest.java | 2 +-
.../handler/RateLimiterPluginDataHandlerTest.java | 4 +-
.../shenyu-plugin-resilience4j/pom.xml | 2 +-
.../shenyu-plugin-sentinel/pom.xml | 2 +-
shenyu-plugin/shenyu-plugin-global/pom.xml | 2 +-
shenyu-plugin/shenyu-plugin-httpclient/pom.xml | 2 +-
.../ExponentialRetryBackoffStrategy.java | 8 +-
shenyu-plugin/shenyu-plugin-logging/pom.xml | 2 +-
.../shenyu-plugin-logging-aliyun-sls/pom.xml | 2 +-
.../shenyu-plugin-logging-clickhouse/pom.xml | 2 +-
.../shenyu-plugin-logging-common/pom.xml | 2 +-
.../logging/common/AbstractLoggingPlugin.java | 1 +
.../common/collector/AbstractLogCollector.java | 106 ++-
.../logging/common/collector/LogCollector.java | 1 +
.../logging/common/utils/LogCollectUtils.java | 6 +-
.../shenyu-plugin-logging-console/pom.xml | 2 +-
.../shenyu-plugin-logging-desensitize-api/pom.xml | 2 +-
...gging.desensitize.api.spi.ShenyuDataDesensitize | 2 +-
.../shenyu-plugin-logging-elasticsearch/pom.xml | 2 +-
.../shenyu-plugin-logging-huawei-lts/pom.xml | 2 +-
.../shenyu-plugin-logging-kafka/pom.xml | 2 +-
.../logging/kafka/cache/KafkaClientCache.java | 122 +++
.../logging/kafka/collector/KafkaLogCollector.java | 17 +
.../kafka/config/KafkaLogCollectConfig.java | 163 ++++
.../handler/LoggingKafkaPluginDataHandler.java | 62 ++
.../logging/kafka/cache/KafkaClientCacheTest.java | 67 ++
.../kafka/collector/KafkaLogCollectorTest.java | 27 +
.../handler/LoggingKafkaPluginDataHandlerTest.java | 2 +-
.../shenyu-plugin-logging-pulsar/pom.xml | 2 +-
.../shenyu-plugin-logging-rabbitmq/pom.xml | 2 +-
.../rabbitmq/cache/RabbitmqClientCache.java | 150 ++++
.../rabbitmq/config/RabbitmqLogCollectConfig.java | 319 +++++++
.../rabbitmq/conllector/RabbitmqLogCollector.java | 17 +
.../handler/LoggingRabbitmqPluginDataHandler.java | 62 ++
.../rabbitmq/cache/RabbitmqClientCacheTest.java | 76 ++
.../collector/RabbitmqLogCollectorTest.java | 35 +
.../config/RabbitmqLogCollectConfigTest.java | 8 +-
.../LoggingRabbitmqPluginDataHandlerTest.java | 29 +
.../shenyu-plugin-logging-rocketmq/pom.xml | 2 +-
.../shenyu-plugin-logging-tencent-cls/pom.xml | 2 +-
.../shenyu-plugin-mcp-server/MCP_TOOL_EXAMPLES.md | 492 ++++++++++
.../MCP_TOOL_EXAMPLES_EN.md | 499 +++++++++++
.../shenyu-plugin-mcp-server}/pom.xml | 75 +-
.../shenyu/plugin/mcp/server/McpServerPlugin.java | 644 +++++++++++++
.../mcp/server/callback/ShenyuToolCallback.java | 687 ++++++++++++++
.../server/definition/ShenyuToolDefinition.java | 110 +++
.../server/handler/McpServerPluginDataHandler.java | 169 ++++
.../mcp/server/holder/ShenyuMcpExchangeHolder.java | 40 +-
.../mcp/server/manager/ShenyuMcpServerManager.java | 636 +++++++++++++
.../mcp/server/model/McpServerToolParameter.java | 191 ++++
.../plugin/mcp/server/model/ShenyuMcpServer.java | 88 +-
.../mcp/server/model/ShenyuMcpServerTool.java | 163 ++++
.../mcp/server/request/BodyWriterExchange.java | 114 +++
.../mcp/server/request/ParameterFormatter.java | 60 ++
.../plugin/mcp/server/request/RequestConfig.java | 81 ++
.../mcp/server/request/RequestConfigHelper.java | 248 +++++
.../NonCommittingMcpResponseDecorator.java | 276 ++++++
.../response/ShenyuMcpResponseDecorator.java | 135 +++
.../mcp/server/session/McpSessionHelper.java | 104 +++
.../server/transport/MessageHandlingResult.java | 99 ++
.../ShenyuSseServerTransportProvider.java | 580 ++++++++++++
...henyuStreamableHttpServerTransportProvider.java | 996 +++++++++++++++++++++
.../mcp/server/transport/SseEventFormatter.java | 91 ++
.../transport/StreamableHttpProviderBuilder.java | 81 ++
.../plugin/mcp/server/utils/JsonSchemaUtil.java | 135 +++
.../mcp/server/McpServerPluginIntegrationTest.java | 242 +++++
.../plugin/mcp/server/McpServerPluginTest.java | 151 ++++
.../server/callback/ShenyuToolCallbackTest.java | 214 +++++
.../handler/McpServerPluginDataHandlerTest.java | 204 +++++
.../server/manager/ShenyuMcpServerManagerTest.java | 173 ++++
.../server/request/RequestConfigHelperTest.java | 198 ++++
.../mcp/server/utils/JsonSchemaUtilTest.java | 302 +++++++
.../src/test/resources/application-test.yml | 19 +-
shenyu-plugin/shenyu-plugin-metrics/pom.xml | 2 +-
shenyu-plugin/shenyu-plugin-mock/pom.xml | 2 +-
.../shenyu-plugin-modify-response/pom.xml | 2 +-
shenyu-plugin/shenyu-plugin-param-mapping/pom.xml | 2 +-
.../param/mapping/strategy/FormDataOperator.java | 33 +-
.../param/mapping/strategy/JsonOperator.java | 48 +-
shenyu-plugin/shenyu-plugin-proxy/pom.xml | 2 +-
.../shenyu-plugin-divide/pom.xml | 2 +-
.../shenyu-plugin-proxy/shenyu-plugin-mqtt/pom.xml | 2 +-
.../shenyu-plugin-proxy/shenyu-plugin-rpc/pom.xml | 2 +-
.../shenyu-plugin-rpc/shenyu-plugin-dubbo/pom.xml | 2 +-
.../shenyu-plugin-apache-dubbo/pom.xml | 2 +-
.../org.apache.dubbo.common.threadpool.ThreadPool | 2 +-
.../dubbo/org.apache.dubbo.rpc.cluster.LoadBalance | 2 +-
.../shenyu-plugin-dubbo-common/pom.xml | 2 +-
.../shenyu-plugin-general-context/pom.xml | 2 +-
.../shenyu-plugin-rpc/shenyu-plugin-grpc/pom.xml | 2 +-
.../shenyu-plugin-rpc/shenyu-plugin-motan/pom.xml | 2 +-
.../apache/shenyu/plugin/motan/MotanPlugin.java | 2 +-
.../plugin/motan/cache/ApplicationConfigCache.java | 162 +++-
.../plugin/motan/handler/MotanMetaDataHandler.java | 3 +-
.../motan/handler/MotanPluginDataHandler.java | 23 +
.../plugin/motan/proxy/MotanProxyService.java | 36 +-
.../shenyu/plugin/motan/MotanPluginTest.java | 2 +-
.../plugin/motan/proxy/MotanProxyServiceTest.java | 99 ++
.../shenyu-plugin-rpc/shenyu-plugin-sofa/pom.xml | 2 +-
.../org/apache/shenyu/plugin/sofa/SofaPlugin.java | 2 +-
.../plugin/sofa/cache/ApplicationConfigCache.java | 221 ++++-
.../plugin/sofa/handler/SofaMetaDataHandler.java | 4 +-
.../plugin/sofa/handler/SofaPluginDataHandler.java | 21 +
.../shenyu/plugin/sofa/proxy/SofaProxyService.java | 42 +-
.../apache/shenyu/plugin/sofa/SofaPluginTest.java | 4 +-
.../sofa/cache/ApplicationConfigCacheTest.java | 97 ++
.../plugin/sofa/proxy/SofaProxyServiceTest.java | 63 +-
.../shenyu-plugin-rpc/shenyu-plugin-tars/pom.xml | 2 +-
.../shenyu-plugin-transform/pom.xml | 2 +-
.../shenyu-plugin-proxy/shenyu-plugin-tcp/pom.xml | 2 +-
.../shenyu-plugin-websocket/pom.xml | 2 +-
shenyu-plugin/shenyu-plugin-redirect/pom.xml | 2 +-
shenyu-plugin/shenyu-plugin-request/pom.xml | 2 +-
shenyu-plugin/shenyu-plugin-response/pom.xml | 2 +-
shenyu-plugin/shenyu-plugin-rewrite/pom.xml | 2 +-
shenyu-plugin/shenyu-plugin-security/pom.xml | 2 +-
.../shenyu-plugin-basic-auth/pom.xml | 2 +-
.../shenyu-plugin-casdoor/pom.xml | 2 +-
.../shenyu-plugin-cryptor/pom.xml | 2 +-
....shenyu.plugin.cryptor.strategy.CryptorStrategy | 2 +-
.../shenyu-plugin-jwt/pom.xml | 2 +-
.../jwt/strategy/DefaultJwtConvertStrategy.java | 3 +-
.../strategy/DefaultJwtPayloadParseStrategy.java | 2 +-
...e.shenyu.plugin.jwt.strategy.JwtConvertStrategy | 2 +-
...nyu.plugin.jwt.strategy.JwtPayloadParseStrategy | 2 +-
.../strategy/DefaultJwtConvertStrategyTest.java | 77 ++
...e.shenyu.plugin.jwt.strategy.JwtConvertStrategy | 2 +-
.../shenyu-plugin-key-auth/pom.xml | 2 +-
.../shenyu-plugin-oauth2/pom.xml | 2 +-
.../shenyu-plugin-sign/pom.xml | 2 +-
shenyu-plugin/shenyu-plugin-uri/pom.xml | 2 +-
shenyu-plugin/shenyu-plugin-waf/pom.xml | 2 +-
shenyu-plugin/shenyu-plugin-wasm-api/pom.xml | 2 +-
....api.AbstractWasmPluginTest$RustWasmPlugin.wasm | Bin 1984076 -> 1984077
bytes
shenyu-plugin/shenyu-plugin-wasm-base/pom.xml | 2 +-
...tShenyuWasmPluginTest$TestShenyuWasmPlugin.wasm | Bin 1679614 -> 1679615
bytes
...HandlerTest$TestWasmPluginDiscoveryHandler.wasm | Bin 1984165 -> 1984166
bytes
...etaDataHandlerTest$TestWasmMetaDataHandler.wasm | Bin 1679923 -> 1679924
bytes
...nDataHandlerTest$TestWasmPluginDataHandler.wasm | Bin 1680549 -> 1680550
bytes
.../src/test/rust-discovery-handler/Cargo.toml | 2 +-
.../src/test/rust-discovery-handler/README.md | 2 +-
.../src/test/rust-discovery-handler/src/lib.rs | 2 +-
.../src/test/rust-meta-data-handler/README.md | 2 +-
.../src/test/rust-plugin-data-handler/README.md | 2 +-
shenyu-protocol/pom.xml | 2 +-
shenyu-protocol/shenyu-protocol-grpc/pom.xml | 2 +-
shenyu-protocol/shenyu-protocol-mqtt/pom.xml | 2 +-
shenyu-protocol/shenyu-protocol-tcp/pom.xml | 2 +-
shenyu-register-center/pom.xml | 3 +-
.../shenyu-register-client-beat}/pom.xml | 16 +-
.../register/client/beat/HeartbeatListener.java | 145 +++
.../beat/ShenyuBootstrapHeartBeatConfig.java} | 36 +-
.../shenyu-register-client/pom.xml | 2 +-
.../shenyu-register-client-api/pom.xml | 19 +-
.../client/api/FailbackRegistryRepository.java | 37 +
.../client/api/ShenyuClientRegisterRepository.java | 18 +
.../client/api/FailbackRegistryRepositoryTest.java | 274 ++++++
.../client/api/retry/FailureRegistryTaskTest.java | 165 ++++
.../shenyu-register-client-http/pom.xml | 2 +-
.../client/http/HttpClientRegisterRepository.java | 14 +-
.../shenyu-register-common/pom.xml | 2 +-
.../register/common/dto/InstanceBeatInfoDTO.java | 85 +-
.../register/common/dto/McpToolsRegisterDTO.java | 48 +-
.../shenyu/register/common/dto/URIRegisterDTO.java | 114 ++-
.../shenyu/register/common/type/DataType.java | 5 +
shenyu-registry/pom.xml | 2 +-
shenyu-registry/shenyu-registry-api/pom.xml | 11 +-
.../registry/api/config/RegisterConfigTest.java | 105 +++
.../api/path/InstancePathConstantsTest.java | 49 +
shenyu-registry/shenyu-registry-apollo/pom.xml | 2 +-
...u.registry.api.ShenyuInstanceRegisterRepository | 2 +-
shenyu-registry/shenyu-registry-consul/pom.xml | 2 +-
...u.registry.api.ShenyuInstanceRegisterRepository | 2 +-
shenyu-registry/shenyu-registry-core/pom.xml | 2 +-
shenyu-registry/shenyu-registry-etcd/pom.xml | 24 +-
.../apache/shenyu/registry/etcd/EtcdClient.java | 165 ----
.../etcd/EtcdInstanceRegisterRepository.java | 11 +-
.../shenyu/registry/etcd/EtcdClientTest.java | 11 +-
.../etcd/EtcdInstanceRegisterRepositoryTest.java | 2 +
shenyu-registry/shenyu-registry-eureka/pom.xml | 2 +-
.../eureka/EurekaInstanceRegisterRepository.java | 5 +-
shenyu-registry/shenyu-registry-kubernetes/pom.xml | 2 +-
shenyu-registry/shenyu-registry-nacos/pom.xml | 8 +-
.../nacos/NacosInstanceRegisterRepository.java | 18 +-
shenyu-registry/shenyu-registry-polaris/pom.xml | 2 +-
shenyu-registry/shenyu-registry-zookeeper/pom.xml | 2 +-
shenyu-sdk/pom.xml | 2 +-
shenyu-sdk/shenyu-sdk-core/pom.xml | 2 +-
shenyu-sdk/shenyu-sdk-feign/pom.xml | 2 +-
shenyu-sdk/shenyu-sdk-httpclient/pom.xml | 2 +-
...g.apache.shenyu.sdk.core.client.ShenyuSdkClient | 2 +-
shenyu-sdk/shenyu-sdk-okhttp/pom.xml | 2 +-
...g.apache.shenyu.sdk.core.client.ShenyuSdkClient | 2 +-
shenyu-sdk/shenyu-sdk-spring/pom.xml | 2 +-
shenyu-spi/pom.xml | 2 +-
.../shenyu/org.apache.shenyu.spi.fixture.EmptySPI | 2 +-
shenyu-spring-boot-starter/pom.xml | 2 +-
.../shenyu-spring-boot-starter-client/pom.xml | 4 +-
.../pom.xml | 2 +-
.../pom.xml | 28 +-
.../beat/HeartbeatListenerConfiguration.java | 61 ++
.../src/main/resources/META-INF/spring.factories | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
.../shenyu-spring-boot-starter-client-grpc/pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 8 +-
.../client/mcp/ShenyuMcpClientConfiguration.java} | 22 +-
.../pom.xml | 2 +-
.../shenyu-spring-boot-starter-client-sofa/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../shenyu-spring-boot-starter-client-tars/pom.xml | 2 +-
.../shenyu-spring-boot-starter-gateway/pom.xml | 2 +-
.../src/main/resources/META-INF/spring.provides | 2 +-
.../shenyu-spring-boot-starter-k8s/pom.xml | 2 +-
.../src/main/resources/META-INF/spring.provides | 2 +-
.../shenyu-spring-boot-starter-plugin/pom.xml | 5 +-
.../pom.xml | 2 +-
.../pom.xml | 5 +-
.../ai/proxy/AiProxyPluginConfiguration.java | 111 ++-
.../pom.xml | 4 +-
.../AiRequestTransformerPluginConfiguration.java | 4 +-
.../pom.xml | 9 +-
.../AiResponseTransformerPluginConfiguration.java} | 32 +-
.../src/main/resources/META-INF/spring.factories | 2 +-
.../src/main/resources/META-INF/spring.provides | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../src/main/resources/META-INF/spring.factories | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../shenyu-spring-boot-starter-plugin-grpc/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../shenyu-spring-boot-starter-plugin-jwt/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../src/main/resources/META-INF/spring.factories | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
.../src/main/resources/META-INF/spring.factories | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
.../src/main/resources/META-INF/spring.factories | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 6 +-
.../mcp/server/McpServerPluginConfiguration.java | 87 ++
.../src/main/resources/META-INF/spring.factories | 37 +-
.../src/main/resources/META-INF/spring.provides | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
.../shenyu-spring-boot-starter-plugin-mock/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../shenyu-spring-boot-starter-plugin-mqtt/pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../src/main/resources/META-INF/spring.factories | 2 +-
.../src/main/resources/META-INF/spring.provides | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
.../shenyu-spring-boot-starter-plugin-sign/pom.xml | 2 +-
.../shenyu-spring-boot-starter-plugin-sofa/pom.xml | 2 +-
.../shenyu-spring-boot-starter-plugin-tars/pom.xml | 2 +-
.../shenyu-spring-boot-starter-plugin-tcp/pom.xml | 2 +-
.../pom.xml | 2 +-
.../shenyu-spring-boot-starter-plugin-uri/pom.xml | 2 +-
.../shenyu-spring-boot-starter-plugin-waf/pom.xml | 2 +-
.../pom.xml | 2 +-
.../shenyu-spring-boot-starter-registry/pom.xml | 2 +-
.../src/main/resources/META-INF/spring.provides | 2 +-
.../shenyu-spring-boot-starter-sdk-feign/pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../shenyu-spring-boot-starter-sdk/pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
.../pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 3 +-
.../sync/data/etcd/EtcdSyncDataConfiguration.java | 30 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
.../sync/data/http/HttpSyncDataConfiguration.java | 4 +
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../resources/mock_configs_fetch_response.json | 2 +-
.../pom.xml | 2 +-
.../data/nacos/NacosSyncDataConfiguration.java | 24 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../data/nacos/NacosSyncDataConfigurationTest.java | 8 +-
.../pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
.../websocket/WebsocketSyncDataConfiguration.java | 37 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
.../pom.xml | 2 +-
...rk.boot.autoconfigure.AutoConfiguration.imports | 2 +-
shenyu-sync-data-center/pom.xml | 2 +-
.../shenyu-sync-data-api/pom.xml | 2 +-
...riber.java => AiProxyApiKeyDataSubscriber.java} | 22 +-
.../data/core/AbstractNodeDataSyncService.java | 4 +-
.../data/core/AbstractNodeDataSyncServiceTest.java | 160 ++++
.../data/core/AbstractPathDataSyncServiceTest.java | 119 +++
.../shenyu-sync-data-apollo/pom.xml | 2 +-
.../shenyu-sync-data-consul/pom.xml | 2 +-
.../shenyu-sync-data-etcd/pom.xml | 22 +-
.../shenyu/sync/data/etcd/EtcdSyncDataService.java | 2 +
.../shenyu/sync/data/etcd/EtcdClientTest.java | 209 -----
.../sync/data/etcd/EtcdSyncDataServiceTest.java | 1 +
.../shenyu-sync-data-http/pom.xml | 2 +-
.../shenyu/sync/data/http/AccessTokenManager.java | 21 +-
.../shenyu/sync/data/http/HttpSyncDataService.java | 19 +-
...aRefresh.java => AiProxyApiKeyDataRefresh.java} | 60 +-
.../sync/data/http/refresh/DataRefreshFactory.java | 10 +-
.../sync/data/http/AccessTokenManagerFixTest.java | 66 ++
.../sync/data/http/AccessTokenManagerTest.java | 180 ++++
.../sync/data/http/HttpSyncDataServiceTest.java | 5 +-
.../src/test/resources/logback.xml | 2 +-
.../shenyu-sync-data-nacos/pom.xml | 8 +-
.../shenyu-sync-data-polaris/pom.xml | 2 +-
.../shenyu-sync-data-websocket/pom.xml | 9 +-
.../data/websocket/WebsocketSyncDataService.java | 81 +-
.../websocket/client/ShenyuWebsocketClient.java | 53 +-
.../handler/AiProxyApiKeyDataHandler.java | 86 ++
.../websocket/handler/WebsocketDataHandler.java | 5 +-
.../handler/WebsocketDataHandlerTest.java | 10 +-
.../shenyu-sync-data-zookeeper/pom.xml | 2 +-
shenyu-web/pom.xml | 2 +-
.../apache/shenyu/web/filter/FileSizeFilter.java | 20 +-
.../shenyu/web/filter/LocalDispatcherFilter.java | 2 +-
.../RestTemplateConfigurationTest.java | 2 +-
.../web/endpoint/ShenyuControllerEndpointTest.java | 2 +-
.../web/filter/CollapseSlashesFilterTest.java | 2 +-
.../loader/ShenyuPluginClassLoaderHolderTest.java | 2 +-
955 files changed, 31382 insertions(+), 6028 deletions(-)
delete mode 100644
shenyu-admin-listener/shenyu-admin-listener-etcd/src/main/java/org/apache/shenyu/admin/config/properties/EtcdProperties.java
delete mode 100644
shenyu-admin-listener/shenyu-admin-listener-etcd/src/main/java/org/apache/shenyu/admin/listener/etcd/EtcdClient.java
delete mode 100644
shenyu-admin-listener/shenyu-admin-listener-etcd/src/test/java/org/apache/shenyu/admin/config/properties/EtcdPropertiesTest.java
delete mode 100644
shenyu-admin-listener/shenyu-admin-listener-etcd/src/test/java/org/apache/shenyu/admin/listener/etcd/EtcdClientTest.java
delete mode 100644
shenyu-admin-listener/shenyu-admin-listener-nacos/src/main/java/org/apache/shenyu/admin/config/properties/NacosProperties.java
delete mode 100644
shenyu-admin-listener/shenyu-admin-listener-nacos/src/test/java/org/apache/shenyu/admin/config/properties/AbstractConfigurationTest.java
delete mode 100644
shenyu-admin-listener/shenyu-admin-listener-nacos/src/test/java/org/apache/shenyu/admin/config/properties/NacosPropertiesTest.java
create mode 100644
shenyu-admin/src/http/http-debug-registry-config-controller-api.http
copy
shenyu-examples/shenyu-examples-sdk/shenyu-examples-sdk-feign/src/main/java/org/apache/shenyu/examples/sdk/feign/config/SdkConfig.java
=>
shenyu-admin/src/main/java/org/apache/shenyu/admin/config/HttpUtilsConfiguration.java
(70%)
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/AiProxyApiKeyController.java
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/{NamespaceController.java
=> RegistryController.java} (59%)
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/SwaggerImportController.java
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/disruptor/subscriber/{MetadataExecutorSubscriber.java
=> McpToolsRegisterExecutorSubscriber.java} (58%)
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/AiProxySelectorResolverInvalidator.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/AiProxyApiKeyMapper.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/mapper/RegistryMapper.java
copy
shenyu-e2e/shenyu-e2e-common/src/main/java/org/apache/shenyu/e2e/model/data/NamespaceSyncData.java
=>
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/dto/BatchIdsDTO.java
(61%)
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/{vo/NamespaceVO.java
=> dto/ProxyApiKeyDTO.java} (59%)
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/dto/RegistryDTO.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/dto/SwaggerImportRequest.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/entity/ProxyApiKeyDO.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/entity/RegistryDO.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/event/instance/InstanceInfoReportEvent.java
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/{MetaDataQuery.java
=> ProxyApiKeyQuery.java} (54%)
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/{NamespaceQuery.java
=> RegistryQuery.java} (57%)
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/vo/{MenuDocItemVO.java
=> InstanceDataVisualLineVO.java} (66%)
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/vo/InstanceDataVisualVO.java
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/vo/{NamespaceVO.java
=> ProxyApiKeyVO.java} (51%)
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/vo/RegistryVO.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/AiProxyApiKeyService.java
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/{SecretService.java
=> AiProxyConnectionService.java} (78%)
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/{NamespaceService.java
=> RegistryService.java} (55%)
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/{OperationRecordLogService.java
=> SwaggerImportService.java} (64%)
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/AiProxyApiKeyServiceImpl.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/AiProxyConnectionServiceImpl.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/InstanceCheckService.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/RegistryServiceImpl.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/SwaggerImportServiceImpl.java
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/publish/{NamespaceEventPublisher.java
=> InstanceInfoReportEventPublisher.java} (69%)
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/register/ShenyuClientRegisterMcpServiceImpl.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/support/AiProxyRealKeyResolver.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/transfer/ProxyApiKeyTransfer.java
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/transfer/{NamespaceTransfer.java
=> RegistryTransfer.java} (60%)
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/UrlSecurityUtils.java
create mode 100644
shenyu-admin/src/main/resources/mappers/ai-proxy-api-key-sqlmap.xml
create mode 100644 shenyu-admin/src/main/resources/mappers/registry-sqlmap.xml
rename shenyu-admin/src/main/resources/static/{index.2a428c0d.css =>
index.7892d888.css} (76%)
create mode 100644 shenyu-admin/src/main/resources/static/index.a6d776d6.js
delete mode 100644 shenyu-admin/src/main/resources/static/index.db384a79.js
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/InstanceControllerTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/mapper/InstanceInfoMapperTest.java
copy
shenyu-common/src/test/java/org/apache/shenyu/common/dto/convert/rule/RuleHandleTest.java
=>
shenyu-admin/src/test/java/org/apache/shenyu/admin/model/event/instance/InstanceInfoReportEventTest.java
(54%)
copy
shenyu-common/src/test/java/org/apache/shenyu/common/enums/RetryEnumTest.java
=>
shenyu-admin/src/test/java/org/apache/shenyu/admin/model/query/InstanceQueryConditionTest.java
(64%)
copy
shenyu-common/src/test/java/org/apache/shenyu/common/utils/SingletonTest.java
=>
shenyu-admin/src/test/java/org/apache/shenyu/admin/model/vo/InstanceDataVisualLineVOTest.java
(63%)
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/model/vo/InstanceDataVisualVOTest.java
copy
shenyu-admin/src/test/java/org/apache/shenyu/admin/model/{event/role/RoleCreatedEventTest.java
=> vo/InstanceInfoVOTest.java} (50%)
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/service/AlertDispatchServiceTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/service/InstanceInfoServiceTest.java
copy
shenyu-admin/src/test/java/org/apache/shenyu/admin/service/{manager/impl/SwaggerDocManagerImplTest.java
=> SwaggerImportServiceTest.java} (52%)
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/service/impl/AiProxyApiKeyServiceImplTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/service/impl/InstanceCheckServiceTest.java
copy
shenyu-common/src/test/java/org/apache/shenyu/common/utils/ThreadUtilsTest.java
=>
shenyu-admin/src/test/java/org/apache/shenyu/admin/service/publish/InstanceInfoReportEventPublisherTest.java
(52%)
copy
shenyu-client/shenyu-client-core/src/main/java/org/apache/shenyu/client/core/disruptor/subcriber/{ShenyuClientApiDocExecutorSubscriber.java
=> ShenyuClientMcpExecutorSubscriber.java} (77%)
copy shenyu-client/{shenyu-client-autoconfig => shenyu-client-mcp}/pom.xml
(84%)
copy {shenyu-admin-listener/shenyu-admin-listener-consul =>
shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common}/pom.xml (76%)
copy
shenyu-common/src/main/java/org/apache/shenyu/common/enums/TrieEventEnum.java
=>
shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client/mcp/common/annotation/ShenyuMcpHeader.java
(76%)
copy
shenyu-common/src/main/java/org/apache/shenyu/common/enums/PluginHandlerEventEnum.java
=>
shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client/mcp/common/annotation/ShenyuMcpRequestConfig.java
(73%)
copy
shenyu-client/{shenyu-client-http/shenyu-client-springmvc/src/main/java/org/apache/shenyu/client/springmvc/annotation/ShenyuSpringMvcClient.java
=>
shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client/mcp/common/annotation/ShenyuMcpTool.java}
(71%)
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/aspect/annotation/DataPermission.java
=>
shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client/mcp/common/annotation/ShenyuMcpToolParam.java
(78%)
create mode 100644
shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client/mcp/common/constants/OpenApiConstants.java
copy
shenyu-common/src/main/java/org/apache/shenyu/common/enums/ApiStateEnum.java =>
shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client/mcp/common/constants/RequestTemplateConstants.java
(62%)
copy
shenyu-common/src/main/java/org/apache/shenyu/common/enums/ApiStateEnum.java =>
shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client/mcp/common/constants/ShenyuToolConfigConstants.java
(64%)
create mode 100644
shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client/mcp/generator/McpOpenApiGenerator.java
create mode 100644
shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client/mcp/generator/McpRequestConfigGenerator.java
create mode 100644
shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client/mcp/generator/McpToolsRegisterDTOGenerator.java
create mode 100644
shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client/mcp/utils/OpenApiConvertorUtil.java
copy
{shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-general-context
=> shenyu-client/shenyu-client-mcp/shenyu-client-mcp-register}/pom.xml (86%)
create mode 100644
shenyu-client/shenyu-client-mcp/shenyu-client-mcp-register/src/main/java/org/apache/shenyu/client/mcp/McpServiceEventListener.java
copy
shenyu-common/src/main/java/org/apache/shenyu/common/constant/{ResourceTypeConstants.java
=> ShenyuModuleConstants.java} (80%)
create mode 100644
shenyu-common/src/main/java/org/apache/shenyu/common/dto/ProxyApiKeyData.java
copy
shenyu-common/src/main/java/org/apache/shenyu/common/dto/convert/plugin/{AiRequestTransformerConfig.java
=> AiResponseTransformerConfig.java} (94%)
copy
shenyu-common/src/main/java/org/apache/shenyu/common/dto/convert/{plugin/AiRequestTransformerConfig.java
=> rule/AiResponseTransformerHandle.java} (87%)
create mode 100644
shenyu-common/src/main/java/org/apache/shenyu/common/dto/convert/selector/CacheUpstream.java
copy
shenyu-common/src/main/java/org/apache/shenyu/common/dto/convert/selector/{TarsUpstream.java
=> MotanUpstream.java} (61%)
copy
shenyu-common/src/main/java/org/apache/shenyu/common/dto/convert/selector/{DubboUpstream.java
=> SofaUpstream.java} (72%)
copy shenyu-common/src/main/java/org/apache/shenyu/common/enums/{WafEnum.java
=> InstanceStatusEnum.java} (70%)
copy
shenyu-common/src/main/java/org/apache/shenyu/common/enums/{HttpSchemeEnum.java
=> SwaggerVersion.java} (70%)
create mode 100644
shenyu-common/src/test/java/org/apache/shenyu/common/timer/TimerTaskListTest.java
create mode 100644
shenyu-common/src/test/java/org/apache/shenyu/common/utils/AesUtilsTest.java
create mode 100644
shenyu-common/src/test/java/org/apache/shenyu/common/utils/NamespaceIDUtilsTest.java
copy
shenyu-disruptor/src/main/java/org/apache/shenyu/disruptor/{event/DataEvent.java
=> common/Data.java} (89%)
rename
shenyu-infra/shenyu-infra-redis/src/test/java/org/apache/shenyu/infra/redis/RedisPropertiesTest.java
=>
shenyu-disruptor/src/test/java/org/apache/shenyu/disruptor/DisruptorProviderManagerTest.java
(91%)
create mode 100644
shenyu-disruptor/src/test/java/org/apache/shenyu/disruptor/consumer/QueueConsumerTest.java
create mode 100644
shenyu-disruptor/src/test/java/org/apache/shenyu/disruptor/provider/DisruptorProviderTest.java
copy
shenyu-e2e/shenyu-e2e-common/src/main/java/org/apache/shenyu/e2e/model/handle/PluginHandle.java
=>
shenyu-disruptor/src/test/java/org/apache/shenyu/disruptor/thread/DisruptorThreadFactoryTest.java
(91%)
copy shenyu-examples/{shenyu-examples-springmvc-tomcat =>
shenyu-examples-mcp}/pom.xml (79%)
copy
shenyu-examples/{shenyu-examples-grpc/src/main/java/org/apache/shenyu/examples/grpc/ShenyuTestGrpcApplication.java
=>
shenyu-examples-mcp/src/main/java/org/apache/shenyu/ShenyuTestMcpApplication.java}
(85%)
create mode 100644
shenyu-examples/shenyu-examples-mcp/src/main/java/org/apache/shenyu/controller/OrderController.java
copy
shenyu-examples/{shenyu-examples-http/src/main/java/org/apache/shenyu/examples/http
=> shenyu-examples-mcp/src/main/java/org/apache/shenyu}/dto/OrderDTO.java (97%)
copy
shenyu-examples/{shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service =>
shenyu-examples-mcp}/src/main/resources/application.yml (82%)
copy {shenyu-client/shenyu-client-autoconfig =>
shenyu-infra/shenyu-infra-common}/pom.xml (81%)
copy
shenyu-common/src/main/java/org/apache/shenyu/common/concurrent/DiscardPolicy.java
=>
shenyu-infra/shenyu-infra-common/src/main/java/org/apache/shenyu/infra/common/InfraConstants.java
(71%)
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/configs/ConfigsExportImportHandler.java
=>
shenyu-infra/shenyu-infra-common/src/main/java/org/apache/shenyu/infra/common/InfraParentProperties.java
(71%)
copy {shenyu-registry/shenyu-registry-etcd =>
shenyu-infra/shenyu-infra-etcd}/pom.xml (78%)
copy
shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/annotation/Primary.java
=>
shenyu-infra/shenyu-infra-etcd/src/main/java/org/apache/shenyu/infra/etcd/autoconfig/ConditionOnSyncEtcd.java
(77%)
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/config/HttpLongPollingSyncConfiguration.java
=>
shenyu-infra/shenyu-infra-etcd/src/main/java/org/apache/shenyu/infra/etcd/autoconfig/EtcdConfiguration.java
(55%)
create mode 100644
shenyu-infra/shenyu-infra-etcd/src/main/java/org/apache/shenyu/infra/etcd/autoconfig/EtcdProperties.java
rename
{shenyu-sync-data-center/shenyu-sync-data-etcd/src/main/java/org/apache/shenyu/sync/data/etcd
=>
shenyu-infra/shenyu-infra-etcd/src/main/java/org/apache/shenyu/infra/etcd/client}/EtcdClient.java
(60%)
rename
{shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-etcd/src/main/java/org/apache/shenyu/springboot/sync/data/etcd
=>
shenyu-infra/shenyu-infra-etcd/src/main/java/org/apache/shenyu/infra/etcd/config}/EtcdConfig.java
(65%)
copy {shenyu-admin-listener/shenyu-admin-listener-consul =>
shenyu-infra/shenyu-infra-etcd}/src/main/resources/META-INF/spring.factories
(93%)
copy {shenyu-admin-listener/shenyu-admin-listener-apollo =>
shenyu-infra/shenyu-infra-etcd}/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
(93%)
create mode 100644
shenyu-infra/shenyu-infra-etcd/src/test/java/org/apache/shenyu/infra/etcd/autoconfig/EtcdPropertiesTest.java
copy
{shenyu-registry/shenyu-registry-etcd/src/test/java/org/apache/shenyu/registry/etcd
=>
shenyu-infra/shenyu-infra-etcd/src/test/java/org/apache/shenyu/infra/etcd/client}/EtcdClientTest.java
(86%)
copy {shenyu-registry/shenyu-registry-nacos =>
shenyu-infra/shenyu-infra-nacos}/pom.xml (88%)
copy
shenyu-examples/shenyu-examples-common/src/main/java/org/apache/shenyu/examples/common/aop/Log.java
=>
shenyu-infra/shenyu-infra-nacos/src/main/java/org/apache/shenyu/infra/nacos/autoconfig/ConditionOnSyncNacos.java
(76%)
create mode 100644
shenyu-infra/shenyu-infra-nacos/src/main/java/org/apache/shenyu/infra/nacos/autoconfig/NacosProperties.java
rename
{shenyu-sync-data-center/shenyu-sync-data-nacos/src/main/java/org/apache/shenyu/sync/data
=>
shenyu-infra/shenyu-infra-nacos/src/main/java/org/apache/shenyu/infra}/nacos/config/NacosACMConfig.java
(71%)
rename
{shenyu-sync-data-center/shenyu-sync-data-nacos/src/main/java/org/apache/shenyu/sync/data
=>
shenyu-infra/shenyu-infra-nacos/src/main/java/org/apache/shenyu/infra}/nacos/config/NacosConfig.java
(70%)
copy
shenyu-common/src/test/java/org/apache/shenyu/common/dto/convert/rule/RuleHandleTest.java
=>
shenyu-infra/shenyu-infra-nacos/src/test/java/org/apache/shenyu/infra/nacos/autoconfig/NacosPropertiesTest.java
(59%)
rename
{shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data
=>
shenyu-infra/shenyu-infra-nacos/src/test/java/org/apache/shenyu/infra}/nacos/config/NacosACMConfigTest.java
(74%)
rename
{shenyu-sync-data-center/shenyu-sync-data-nacos/src/test/java/org/apache/shenyu/sync/data
=>
shenyu-infra/shenyu-infra-nacos/src/test/java/org/apache/shenyu/infra}/nacos/config/NacosConfigTest.java
(78%)
rename
{shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-redis/src/main/java/org/apache/shenyu/plugin/cache
=>
shenyu-infra/shenyu-infra-redis/src/main/java/org/apache/shenyu/infra}/redis/RedisConfigProperties.java
(99%)
rename
{shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-redis/src/main/java/org/apache/shenyu/plugin/cache
=>
shenyu-infra/shenyu-infra-redis/src/main/java/org/apache/shenyu/infra}/redis/RedisConnectionFactory.java
(99%)
rename
{shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-ratelimiter/src/main/java/org/apache/shenyu/plugin/ratelimiter/handler
=>
shenyu-infra/shenyu-infra-redis/src/main/java/org/apache/shenyu/infra/redis}/ShenyuReactiveRedisTemplate.java
(97%)
rename
{shenyu-plugin/shenyu-plugin-fault-tolerance/shenyu-plugin-ratelimiter/src/main/java/org/apache/shenyu/plugin/ratelimiter/handler
=>
shenyu-infra/shenyu-infra-redis/src/main/java/org/apache/shenyu/infra/redis}/ShenyuReactiveScriptExecutor.java
(98%)
rename
{shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-redis/src/main/java/org/apache/shenyu/plugin/cache
=>
shenyu-infra/shenyu-infra-redis/src/main/java/org/apache/shenyu/infra}/redis/serializer/ByteArrayRedisSerializer.java
(96%)
rename
{shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-redis/src/main/java/org/apache/shenyu/plugin/cache
=>
shenyu-infra/shenyu-infra-redis/src/main/java/org/apache/shenyu/infra}/redis/serializer/ShenyuRedisSerializationContext.java
(97%)
rename
{shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-redis/src/test/java/org/apache/shenyu/plugin/cache
=>
shenyu-infra/shenyu-infra-redis/src/test/java/org/apache/shenyu/infra}/redis/RedisConfigPropertiesTest.java
(98%)
rename
{shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-redis/src/test/java/org/apache/shenyu/plugin/cache
=>
shenyu-infra/shenyu-infra-redis/src/test/java/org/apache/shenyu/infra}/redis/RedisConnectionFactoryTest.java
(92%)
rename
{shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-redis/src/test/java/org/apache/shenyu/plugin/cache
=>
shenyu-infra/shenyu-infra-redis/src/test/java/org/apache/shenyu/infra}/redis/ShenyuRedisSerializationContextTest.java
(89%)
copy shenyu-infra/{shenyu-infra-redis => shenyu-infra-x-module}/pom.xml (92%)
rename
shenyu-infra/{shenyu-infra-redis/src/main/java/org/apache/shenyu/infra/redis/RedisProperties.java
=> shenyu-infra-x-module/src/main/java/org/apache/shenyu/infra/x/XConfig.java}
(92%)
copy shenyu-spi/src/test/java/org/apache/shenyu/spi/fixture/NopSPI.java =>
shenyu-infra/shenyu-infra-x-module/src/test/java/org/apache/shenyu/infra/x/XTests.java
(92%)
copy shenyu-infra/{shenyu-infra-redis => shenyu-infra-zookeeper}/pom.xml (92%)
copy
{shenyu-sync-data-center/shenyu-sync-data-zookeeper/src/main/java/org/apache/shenyu/sync/data
=>
shenyu-infra/shenyu-infra-zookeeper/src/main/java/org/apache/shenyu/infra}/zookeeper/ZookeeperConfig.java
(99%)
copy shenyu-spi/src/test/java/org/apache/shenyu/spi/fixture/NopSPI.java =>
shenyu-infra/shenyu-infra-zookeeper/src/test/java/org/apache/shenyu/infra/zookeeper/ZookeeperTests.java
(91%)
delete mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-common/src/main/java/org/apache/shenyu/plugin/ai/common/strategy/AiModel.java
delete mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-common/src/main/java/org/apache/shenyu/plugin/ai/common/strategy/AiModelFactory.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-common/src/main/java/org/apache/shenyu/plugin/ai/common/strategy/FallbackStrategy.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-common/src/main/java/org/apache/shenyu/plugin/ai/common/strategy/SimpleModelFallbackStrategy.java
delete mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-common/src/main/java/org/apache/shenyu/plugin/ai/common/strategy/openai/OpenAI.java
copy
shenyu-plugin/{shenyu-plugin-base/src/main/java/org/apache/shenyu/plugin/base/condition/data/ParameterData.java
=>
shenyu-plugin-ai/shenyu-plugin-ai-common/src/main/java/org/apache/shenyu/plugin/ai/common/utils/ResponseBodyCaptureUtils.java}
(62%)
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-common/src/test/java/org/apache/shenyu/plugin/ai/common/spring/ai/factory/DeepSeekModelFactoryTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-common/src/test/java/org/apache/shenyu/plugin/ai/common/spring/ai/factory/OpenAiModelFactoryTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-common/src/test/java/org/apache/shenyu/plugin/ai/common/spring/ai/registry/AiModelFactoryRegistryTest.java
copy
shenyu-plugin/{shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-grpc/src/test/java/org/apache/shenyu/plugin/grpc/resolver/ShenyuResolverHelperTest.java
=>
shenyu-plugin-ai/shenyu-plugin-ai-common/src/test/java/org/apache/shenyu/plugin/ai/common/utils/ResponseBodyCaptureUtilsTest.java}
(62%)
copy
shenyu-plugin/{shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-grpc/src/test/java/org/apache/shenyu/plugin/grpc/resolver/ShenyuNameResolverProviderTest.java
=>
shenyu-plugin-ai/shenyu-plugin-ai-prompt/src/test/java/org/apache/shenyu/plugin/ai/prompt/AiPromptPluginTest.java}
(62%)
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-prompt/src/test/java/org/apache/shenyu/plugin/ai/prompt/handler/AiPromptPluginDataHandlerTest.java
rename shenyu-plugin/shenyu-plugin-ai/{shenyu-plugin-ai-proxy =>
shenyu-plugin-ai-proxy-enhanced}/pom.xml (61%)
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy-enhanced/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced/AiProxyPlugin.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy-enhanced/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced/cache/AiProxyApiKeyCache.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy-enhanced/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced/cache/ChatClientCache.java
rename
shenyu-plugin/shenyu-plugin-ai/{shenyu-plugin-ai-proxy/src/main/java/org/apache/shenyu/plugin/ai/proxy
=>
shenyu-plugin-ai-proxy-enhanced/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced}/handler/AiProxyPluginHandler.java
(54%)
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy-enhanced/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced/service/AiProxyConfigService.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy-enhanced/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced/service/AiProxyExecutorService.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy-enhanced/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced/subscriber/CommonAiProxyApiKeyDataSubscriber.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy-enhanced/src/test/java/org/apache/shenyu/plugin/ai/proxy/enhanced/AiProxyPluginTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy-enhanced/src/test/java/org/apache/shenyu/plugin/ai/proxy/enhanced/cache/AiProxyApiKeyCacheTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy-enhanced/src/test/java/org/apache/shenyu/plugin/ai/proxy/enhanced/service/AiProxyConfigServiceTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy-enhanced/src/test/java/org/apache/shenyu/plugin/ai/proxy/enhanced/service/AiProxyExecutorServiceTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy-enhanced/src/test/java/org/apache/shenyu/plugin/ai/proxy/enhanced/subscriber/CommonAiProxyApiKeyDataSubscriberTest.java
delete mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/main/java/org/apache/shenyu/plugin/ai/proxy/AiProxyPlugin.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-request-transformer/src/test/java/org/apache/shenyu/plugin/ai/transformer/request/AiRequestTransformerPluginTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-request-transformer/src/test/java/org/apache/shenyu/plugin/ai/transformer/request/cache/ChatClientCacheTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-request-transformer/src/test/java/org/apache/shenyu/plugin/ai/transformer/request/handler/AiRequestTransformerPluginHandlerTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-request-transformer/src/test/java/org/apache/shenyu/plugin/ai/transformer/request/template/AiRequestTransformerTemplateTest.java
copy shenyu-plugin/shenyu-plugin-ai/{shenyu-plugin-ai-request-transformer =>
shenyu-plugin-ai-response-transformer}/pom.xml (93%)
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-response-transformer/src/main/java/org/apache/shenyu/plugin/ai/transformer/response/AiResponseTransformerPlugin.java
copy
shenyu-plugin/shenyu-plugin-ai/{shenyu-plugin-ai-request-transformer/src/main/java/org/apache/shenyu/plugin/ai/transformer/request
=>
shenyu-plugin-ai-response-transformer/src/main/java/org/apache/shenyu/plugin/ai/transformer/response}/cache/ChatClientCache.java
(94%)
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-response-transformer/src/main/java/org/apache/shenyu/plugin/ai/transformer/response/handler/AiResponseTransformerPluginHandler.java
copy
shenyu-plugin/shenyu-plugin-ai/{shenyu-plugin-ai-request-transformer/src/main/java/org/apache/shenyu/plugin/ai/transformer/request/template/AiRequestTransformerTemplate.java
=>
shenyu-plugin-ai-response-transformer/src/main/java/org/apache/shenyu/plugin/ai/transformer/response/template/AiResponseTransformerTemplate.java}
(69%)
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-response-transformer/src/test/java/org/apache/shenyu/plugin/ai/transformer/response/AiResponseTransformerPluginTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-response-transformer/src/test/java/org/apache/shenyu/plugin/ai/transformer/response/handler/AiResponseTransformerPluginHandlerTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-response-transformer/src/test/java/org/apache/shenyu/plugin/ai/transformer/response/template/AiResponseTransformerTemplateTest.java
delete mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-token-limiter/src/main/java/org/apache/shenyu/plugin/ai/token/limiter/redis/RedisConfigProperties.java
delete mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-token-limiter/src/main/java/org/apache/shenyu/plugin/ai/token/limiter/redis/RedisConnectionFactory.java
delete mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-token-limiter/src/main/java/org/apache/shenyu/plugin/ai/token/limiter/redis/ShenyuReactiveRedisTemplate.java
delete mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-token-limiter/src/main/java/org/apache/shenyu/plugin/ai/token/limiter/redis/ShenyuReactiveScriptExecutor.java
delete mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-token-limiter/src/main/java/org/apache/shenyu/plugin/ai/token/limiter/redis/serializer/ByteArrayRedisSerializer.java
delete mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-token-limiter/src/main/java/org/apache/shenyu/plugin/ai/token/limiter/redis/serializer/ShenyuRedisSerializationContext.java
create mode 100644
shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-handler/src/main/java/org/apache/shenyu/plugin/cache/cache/ApplicationConfigCache.java
create mode 100644
shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-handler/src/test/java/org/apache/shenyu/plugin/cache/ApplicationConfigCacheTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-kafka/src/main/java/org/apache/shenyu/plugin/logging/kafka/cache/KafkaClientCache.java
create mode 100644
shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-kafka/src/test/java/org/apache/shenyu/plugin/logging/kafka/cache/KafkaClientCacheTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-rabbitmq/src/main/java/org/apache/shenyu/plugin/logging/rabbitmq/cache/RabbitmqClientCache.java
create mode 100644
shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-rabbitmq/src/test/java/org/apache/shenyu/plugin/logging/rabbitmq/cache/RabbitmqClientCacheTest.java
create mode 100644 shenyu-plugin/shenyu-plugin-mcp-server/MCP_TOOL_EXAMPLES.md
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/MCP_TOOL_EXAMPLES_EN.md
copy {shenyu-client/shenyu-client-core =>
shenyu-plugin/shenyu-plugin-mcp-server}/pom.xml (59%)
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/McpServerPlugin.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/callback/ShenyuToolCallback.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/definition/ShenyuToolDefinition.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/handler/McpServerPluginDataHandler.java
copy
shenyu-sdk/shenyu-sdk-core/src/main/java/org/apache/shenyu/sdk/core/client/ShenyuSdkClientFactory.java
=>
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/holder/ShenyuMcpExchangeHolder.java
(57%)
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/manager/ShenyuMcpServerManager.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/model/McpServerToolParameter.java
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/dto/AuthPathApplyDTO.java
=>
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/model/ShenyuMcpServer.java
(50%)
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/model/ShenyuMcpServerTool.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/request/BodyWriterExchange.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/request/ParameterFormatter.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/request/RequestConfig.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/request/RequestConfigHelper.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/response/NonCommittingMcpResponseDecorator.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/response/ShenyuMcpResponseDecorator.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/session/McpSessionHelper.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/transport/MessageHandlingResult.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/transport/ShenyuSseServerTransportProvider.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/transport/ShenyuStreamableHttpServerTransportProvider.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/transport/SseEventFormatter.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/transport/StreamableHttpProviderBuilder.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/main/java/org/apache/shenyu/plugin/mcp/server/utils/JsonSchemaUtil.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/test/java/org/apache/shenyu/plugin/mcp/server/McpServerPluginIntegrationTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/test/java/org/apache/shenyu/plugin/mcp/server/McpServerPluginTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/test/java/org/apache/shenyu/plugin/mcp/server/callback/ShenyuToolCallbackTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/test/java/org/apache/shenyu/plugin/mcp/server/handler/McpServerPluginDataHandlerTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/test/java/org/apache/shenyu/plugin/mcp/server/manager/ShenyuMcpServerManagerTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/test/java/org/apache/shenyu/plugin/mcp/server/request/RequestConfigHelperTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-mcp-server/src/test/java/org/apache/shenyu/plugin/mcp/server/utils/JsonSchemaUtilTest.java
copy
shenyu-examples/shenyu-examples-dubbo/shenyu-examples-apache-dubbo-service-xml/src/main/resources/application.yml
=>
shenyu-plugin/shenyu-plugin-mcp-server/src/test/resources/application-test.yml
(79%)
create mode 100644
shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-motan/src/test/java/org/apache/shenyu/plugin/motan/proxy/MotanProxyServiceTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-sofa/src/test/java/org/apache/shenyu/plugin/sofa/cache/ApplicationConfigCacheTest.java
copy {shenyu-examples/shenyu-examples-plugin =>
shenyu-register-center/shenyu-register-client-beat}/pom.xml (79%)
create mode 100644
shenyu-register-center/shenyu-register-client-beat/src/main/java/org/apache/shenyu/register/client/beat/HeartbeatListener.java
copy
shenyu-register-center/{shenyu-register-common/src/main/java/org/apache/shenyu/register/common/config/ShenyuRegisterCenterConfig.java
=>
shenyu-register-client-beat/src/main/java/org/apache/shenyu/register/client/beat/ShenyuBootstrapHeartBeatConfig.java}
(66%)
create mode 100644
shenyu-register-center/shenyu-register-client/shenyu-register-client-api/src/test/java/org/apache/shenyu/register/client/api/FailbackRegistryRepositoryTest.java
create mode 100644
shenyu-register-center/shenyu-register-client/shenyu-register-client-api/src/test/java/org/apache/shenyu/register/client/api/retry/FailureRegistryTaskTest.java
rename
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/dto/InstanceInfoDTO.java
=>
shenyu-register-center/shenyu-register-common/src/main/java/org/apache/shenyu/register/common/dto/InstanceBeatInfoDTO.java
(58%)
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/query/NamespacePluginQueryCondition.java
=>
shenyu-register-center/shenyu-register-common/src/main/java/org/apache/shenyu/register/common/dto/McpToolsRegisterDTO.java
(54%)
create mode 100644
shenyu-registry/shenyu-registry-api/src/test/java/org/apache/shenyu/registry/api/config/RegisterConfigTest.java
create mode 100644
shenyu-registry/shenyu-registry-api/src/test/java/org/apache/shenyu/registry/api/path/InstancePathConstantsTest.java
delete mode 100644
shenyu-registry/shenyu-registry-etcd/src/main/java/org/apache/shenyu/registry/etcd/EtcdClient.java
copy {shenyu-examples/shenyu-examples-springmvc-tomcat =>
shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-beat}/pom.xml
(70%)
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-beat/src/main/java/org/apache/shenyu/register/client/beat/HeartbeatListenerConfiguration.java
copy
shenyu-spring-boot-starter/{shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-etcd
=>
shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-beat}/src/main/resources/META-INF/spring.factories
(93%)
copy {shenyu-admin-listener/shenyu-admin-listener-apollo =>
shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-beat}/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
(91%)
copy
shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/{shenyu-spring-boot-starter-client-tars
=> shenyu-spring-boot-starter-client-mcp}/pom.xml (90%)
copy
shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/{shenyu-spring-boot-starter-client-apache-dubbo/src/main/java/org/apache/shenyu/springboot/starter/client/apache/dubbo/ShenyuApacheDubboClientConfiguration.java
=>
shenyu-spring-boot-starter-client-mcp/src/main/java/org/apache/shenyu/springboot/starter/client/mcp/ShenyuMcpClientConfiguration.java}
(71%)
copy
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/{shenyu-spring-boot-starter-plugin-ratelimiter
=> shenyu-spring-boot-starter-plugin-ai-response-transformer}/pom.xml (87%)
copy
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/{shenyu-spring-boot-starter-plugin-ai-request-transformer/src/main/java/org/apache/shenyu/springboot/starter/plugin/ai/transformer/request/AiRequestTransformerPluginConfiguration.java
=>
shenyu-spring-boot-starter-plugin-ai-response-transformer/src/main/java/org/apache/shenyu/springboot/starter/plugin/ai/transformer/response/AiResponseTransformerPluginConfiguration.java}
(69%)
copy {shenyu-admin-listener/shenyu-admin-listener-consul =>
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-ai-response-transformer}/src/main/resources/META-INF/spring.factories
(88%)
copy {shenyu-admin-listener/shenyu-admin-listener-etcd =>
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-ai-response-transformer}/src/main/resources/META-INF/spring.provides
(92%)
copy {shenyu-admin-listener/shenyu-admin-listener-apollo =>
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-ai-response-transformer}/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
(87%)
copy
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/{shenyu-spring-boot-starter-plugin-httpclient
=> shenyu-spring-boot-starter-plugin-mcp-server}/pom.xml (89%)
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-mcp-server/src/main/java/org/apache/shenyu/springboot/starter/plugin/mcp/server/McpServerPluginConfiguration.java
copy
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/{shenyu-spring-boot-starter-plugin-basic-auth
=>
shenyu-spring-boot-starter-plugin-mcp-server}/src/main/resources/META-INF/spring.factories
(91%)
mode change 100755 => 100644
copy {shenyu-admin-listener/shenyu-admin-listener-etcd =>
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-mcp-server}/src/main/resources/META-INF/spring.provides
(93%)
copy
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/{shenyu-spring-boot-starter-plugin-basic-auth
=>
shenyu-spring-boot-starter-plugin-mcp-server}/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
(92%)
copy
shenyu-sync-data-center/shenyu-sync-data-api/src/main/java/org/apache/shenyu/sync/data/api/{MetaDataSubscriber.java
=> AiProxyApiKeyDataSubscriber.java} (75%)
create mode 100644
shenyu-sync-data-center/shenyu-sync-data-api/src/test/java/org/apache/shenyu/sync/data/core/AbstractNodeDataSyncServiceTest.java
create mode 100644
shenyu-sync-data-center/shenyu-sync-data-api/src/test/java/org/apache/shenyu/sync/data/core/AbstractPathDataSyncServiceTest.java
delete mode 100644
shenyu-sync-data-center/shenyu-sync-data-etcd/src/test/java/org/apache/shenyu/sync/data/etcd/EtcdClientTest.java
copy
shenyu-sync-data-center/shenyu-sync-data-http/src/main/java/org/apache/shenyu/sync/data/http/refresh/{DiscoveryUpstreamDataRefresh.java
=> AiProxyApiKeyDataRefresh.java} (50%)
create mode 100644
shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/AccessTokenManagerFixTest.java
create mode 100644
shenyu-sync-data-center/shenyu-sync-data-websocket/src/main/java/org/apache/shenyu/plugin/sync/data/websocket/handler/AiProxyApiKeyDataHandler.java