Merge branch '6.1.x'

This commit is contained in:
Brian Clozel
2024-07-19 17:21:41 +02:00
3 changed files with 44 additions and 0 deletions

View File

@@ -23,9 +23,12 @@ import java.util.stream.Stream;
import io.micrometer.observation.Observation;
import io.micrometer.observation.tck.TestObservationRegistry;
import jakarta.jms.Message;
import jakarta.jms.MessageListener;
import jakarta.jms.TextMessage;
import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
import org.apache.activemq.artemis.junit.EmbeddedActiveMQExtension;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.extension.RegisterExtension;
@@ -81,6 +84,33 @@ class MessageListenerContainerObservationTests {
listenerContainer.shutdown();
}
@ParameterizedTest(name = "[{index}] {0}")
@MethodSource("listenerContainers")
void shouldRecordJmsPublishObservations(AbstractMessageListenerContainer listenerContainer) throws Exception {
CountDownLatch latch = new CountDownLatch(1);
listenerContainer.setConnectionFactory(connectionFactory);
listenerContainer.setObservationRegistry(registry);
listenerContainer.setDestinationName("spring.test.observation");
listenerContainer.setMessageListener((SessionAwareMessageListener) (message, session) -> {
Message response = session.createTextMessage("test response");
session.createProducer(message.getJMSReplyTo()).send(response);
});
listenerContainer.afterPropertiesSet();
listenerContainer.start();
JmsTemplate jmsTemplate = new JmsTemplate(connectionFactory);
TextMessage response = (TextMessage) jmsTemplate.sendAndReceive("spring.test.observation",
session -> session.createTextMessage("test request"));
// request received by listener and response received by template
assertThat(registry).hasNumberOfObservationsWithNameEqualTo("jms.message.process", 2);
// response sent to the template
assertThat(registry).hasNumberOfObservationsWithNameEqualTo("jms.message.publish", 1);
Assertions.assertThat(response.getText()).isEqualTo("test response");
listenerContainer.stop();
listenerContainer.shutdown();
}
@ParameterizedTest(name = "[{index}] {0}")
@MethodSource("listenerContainers")
void shouldHaveObservationScopeInErrorHandler(AbstractMessageListenerContainer listenerContainer) throws Exception {