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

   ## Background
   
   Eureka support is an optional service-registry / discovery integration 
rather than a request plugin. The current implementation spans:
   
   - `shenyu-registry-eureka`;
   - its Spring Boot starter (currently bundled in the compatibility 
`shenyu-spring-boot-starter-registry`);
   - `shenyu-examples-eureka`;
   - references in `shenyu-e2e-case` and the admin/compatibility distribution 
graphs.
   
   Eureka is registry-only in ShenYu (there is no Eureka 
data-sync/admin-listener path), so the migration unit is smaller than Consul 
(#7308). Moving it out reduces the default distribution's Eureka 2.x client 
footprint and aligns with the #7306 decision principles: a 
vendor/middleware-specific adapter, loadable through an external starter 
contract, whose dependency and release lifecycle should not enlarge the default 
distribution. Netflix Eureka is in maintenance mode upstream, which reinforces 
the external-extension ownership model.
   
   Tracked by #7306. Depends on #7294. Precedent: #7308 (Consul).
   
   ## Scope
   
   ### plugin-store
   
   - Add a `shenyu-registry-eureka` module using the established store layout.
   - Migrate with current unit tests; preserve all fixes present at cutover 
(instance register/deregister, discovery refresh, lease/heartbeat behavior).
   - Add starter auto-configuration tests.
   - Add an E2E environment with a real disposable Eureka server, ShenYu admin, 
and ShenYu gateway covering instance registration, discovery, deregistration, 
and config refresh.
   - Document Eureka version compatibility, ShenYu compatibility, and 
configuration.
   
   ### apache/shenyu
   
   - Remove the in-tree `shenyu-registry-eureka` module, its starter wiring, 
aggregator entries, default-bootstrap/admin distribution dependency, and 
examples only after external parity.
   - Update dependency management, examples, docs, CI matrices, LICENSE/NOTICE, 
and distribution packaging.
   - Reuse the #7578 SPI factory 
(`ShenyuInstanceRegisterRepositoryFactory.loadRepository`) so the `eureka` type 
key resolves to an external SPI implementation without hard-coded core coupling.
   - Preserve the `eureka` registry type name and any enum/SQL compatibility 
contracts.
   - Provide migration and rollback guidance for existing `registerType: 
eureka` deployments.
   
   ## Acceptance Criteria
   
   - [ ] Eureka registry/instance support is owned and built in plugin-store.
   - [ ] Unit tests cover register/deregister, discovery refresh, and shutdown.
   - [ ] Starter auto-configuration has direct test coverage.
   - [ ] E2E proves instance registration and discovery through a real Eureka 
server.
   - [ ] Other registry implementations remain green after main-repository 
removal.
   - [ ] Existing `eureka` type name/configuration has documented compatibility 
and rollback steps.
   - [ ] A minimal deployment can enable Eureka solely through external 
artifacts and configuration.
   - [ ] Artifact publication and main-repository removal are coordinated 
without duplicate coordinates.
   


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