This is an automated email from the ASF dual-hosted git repository.
liuhongyu pushed a change to branch fix/fix_sync_bug
in repository https://gitbox.apache.org/repos/asf/shenyu.git
from 23954b4de3 Merge branch 'master' into fix/fix_sync_bug
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 2c49c4822e Merge branch 'master' into fix/fix_sync_bug
No new revisions were added by this update.
Summary of changes:
.github/workflows/e2e-k8s.yml | 8 +-
db/init/mysql/schema.sql | 34 +-
db/init/ob/schema.sql | 25 +-
db/init/og/create-table.sql | 27 +-
db/init/oracle/schema.sql | 47 +-
db/init/pg/create-table.sql | 28 +-
db/upgrade/2.7.0-upgrade-2.7.1-mysql.sql | 31 +-
db/upgrade/2.7.0-upgrade-2.7.1-ob.sql | 29 +-
db/upgrade/2.7.0-upgrade-2.7.1-og.sql | 27 +-
db/upgrade/2.7.0-upgrade-2.7.1-oracle.sql | 43 +-
db/upgrade/2.7.0-upgrade-2.7.1-pg.sql | 28 +-
pom.xml | 19 +-
.../admin/config/HttpUtilsConfiguration.java | 20 +-
.../shenyu/admin/controller/ApiController.java | 4 +-
.../controller/ConfigsExportImportController.java | 4 +-
.../admin/controller/DashboardUserController.java | 4 +-
.../admin/controller/DiscoveryController.java | 2 +-
.../controller/DiscoveryUpstreamController.java | 2 +-
.../shenyu/admin/controller/PluginController.java | 4 +-
.../admin/controller/PluginHandleController.java | 4 +-
.../admin/controller/ProxySelectorController.java | 2 +-
.../admin/controller/ResourceController.java | 4 +-
.../shenyu/admin/controller/RoleController.java | 4 +-
.../shenyu/admin/controller/RuleController.java | 4 +-
.../admin/controller/SelectorController.java | 4 +-
.../admin/controller/ShenyuDictController.java | 2 +-
.../admin/controller/SwaggerImportController.java | 91 ++
.../shenyu/admin/controller/TagController.java | 2 +-
.../admin/model/dto/SwaggerImportRequest.java | 70 ++
...rdLogService.java => SwaggerImportService.java} | 27 +-
.../service/impl/SwaggerImportServiceImpl.java | 151 ++++
.../service/manager/impl/SwaggerDocParser.java | 223 ++++-
.../shenyu/admin/utils/UrlSecurityUtils.java | 217 +++++
.../src/main/resources/sql-script/h2/schema.sql | 7 +-
.../{index.2a428c0d.css => index.7892d888.css} | 4 +-
.../src/main/resources/static/index.c72b2a38.js | 1 +
.../src/main/resources/static/index.db384a79.js | 1 -
shenyu-admin/src/main/resources/static/index.html | 4 +-
...ImplTest.java => SwaggerImportServiceTest.java} | 48 +-
shenyu-bootstrap/pom.xml | 8 +
shenyu-client/shenyu-client-core/pom.xml | 20 +-
.../apache/shenyu/common/config/ShenyuConfig.java | 76 ++
.../apache/shenyu/common/constant/Constants.java | 15 +
.../org/apache/shenyu/common/enums/PluginEnum.java | 7 +-
.../{HttpSchemeEnum.java => SwaggerVersion.java} | 39 +-
.../src/main/resources/application.yml | 1 -
shenyu-infra/pom.xml | 4 +
.../pom.xml | 2 +-
.../shenyu/infra/etcd/config}/EtcdConfig.java | 5 +-
.../org/apache/shenyu/infra/etcd/EtcdTests.java | 4 +-
.../pom.xml | 2 +-
.../shenyu/infra}/nacos/config/NacosACMConfig.java | 2 +-
.../shenyu/infra}/nacos/config/NacosConfig.java | 2 +-
.../org/apache/shenyu/infra/nacos/NacosTests.java | 4 +-
.../pom.xml | 2 +-
.../java/org/apache/shenyu/infra/x/XConfig.java | 4 +-
.../java/org/apache/shenyu/infra/x/XTests.java | 4 +-
.../pom.xml | 2 +-
.../shenyu/infra}/zookeeper/ZookeeperConfig.java | 3 +-
.../shenyu/infra/zookeeper/ZookeeperTests.java | 4 +-
shenyu-plugin/pom.xml | 1 +
.../plugin/ai/common/strategy/openai/OpenAI.java | 8 +-
.../ai/factory/DeepSeekModelFactoryTest.java | 67 ++
.../spring/ai/factory/OpenAiModelFactoryTest.java | 67 ++
.../ai/registry/AiModelFactoryRegistryTest.java | 66 ++
.../ai/common/strategy/AiModelFactoryTest.java | 31 +-
.../ai/common/strategy/openai/OpenAITest.java | 81 ++
.../shenyu/plugin/ai/proxy/AiProxyPluginTest.java | 133 +++
.../ai/proxy/handler/AiProxyPluginHandlerTest.java | 109 +++
.../ai/token/limiter/AiTokenLimiterPlugin.java | 139 ++-
.../base/cache/CommonPluginDataSubscriber.java | 12 +-
.../plugin/base/utils/ServerWebExchangeUtils.java | 2 +-
.../shenyu-plugin-mcp-server/MCP_TOOL_EXAMPLES.md | 492 ++++++++++
.../MCP_TOOL_EXAMPLES_EN.md | 499 +++++++++++
.../shenyu-plugin-mcp-server}/pom.xml | 72 +-
.../shenyu/plugin/mcp/server/McpServerPlugin.java | 644 +++++++++++++
.../mcp/server/callback/ShenyuToolCallback.java | 682 ++++++++++++++
.../server/definition/ShenyuToolDefinition.java | 110 +++
.../server/handler/McpServerPluginDataHandler.java | 169 ++++
.../mcp/server/holder/ShenyuMcpExchangeHolder.java | 40 +-
.../mcp/server/manager/ShenyuMcpServerManager.java | 629 +++++++++++++
.../mcp/server/model/McpServerToolParameter.java | 164 ++++
.../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 | 121 +++
.../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 | 105 +++
.../param/mapping/strategy/FormDataOperator.java | 33 +-
.../param/mapping/strategy/JsonOperator.java | 48 +-
.../shenyu-spring-boot-starter-plugin/pom.xml | 2 +-
.../pom.xml | 4 +-
.../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 +-
.../apache/shenyu/web/filter/FileSizeFilter.java | 20 +-
106 files changed, 8713 insertions(+), 412 deletions(-)
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/SwaggerImportController.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/dto/SwaggerImportRequest.java
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/SwaggerImportServiceImpl.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/UrlSecurityUtils.java
rename shenyu-admin/src/main/resources/static/{index.2a428c0d.css =>
index.7892d888.css} (76%)
create mode 100644 shenyu-admin/src/main/resources/static/index.c72b2a38.js
delete mode 100644 shenyu-admin/src/main/resources/static/index.db384a79.js
copy
shenyu-admin/src/test/java/org/apache/shenyu/admin/service/{manager/impl/SwaggerDocManagerImplTest.java
=> SwaggerImportServiceTest.java} (52%)
copy
shenyu-common/src/main/java/org/apache/shenyu/common/enums/{HttpSchemeEnum.java
=> SwaggerVersion.java} (70%)
copy shenyu-infra/{shenyu-infra-redis => shenyu-infra-etcd}/pom.xml (96%)
copy
{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
(93%)
copy shenyu-spi/src/test/java/org/apache/shenyu/spi/fixture/NopSPI.java =>
shenyu-infra/shenyu-infra-etcd/src/test/java/org/apache/shenyu/infra/etcd/EtcdTests.java
(92%)
copy shenyu-infra/{shenyu-infra-redis => shenyu-infra-nacos}/pom.xml (96%)
copy
{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
(98%)
copy
{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
(98%)
copy shenyu-spi/src/test/java/org/apache/shenyu/spi/fixture/NopSPI.java =>
shenyu-infra/shenyu-infra-nacos/src/test/java/org/apache/shenyu/infra/nacos/NacosTests.java
(92%)
copy shenyu-infra/{shenyu-infra-redis => shenyu-infra-x-module}/pom.xml (96%)
copy shenyu-spi/src/test/java/org/apache/shenyu/spi/fixture/NopSPI.java =>
shenyu-infra/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 (96%)
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%)
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-common/src/test/java/org/apache/shenyu/common/utils/SpiLoadFactoryTest.java
=>
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-common/src/test/java/org/apache/shenyu/plugin/ai/common/strategy/AiModelFactoryTest.java
(55%)
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-common/src/test/java/org/apache/shenyu/plugin/ai/common/strategy/openai/OpenAITest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/test/java/org/apache/shenyu/plugin/ai/proxy/AiProxyPluginTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/test/java/org/apache/shenyu/plugin/ai/proxy/handler/AiProxyPluginHandlerTest.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 (61%)
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
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 (92%)
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%)