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

   ## Background
   
   `shenyu-plugin-logging-rabbitmq` is an optional access-log sink built on the 
shared ShenYu logging abstraction. It is not required by gateway core and 
should have an independent dependency and release lifecycle in 
`apache/shenyu-plugin-store`.
   
   The current implementation has recent lifecycle fixes, including closing the 
connection when channel shutdown fails. Those changes and the shared collector 
lifecycle issue must be preserved during migration.
   
   Tracked by #7306. Depends on #7294. Related lifecycle issue: #6655.
   
   ## Scope
   
   ### plugin-store
   
   - Add the RabbitMQ logging plugin and Spring Boot starter while consuming 
the supported `shenyu-plugin-logging-common` artifact.
   - Port every main-branch RabbitMQ fix present at the cutover commit.
   - Port and expand unit tests for connection/channel creation, 
exchange/queue/routing-key configuration, event serialization, batching, 
publish confirms/failures, dynamic config refresh, repeated start, reconnect, 
and shutdown.
   - Add Testcontainers-based E2E with a real RabbitMQ broker:
     - start a gateway with the external starter;
     - generate gateway traffic;
     - consume and validate the emitted access-log message;
     - update plugin configuration and verify the new destination;
     - restart or interrupt the broker and verify recovery;
     - verify clean gateway shutdown without leaked channels, connections, 
executors, or consumer threads.
   - Document broker/TLS/authentication settings, exchange/queue requirements, 
payload schema, delivery guarantees, retry/backpressure behavior, and 
ShenYu/RabbitMQ compatibility.
   
   ### apache/shenyu
   
   - Remove the RabbitMQ plugin, starter, aggregator entries, and 
default-bootstrap dependency only after store parity and artifact publication.
   - Update current plugin enum/admin seed/menu/configuration, documentation, 
dependency management, LICENSE/NOTICE, and distribution packaging.
   - Preserve historical release notes and upgrade SQL.
   - Ensure the default ShenYu distribution no longer pulls the RabbitMQ Java 
client.
   - Document migration of existing plugin/selector configuration and Maven 
coordinates.
   
   ## Acceptance Criteria
   
   - [ ] Store source contains all RabbitMQ fixes from main at the cutover 
commit.
   - [ ] Unit tests cover mapping, publish failure, config refresh, repeated 
start, reconnect, and cleanup.
   - [ ] E2E uses a disposable real RabbitMQ broker and validates the emitted 
message.
   - [ ] Broker restart/recovery and clean shutdown are covered.
   - [ ] #6655 is fixed or protected by regression tests before cutover.
   - [ ] A minimal gateway can emit logs by adding only the external starter 
and configuration.
   - [ ] Exactly one repository publishes each RabbitMQ plugin artifact version.
   - [ ] Main-repository removal occurs only after plugin-store CI and E2E are 
green.
   
   


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