This is an automated email from the ASF dual-hosted git repository.
dmsolr pushed a change to branch issue-7720-instance-observability-links
in repository https://gitbox.apache.org/repos/asf/shenyu.git
discard 48fc1b6b1a feat: link admin instance diagnostics to observability
backends
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 5c23780aad feat: link admin instance diagnostics to observability
backends
add 6cb1be5093 test(admin): pass InstanceDiagnosticsService to
InstanceController in RegistrationProtocolCompatibilityTest
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (48fc1b6b1a)
\
N -- N -- N refs/heads/issue-7720-instance-observability-links
(6cb1be5093)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
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 | 34 +-
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 | 12 +-
.../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 | 194 ++
.../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, 52782 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