This is an automated email from the ASF dual-hosted git repository.
dmsolr pushed a change to branch perf/upstream-snapshot-publish
in repository https://gitbox.apache.org/repos/asf/shenyu.git
from 54d43f31eb perf(loadbalancer): publish read-only healthy upstream
snapshots to avoid per-request list copies
add 5aa9517a8f refactor(registry): remove the orphaned
shenyu-registry-consul module (#7583) (#7611)
add 971354fef1 admin(dashboard): sync dashboard build from
apache/shenyu-dashboard@649bd45bd0a1609b09d4b32c9c90b85544515a72 (#7620)
add a5f412e6f7 fix: stream AI and MCP response chunks instead of buffering
via collectList (#6795) (#7484)
add 34f5180c18 feat(ai-proxy): harden reactive transport (#7629)
add 55fcd1c6fc fix(sign): reject malformed authorization parameters
(#6475) (#7633)
add b4e115367f feat(agent-gateway): trace logical MCP tool calls with
application telemetry (#7622)
add 0363808cba fix(context-path): preserve paths when prefix does not
match (#6508) (#7632)
add 6e4cb4cd98 docs(apollo): announce staged plugin-store migration (#7627)
add e9c6ef580c feat(k8s): configure ingress controller tuning (#7621)
add bfc34dd6cf feat: add inbound distributed tracing span for gateway
requests (#7615) (#7619)
add 36d388815d fix(admin): enforce unique data permission grants (#7610)
add 087cec130b fix(infra): include common module in infra reactor (#7588)
(#7606)
add 1b3f0f7898 fix: validate namespace before config import (#7634)
add 8262f498d5 fix(request): support partial mutation configurations
(#6507) (#7631)
add 4025c308f0 fix: block namespace deletion when discovery records exist
(#7630)
add fd2a1efac9 refactor(register): establish main-owned v1 protocol
boundary (#7605)
add 115ea34a6e fix(admin): bound ai proxy key resolution and retry
caching. (#7598)
add ad89a887ad fix(wasm): isolate concurrent executions with instance pool
(#7582)
add 1d599d90e8 [ISSUE #7383] Harden provider profiles and capability
validation. (#7580)
add 799dbfe93a refactor: extract shared discovery upstream data handler
base (#6605) (#7487)
add 7c541d78eb fix(admin): scope namespace plugin deletion to the request
namespace (#7571)
add 029f30f1a2 fix(admin): defer standalone config dispatch until
transaction commit (#7640)
add 508cccea3c docs: record registry core/implementation decoupling in
release notes (#7585) (#7642)
add e151c93e2f fix(httpclient): apply configured event loop resources
(#7654)
add 919ca775f0 feat: record the gateway span outcome and normalized
attributes (#7613) (#7655)
add 50c6481e02 fix(http-sync): recover login attempts after malformed
responses (#7656)
add 2fcf523868 fix(admin): clear failed upstream health-check futures
(#7657)
add 1eabdf7d1a fix(plugin): preserve explicit response content types
(#7658)
add efea8e0233 fix(admin): watch discovery services while backends are
offline (#7659)
add b4399fea9e fix(sync): resolve proxy selector deletions by id (#7660)
add 58b7d79e27 [ISSUE #6505][ISSUE #6506] Preserve HTTP response cache
semantics (#7662)
add 297ac6f849 fix(plugin): bound match cache entries with configurable
TTL (#7651) (#7664)
add 3af7bfc6a2 test: add controller tests for discovery and proxy selector
(#7511)
add 66d7d954ca [ISSUE #7590] Make supportSwaggerPluginSet a volatile
instance field. (#7604)
add 8f3ee32eab infra: add /retest action (#7683)
add 3648d53517 feat: add bounded parallel MCP remote-directory refresh
capability (#7648) (#7675)
add b534088619 feat: propagate the gateway trace context to the upstream
service (#7616) (#7682)
add c958888290 feat: export the gateway spans over OTLP and make the
tracing configurable (#7612) (#7705)
add d867e8d0d3 fix(admin): initialise V1Scale spec before setting replicas
(#7698) (#7710)
add 7c99d60908 [ISSUE #6602] Enforce Maven and Java build requirements
(#7680)
add 50a25f53f1 fix(plugin): bound MCP tool-response capture memory (#7646)
(#7671)
add a186c1cd6d fix(log): reduce routine matching and configuration-sync
log volume (#7643) (#7663)
add 903363f9bf Isolate pending requests in MCP Streamable HTTP sessions
(#7638)
add d971ca5434 fix(loadbalancer): preserve Dubbo upstream group and
version identity (#7625)
add 5f35cb0343 refactor(admin): remove obsolete API document viewer
backend (#7592) (#7603)
add e50646a23b fix(wasm): harden fixture verification and document
cleanup. (#7581)
add 9aa6bee969 OSPP2:Preserve MCP timeout responses and metrics (#7574)
add e61fb99904 fix: skip discovery upstream import entries without a
handler id (#6695) (#7517)
add cd00ac4cbb perf(admin): index operation log queries (#6675) (#7404)
add e22a6d9be4 perf(web): reuse compiled CORS origin patterns (#7263)
add 864c44ddcb fix(httpclient): retry network failures with backoff (#7201)
add 447206b995 perf(admin): coalesce selector import events (#7181)
add b7e940c612 fix(web): isolate beans by plugin identity (#7093)
add b2bc43376a infra: add PR comment commands for assign, close, and lgtm
(#7770)
add e9e15a3589 fix(httpclient): preserve failover with fixed retry backoff
(#7777)
add 67ef2b4f54 fix(admin): use ROWNUM for the Oracle instance identity
lookup (#7724) (#7754)
add f00c157123 fix(admin): restore empty namespace refreshes in cluster
mode (#7769)
add 04f7c2e8b7 test: cover the tracing of the gateway with an integrated
test (#7617) (#7784)
add 7cc1818ace admin(dashboard): sync dashboard build from
apache/shenyu-dashboard@b2586eac8ef16e5ceb2e0995554eaa49c5c40828 (#7787)
add 533096bd43 feat(logging): expose queue admission and capacity metrics
(#7833)
add 0c495e609f fix(ci): retry Maven Central downloads and restore E2E
cache (#7781)
add f5755bf870 [improve] Improve logging sample rate validation (#7834)
add a9043c7b77 fix(cache): initialize selector cache backends atomically
(#7795)
add 0423556a3a fix(plugin): evict cached rule handles when explicitly
cleared. (#7794)
add b173d9cb1c fix(request): preserve encoded paths when rebuilding the
request uri (#7685) (#7779)
add 32a1141d97 fix(admin): expose the instance record id in the instance
API (#7731) (#7742)
add 6dc19834f2 fix(plugin): prevent expired memory cache entries from
accumulating (#7745)
add 8bfdc9d413 fix(rewrite): look up rewrite metadata with an empty prefix
when context-path is absent (#7796) (#7798)
add f4bc4afa92 fix(admin): forward instance heartbeats to the master admin
(#7778) (#7797)
add 467e6d2750 fix(admin): ignore the management server in the startup
listener (#7789)
add 03d0141781 fix(admin): map DiscoveryVO name accessors to the
discoveryName field (#7788)
add 5ebaa340d9 fix(sdk): give each invocation independently owned header
values (#7771) (#7786)
add 7086afaffd [ISSUE #7716] Normalize instance information across
reporting paths. (#7785)
add bb076aedc0 fix(admin): stop the master selector scheduler on cluster
shutdown (#7774) (#7782)
add ef6f32b429 fix(plugin): prevent corruption of URL-encoded RPC query
and form parameters (#7757)
add f271f6c74d fix(sdk): accept all 2xx responses and validate failures on
void methods (#7711) (#7740)
add 059748ce25 fix(ai): prevent token usage loss across streaming flush
boundaries (#7730)
add dc46e1087e fix(sdk): quote path-variable replacement values in the
Spring SDK (#7712) (#7729)
add 00c2e56093 fix(bootstrap): own and dispose the gateway's custom Netty
event loops (#7715) (#7726)
add 315bcbc3d1 fix(admin): refresh instance metadata on repeated
heartbeats (#7692) (#7721)
add 8b3b0d330f [ISSUE #6461] Follow advertised WebSocket master addresses
(#7661)
add 7b57fa4070 fix(plugin-param-mapping): apply additions to empty form
requests. (#7755)
add fff85f433b fix(logging): shutdown hook cleanup reaches close0 when
hook removal throws (#7686) (#7699)
add 12502edda3 fix(register): key URI retry fallbacks by namespace (#7639)
add 26645fb445 build: remove misspelled log4j-1.2-api property and
obsolete zookeeper log4j exclusion (#7609) (#7618)
add de93952d9f fix(alert): guard against null alert/dateCreated in email
alert template (#6457)
add 3630671e20 fix(plugin-dubbo): reconcile gray selector caches on full
handle update (#7814)
add 81a85f3a4a feat(client-springmvc): register all Spring MVC path
aliases (#7813)
add eb0c32ff79 test(admin): use json payloads in the heartbeat metadata
tests (#7692) (#7846)
add e1f9ea87be perf(ai): parse the rule words only on a dictionary cache
miss (#7829) (#7850)
add 71baadfcca perf(cache): keep memory cache lookups on the subscribing
thread (#7849)
add 0e388ff338 fix(admin): notify gateways when discovery upstreams are
deleted (#7819)
add 1e9b2e2996 fix(loadbalancer): normalize bare protocol values in the
upstream domain (#7804) (#7806)
add 9bd13166e5 fix(agent-gateway): validate initialized notification
acknowledgements (#7805)
add 2dfe0d240a fix(admin): stop dynamic monitoring when no scaling policy
is active (#7783)
add 21e3c65ee3 fix(plugin-grpc): preserve upstreams on unchanged resolver
notifications. (#7747)
add 502f107157 fix(admin): use two-argument CONCAT for Oracle
operation-log searches (#7738) (#7756)
add 8af03fc9bb fix (admin) : shut down scaling monitor scheduler on
context close. (#7799)
add 65730ff88c fix(concurrent): count the -Xmx headroom as available
memory in MemoryLimitCalculator (#7809)
add fe6ab5b22a fix(httpclient): support non-enum status codes on decorated
responses (#7801) (#7810)
add 581bee9f15 [type:fix] Immediate websocket master rediscovery and
configurable check interval (#7808) (#7812)
add 0c0dfb5b47 fix(admin): order Oracle operation logs before applying the
row limit (#7739) (#7758)
add 3b1b7eae8a fix(register): report the bootstrap instance type from the
independent heartbeat (#7696) (#7722)
add 4d33568dda perf(grpc): reuse parsed rpcExt metadata across requests
(#7831) (#7841)
add 4af8e213f6 admin(dashboard): sync dashboard build from
apache/shenyu-dashboard@370cc40095ef4aa820449b7a9b736c7c98b6e9ab (#7866)
add dce6c01d95 feat(agent-gateway): authorize tools from trusted
identities (#7827)
add 0de96a9dcb fix(admin): keep persisted instance state when local
heartbeat is missing (#7697) (#7863)
add e562313ed1 perf(sync): avoid a full-payload byte allocation for the
websocket size log (#7836) (#7851)
add 261db07cae fix(logging): apply plugin body size limits to
request/response logging (#7852)
add 0f61285cde fix(admin): strip hop-by-hop headers in cluster forward
filter (#7807) (#7822)
add e09eb35b68 fix(register): report the bound server port for gateway
instance identity (#7732) (#7861)
add 81f086b40b fix(base): resolve partial identities when removing
metadata (#7790) (#7858)
add 46b5d157f1 perf(admin): avoid full-payload redaction in the websocket
send log (#7837) (#7856)
add 10da866ef4 fix(rewrite): fail safe on an unusable rewrite rule handle
(#7853) (#7854)
add 3ae637febe perf(admin): coalesce burst HTTP cache rebuilds by
namespace and group (#7843)
add 14018c416f perf(admin): reuse canonical websocket reconciliation
snapshots. (#7842)
add 0e6216d6ed fix: enforce single half-open circuit breaker probe (#7802)
add a02acfa53d fix(admin): publish recovered upstream status in discovery
snapshots (#7792)
add 85cbda4d65 fix(admin): exclusion search drops plugins matching any
searchable field (#7690) (#7691)
add ab5eeb9fae [ISSUE #6470] Apply AI Proxy plugin-level defaults at
runtime (#7676)
add 8785360b01 feat(loadbalancer): expose health-check round observability
metrics (#7647) (#7674)
add 61c9632f39 perf(plugin-base): batch namespace snapshot cache updates
and invalidation (#7645) (#7672)
add 4bec5dff5e test(admin): guard the operation-log audit indexes per
dialect (#6675) (#7544)
add 2777620105 feat: implement MQTT Last Will and Testament (LWT) (#6902)
add 17e68d7f4a feat(ai-proxy): harden configurable retry and fallback
policy (#7668)
add 3f6733db2c [ISSUE #7652] Support standalone Bootstrap configuration
from a local file (#7673)
add 3d9678ffef perf(admin): batch discovery synchronization queries (#7268)
add 4b81a9c1ef [ISSUE #7826][ISSUE #7760] Reuse Divide keys and enforce
one recovery probe (#7857)
add a241426e0c fix(sign): forward configured app parameter (#7199)
add 598b2ab148 fix(httpclient): enable keep-alive by default (#7179)
add ee52a6f948 fix(admin): persist the instance last heartbeat time (#7859)
add af9d695e87 fix(admin): pull API docs once per upstream event and skip
the lock when already refreshed (#7872)
add dd8b31240d fix(admin): preserve discovered upstreams across stale
health checks (#7882)
add 0facf7b7e9 fix(admin): enforce unique instance identity across
concurrent writers (#7885)
add 143070de07 refactor(ai-proxy): separate response adapter from upstream
request (#7876)
add 381f75a447 Expose configured HTTP routes as Agent Gateway tools (#7572)
add cf39582215 OSPP: feat(divide): propagate discovery upstream labels
(#7847)
add 9f57e93016 refactor(admin): rename misspelled loged column/field to
logged in selector and rule (#7589) (#7677)
add 69ed0a2560 Adapt authenticated JWT identities for Agent Gateway tools
(#7811)
add cc9a69a29a refactor(admin): drop commons-io by replacing two
IOUtils.copy call sites (#7607) (#7887)
add 8c21742a45 fix(admin): activate future time-window scaling policies
(#7706) (#7886)
add 49720801a9 fix(admin): prevent scaling rules with the same metric from
overwriting each other (#7875)
add fda742c48e perf(httpclient): add lightweight execution path for
retry=0 (#7824) (#7835)
add 0c8ebc8b31 fix(rewrite): reject unusable rule handles at the admin
write boundary (#7873) (#7874)
add fa3c20ffed build(deps): align SLF4J API and bridges with OSHI (#7890)
add c75ce827ed Merge remote-tracking branch 'origin/master' into
perf/upstream-snapshot-publish
No new revisions were added by this update.
Summary of changes:
.github/client-migration-inventory.json | 40 +
.github/scripts/check-client-boundary.py | 127 ++
.github/scripts/maven-with-retry-test.sh | 181 ++
.github/scripts/maven-with-retry.sh | 103 +
.github/scripts/native-sql-matrix.py | 128 +-
.github/scripts/resolve-test-case-matrix.sh | 11 +
.github/scripts/test-client-boundary.py | 110 +
.github/scripts/test-native-sql-matrix.py | 66 +
.github/scripts/test-wasm-fixtures.py | 197 ++
.github/scripts/verify-wasm-fixtures.py | 33 +-
.github/workflows/assign.yml | 79 +
.github/workflows/ci.yml | 34 +-
.github/workflows/close.yml | 71 +
.github/workflows/e2e-k8s.yml | 24 +-
.github/workflows/integrated-test.yml | 13 +-
.github/workflows/lgtm.yml | 66 +
.github/workflows/native-sql-matrix.yml | 4 +-
.github/workflows/retest.yml | 124 ++
.github/workflows/wasm-fixtures.yml | 4 +
README.md | 2 +-
RELEASE-NOTES.md | 69 +
actions/scripts/issue-manager.sh | 8 +
db/init/mysql/schema.sql | 12 +-
db/init/oracle/schema.sql | 18 +-
db/init/pg/create-table.sql | 16 +-
db/upgrade/2.7.1-upgrade-2.7.2-mysql.sql | 12 +-
db/upgrade/2.7.1-upgrade-2.7.2-ob.sql | 14 +
db/upgrade/2.7.1-upgrade-2.7.2-og.sql | 15 +
db/upgrade/2.7.1-upgrade-2.7.2-oracle.sql | 18 +
db/upgrade/2.7.1-upgrade-2.7.2-pg.sql | 15 +
db/upgrade/2.7.2-upgrade-2.7.3-h2.sql | 42 +
db/upgrade/2.7.2-upgrade-2.7.3-mysql.sql | 40 +
db/upgrade/2.7.2-upgrade-2.7.3-ob.sql | 40 +
db/upgrade/2.7.2-upgrade-2.7.3-og.sql | 42 +
db/upgrade/2.7.2-upgrade-2.7.3-oracle.sql | 42 +
db/upgrade/2.7.2-upgrade-2.7.3-pg.sql | 42 +
db/upgrade/native-sql-matrix.md | 11 +
db/upgrade/upgrade-guide.md | 75 +
docs/agent-gateway-key-auth.md | 102 +
docs/agent-gateway-principal-authorization.md | 129 ++
.../divide-circuit-breaker/environment.txt | 7 +
.../divide-circuit-breaker/profile-summary.csv | 52 +
docs/benchmarks/divide-circuit-breaker/results.csv | 55 +
.../divide-gateway/DivideGatewayBenchmark.java | 420 ++++
docs/benchmarks/divide-gateway/README.md | 192 ++
.../divide-gateway/baseline-execution-samples.txt | 2192 ++++++++++++++++++++
docs/benchmarks/divide-gateway/correctness.json | 1 +
docs/benchmarks/divide-gateway/environment.txt | 6 +
.../divide-gateway/optimized-execution-samples.txt | 1853 +++++++++++++++++
docs/benchmarks/divide-gateway/profile-summary.csv | 488 +++++
.../divide-gateway/request-local-only.csv | 55 +
docs/benchmarks/divide-gateway/results.csv | 55 +
docs/benchmarks/divide-gateway/run.ps1 | 142 ++
docs/benchmarks/http-cache-rebuild-256.csv | 73 +
docs/benchmarks/http-cache-rebuild-4096.csv | 73 +
docs/benchmarks/websocket-reconciliation/run-1.csv | 145 ++
docs/benchmarks/websocket-reconciliation/run-2.csv | 145 ++
docs/cache-request-eligibility.md | 59 +
docs/divide-circuit-breaker-benchmark.md | 199 ++
docs/http-cache-rebuild-coalescing.md | 222 ++
docs/plugin-store-apollo.md | 210 ++
docs/websocket-reconciliation-benchmark.md | 226 ++
pom.xml | 44 +-
shenyu-admin/pom.xml | 15 +-
.../src/http/http-debug-rule-controller-api.http | 4 +-
.../http/http-debug-selector-controller-api.http | 4 +-
.../config/RegistrationProtocolInterceptor.java | 55 +
.../shenyu/admin/config/WebConfiguration.java | 10 +
.../config/properties/HttpSyncProperties.java | 82 +
.../admin/controller/AlertReportController.java | 14 +-
.../shenyu/admin/controller/ApiDocController.java | 110 -
.../ClusterDataChangedEventController.java | 2 +-
.../controller/ConfigsExportImportController.java | 10 +-
.../admin/controller/InstanceController.java | 14 +-
.../controller/NamespacePluginController.java | 2 +-
.../ShenyuClientHttpRegistryController.java | 28 +-
.../admin/discovery/DefaultDiscoveryProcessor.java | 4 +-
.../DiscoveryDataChangedEventSyncListener.java | 24 +
.../listener/AbstractDataChangedListener.java | 26 +-
.../admin/listener/ApplicationStartListener.java | 8 +
.../listener/ClusterDataChangedEventForwarder.java | 1 +
.../admin/listener/DataChangedEventDispatcher.java | 117 +-
.../listener/http/HttpCacheRebuildCoordinator.java | 173 ++
.../http/HttpLongPollingDataChangedListener.java | 90 +-
.../listener/websocket/WebsocketCollector.java | 60 +-
.../websocket/WebsocketDataReconciler.java | 54 +-
.../shenyu/admin/mapper/DiscoveryRelMapper.java | 8 +
.../mode/cluster/filter/ClusterForwardFilter.java | 113 +-
.../mode/cluster/service/ShenyuClusterService.java | 16 +-
.../shenyu/admin/model/dto/AlertReportRequest.java | 101 +
.../model/dto/ClusterDataChangedEventPayload.java | 23 +
.../org/apache/shenyu/admin/model/dto/RuleDTO.java | 42 +-
.../apache/shenyu/admin/model/dto/SelectorDTO.java | 42 +-
.../shenyu/admin/model/entity/InstanceInfoDO.java | 25 +-
.../apache/shenyu/admin/model/entity/RuleDO.java | 44 +-
.../shenyu/admin/model/entity/SelectorDO.java | 44 +-
.../admin/model/event/rule/RuleChangedEvent.java | 4 +-
.../model/event/selector/SelectorChangedEvent.java | 4 +-
.../apache/shenyu/admin/model/vo/DiscoveryVO.java | 4 +-
.../org/apache/shenyu/admin/model/vo/DocVO.java | 186 --
.../shenyu/admin/model/vo/InstanceInfoVO.java | 23 +
.../org/apache/shenyu/admin/model/vo/RuleVO.java | 26 +-
.../apache/shenyu/admin/model/vo/SelectorVO.java | 26 +-
.../monitor/subject/cache/ScaleRuleCache.java | 29 +-
.../admin/scale/scaler/KubernetesScaler.java | 8 +-
.../shenyu/admin/scale/scaler/ScaleService.java | 138 +-
.../scale/scaler/dynamic/TaskSchedulerManager.java | 37 +-
.../admin/service/DiscoveryUpstreamService.java | 8 +
.../admin/service/NamespacePluginService.java | 3 +-
.../service/impl/DiscoveryUpstreamServiceImpl.java | 128 +-
.../admin/service/impl/InstanceCheckService.java | 7 +-
.../service/impl/InstanceInfoServiceImpl.java | 20 +-
.../service/impl/NamespacePluginServiceImpl.java | 8 +-
.../admin/service/impl/NamespaceServiceImpl.java | 5 +
.../service/impl/ProxySelectorServiceImpl.java | 10 +
.../shenyu/admin/service/impl/RuleServiceImpl.java | 3 +
.../admin/service/impl/SandboxServiceImpl.java | 4 +-
.../admin/service/impl/ScaleRuleServiceImpl.java | 9 +-
.../admin/service/impl/SelectorServiceImpl.java | 48 +-
.../service/impl/SwaggerImportServiceImpl.java | 6 +-
.../admin/service/impl/UpstreamCheckService.java | 164 +-
.../shenyu/admin/service/manager/DocManager.java | 8 -
.../admin/service/manager/impl/DocManagerImpl.java | 17 -
.../manager/impl/LoadServiceDocEntryImpl.java | 9 +-
.../manager/impl/PullSwaggerDocServiceImpl.java | 27 +-
.../AbstractShenyuClientRegisterServiceImpl.java | 2 +-
.../FallbackShenyuClientRegisterService.java | 6 +-
.../ShenyuClientRegisterMcpServiceImpl.java | 2 +-
.../service/support/AiProxyRealKeyResolver.java | 146 +-
.../shenyu/admin/transfer/DiscoveryTransfer.java | 16 +-
.../utils/DiscoveryUpstreamPropsValidator.java | 62 +
.../shenyu/admin/utils/InstanceInfoUtils.java | 64 +
.../apache/shenyu/admin/utils/SelectorUtil.java | 2 +-
.../validator/RewriteRuleHandleValidator.java | 62 +
shenyu-admin/src/main/resources/application.yml | 4 +
.../resources/mappers/discovery-rel-sqlmap.xml | 15 +
.../resources/mappers/instance-info-sqlmap.xml | 35 +-
.../mappers/namespace-plugin-rel-sqlmap.xml | 2 +-
.../mappers/operation-record-log-sqlmap.xml | 15 +-
.../src/main/resources/mappers/plugin-sqlmap.xml | 2 +-
.../src/main/resources/mappers/rule-sqlmap.xml | 22 +-
.../src/main/resources/mappers/selector-sqlmap.xml | 24 +-
.../src/main/resources/sql-script/h2/schema.sql | 10 +-
.../src/main/resources/static/index.16dee401.js | 1 +
.../src/main/resources/static/index.c7270c38.js | 1 -
shenyu-admin/src/main/resources/static/index.html | 2 +-
.../config/properties/HttpSyncPropertiesTest.java | 20 +
.../controller/AlertReportControllerTest.java | 120 ++
.../admin/controller/ApiDocControllerTest.java | 73 -
.../ClusterDataChangedEventControllerTest.java | 2 +
.../ConfigsExportImportControllerTest.java | 23 +
.../admin/controller/DiscoveryControllerTest.java | 171 ++
.../admin/controller/InstanceControllerTest.java | 52 +-
.../controller/ProxySelectorControllerTest.java | 201 ++
.../RegistrationProtocolCompatibilityTest.java | 190 ++
.../admin/controller/RuleControllerTest.java | 6 +-
.../admin/controller/SelectorControllerTest.java | 6 +-
.../discovery/DefaultDiscoveryProcessorTest.java | 6 +-
.../DiscoveryDataChangedEventSyncListenerTest.java | 166 ++
.../discovery/NacosDiscoveryRecoveryTest.java | 233 +++
.../ZookeeperClientDiscoveryIntegrationTest.java | 137 +-
.../listener/ApplicationStartListenerTest.java | 23 +
.../ClusterDataChangedEventForwarderTest.java | 29 +-
.../listener/DataChangedEventDispatcherTest.java | 148 +-
.../listener/http/HttpCacheRebuildBenchmark.java | 425 ++++
.../http/HttpCacheRebuildCoordinatorTest.java | 296 +++
.../admin/listener/http/HttpCacheRebuildTest.java | 357 ++++
.../HttpLongPollingDataChangedListenerTest.java | 57 +-
.../listener/websocket/WebsocketCollectorTest.java | 112 +-
.../WebsocketDataChangedListenerTest.java | 2 +-
.../WebsocketDataReconcilerBenchmark.java | 323 +++
.../websocket/WebsocketDataReconcilerTest.java | 165 ++
.../shenyu/admin/mapper/AdminQueryIndexTest.java | 4 +
.../admin/mapper/DataPermissionMapperTest.java | 76 +
.../admin/mapper/DiscoveryBatchQueryTest.java | 78 +
.../admin/mapper/DiscoveryNamespaceQueryTest.java | 2 +-
.../mapper/InstanceInfoMapperOracleSqlTest.java | 62 +
.../admin/mapper/InstanceInfoMapperTest.java | 62 +-
.../admin/mapper/InstanceInfoUpsertTest.java | 247 +++
.../admin/mapper/NamespacePluginRelMapperTest.java | 19 +
.../mapper/OperationLogIndexContractTest.java | 132 ++
.../mapper/OperationRecordLogConcatSqlTest.java | 61 +
.../OperationRecordLogSelectLimitSqlTest.java | 58 +
.../shenyu/admin/mapper/PluginMapperTest.java | 19 +
.../apache/shenyu/admin/mapper/RuleMapperTest.java | 2 +-
.../shenyu/admin/mapper/SelectorMapperTest.java | 2 +-
.../cluster/filter/ClusterForwardFilterTest.java | 385 ++++
.../cluster/service/ShenyuClusterServiceTest.java | 127 ++
.../event/selector/SelectorChangedEventTest.java | 6 +-
.../monitor/subject/cache/ScaleRuleCacheTest.java | 146 ++
.../admin/scale/scaler/KubernetesScalerTest.java | 109 +
.../admin/scale/scaler/ScaleServiceTest.java | 259 +++
.../scaler/dynamic/TaskSchedulerManagerTest.java | 97 +
.../shenyu/admin/service/ConfigsServiceTest.java | 4 +-
.../service/DiscoveryUpstreamServiceTest.java | 357 +++-
.../admin/service/InstanceInfoServiceTest.java | 19 +
.../admin/service/NamespacePluginServiceTest.java | 19 +
.../admin/service/NamespaceServiceImplTest.java | 128 ++
.../admin/service/ProxySelectorServiceTest.java | 69 +-
.../shenyu/admin/service/RuleServiceTest.java | 54 +
.../shenyu/admin/service/ScaleRuleServiceTest.java | 58 +-
.../shenyu/admin/service/SelectorServiceTest.java | 48 +-
.../shenyu/admin/service/SyncDataServiceTest.java | 2 +-
.../service/UpstreamCheckServiceRecoveryTest.java | 170 ++
.../service/UpstreamCheckServiceSyncTest.java | 391 ++++
.../service/impl/InstanceCheckServiceTest.java | 75 +
.../service/impl/InstanceInfoServiceImplTest.java | 144 ++
.../service/impl/SwaggerImportServiceImplTest.java | 9 +-
.../service/manager/impl/DocManagerImplTest.java | 44 +
.../manager/impl/LoadServiceDocEntryImplTest.java | 27 +
.../manager/impl/SwaggerDocManagerImplTest.java | 112 +
.../service/publish/RuleEventPublisherTest.java | 2 +-
.../publish/SelectorEventPublisherTest.java | 2 +-
...bstractShenyuClientRegisterServiceImplTest.java | 2 +-
.../FallbackShenyuClientRegisterServiceTest.java | 56 +
.../ShenyuClientRegisterMcpServiceImplTest.java | 2 +-
.../support/AiProxyRealKeyResolverTest.java | 278 ++-
.../admin/transfer/DiscoveryTransferTest.java | 73 +-
.../utils/DiscoveryUpstreamPropsValidatorTest.java | 48 +
.../shenyu/admin/utils/InstanceInfoUtilsTest.java | 75 +
.../shenyu/admin/utils/SelectorUtilTest.java | 8 +-
.../AgentGatewayRuleHandleValidatorTest.java | 16 +
.../validator/RewriteRuleHandleValidatorTest.java | 71 +
.../alert/strategy/EmailAlertNotifyStrategy.java | 5 +-
.../strategy/EmailAlertNotifyStrategyTest.java | 65 +-
shenyu-bootstrap/pom.xml | 15 +
.../src/main/resources/application.yml | 49 +
.../init/SpringMvcClientEventListener.java | 112 +-
.../register/SpringMvcApiMetaRegister.java | 158 +-
.../init/SpringMvcClientEventListenerTest.java | 56 +-
.../register/SpringMvcApiMetaRegisterTest.java | 101 +
.../shenyu-client-mcp-common/pom.xml | 6 +
.../mcp/common/constants/OpenApiConstants.java | 104 +-
.../common/constants/RequestTemplateConstants.java | 35 +-
.../constants/ShenyuToolConfigConstants.java | 27 +-
.../mcp/common/dto/ShenyuMcpRequestConfig.java | 50 +-
.../client/mcp/common/dto/ShenyuMcpTool.java | 123 +-
.../mcp/generator/McpRequestConfigGenerator.java | 68 +-
.../generator/McpToolsRegisterDTOGenerator.java | 47 +-
.../mcp/generator/McpCompatibilityAdapterTest.java | 72 +
.../tars/TarsServiceBeanPostProcessorTest.java | 2 +-
shenyu-common/pom.xml | 6 +
.../common/concurrent/MemoryLimitCalculator.java | 15 +-
.../apache/shenyu/common/config/ShenyuConfig.java | 271 +++
.../apache/shenyu/common/constant/Constants.java | 23 +-
.../common/dto/AgentGatewayHttpToolConfig.java | 281 +++
.../shenyu/common/dto/AgentGatewayMcpConfig.java | 9 +-
.../org/apache/shenyu/common/dto/RuleData.java | 41 +-
.../common/dto/convert/rule/RateLimiterHandle.java | 33 +-
.../common/dto/convert/rule/RequestHandle.java | 4 +-
.../common/dto/convert/rule/RewriteHandle.java | 3 +-
.../org/apache/shenyu/common/enums/PluginEnum.java | 5 +
.../shenyu/common/metrics/LoggingQueueMetrics.java | 163 ++
.../shenyu/common/utils/BoundServerPort.java | 49 +
.../shenyu/common/utils/RewriteHandleUtils.java | 73 +
.../shenyu/common/utils/UpstreamLabelsUtils.java | 66 +
.../concurrent/MemoryLimitCalculatorTest.java | 9 +
.../MemorySafeLinkedBlockingQueueTest.java | 35 +-
.../shenyu/common/config/ShenyuConfigTest.java | 11 +
.../common/dto/AgentGatewayHttpToolConfigTest.java | 136 ++
.../apache/shenyu/common/dto/AlarmContentTest.java | 49 +
.../org/apache/shenyu/common/dto/RuleDataTest.java | 24 +-
.../dto/convert/rule/RateLimiterHandleTest.java | 4 +-
.../common/dto/convert/rule/RequestHandleTest.java | 37 +
.../common/dto/convert/rule/RewriteHandleTest.java | 14 +
.../common/metrics/LoggingQueueMetricsTest.java | 47 +
.../BoundServerPortTest.java} | 38 +-
.../common/utils/RewriteHandleUtilsTest.java | 67 +
.../common/utils/UpstreamLabelsUtilsTest.java | 62 +
.../src/main/release-docs/LICENSE | 11 +
.../shenyu-e2e-case/compose/fixtures/httpbin.py | 57 +
.../shenyu-e2e-case/compose/fixtures/httpbin.yml | 31 +
.../compose/fixtures/test_httpbin.py | 97 +
.../compose/storage/shenyu-storage-h2.yml | 6 +
.../compose/storage/shenyu-storage-mysql.yml | 6 +
.../compose/storage/shenyu-storage-opengauss.yml | 6 +
.../compose/storage/shenyu-storage-postgres.yml | 6 +
.../sync/shenyu-sync-websocket-cluster-jdbc.yml | 6 +
.../shenyu-sync-websocket-cluster-zookeeper.yml | 6 +
.../logging/rocketmq/DividePluginCases.java | 75 +-
.../rocketmq/RocketMQLogConsumptionTest.java | 94 +
.../compose/script/e2e-springcloud-sync-compose.sh | 2 +-
.../shenyu-e2e-case-spring-cloud/pom.xml | 9 +
.../springcloud/SpringCloudPluginTest.java | 28 +-
.../springcloud/SpringCloudRouteReadinessTest.java | 57 +
.../compose/script/compose-script-test.sh | 2 +
.../compose/script/e2e-mysql-compose.sh | 2 +-
.../compose/script/e2e-websocket-sync-compose.sh | 2 +-
.../shenyu/e2e/model/data/RuleCacheData.java | 38 +-
.../org/apache/shenyu/e2e/model/data/RuleData.java | 4 +-
.../apache/shenyu/e2e/model/data/SelectorData.java | 4 +-
.../apache/shenyu/e2e/model/response/RuleDTO.java | 4 +-
.../shenyu/e2e/model/response/SelectorDTO.java | 4 +-
.../e2e/engine/function/WaitForHelperTest.java | 69 +-
shenyu-examples/pom.xml | 15 +-
shenyu-infra/pom.xml | 1 +
shenyu-integrated-test/pom.xml | 1 +
.../shenyu-integrated-test-tracing/Dockerfile | 37 +
.../config/otel-collector.yml | 34 +
.../docker-compose.yml | 87 +-
.../shenyu-integrated-test-tracing/pom.xml | 119 ++
.../script/healthcheck.sh | 0
.../script/services.list | 19 +
.../test/tracing/TracingIntegratedBootstrap.java | 20 +-
.../src/main/resources/application-local.yml | 67 +
.../src/main/resources/application.yml | 19 +
.../shenyu/integrated/test/tracing/Deployment.java | 209 ++
.../tracing/TracingGatewayIntegrationTest.java | 468 +++++
.../shenyu/k8s/parser/ContextPathParser.java | 2 +-
.../shenyu/k8s/parser/DivideIngressParser.java | 4 +-
.../shenyu/k8s/parser/DubboIngressParser.java | 4 +-
.../org/apache/shenyu/k8s/parser/GrpcParser.java | 4 +-
.../apache/shenyu/k8s/parser/HttpRouteParser.java | 2 +-
.../org/apache/shenyu/k8s/parser/SofaParser.java | 4 +-
.../apache/shenyu/k8s/parser/WebSocketParser.java | 4 +-
.../loadbalancer/cache/UpstreamCacheManager.java | 44 +-
.../loadbalancer/cache/UpstreamCheckTask.java | 213 +-
.../shenyu/loadbalancer/entity/Upstream.java | 128 +-
.../loadbalancer/entity/UpstreamIdentity.java | 86 +
.../shenyu/loadbalancer/spi/HashLoadBalancer.java | 2 +-
.../loadbalancer/spi/LeastActiveLoadBalance.java | 2 +-
.../loadbalancer/spi/RoundRobinLoadBalancer.java | 10 +-
.../cache/UpstreamCacheManagerTest.java | 89 +
.../loadbalancer/cache/UpstreamCheckTaskTest.java | 152 ++
.../shenyu/loadbalancer/entity/UpstreamTest.java | 173 +-
.../loadbalancer/spi/HashLoadBalancerTest.java | 28 +
.../spi/LeastActiveLoadBalanceTest.java | 16 +
shenyu-plugin/pom.xml | 1 +
.../shenyu-plugin-agent-gateway/README.md | 187 ++
shenyu-plugin/shenyu-plugin-agent-gateway/pom.xml | 6 +
.../agent/gateway/AgentGatewayConstants.java | 5 +
.../plugin/agent/gateway/AgentGatewayPlugin.java | 10 +-
.../gateway/protocol/AgentMcpCallObservation.java | 77 +-
.../agent/gateway/protocol/AgentMcpCallTracer.java | 55 +
.../agent/gateway/protocol/AgentMcpDispatcher.java | 23 +
.../gateway/protocol/AgentMcpExecutionContext.java | 46 +
.../gateway/protocol/AgentMcpHttpHandler.java | 34 +-
.../gateway/remote/RemoteCatalogLifecycle.java | 25 +-
.../agent/gateway/remote/RemoteToolDirectory.java | 19 +-
.../gateway/remote/RequestScopedMcpClient.java | 6 +-
.../agent/gateway/security/AgentMcpIdentity.java | 52 +-
.../agent/gateway/tool/AgentHttpToolExecutor.java | 338 +++
.../agent/gateway/tool/AgentHttpToolInvoker.java} | 20 +-
.../agent/gateway/tool/AgentHttpToolProvider.java | 82 +
.../agent/gateway/tool/AgentToolRegistry.java | 22 +
.../agent/gateway/AgentHttpToolRoutingTest.java | 335 +++
.../gateway/protocol/AgentMcpAggregationTest.java | 23 +
.../protocol/AgentMcpCallObservationTest.java | 30 +
.../gateway/protocol/AgentMcpCallTracerTest.java | 185 ++
.../gateway/remote/RemoteCatalogLifecycleTest.java | 45 +
.../gateway/remote/RemoteToolDirectoryTest.java | 148 ++
.../gateway/remote/RequestScopedMcpClientTest.java | 183 +-
.../gateway/security/AgentMcpIdentityTest.java | 58 +
.../gateway/tool/AgentHttpToolExecutorTest.java | 276 +++
.../gateway/tool/AgentHttpToolNamespaceTest.java | 94 +
.../shenyu-plugin-ai-proxy/README.md | 116 +-
.../plugin/ai/proxy/enhanced/AiProxyPlugin.java | 3 +
.../enhanced/conversion/AiResponseAdapter.java | 29 +-
.../enhanced/handler/AiProxyPluginHandler.java | 37 +-
.../ai/proxy/enhanced/model/AiUpstreamRequest.java | 22 -
.../ai/proxy/enhanced/model/PreparedAiRequest.java | 36 +-
.../ai/proxy/enhanced/model/ShenyuAiRequest.java | 27 +
.../ai/proxy/enhanced/protocol/OpenAiChat.java | 1 +
.../proxy/enhanced/protocol/OpenAiResponses.java | 1 +
.../enhanced/provider/AiProviderCapabilities.java | 140 ++
.../proxy/enhanced/provider/AiProxyProvider.java | 28 +-
.../plugin/ai/proxy/enhanced/provider/OpenAi.java | 225 +-
.../proxy/enhanced/provider/OpenAiCompatible.java | 30 +-
.../enhanced/provider/OpenAiProviderOptions.java | 179 ++
.../enhanced/service/AiProxyConfigService.java | 15 +-
.../ai/proxy/enhanced/service/AiProxyEngine.java | 127 +-
.../proxy/enhanced/service/AiProxyRetryPolicy.java | 97 +
.../enhanced/service/AiProxyRetryProperties.java | 134 ++
.../transport/AiProxyTransportProperties.java | 157 ++
.../enhanced/transport/AiTransportException.java | 68 +
.../transport/WebClientAiProxyTransport.java | 191 +-
.../enhanced/AiProxyHttpCompatibilityTest.java | 41 +-
.../ai/proxy/enhanced/AiProxyPluginTest.java | 22 +-
.../enhanced/handler/AiProxyPluginHandlerTest.java | 84 +-
.../provider/AiProxyProviderFactoryTest.java | 28 +
.../enhanced/provider/AiProxyProviderHttpTest.java | 144 ++
.../provider/OpenAiProviderOptionsTest.java | 340 +++
.../enhanced/service/AiProxyConfigServiceTest.java | 47 +-
.../service/AiProxyEngineOrchestrationTest.java | 315 ++-
.../proxy/enhanced/service/AiProxyEngineTest.java | 139 +-
.../enhanced/service/AiProxyRetryPolicyTest.java | 107 +
.../service/AiProxyRetryPropertiesTest.java | 89 +
.../transport/WebClientAiProxyTransportTest.java | 285 +++
.../request/AiRequestTransformerPlugin.java | 7 +-
.../response/AiResponseTransformerPlugin.java | 7 +-
.../ai/sensitive/word/SensitiveWordPlugin.java | 49 +-
.../ai/sensitive/word/SensitiveWordPluginTest.java | 82 +
.../ai/token/limiter/AiTokenLimiterPlugin.java | 52 +-
.../ai/token/limiter/AiTokenLimiterPluginTest.java | 86 +
shenyu-plugin/shenyu-plugin-api/pom.xml | 7 +
.../org/apache/shenyu/plugin/api/ShenyuPlugin.java | 3 +-
.../shenyu/plugin/api/ShenyuPluginChain.java | 9 +
.../plugin/api/tracing/TraceContextCarrier.java | 51 +-
.../plugin/api/tracing/TraceContextPropagator.java | 53 +
.../shenyu/plugin/api/utils/BodyParamUtils.java | 6 +-
.../shenyu/plugin/api/utils/SpringBeanUtils.java | 60 +-
.../TraceIdUtils.java} | 29 +-
.../plugin/api/utils/WebFluxResultUtils.java | 13 +-
.../shenyu/plugin/api/utils/TraceIdUtilsTest.java | 53 +
.../plugin/api/utils/WebFluxResultUtilsTest.java | 169 ++
shenyu-plugin/shenyu-plugin-base/pom.xml | 5 +
.../shenyu/plugin/base/AbstractShenyuPlugin.java | 15 +-
.../shenyu/plugin/base/cache/BaseDataCache.java | 64 +
.../base/cache/CommonPluginDataSubscriber.java | 203 +-
.../cache/CommonProxySelectorDataSubscriber.java | 32 +-
.../shenyu/plugin/base/cache/MatchDataCache.java | 31 +-
.../shenyu/plugin/base/cache/MetaDataCache.java | 31 +-
.../circuitbreaker/UpstreamCircuitBreaker.java | 163 +-
.../AbstractDiscoveryUpstreamDataHandler.java | 72 +
.../shenyu/plugin/base/utils/UpstreamProps.java | 125 ++
.../plugin/base/AbstractShenyuPluginTest.java | 122 +-
.../org/apache/shenyu/plugin/base/LogCapture.java | 78 +
.../base/cache/CommonPluginDataSubscriberTest.java | 197 ++
.../CommonProxySelectorDataSubscriberTest.java | 103 +
.../plugin/base/cache/MatchDataCacheTest.java | 32 +
.../plugin/base/cache/MetaDataCacheTest.java | 50 +
.../circuitbreaker/UpstreamCircuitBreakerTest.java | 199 +-
.../AbstractDiscoveryUpstreamDataHandlerTest.java | 135 ++
.../plugin/base/utils/UpstreamPropsTest.java | 103 +
.../apache/shenyu/plugin/cache/CachePlugin.java | 127 +-
.../apache/shenyu/plugin/cache/CachedResponse.java | 164 ++
.../plugin/cache/cache/ApplicationConfigCache.java | 75 +-
.../shenyu/plugin/cache/utils/CacheUtils.java | 22 +-
.../ApplicationConfigCacheConcurrencyTest.java | 261 +++
.../shenyu/plugin/cache/CachePluginTest.java | 18 +-
.../plugin/cache/CacheRequestEligibilityTest.java | 272 +++
.../plugin/cache/CacheResponseReplayTest.java | 346 +++
.../shenyu/plugin/cache/CachedResponseTest.java | 84 +
.../shenyu/plugin/cache/utils/CacheUtilsTest.java | 67 +
.../shenyu-plugin-cache-memory/pom.xml | 4 +
.../shenyu/plugin/cache/memory/MemoryCache.java | 60 +-
.../plugin/cache/memory/MemoryCacheTest.java | 105 +-
.../plugin/context/path/ContextPathPlugin.java | 3 +
.../plugin/context/path/ContextPathPluginTest.java | 24 +
.../plugin/ratelimiter/RateLimiterPluginTest.java | 2 +-
.../httpclient/AbstractHttpClientPlugin.java | 98 +-
.../plugin/httpclient/DefaultRetryStrategy.java | 114 +-
.../ExponentialRetryBackoffStrategy.java | 37 +-
.../plugin/httpclient/FixedRetryStrategy.java | 20 +-
.../httpclient/HttpHeadersTraceContextCarrier.java | 51 +-
.../plugin/httpclient/NettyHttpClientPlugin.java | 17 +-
.../NettyHttpHeadersTraceContextCarrier.java | 53 +-
.../shenyu/plugin/httpclient/WebClientPlugin.java | 3 +
.../httpclient/config/HttpClientProperties.java | 4 +-
.../httpclient/AbstractHttpClientPluginTest.java | 230 ++
...ractHttpClientPluginTraceContextLoaderTest.java | 56 +
.../httpclient/HttpClientPropertiesTest.java | 1 +
.../httpclient/NettyHttpClientPluginTest.java | 65 +
.../NettyHttpClientPluginTraceContextTest.java | 124 ++
.../plugin/httpclient/RetryStrategyTest.java | 149 +-
.../httpclient/TestTraceContextPropagator.java | 64 +
.../WebClientPluginTraceContextTest.java | 151 ++
...henyu.plugin.api.tracing.TraceContextPropagator | 18 +
.../shenyu-plugin-logging-common/README.md | 62 +
.../logging/common/AbstractLoggingPlugin.java | 6 +-
.../plugin/logging/common/body/BodyWriter.java | 124 +-
.../common/body/LoggingServerHttpRequest.java | 23 +-
.../common/body/LoggingServerHttpResponse.java | 32 +-
.../common/client/AbstractLogConsumeClient.java | 36 +-
.../common/collector/AbstractLogCollector.java | 33 +-
.../logging/common/config/GenericGlobalConfig.java | 14 +-
.../common/constant/GenericLoggingConstant.java | 6 +-
.../logging/common/sampler/CountSampler.java | 10 +-
.../common/utils/LogCollectConfigUtils.java | 35 +-
.../common/AbstractLoggingPluginBodyLimitTest.java | 467 +++++
.../plugin/logging/common/body/BodyWriterTest.java | 172 ++
.../common/body/LoggingBodySaturatedSizeTest.java | 94 +
.../client/AbstractLogConsumeClientTest.java | 71 +
.../common/collector/LogCollectorMetricsTest.java | 341 +++
.../logging/common/sampler/CountSamplerTest.java | 44 +
.../common/utils/LogCollectConfigUtilsTest.java | 46 +
.../NonCommittingMcpResponseDecorator.java | 123 +-
...henyuStreamableHttpServerTransportProvider.java | 151 +-
.../NonCommittingMcpResponseDecoratorTest.java | 137 +-
...uStreamableHttpServerTransportProviderTest.java | 331 ++-
.../shenyu/plugin/metrics/constant/LabelNames.java | 12 +
.../prometheus/LoggingQueueMetricsCollector.java | 66 +
.../prometheus/PrometheusMetricsService.java | 1 +
.../LoggingQueueMetricsCollectorTest.java | 97 +
.../prometheus/PrometheusMetricsServiceTest.java | 24 +
.../handler/ModifyResponsePluginDataHandler.java | 5 +
.../modify/response/ModifyResponsePluginTest.java | 38 +-
.../ModifyResponsePluginDataHandlerTest.java | 45 +
.../handler/ParamMappingPluginDataHandler.java | 5 +
.../param/mapping/strategy/FormDataOperator.java | 3 +-
.../handler/ParamMappingPluginDataTest.java | 41 +
.../mapping/strategy/FormDataOperatorTest.java | 86 +-
.../shenyu-plugin-divide/pom.xml | 38 +
.../plugin/divide/CircuitBreakerCandidates.java | 173 ++
.../apache/shenyu/plugin/divide/DividePlugin.java | 71 +-
.../divide/handler/DivideUpstreamDataHandler.java | 73 +-
.../divide/CircuitBreakerCandidatesTest.java | 298 +++
.../divide/DivideCircuitBreakerBenchmark.java | 225 ++
.../divide/DividePluginCircuitBreakerTest.java | 266 ++-
.../shenyu/plugin/divide/DividePluginTest.java | 20 +-
.../handler/DivideUpstreamDataHandlerTest.java | 138 ++
.../handler/ApacheDubboPluginDataHandlerTest.java | 57 +
.../proxy/ApacheDubboGrayLoadBalanceTest.java | 11 +-
.../handler/AbstractDubboPluginDataHandler.java | 28 +-
.../AbstractDubboPluginDataHandlerTest.java | 48 +
.../org/apache/shenyu/plugin/grpc/GrpcPlugin.java | 39 +-
.../plugin/grpc/cache/ApplicationConfigCache.java | 127 +-
.../shenyu/plugin/grpc/cache/GrpcExtInfo.java | 102 +
.../handler/GrpcDiscoveryUpstreamDataHandler.java | 58 +-
.../plugin/grpc/handler/GrpcMetaDataHandler.java | 55 +-
.../plugin/grpc/resolver/ShenyuNameResolver.java | 2 +-
.../apache/shenyu/plugin/grpc/GrpcPluginTest.java | 24 +
.../grpc/cache/ApplicationConfigCacheTest.java | 77 +
.../GrpcDiscoveryUpstreamDataHandlerTest.java | 33 +-
.../grpc/handler/GrpcMetaDataHandlerTest.java | 76 +
.../grpc/resolver/ShenyuNameResolverTest.java | 143 ++
.../plugin/transform/RpcParamTransformPlugin.java | 5 +-
.../transform/RpcParamTransformPluginTest.java | 30 +-
.../handler/ProxySelectorIdentityDeletionTest.java | 122 ++
.../handler/WebSocketUpstreamDataHandler.java | 61 +-
.../handler/WebSocketUpstreamDataHandlerTest.java} | 71 +-
.../shenyu/plugin/request/RequestPlugin.java | 41 +-
.../request/handler/RequestPluginHandler.java | 5 +
.../shenyu/plugin/request/RequestPluginTest.java | 123 ++
.../request/handler/RequestPluginHandlerTest.java | 43 +
.../shenyu/plugin/rewrite/RewritePlugin.java | 20 +-
.../rewrite/handler/RewritePluginDataHandler.java | 37 +-
.../shenyu/plugin/rewrite/RewritePluginTest.java | 67 +
.../handler/RewritePluginDataHandlerTest.java | 98 +
.../plugin/key/auth/KeyAuthAuthentication.java | 114 +
.../shenyu/plugin/key/auth/KeyAuthPlugin.java | 7 +-
.../key/auth/KeyAuthAuthenticationHttpTest.java | 187 ++
.../plugin/key/auth/KeyAuthAuthenticationTest.java | 331 +++
.../org/apache/shenyu/plugin/sign/SignPlugin.java | 13 +-
.../plugin/sign/extractor/VersionTwoExtractor.java | 36 +-
.../plugin/sign/service/ComposableSignService.java | 10 +-
.../apache/shenyu/plugin/sign/SignPluginTest.java | 60 +-
.../sign/extractor/VersionTwoExtractorTest.java | 19 +
.../sign/service/SignServiceVersionTwoTest.java | 2 +
.../pom.xml | 36 +-
.../plugin/tracing/SpanAttributesBuilder.java | 319 +++
.../shenyu/plugin/tracing/TracingConstants.java | 143 ++
.../shenyu/plugin/tracing/TracingPlugin.java | 188 ++
.../tracing/context/ReactorTracingContext.java | 81 +
.../tracing/extract/TraceContextExtractor.java | 110 +
.../tracing/spi/W3cTraceContextPropagator.java | 65 +
...henyu.plugin.api.tracing.TraceContextPropagator | 18 +
.../shenyu/plugin/tracing/TraceContinuityTest.java | 210 ++
.../shenyu/plugin/tracing/TracingPluginTest.java | 347 ++++
.../plugin/tracing/TracingSpanAttributesTest.java | 245 +++
.../plugin/tracing/TracingSpanLifecycleTest.java | 334 +++
.../tracing/extract/TraceContextExtractorTest.java | 153 ++
.../tracing/spi/W3cTraceContextPropagatorTest.java | 192 ++
.../shenyu/plugin/wasm/api/loader/WasmLoader.java | 278 ++-
.../plugin/wasm/api/WasmLoaderConcurrentTest.java | 341 +++
...sm.api.WasmLoaderConcurrentTest$EchoPlugin.wasm | Bin 0 -> 124 bytes
.../src/test/wasm-concurrent/Makefile | 23 +
.../src/test/wasm-concurrent/echo.wat | 27 +
shenyu-plugin/shenyu-plugin-wasm-base/README.md | 17 +-
.../wasm/base/AbstractShenyuWasmPluginTest.java | 6 +-
.../plugin/wasm/base/gateway/WasmGatewayTest.java | 2 +-
shenyu-protocol/shenyu-protocol-mqtt/pom.xml | 12 +
.../org/apache/shenyu/protocol/mqtt/Connect.java | 11 +
.../apache/shenyu/protocol/mqtt/Disconnect.java | 4 +-
.../shenyu/protocol/mqtt/MqttTransportHandler.java | 16 +
.../org/apache/shenyu/protocol/mqtt/Publish.java | 40 +
.../apache/shenyu/protocol/mqtt/TopicMatcher.java | 103 +
.../mqtt/repositories/SubscribeRepository.java | 32 +
.../protocol/mqtt/repositories/WillRepository.java | 85 +
.../apache/shenyu/protocol/mqtt/ConnectTest.java | 216 +-
.../protocol/mqtt/DisconnectDispatchTest.java | 2 +
.../shenyu/protocol/mqtt/DisconnectTest.java | 96 +
.../shenyu/protocol/mqtt/MqttFactoryTest.java | 21 +-
.../protocol/mqtt/MqttTransportHandlerTest.java | 145 +-
.../shenyu/protocol/mqtt/PublishWillTest.java | 194 ++
.../shenyu/protocol/mqtt/TopicMatcherTest.java | 100 +
.../mqtt/repositories/SubscribeRepositoryTest.java | 100 +-
.../mqtt/repositories/WillRepositoryTest.java | 112 +
shenyu-register-center/CLIENT_MIGRATION.md | 139 ++
shenyu-register-center/pom.xml | 2 +
.../shenyu-register-client-beat/pom.xml | 2 +-
.../register/client/beat/HeartbeatListener.java | 70 +-
.../client/beat/HeartbeatBoundPortTest.java | 130 ++
.../client/beat/HeartbeatListenerTest.java | 144 +-
.../client/http/HttpClientRegisterRepository.java | 2 +-
.../http/HttpClientRegisterRepositoryTest.java | 4 +-
.../shenyu-register-common/pom.xml | 16 +
.../shenyu/register/common}/utils/OkHttpTools.java | 2 +-
.../register/common}/utils/RegisterUtils.java | 19 +-
.../register/common}/utils/OkHttpToolsTest.java | 2 +-
.../register/common}/utils/RegisterUtilsTest.java | 25 +-
.../pom.xml | 15 +-
.../mcp/common/constants/OpenApiConstants.java | 2 +-
.../common/constants/RequestTemplateConstants.java | 2 +-
.../constants/ShenyuToolConfigConstants.java | 2 +-
.../mcp/common/dto/ShenyuMcpRequestConfig.java | 64 +-
.../register}/mcp/common/dto/ShenyuMcpTool.java | 10 +-
.../mcp/generator/McpRequestConfigGenerator.java | 8 +-
.../generator/McpToolsRegisterDTOGenerator.java | 8 +-
.../shenyu-register-protocol/README.md | 170 ++
.../shenyu-register-protocol}/pom.xml | 19 +-
.../register/common/dto/ApiDocRegisterDTO.java | 0
.../common/dto/DiscoveryConfigRegisterDTO.java | 0
.../register/common/dto/InstanceBeatInfoDTO.java | 0
.../register/common/dto/McpToolsRegisterDTO.java | 0
.../register/common/dto/MetaDataRegisterDTO.java | 0
.../shenyu/register/common/dto/URIRegisterDTO.java | 0
.../shenyu/register/common/enums/EventType.java | 0
.../common/path/RegisterPathConstants.java | 0
.../common/protocol/RegistrationProtocol.java | 123 ++
.../shenyu/register/common/type/DataType.java | 0
.../register/common/type/DataTypeParent.java | 0
.../main/resources/registration/v1/api-doc.json | 19 +
.../registration/v1/discovery-config.json | 12 +
.../main/resources/registration/v1/heartbeat.json | 7 +
.../src/main/resources/registration/v1/mcp.json | 25 +
.../main/resources/registration/v1/metadata.json | 21 +
.../main/resources/registration/v1/offline.json | 9 +
.../resources/registration/v1/uri-heartbeat.json | 10 +
.../src/main/resources/registration/v1/uri.json | 8 +
shenyu-registry/README.md | 2 +-
.../shenyu/registry/consul/TtlSchedulerTest.java | 48 -
.../shenyu/sdk/core/common/RequestTemplate.java | 9 +-
.../sdk/core/common/RequestTemplateTest.java | 9 +
.../annotation/CookieValueParameterProcessor.java | 17 +-
.../annotation/PathVariableParameterProcessor.java | 5 +-
.../RequestHeaderParameterProcessor.java | 12 +-
.../spring/proxy/ShenyuClientMethodHandler.java | 20 +-
.../CookieValueParameterProcessorTest.java | 25 +
.../PathVariableParameterProcessorTest.java | 31 +
.../RequestHeaderParameterProcessorTest.java | 22 +
.../proxy/ShenyuClientMethodHandlerTest.java | 51 +
.../ShenyuApacheDubboClientConfigurationTest.java | 2 +-
.../shenyu-spring-boot-starter-client-beat/pom.xml | 5 -
.../beat/HeartbeatListenerConfiguration.java | 7 +-
.../beat/HeartbeatListenerConfigurationTest.java | 63 +
.../ShenyuClientCommonBeanConfigurationTest.java | 2 +-
.../grpc/ShenyuGrpcClientConfigurationTest.java | 2 +-
.../sofa/ShenyuSofaClientConfigurationTest.java | 2 +-
...enyuSpringWebSocketClientConfigurationTest.java | 2 +-
.../ShenyuSpringMvcClientConfigurationTest.java | 2 +-
.../tars/ShenyuTarsClientConfigurationTest.java | 2 +-
.../netty/ShenyuNettyWebServerConfiguration.java | 30 +-
.../ShenyuNettyWebServerConfigurationTest.java | 18 +
.../k8s/IngressControllerConfiguration.java | 57 +-
.../k8s/ShenyuKubernetesControllerProperties.java | 76 +
.../k8s/IngressControllerConfigurationTest.java | 135 ++
.../shenyu-spring-boot-starter-plugin/pom.xml | 1 +
.../pom.xml | 41 +
.../gateway/AgentGatewayPluginConfiguration.java | 184 +-
.../agent/gateway/JwtAgentMcpSecurityResolver.java | 131 ++
.../gateway/KeyAuthMcpSecurityProperties.java | 128 ++
.../agent/gateway/KeyAuthMcpSecurityResolver.java | 93 +
.../gateway/OpenTelemetryAgentMcpCallTracer.java | 77 +
.../gateway/PrincipalMcpSecurityProperties.java | 136 ++
.../gateway/PrincipalMcpSecurityResolver.java | 161 ++
.../AgentGatewayPluginConfigurationTest.java | 131 ++
.../plugin/agent/gateway/JwtAgentMcpHttpTest.java | 262 +++
.../gateway/JwtAgentMcpSecurityResolverTest.java | 178 ++
.../plugin/agent/gateway/KeyAuthMcpHttpTest.java | 208 ++
.../KeyAuthMcpSecurityConfigurationTest.java | 230 ++
.../agent/gateway/KeyAuthMcpTestFixture.java | 327 +++
.../agent/gateway/OAuthLoginMcpHttpTest.java | 188 ++
.../OpenTelemetryAgentMcpCallTracerTest.java | 244 +++
.../gateway/OpenTelemetryAgentMcpOtlpTest.java | 86 +
.../plugin/agent/gateway/PrincipalMcpHttpTest.java | 281 +++
.../gateway/PrincipalMcpSecurityResolverTest.java | 235 +++
.../ai/proxy/AiProxyPluginConfiguration.java | 75 +-
.../ai/proxy/AiProxyPluginConfigurationTest.java | 156 +-
.../plugin/grpc/GrpcPluginConfiguration.java | 12 +
.../plugin/grpc/GrpcPluginConfigurationTest.java | 10 +
.../plugin/httpclient/HttpClientFactory.java | 6 +-
.../httpclient/HttpClientLoopResourcesTest.java | 134 ++
.../pom.xml | 19 +-
.../plugin/tracing/TracingExporterHolder.java | 61 +
.../plugin/tracing/TracingPluginConfiguration.java | 353 ++++
...rk.boot.autoconfigure.AutoConfiguration.imports | 18 +
.../tracing/TracingPluginConfigurationTest.java | 316 +++
.../pom.xml | 1 +
.../README.md | 97 +
.../example/gateway.yaml | 65 +
.../pom.xml | 68 +-
.../sync/data/file/FileConfigurationLoader.java | 159 ++
.../sync/data/file/FileConfigurationParser.java | 374 ++++
.../file/FileModeEnvironmentPostProcessor.java | 71 +
.../sync/data/file/FileSyncDataConfiguration.java | 91 +
.../src/main/resources/META-INF/spring.factories | 19 +
...rk.boot.autoconfigure.AutoConfiguration.imports | 18 +
.../data/file/FileConfigurationLoaderTest.java | 198 ++
.../data/file/FileConfigurationParserTest.java | 174 ++
.../sync/data/file/FileModeEnvironmentTest.java | 89 +
.../sync/data/file/FileModeIntegrationTest.java | 172 ++
.../websocket/WebsocketSyncDataConfiguration.java | 8 +-
.../sync/data/api/ProxySelectorDataSubscriber.java | 1 +
.../data/core/AbstractNodeDataSyncService.java | 2 +-
.../data/core/AbstractPathDataSyncService.java | 6 +-
.../data/core/AbstractNodeDataSyncServiceTest.java | 4 +-
.../data/core/AbstractPathDataSyncServiceTest.java | 21 +
.../sync/data/apollo/ApolloDataServiceTest.java | 4 +-
.../shenyu-sync-data-http/pom.xml | 5 +
.../shenyu/sync/data/http/AccessTokenManager.java | 2 +-
.../shenyu/sync/data/http/HttpSyncDataService.java | 46 +-
.../data/http/AccessTokenManagerRecoveryTest.java | 170 ++
.../sync/data/http/HttpSyncBoundPortTest.java | 148 ++
.../data/websocket/WebsocketSyncDataService.java | 150 +-
.../websocket/client/ShenyuWebsocketClient.java | 109 +-
.../data/websocket/config/WebsocketConfig.java | 30 +-
.../data/websocket/WebsocketBoundPortTest.java | 117 ++
.../websocket/WebsocketMasterRedirectTest.java | 315 +++
.../websocket/WebsocketSyncDataServiceTest.java | 90 +-
.../client/ShenyuWebsocketClientTest.java | 112 +
.../data/websocket/config/WebsocketConfigTest.java | 12 +-
.../web/controller/LocalPluginController.java | 4 +-
.../org/apache/shenyu/web/filter/CrossFilter.java | 16 +-
.../shenyu/web/handler/ShenyuWebHandler.java | 41 +-
.../shenyu/web/loader/ShenyuPluginClassLoader.java | 33 +-
.../web/controller/LocalPluginControllerTest.java | 2 +-
.../apache/shenyu/web/filter/CrossFilterTest.java | 36 +
.../shenyu/web/handler/ShenyuWebHandlerTest.java | 109 +
.../ShenyuPluginClassLoaderBeanIsolationTest.java | 133 ++
.../loader/ShenyuPluginClassLoaderHolderTest.java | 31 +-
721 files changed, 52790 insertions(+), 3695 deletions(-)
create mode 100644 .github/client-migration-inventory.json
create mode 100644 .github/scripts/check-client-boundary.py
create mode 100644 .github/scripts/maven-with-retry-test.sh
create mode 100644 .github/scripts/maven-with-retry.sh
create mode 100644 .github/scripts/test-client-boundary.py
create mode 100644 .github/scripts/test-wasm-fixtures.py
create mode 100644 .github/workflows/assign.yml
create mode 100644 .github/workflows/close.yml
create mode 100644 .github/workflows/lgtm.yml
create mode 100644 .github/workflows/retest.yml
create mode 100644 db/upgrade/2.7.2-upgrade-2.7.3-h2.sql
create mode 100644 db/upgrade/2.7.2-upgrade-2.7.3-mysql.sql
create mode 100644 db/upgrade/2.7.2-upgrade-2.7.3-ob.sql
create mode 100644 db/upgrade/2.7.2-upgrade-2.7.3-og.sql
create mode 100644 db/upgrade/2.7.2-upgrade-2.7.3-oracle.sql
create mode 100644 db/upgrade/2.7.2-upgrade-2.7.3-pg.sql
create mode 100644 docs/agent-gateway-key-auth.md
create mode 100644 docs/agent-gateway-principal-authorization.md
create mode 100644 docs/benchmarks/divide-circuit-breaker/environment.txt
create mode 100644 docs/benchmarks/divide-circuit-breaker/profile-summary.csv
create mode 100644 docs/benchmarks/divide-circuit-breaker/results.csv
create mode 100644 docs/benchmarks/divide-gateway/DivideGatewayBenchmark.java
create mode 100644 docs/benchmarks/divide-gateway/README.md
create mode 100644
docs/benchmarks/divide-gateway/baseline-execution-samples.txt
create mode 100644 docs/benchmarks/divide-gateway/correctness.json
create mode 100644 docs/benchmarks/divide-gateway/environment.txt
create mode 100644
docs/benchmarks/divide-gateway/optimized-execution-samples.txt
create mode 100644 docs/benchmarks/divide-gateway/profile-summary.csv
create mode 100644 docs/benchmarks/divide-gateway/request-local-only.csv
create mode 100644 docs/benchmarks/divide-gateway/results.csv
create mode 100644 docs/benchmarks/divide-gateway/run.ps1
create mode 100644 docs/benchmarks/http-cache-rebuild-256.csv
create mode 100644 docs/benchmarks/http-cache-rebuild-4096.csv
create mode 100644 docs/benchmarks/websocket-reconciliation/run-1.csv
create mode 100644 docs/benchmarks/websocket-reconciliation/run-2.csv
create mode 100644 docs/cache-request-eligibility.md
create mode 100644 docs/divide-circuit-breaker-benchmark.md
create mode 100644 docs/http-cache-rebuild-coalescing.md
create mode 100644 docs/plugin-store-apollo.md
create mode 100644 docs/websocket-reconciliation-benchmark.md
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/config/RegistrationProtocolInterceptor.java
delete mode 100755
shenyu-admin/src/main/java/org/apache/shenyu/admin/controller/ApiDocController.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/listener/http/HttpCacheRebuildCoordinator.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/dto/AlertReportRequest.java
delete mode 100755
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/vo/DocVO.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/DiscoveryUpstreamPropsValidator.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/utils/InstanceInfoUtils.java
create mode 100644
shenyu-admin/src/main/java/org/apache/shenyu/admin/validation/validator/RewriteRuleHandleValidator.java
create mode 100644 shenyu-admin/src/main/resources/static/index.16dee401.js
delete mode 100644 shenyu-admin/src/main/resources/static/index.c7270c38.js
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/AlertReportControllerTest.java
delete mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/ApiDocControllerTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/DiscoveryControllerTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/ProxySelectorControllerTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/controller/RegistrationProtocolCompatibilityTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/discovery/NacosDiscoveryRecoveryTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/listener/http/HttpCacheRebuildBenchmark.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/listener/http/HttpCacheRebuildCoordinatorTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/listener/http/HttpCacheRebuildTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/listener/websocket/WebsocketDataReconcilerBenchmark.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/mapper/DiscoveryBatchQueryTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/mapper/InstanceInfoMapperOracleSqlTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/mapper/InstanceInfoUpsertTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/mapper/OperationLogIndexContractTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/mapper/OperationRecordLogConcatSqlTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/mapper/OperationRecordLogSelectLimitSqlTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/mode/cluster/filter/ClusterForwardFilterTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/mode/cluster/service/ShenyuClusterServiceTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/scale/monitor/subject/cache/ScaleRuleCacheTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/scale/scaler/KubernetesScalerTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/scale/scaler/ScaleServiceTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/scale/scaler/dynamic/TaskSchedulerManagerTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/service/NamespaceServiceImplTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/service/UpstreamCheckServiceRecoveryTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/service/UpstreamCheckServiceSyncTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/service/impl/InstanceInfoServiceImplTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/utils/DiscoveryUpstreamPropsValidatorTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/utils/InstanceInfoUtilsTest.java
create mode 100644
shenyu-admin/src/test/java/org/apache/shenyu/admin/validation/validator/RewriteRuleHandleValidatorTest.java
create mode 100644
shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/test/java/org/apache/shenyu/client/mcp/generator/McpCompatibilityAdapterTest.java
create mode 100644
shenyu-common/src/main/java/org/apache/shenyu/common/dto/AgentGatewayHttpToolConfig.java
create mode 100644
shenyu-common/src/main/java/org/apache/shenyu/common/metrics/LoggingQueueMetrics.java
create mode 100644
shenyu-common/src/main/java/org/apache/shenyu/common/utils/BoundServerPort.java
create mode 100644
shenyu-common/src/main/java/org/apache/shenyu/common/utils/RewriteHandleUtils.java
create mode 100644
shenyu-common/src/main/java/org/apache/shenyu/common/utils/UpstreamLabelsUtils.java
create mode 100644
shenyu-common/src/test/java/org/apache/shenyu/common/dto/AgentGatewayHttpToolConfigTest.java
create mode 100644
shenyu-common/src/test/java/org/apache/shenyu/common/dto/AlarmContentTest.java
create mode 100644
shenyu-common/src/test/java/org/apache/shenyu/common/metrics/LoggingQueueMetricsTest.java
copy
shenyu-common/src/test/java/org/apache/shenyu/common/{dto/convert/rule/RewriteHandleTest.java
=> utils/BoundServerPortTest.java} (51%)
create mode 100644
shenyu-common/src/test/java/org/apache/shenyu/common/utils/RewriteHandleUtilsTest.java
create mode 100644
shenyu-common/src/test/java/org/apache/shenyu/common/utils/UpstreamLabelsUtilsTest.java
create mode 100644 shenyu-e2e/shenyu-e2e-case/compose/fixtures/httpbin.py
create mode 100644 shenyu-e2e/shenyu-e2e-case/compose/fixtures/httpbin.yml
create mode 100644 shenyu-e2e/shenyu-e2e-case/compose/fixtures/test_httpbin.py
create mode 100644
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-logging-rocketmq/src/test/java/org/apache/shenyu/e2e/testcase/logging/rocketmq/RocketMQLogConsumptionTest.java
create mode 100644
shenyu-e2e/shenyu-e2e-case/shenyu-e2e-case-spring-cloud/src/test/java/org/apache/shenyu/e2e/testcase/springcloud/SpringCloudRouteReadinessTest.java
create mode 100644
shenyu-integrated-test/shenyu-integrated-test-tracing/Dockerfile
create mode 100644
shenyu-integrated-test/shenyu-integrated-test-tracing/config/otel-collector.yml
copy shenyu-e2e/shenyu-e2e-case/compose/storage/shenyu-storage-h2.yml =>
shenyu-integrated-test/shenyu-integrated-test-tracing/docker-compose.yml (50%)
create mode 100644
shenyu-integrated-test/shenyu-integrated-test-tracing/pom.xml
copy shenyu-integrated-test/{shenyu-integrated-test-apache-dubbo =>
shenyu-integrated-test-tracing}/script/healthcheck.sh (100%)
mode change 100644 => 100755
create mode 100644
shenyu-integrated-test/shenyu-integrated-test-tracing/script/services.list
copy
shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/ShenyuPluginChain.java
=>
shenyu-integrated-test/shenyu-integrated-test-tracing/src/main/java/org/apache/shenyu/integrated/test/tracing/TracingIntegratedBootstrap.java
(63%)
create mode 100644
shenyu-integrated-test/shenyu-integrated-test-tracing/src/main/resources/application-local.yml
create mode 100644
shenyu-integrated-test/shenyu-integrated-test-tracing/src/main/resources/application.yml
create mode 100644
shenyu-integrated-test/shenyu-integrated-test-tracing/src/test/java/org/apache/shenyu/integrated/test/tracing/Deployment.java
create mode 100644
shenyu-integrated-test/shenyu-integrated-test-tracing/src/test/java/org/apache/shenyu/integrated/test/tracing/TracingGatewayIntegrationTest.java
create mode 100644
shenyu-loadbalancer/src/main/java/org/apache/shenyu/loadbalancer/entity/UpstreamIdentity.java
create mode 100644
shenyu-plugin/shenyu-plugin-agent-gateway/src/main/java/org/apache/shenyu/plugin/agent/gateway/protocol/AgentMcpCallTracer.java
create mode 100644
shenyu-plugin/shenyu-plugin-agent-gateway/src/main/java/org/apache/shenyu/plugin/agent/gateway/tool/AgentHttpToolExecutor.java
copy
shenyu-plugin/{shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/ShenyuPluginChain.java
=>
shenyu-plugin-agent-gateway/src/main/java/org/apache/shenyu/plugin/agent/gateway/tool/AgentHttpToolInvoker.java}
(58%)
create mode 100644
shenyu-plugin/shenyu-plugin-agent-gateway/src/main/java/org/apache/shenyu/plugin/agent/gateway/tool/AgentHttpToolProvider.java
create mode 100644
shenyu-plugin/shenyu-plugin-agent-gateway/src/test/java/org/apache/shenyu/plugin/agent/gateway/AgentHttpToolRoutingTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-agent-gateway/src/test/java/org/apache/shenyu/plugin/agent/gateway/protocol/AgentMcpCallTracerTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-agent-gateway/src/test/java/org/apache/shenyu/plugin/agent/gateway/remote/RemoteToolDirectoryTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-agent-gateway/src/test/java/org/apache/shenyu/plugin/agent/gateway/security/AgentMcpIdentityTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-agent-gateway/src/test/java/org/apache/shenyu/plugin/agent/gateway/tool/AgentHttpToolExecutorTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-agent-gateway/src/test/java/org/apache/shenyu/plugin/agent/gateway/tool/AgentHttpToolNamespaceTest.java
copy
shenyu-sync-data-center/shenyu-sync-data-api/src/main/java/org/apache/shenyu/sync/data/api/ProxySelectorDataSubscriber.java
=>
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced/conversion/AiResponseAdapter.java
(58%)
copy
shenyu-sync-data-center/shenyu-sync-data-api/src/main/java/org/apache/shenyu/sync/data/api/ProxySelectorDataSubscriber.java
=>
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced/model/PreparedAiRequest.java
(55%)
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced/provider/AiProviderCapabilities.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced/provider/OpenAiProviderOptions.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced/service/AiProxyRetryPolicy.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced/service/AiProxyRetryProperties.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced/transport/AiProxyTransportProperties.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/main/java/org/apache/shenyu/plugin/ai/proxy/enhanced/transport/AiTransportException.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/test/java/org/apache/shenyu/plugin/ai/proxy/enhanced/provider/AiProxyProviderHttpTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/test/java/org/apache/shenyu/plugin/ai/proxy/enhanced/provider/OpenAiProviderOptionsTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/test/java/org/apache/shenyu/plugin/ai/proxy/enhanced/service/AiProxyRetryPolicyTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-ai/shenyu-plugin-ai-proxy/src/test/java/org/apache/shenyu/plugin/ai/proxy/enhanced/service/AiProxyRetryPropertiesTest.java
rename
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/vo/MenuProjectVO.java
=>
shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/tracing/TraceContextCarrier.java
(54%)
create mode 100644
shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/tracing/TraceContextPropagator.java
copy
shenyu-plugin/shenyu-plugin-api/src/main/java/org/apache/shenyu/plugin/api/{ShenyuPluginChain.java
=> utils/TraceIdUtils.java} (50%)
create mode 100644
shenyu-plugin/shenyu-plugin-api/src/test/java/org/apache/shenyu/plugin/api/utils/TraceIdUtilsTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-api/src/test/java/org/apache/shenyu/plugin/api/utils/WebFluxResultUtilsTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-base/src/main/java/org/apache/shenyu/plugin/base/handler/AbstractDiscoveryUpstreamDataHandler.java
create mode 100644
shenyu-plugin/shenyu-plugin-base/src/main/java/org/apache/shenyu/plugin/base/utils/UpstreamProps.java
create mode 100644
shenyu-plugin/shenyu-plugin-base/src/test/java/org/apache/shenyu/plugin/base/LogCapture.java
create mode 100644
shenyu-plugin/shenyu-plugin-base/src/test/java/org/apache/shenyu/plugin/base/handler/AbstractDiscoveryUpstreamDataHandlerTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-base/src/test/java/org/apache/shenyu/plugin/base/utils/UpstreamPropsTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-handler/src/main/java/org/apache/shenyu/plugin/cache/CachedResponse.java
create mode 100644
shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-handler/src/test/java/org/apache/shenyu/plugin/cache/ApplicationConfigCacheConcurrencyTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-handler/src/test/java/org/apache/shenyu/plugin/cache/CacheRequestEligibilityTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-handler/src/test/java/org/apache/shenyu/plugin/cache/CacheResponseReplayTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-handler/src/test/java/org/apache/shenyu/plugin/cache/CachedResponseTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-cache/shenyu-plugin-cache-handler/src/test/java/org/apache/shenyu/plugin/cache/utils/CacheUtilsTest.java
copy
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/vo/MenuModuleVO.java
=>
shenyu-plugin/shenyu-plugin-httpclient/src/main/java/org/apache/shenyu/plugin/httpclient/HttpHeadersTraceContextCarrier.java
(51%)
copy
shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client/mcp/common/dto/ShenyuMcpRequestConfig.java
=>
shenyu-plugin/shenyu-plugin-httpclient/src/main/java/org/apache/shenyu/plugin/httpclient/NettyHttpHeadersTraceContextCarrier.java
(50%)
create mode 100644
shenyu-plugin/shenyu-plugin-httpclient/src/test/java/org/apache/shenyu/plugin/httpclient/AbstractHttpClientPluginTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-httpclient/src/test/java/org/apache/shenyu/plugin/httpclient/AbstractHttpClientPluginTraceContextLoaderTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-httpclient/src/test/java/org/apache/shenyu/plugin/httpclient/NettyHttpClientPluginTraceContextTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-httpclient/src/test/java/org/apache/shenyu/plugin/httpclient/TestTraceContextPropagator.java
create mode 100644
shenyu-plugin/shenyu-plugin-httpclient/src/test/java/org/apache/shenyu/plugin/httpclient/WebClientPluginTraceContextTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-httpclient/src/test/resources/META-INF/shenyu/org.apache.shenyu.plugin.api.tracing.TraceContextPropagator
create mode 100644
shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-common/README.md
create mode 100644
shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-common/src/test/java/org/apache/shenyu/plugin/logging/common/AbstractLoggingPluginBodyLimitTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-common/src/test/java/org/apache/shenyu/plugin/logging/common/body/LoggingBodySaturatedSizeTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-logging/shenyu-plugin-logging-common/src/test/java/org/apache/shenyu/plugin/logging/common/collector/LogCollectorMetricsTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-metrics/src/main/java/org/apache/shenyu/plugin/metrics/prometheus/LoggingQueueMetricsCollector.java
create mode 100644
shenyu-plugin/shenyu-plugin-metrics/src/test/java/org/apache/shenyu/plugin/metrics/prometheus/LoggingQueueMetricsCollectorTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/src/main/java/org/apache/shenyu/plugin/divide/CircuitBreakerCandidates.java
create mode 100644
shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/src/test/java/org/apache/shenyu/plugin/divide/CircuitBreakerCandidatesTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-divide/src/test/java/org/apache/shenyu/plugin/divide/DivideCircuitBreakerBenchmark.java
create mode 100644
shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-grpc/src/main/java/org/apache/shenyu/plugin/grpc/cache/GrpcExtInfo.java
rename
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/vo/MenuModuleVO.java
=>
shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-grpc/src/main/java/org/apache/shenyu/plugin/grpc/handler/GrpcMetaDataHandler.java
(50%)
create mode 100644
shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-grpc/src/test/java/org/apache/shenyu/plugin/grpc/handler/GrpcMetaDataHandlerTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-grpc/src/test/java/org/apache/shenyu/plugin/grpc/resolver/ShenyuNameResolverTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-tcp/src/test/java/org/apache/shenyu/plugin/tcp/handler/ProxySelectorIdentityDeletionTest.java
copy
shenyu-plugin/shenyu-plugin-proxy/{shenyu-plugin-divide/src/test/java/org/apache/shenyu/plugin/divide/handler/DivideUpstreamDataHandlerTest.java
=>
shenyu-plugin-websocket/src/test/java/org/apache/shenyu/plugin/websocket/handler/WebSocketUpstreamDataHandlerTest.java}
(74%)
create mode 100644
shenyu-plugin/shenyu-plugin-security/shenyu-plugin-key-auth/src/main/java/org/apache/shenyu/plugin/key/auth/KeyAuthAuthentication.java
create mode 100644
shenyu-plugin/shenyu-plugin-security/shenyu-plugin-key-auth/src/test/java/org/apache/shenyu/plugin/key/auth/KeyAuthAuthenticationHttpTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-security/shenyu-plugin-key-auth/src/test/java/org/apache/shenyu/plugin/key/auth/KeyAuthAuthenticationTest.java
copy shenyu-plugin/{shenyu-plugin-base => shenyu-plugin-tracing}/pom.xml (69%)
create mode 100644
shenyu-plugin/shenyu-plugin-tracing/src/main/java/org/apache/shenyu/plugin/tracing/SpanAttributesBuilder.java
create mode 100644
shenyu-plugin/shenyu-plugin-tracing/src/main/java/org/apache/shenyu/plugin/tracing/TracingConstants.java
create mode 100644
shenyu-plugin/shenyu-plugin-tracing/src/main/java/org/apache/shenyu/plugin/tracing/TracingPlugin.java
create mode 100644
shenyu-plugin/shenyu-plugin-tracing/src/main/java/org/apache/shenyu/plugin/tracing/context/ReactorTracingContext.java
create mode 100644
shenyu-plugin/shenyu-plugin-tracing/src/main/java/org/apache/shenyu/plugin/tracing/extract/TraceContextExtractor.java
create mode 100644
shenyu-plugin/shenyu-plugin-tracing/src/main/java/org/apache/shenyu/plugin/tracing/spi/W3cTraceContextPropagator.java
create mode 100644
shenyu-plugin/shenyu-plugin-tracing/src/main/resources/META-INF/shenyu/org.apache.shenyu.plugin.api.tracing.TraceContextPropagator
create mode 100644
shenyu-plugin/shenyu-plugin-tracing/src/test/java/org/apache/shenyu/plugin/tracing/TraceContinuityTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-tracing/src/test/java/org/apache/shenyu/plugin/tracing/TracingPluginTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-tracing/src/test/java/org/apache/shenyu/plugin/tracing/TracingSpanAttributesTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-tracing/src/test/java/org/apache/shenyu/plugin/tracing/TracingSpanLifecycleTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-tracing/src/test/java/org/apache/shenyu/plugin/tracing/extract/TraceContextExtractorTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-tracing/src/test/java/org/apache/shenyu/plugin/tracing/spi/W3cTraceContextPropagatorTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-wasm-api/src/test/java/org/apache/shenyu/plugin/wasm/api/WasmLoaderConcurrentTest.java
create mode 100644
shenyu-plugin/shenyu-plugin-wasm-api/src/test/resources/org.apache.shenyu.plugin.wasm.api.WasmLoaderConcurrentTest$EchoPlugin.wasm
create mode 100644
shenyu-plugin/shenyu-plugin-wasm-api/src/test/wasm-concurrent/Makefile
create mode 100644
shenyu-plugin/shenyu-plugin-wasm-api/src/test/wasm-concurrent/echo.wat
create mode 100644
shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/TopicMatcher.java
create mode 100644
shenyu-protocol/shenyu-protocol-mqtt/src/main/java/org/apache/shenyu/protocol/mqtt/repositories/WillRepository.java
create mode 100644
shenyu-protocol/shenyu-protocol-mqtt/src/test/java/org/apache/shenyu/protocol/mqtt/DisconnectTest.java
create mode 100644
shenyu-protocol/shenyu-protocol-mqtt/src/test/java/org/apache/shenyu/protocol/mqtt/PublishWillTest.java
create mode 100644
shenyu-protocol/shenyu-protocol-mqtt/src/test/java/org/apache/shenyu/protocol/mqtt/TopicMatcherTest.java
create mode 100644
shenyu-protocol/shenyu-protocol-mqtt/src/test/java/org/apache/shenyu/protocol/mqtt/repositories/WillRepositoryTest.java
create mode 100644 shenyu-register-center/CLIENT_MIGRATION.md
create mode 100644
shenyu-register-center/shenyu-register-client-beat/src/test/java/org/apache/shenyu/register/client/beat/HeartbeatBoundPortTest.java
rename
shenyu-register-center/{shenyu-register-client/shenyu-register-client-http/src/main/java/org/apache/shenyu/register/client/http
=>
shenyu-register-common/src/main/java/org/apache/shenyu/register/common}/utils/OkHttpTools.java
(98%)
rename
shenyu-register-center/{shenyu-register-client/shenyu-register-client-http/src/main/java/org/apache/shenyu/register/client/http
=>
shenyu-register-common/src/main/java/org/apache/shenyu/register/common}/utils/RegisterUtils.java
(90%)
rename
shenyu-register-center/{shenyu-register-client/shenyu-register-client-http/src/test/java/org/apache/shenyu/register/client/http
=>
shenyu-register-common/src/test/java/org/apache/shenyu/register/common}/utils/OkHttpToolsTest.java
(98%)
rename
shenyu-register-center/{shenyu-register-client/shenyu-register-client-http/src/test/java/org/apache/shenyu/register/client/http
=>
shenyu-register-common/src/test/java/org/apache/shenyu/register/common}/utils/RegisterUtilsTest.java
(82%)
copy shenyu-register-center/{shenyu-register-common =>
shenyu-register-mcp}/pom.xml (78%)
copy
{shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client
=>
shenyu-register-center/shenyu-register-mcp/src/main/java/org/apache/shenyu/register}/mcp/common/constants/OpenApiConstants.java
(98%)
copy
{shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client
=>
shenyu-register-center/shenyu-register-mcp/src/main/java/org/apache/shenyu/register}/mcp/common/constants/RequestTemplateConstants.java
(96%)
copy
{shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client
=>
shenyu-register-center/shenyu-register-mcp/src/main/java/org/apache/shenyu/register}/mcp/common/constants/ShenyuToolConfigConstants.java
(95%)
rename
shenyu-admin/src/main/java/org/apache/shenyu/admin/model/vo/MenuDocItemVO.java
=>
shenyu-register-center/shenyu-register-mcp/src/main/java/org/apache/shenyu/register/mcp/common/dto/ShenyuMcpRequestConfig.java
(53%)
copy
{shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client
=>
shenyu-register-center/shenyu-register-mcp/src/main/java/org/apache/shenyu/register}/mcp/common/dto/ShenyuMcpTool.java
(84%)
copy
{shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client
=>
shenyu-register-center/shenyu-register-mcp/src/main/java/org/apache/shenyu/register}/mcp/generator/McpRequestConfigGenerator.java
(93%)
copy
{shenyu-client/shenyu-client-mcp/shenyu-client-mcp-common/src/main/java/org/apache/shenyu/client
=>
shenyu-register-center/shenyu-register-mcp/src/main/java/org/apache/shenyu/register}/mcp/generator/McpToolsRegisterDTOGenerator.java
(93%)
create mode 100644 shenyu-register-center/shenyu-register-protocol/README.md
copy
{shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway
=> shenyu-register-center/shenyu-register-protocol}/pom.xml (73%)
rename shenyu-register-center/{shenyu-register-common =>
shenyu-register-protocol}/src/main/java/org/apache/shenyu/register/common/dto/ApiDocRegisterDTO.java
(100%)
rename shenyu-register-center/{shenyu-register-common =>
shenyu-register-protocol}/src/main/java/org/apache/shenyu/register/common/dto/DiscoveryConfigRegisterDTO.java
(100%)
rename shenyu-register-center/{shenyu-register-common =>
shenyu-register-protocol}/src/main/java/org/apache/shenyu/register/common/dto/InstanceBeatInfoDTO.java
(100%)
rename shenyu-register-center/{shenyu-register-common =>
shenyu-register-protocol}/src/main/java/org/apache/shenyu/register/common/dto/McpToolsRegisterDTO.java
(100%)
rename shenyu-register-center/{shenyu-register-common =>
shenyu-register-protocol}/src/main/java/org/apache/shenyu/register/common/dto/MetaDataRegisterDTO.java
(100%)
rename shenyu-register-center/{shenyu-register-common =>
shenyu-register-protocol}/src/main/java/org/apache/shenyu/register/common/dto/URIRegisterDTO.java
(100%)
rename shenyu-register-center/{shenyu-register-common =>
shenyu-register-protocol}/src/main/java/org/apache/shenyu/register/common/enums/EventType.java
(100%)
rename shenyu-register-center/{shenyu-register-common =>
shenyu-register-protocol}/src/main/java/org/apache/shenyu/register/common/path/RegisterPathConstants.java
(100%)
create mode 100644
shenyu-register-center/shenyu-register-protocol/src/main/java/org/apache/shenyu/register/common/protocol/RegistrationProtocol.java
rename shenyu-register-center/{shenyu-register-common =>
shenyu-register-protocol}/src/main/java/org/apache/shenyu/register/common/type/DataType.java
(100%)
rename shenyu-register-center/{shenyu-register-common =>
shenyu-register-protocol}/src/main/java/org/apache/shenyu/register/common/type/DataTypeParent.java
(100%)
create mode 100644
shenyu-register-center/shenyu-register-protocol/src/main/resources/registration/v1/api-doc.json
create mode 100644
shenyu-register-center/shenyu-register-protocol/src/main/resources/registration/v1/discovery-config.json
create mode 100644
shenyu-register-center/shenyu-register-protocol/src/main/resources/registration/v1/heartbeat.json
create mode 100644
shenyu-register-center/shenyu-register-protocol/src/main/resources/registration/v1/mcp.json
create mode 100644
shenyu-register-center/shenyu-register-protocol/src/main/resources/registration/v1/metadata.json
create mode 100644
shenyu-register-center/shenyu-register-protocol/src/main/resources/registration/v1/offline.json
create mode 100644
shenyu-register-center/shenyu-register-protocol/src/main/resources/registration/v1/uri-heartbeat.json
create mode 100644
shenyu-register-center/shenyu-register-protocol/src/main/resources/registration/v1/uri.json
delete mode 100644
shenyu-registry/shenyu-registry-consul/src/test/java/org/apache/shenyu/registry/consul/TtlSchedulerTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-client/shenyu-spring-boot-starter-client-beat/src/test/java/org/apache/shenyu/register/client/beat/HeartbeatListenerConfigurationTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-k8s/src/main/java/org/apache/shenyu/springboot/starter/k8s/ShenyuKubernetesControllerProperties.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-k8s/src/test/java/org/apache/shenyu/springboot/starter/k8s/IngressControllerConfigurationTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/main/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/JwtAgentMcpSecurityResolver.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/main/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/KeyAuthMcpSecurityProperties.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/main/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/KeyAuthMcpSecurityResolver.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/main/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/OpenTelemetryAgentMcpCallTracer.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/main/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/PrincipalMcpSecurityProperties.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/main/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/PrincipalMcpSecurityResolver.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/test/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/JwtAgentMcpHttpTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/test/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/JwtAgentMcpSecurityResolverTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/test/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/KeyAuthMcpHttpTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/test/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/KeyAuthMcpSecurityConfigurationTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/test/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/KeyAuthMcpTestFixture.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/test/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/OAuthLoginMcpHttpTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/test/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/OpenTelemetryAgentMcpCallTracerTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/test/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/OpenTelemetryAgentMcpOtlpTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/test/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/PrincipalMcpHttpTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-agent-gateway/src/test/java/org/apache/shenyu/springboot/starter/plugin/agent/gateway/PrincipalMcpSecurityResolverTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-httpclient/src/test/java/org/apache/shenyu/springboot/starter/plugin/httpclient/HttpClientLoopResourcesTest.java
copy
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/{shenyu-spring-boot-starter-plugin-agent-gateway
=> shenyu-spring-boot-starter-plugin-tracing}/pom.xml (67%)
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-tracing/src/main/java/org/apache/shenyu/springboot/starter/plugin/tracing/TracingExporterHolder.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-tracing/src/main/java/org/apache/shenyu/springboot/starter/plugin/tracing/TracingPluginConfiguration.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-tracing/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-plugin/shenyu-spring-boot-starter-plugin-tracing/src/test/java/org/apache/shenyu/springboot/starter/plugin/tracing/TracingPluginConfigurationTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-file/README.md
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-file/example/gateway.yaml
copy {shenyu-plugin/shenyu-plugin-agent-gateway =>
shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-file}/pom.xml
(64%)
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-file/src/main/java/org/apache/shenyu/springboot/starter/sync/data/file/FileConfigurationLoader.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-file/src/main/java/org/apache/shenyu/springboot/starter/sync/data/file/FileConfigurationParser.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-file/src/main/java/org/apache/shenyu/springboot/starter/sync/data/file/FileModeEnvironmentPostProcessor.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-file/src/main/java/org/apache/shenyu/springboot/starter/sync/data/file/FileSyncDataConfiguration.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-file/src/main/resources/META-INF/spring.factories
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-file/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-file/src/test/java/org/apache/shenyu/springboot/starter/sync/data/file/FileConfigurationLoaderTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-file/src/test/java/org/apache/shenyu/springboot/starter/sync/data/file/FileConfigurationParserTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-file/src/test/java/org/apache/shenyu/springboot/starter/sync/data/file/FileModeEnvironmentTest.java
create mode 100644
shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-file/src/test/java/org/apache/shenyu/springboot/starter/sync/data/file/FileModeIntegrationTest.java
create mode 100644
shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/AccessTokenManagerRecoveryTest.java
create mode 100644
shenyu-sync-data-center/shenyu-sync-data-http/src/test/java/org/apache/shenyu/sync/data/http/HttpSyncBoundPortTest.java
create mode 100644
shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/WebsocketBoundPortTest.java
create mode 100644
shenyu-sync-data-center/shenyu-sync-data-websocket/src/test/java/org/apache/shenyu/plugin/sync/data/websocket/WebsocketMasterRedirectTest.java
create mode 100644
shenyu-web/src/test/java/org/apache/shenyu/web/loader/ShenyuPluginClassLoaderBeanIsolationTest.java