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]

Reply via email to