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]
