yangjj-iso opened a new pull request, #7673:
URL: https://github.com/apache/shenyu/pull/7673

   Fixes #7652.
   
   Bootstrap can now start from an external declarative YAML/JSON file and 
serve HTTP routes without Admin, an Admin database or an external configuration 
center. The opt-in `shenyu-spring-boot-starter-sync-data-file` is included in 
Bootstrap and reuses the existing configuration DTOs, subscribers, plugin 
handlers and request chain.
   
   - Validate the complete versioned document before publication: explicit 
plugin enablement, deterministic identities, references, ordering, matching 
conditions, rule handles and static HTTP origins. Reject unknown fields, 
duplicate mapping keys, unsupported metadata/auth entries and unavailable 
plugins/handlers with diagnostics that omit configuration values.
   - Establish exclusive file ownership before auto-configuration creates 
clients. Suppress the shipped Admin WebSocket URL, heartbeat, WebSocket 
readiness and external plugin loader; reject other sync sources and explicitly 
enabled local API/registration/alert writers. Undeclared plugins are disabled 
without initializing their configuration handlers. File mode is disabled by 
default.
   - Apply plugins, selectors, rules and upstreams before the server lifecycle 
starts; await registered asynchronous handler work with a bounded timeout. 
Abort startup on validation/application failure and gate traffic until 
application succeeds. Remove owned configuration on shutdown/failure.
   - Document the supported HTTP schema, environment placeholders, 
mounted-file/container launch and switching back to Admin mode. Include a 
complete sample that is also used by the tests.
   
   Validation (Windows, JDK 21 compiling the project's Java 17 target):
   
   - **136 tests passed** across the clean selected-module reactor regression 
and timeout-boundary follow-up: new parser/loader/mode/real-HTTP tests plus 
existing gateway, divide, common subscriber, WebSocket synchronization and 
heartbeat tests.
   - Real HTTP integration starts with the stock Bootstrap application 
settings, forwards to a real upstream, rejects unmatched/local-management 
requests, verifies plugin enablement and absent sync/heartbeat beans, restarts 
twice with equivalent identities, and fails startup on invalid configuration or 
handler failure.
   - Full **145-module Bootstrap reactor package passed**, with tests skipped 
for that packaging run.
   - A separate smoke run of `ShenyuBootstrapApplication` with the full 
Bootstrap dependency set forwarded `/api/hello?smoke=1`, returned `-107` for 
`/unmatched`, made exactly one backend request, and logged no Admin client 
startup.
   - Checkstyle and Apache RAT passed; `git diff --check` passed.
   
   Initial scope: static HTTP routes using 
global/divide/uri/nettyHttpClient/response, with optional contextPath. 
Metadata/auth data and other declared plugins are rejected explicitly. No hot 
reload, multi-source merging, routing-engine replacement or performance claim 
is introduced.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to