Skip to content

Commit 25630f5

Browse files
authored
GH-8734: expose JmsLisConSpec.observationRegistry (#8764)
* GH-8734: expose JmsLisConSpec.observationRegistry Fixes #8734 Expose `JmsListenerContainerSpec.observationRegistry(ObservationRegistry observationRegistry)` option * * Fix Checkstyle violation for Javadoc
1 parent f89ca99 commit 25630f5

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

spring-integration-jms/src/main/java/org/springframework/integration/jms/dsl/JmsListenerContainerSpec.java

+13
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.springframework.integration.jms.dsl;
1818

19+
import io.micrometer.observation.ObservationRegistry;
1920
import jakarta.jms.Destination;
2021
import jakarta.jms.ExceptionListener;
2122

@@ -158,4 +159,16 @@ public S clientId(String clientId) {
158159
return _this();
159160
}
160161

162+
/**
163+
* Configure an {@link ObservationRegistry} to use in the target listener container.
164+
* @param observationRegistry the observationRegistry.
165+
* @return the spec.
166+
* @since 6.2
167+
* @see AbstractMessageListenerContainer#setObservationRegistry(ObservationRegistry)
168+
*/
169+
public S observationRegistry(ObservationRegistry observationRegistry) {
170+
this.target.setObservationRegistry(observationRegistry);
171+
return _this();
172+
}
173+
161174
}

spring-integration-jms/src/test/java/org/springframework/integration/jms/dsl/JmsTests.java

+13-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.concurrent.atomic.AtomicBoolean;
2323
import java.util.concurrent.atomic.AtomicInteger;
2424

25+
import io.micrometer.observation.ObservationRegistry;
2526
import io.micrometer.observation.tck.TestObservationRegistry;
2627
import io.micrometer.observation.tck.TestObservationRegistryAssert;
2728
import jakarta.jms.JMSException;
@@ -56,6 +57,7 @@
5657
import org.springframework.integration.handler.AbstractReplyProducingMessageHandler;
5758
import org.springframework.integration.jms.ActiveMQMultiContextTests;
5859
import org.springframework.integration.jms.JmsDestinationPollingSource;
60+
import org.springframework.integration.jms.JmsMessageDrivenEndpoint;
5961
import org.springframework.integration.jms.SubscribableJmsChannel;
6062
import org.springframework.integration.scheduling.PollerMetadata;
6163
import org.springframework.integration.support.MessageBuilder;
@@ -129,6 +131,9 @@ public class JmsTests extends ActiveMQMultiContextTests {
129131
@Qualifier("jmsOutboundGateway.handler")
130132
private MessageHandler jmsOutboundGatewayHandler;
131133

134+
@Autowired
135+
JmsMessageDrivenEndpoint containerWithObservation;
136+
132137
@Autowired
133138
private AtomicBoolean jmsMessageDrivenChannelCalled;
134139

@@ -192,6 +197,9 @@ public void testJmsOutboundInboundFlow() {
192197
.extracting(Message::getPayload)
193198
.isEqualTo("HELLO THROUGH THE JMS");
194199

200+
assertThat(TestUtils.getPropertyValue(this.containerWithObservation, "listenerContainer.observationRegistry"))
201+
.isSameAs(this.observationRegistry);
202+
195203
this.jmsOutboundInboundChannel.send(MessageBuilder.withPayload("hello THROUGH the JMS")
196204
.setHeader(SimpMessageHeaderAccessor.DESTINATION_HEADER, "jmsMessageDriven")
197205
.build());
@@ -406,13 +414,16 @@ public IntegrationFlow pubSubFlow(SubscribableJmsChannel jmsPublishSubscribeChan
406414
}
407415

408416
@Bean
409-
public IntegrationFlow jmsMessageDrivenFlow() {
417+
public IntegrationFlow jmsMessageDrivenFlow(ObservationRegistry observationRegistry) {
410418
return IntegrationFlow
411419
.from(Jms.messageDrivenChannelAdapter(amqFactory,
412420
DefaultMessageListenerContainer.class)
413421
.outputChannel(jmsMessageDrivenInputChannel())
414422
.destination("jmsMessageDriven")
415-
.configureListenerContainer(c -> c.clientId("foo")))
423+
.configureListenerContainer(c -> c
424+
.clientId("foo")
425+
.observationRegistry(observationRegistry))
426+
.id("containerWithObservation"))
416427
.<String, String>transform(String::toLowerCase)
417428
.channel(jmsOutboundInboundReplyChannel())
418429
.get();

0 commit comments

Comments
 (0)