Aias00 opened a new issue, #7310:
URL: https://github.com/apache/shenyu/issues/7310

   ## Background
   
   The main ShenYu build targets Java 17 and Spring Boot 3.3.1. Most non-client 
starter modules currently publish three parallel metadata files:
   
   - `META-INF/spring.factories`;
   - `META-INF/spring.provides`;
   - 
`META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports`.
   
   For Spring Boot 3 modules, `AutoConfiguration.imports` is the active 
auto-configuration mechanism. Keeping the legacy files duplicates every starter 
registration and creates review/maintenance drift.
   
   Current inventory under `shenyu-spring-boot-starter`:
   
   - 74 `spring.factories` files, 66 outside the client-starter subtree;
   - 68 `spring.provides` files, 62 outside the client-starter subtree;
   - corresponding `AutoConfiguration.imports` files.
   
   Client starters are excluded from this task because 
`apache/shenyu-client-java` still has a separate JDK 8/Spring Boot 2 
compatibility policy.
   
   ## Scope
   
   - Build a normalized inventory of every non-client starter 
auto-configuration class.
   - Verify that every class currently registered through 
`EnableAutoConfiguration` in `spring.factories` is present in the same module's 
`AutoConfiguration.imports`.
   - Remove legacy `spring.factories` from Boot 3-only, non-client starter 
modules after parity is proven.
   - Remove non-client `spring.provides` files; this legacy metadata is not 
used by the current Boot 3 runtime.
   - Keep and validate `AutoConfiguration.imports`.
   - Do not modify `shenyu-spring-boot-starter-client/**` in this issue.
   - Do not silently drop support for any Spring Boot version still declared by 
the project. Document the effective minimum compatibility before merging.
   - Narrow or remove RAT exclusions for deleted metadata only when it does not 
affect files intentionally retained by client compatibility modules.
   
   ## Verification
   
   - Add an automated parity check that fails when legacy and modern metadata 
point to different configuration classes during the transition.
   - Run existing starter configuration tests.
   - Add representative `ApplicationContextRunner` or minimal application smoke 
tests for gateway, plugin, sync-data, registry, SDK, and Kubernetes starter 
families.
   - Run the full Maven build, Checkstyle, RAT, and packaging.
   - Inspect produced JARs to prove `AutoConfiguration.imports` is present and 
the removed files are absent.
   - Start a minimal gateway and admin distribution using only the modern 
metadata.
   
   ## Acceptance Criteria
   
   - [ ] All non-client legacy entries are mapped to an equivalent 
`AutoConfiguration.imports` entry before deletion.
   - [ ] Boot 3 auto-configuration tests pass for every starter family.
   - [ ] Client starter compatibility metadata remains untouched.
   - [ ] No duplicate or missing auto-configuration class is introduced.
   - [ ] Packaged JAR contents match the new metadata policy.
   - [ ] The documented Spring Boot compatibility range is explicit.
   - [ ] Full build, Checkstyle, RAT, and startup smoke tests pass.
   
   


-- 
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