Aias00 opened a new issue, #7599: URL: https://github.com/apache/shenyu/issues/7599
## Background Apache ShenYu is executing a phased migration of optional integrations out of the main repository and into the external extension repository [apache/shenyu-plugin-store](https://github.com/apache/shenyu-plugin-store) (tracked by #7306). Consul is the reference precedent (#7308), with Eureka (#7596) and etcd (#7597) following the same pattern. The registry layer was decoupled in #7578: every registry now implements the `ShenyuInstanceRegisterRepository` SPI and is loaded via `ShenyuInstanceRegisterRepositoryFactory.loadRepository`, so it can be cleanly externalized without touching the gateway core. Apollo already follows this pattern (`ApolloInstanceRegisterRepository` + `RegistrySpiTest`), which makes it a good candidate for the same move. Note: unlike Consul (already marked external), **Apollo is still a first-class, supported backend** — the README lists it alongside Nacos/etcd as an available sync mechanism ("HTTP long polling, ZooKeeper, Nacos, etcd, and Apollo are available"). Therefore externalizing it requires a dev-list consensus + deprecation cycle, exactly as etcd (#7597). Apollo is also **not** part of the original #7306 child set (#7294–#7308), so this issue *extends* the plan rather than completing it. ## Scope ### Remove / move out of `apache/shenyu` - `shenyu-registry/shenyu-registry-apollo` (registry implementation; implements `ShenyuInstanceRegisterRepository`) - `shenyu-sync-data-center/shenyu-sync-data-apollo` (data-sync backend; `ApolloDataService`, `ApolloConfig`) - `shenyu-admin-listener/shenyu-admin-listener-apollo` (`ApolloSyncConfiguration`) - `shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-apollo` - `shenyu-common/.../constant/ApolloPathConstants.java` (evaluate — may be shared; move or keep minimal shim) - README.md line "and Apollo are available" → update to "external extension (see plugin-store-apollo.md)" ### Add to `apache/shenyu-plugin-store` Mirror the Consul structure (`docs/plugin-store-consul.md`): - `shenyu-registry-apollo` + `shenyu-sync-data-apollo` + `shenyu-admin-listener-apollo` + starters - `docs/plugin-store-apollo.md` documenting install/enable + cutover contract ## Acceptance Criteria - [ ] All Apollo artifacts build and pass tests inside `shenyu-plugin-store`. - [ ] `ShenyuInstanceRegisterRepositoryFactory.loadRepository` still resolves Apollo when the plugin-store jar is on the classpath (no core change). - [ ] `docs/plugin-store-apollo.md` published with install + enable steps and the #7306 cutover contract. - [ ] README updated; deprecation note + migration guide added for one release before removal from core. - [ ] CI: main-repo build no longer compiles Apollo; plugin-store CI covers it. ## Related - #7306 (umbrella) · #7308 (Consul, precedent) · #7596 (Eureka) · #7597 (etcd) - #7578 (registry SPI decoupling that enables this) -- 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]
