From 0729a57fc67e6ffd10dcb4d77c9518ae5e57e719 Mon Sep 17 00:00:00 2001 From: David Horak Date: Mon, 10 Feb 2025 21:46:00 +0100 Subject: [PATCH] Add convenient `StreamListenerContainer.getStreamName()` It would be nice to have `StreamListenerContainer.getStreamName()` method to fulfill need to dynamically stop/start listeners in reaction of broker events. Let's say I need to react to RabbitMQ broker events of queue.created / queue.deleted and I need to start and stop listeners, which are assigned to these streams. Currently I need to create an extra map of `listenerId` to `streamName` OR include `streamName` in `listenerId` (e.g. `listener:{streamName}`) to be able to carry our operations on listener. A simple getter for `streamName` on the `StreamListenerContainer` would allow me to react to these changes dynamically without extra code effort. Signed-off-by: David Horak [artem.bilan@broadcom.com: Fix JavaDoc for a new method. Fix Commit message] **Auto-cherry-pick to `3.2.x`** Signed-off-by: Artem Bilan --- .../stream/listener/StreamListenerContainer.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/spring-rabbit-stream/src/main/java/org/springframework/rabbit/stream/listener/StreamListenerContainer.java b/spring-rabbit-stream/src/main/java/org/springframework/rabbit/stream/listener/StreamListenerContainer.java index 44b1ece5..563e0ef4 100644 --- a/spring-rabbit-stream/src/main/java/org/springframework/rabbit/stream/listener/StreamListenerContainer.java +++ b/spring-rabbit-stream/src/main/java/org/springframework/rabbit/stream/listener/StreamListenerContainer.java @@ -57,6 +57,7 @@ import org.springframework.util.Assert; * @author Christian Tzolov * @author Ngoc Nhan * @author Artem Bilan + * @author David Horak * * @since 2.4 * @@ -117,6 +118,15 @@ public class StreamListenerContainer extends ObservableListenerContainer { : new DefaultStreamMessageConverter(); } + /** + * Get a stream name this listener is subscribed to. + * @return the stream name this listener is subscribed to. + * @since 3.2.3 + */ + public String getStreamName() { + return this.streamName; + } + /** * {@inheritDoc} * Mutually exclusive with {@link #superStream(String, String)}.