Skip to content

Commit 1a94d40

Browse files
onobcsobychacko
authored andcommitted
Enable observations tests
1 parent 37309d1 commit 1a94d40

File tree

4 files changed

+46
-27
lines changed

4 files changed

+46
-27
lines changed

spring-pulsar/src/main/java/org/springframework/pulsar/listener/ConcurrentPulsarMessageListenerContainer.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,11 +130,6 @@ public void doStop() {
130130
}
131131
}
132132

133-
@Override
134-
public boolean isRunning() {
135-
return false;
136-
}
137-
138133
public List<DefaultPulsarMessageListenerContainer<T>> getContainers() {
139134
return this.containers;
140135
}

spring-pulsar/src/main/java/org/springframework/pulsar/listener/DefaultPulsarMessageListenerContainer.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -142,11 +142,6 @@ public void doStop() {
142142
}
143143
}
144144

145-
@Override
146-
public void destroy() {
147-
148-
}
149-
150145
private void publishConsumerStartingEvent() {
151146
this.startLatch.countDown();
152147
ApplicationEventPublisher publisher = getApplicationEventPublisher();

spring-pulsar/src/test/java/org/springframework/pulsar/observation/ObservationIntegrationTests.java

Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import static org.assertj.core.api.Assertions.assertThat;
2020

2121
import java.util.Collections;
22+
import java.util.HashMap;
2223
import java.util.List;
2324
import java.util.Map;
2425
import java.util.concurrent.CountDownLatch;
@@ -27,7 +28,6 @@
2728
import org.apache.pulsar.client.admin.PulsarAdmin;
2829
import org.apache.pulsar.client.api.PulsarClient;
2930
import org.apache.pulsar.client.api.PulsarClientException;
30-
import org.junit.jupiter.api.Disabled;
3131

3232
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
3333
import org.springframework.context.annotation.Bean;
@@ -64,7 +64,6 @@
6464
* @author Chris Bono
6565
* @see SampleTestRunner
6666
*/
67-
@Disabled
6867
public class ObservationIntegrationTests extends SampleTestRunner implements PulsarTestContainerSupport {
6968

7069
@SuppressWarnings("unchecked")
@@ -73,13 +72,35 @@ public SampleTestRunnerConsumer yourCode() {
7372
// template -> listener -> template -> listener
7473
return (bb, meterRegistry) -> {
7574
ObservationRegistry observationRegistry = getObservationRegistry();
76-
try (AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext()) {
77-
applicationContext.registerBean(ObservationRegistry.class, () -> observationRegistry);
78-
applicationContext.register(ObservationIntegrationTestAppConfig.class);
79-
applicationContext.refresh();
80-
applicationContext.getBean(PulsarTemplate.class).send("obs1-topic", "hello");
81-
CountDownLatch latch = applicationContext.getBean(ObservationIntegrationTestAppListeners.class).latch;
82-
assertThat(latch.await(10, TimeUnit.SECONDS)).isTrue();
75+
try (AnnotationConfigApplicationContext appContext = new AnnotationConfigApplicationContext()) {
76+
appContext.registerBean(ObservationRegistry.class, () -> observationRegistry);
77+
appContext.register(ObservationIntegrationTestAppConfig.class);
78+
appContext.refresh();
79+
80+
ObservationIntegrationTestAppListeners listeners = appContext
81+
.getBean(ObservationIntegrationTestAppListeners.class);
82+
PulsarTemplate<String> template = appContext.getBean(PulsarTemplate.class);
83+
84+
String msg = "hello-" + System.currentTimeMillis();
85+
listeners.expectMessage(msg);
86+
template.send("obs1-topic", msg);
87+
88+
boolean listen1Completed = listeners.latchesByMessageListen1.get(msg).await(10, TimeUnit.SECONDS);
89+
boolean listen2Completed = listeners.latchesByMessageListen2.get(msg).await(10, TimeUnit.SECONDS);
90+
assertThat(listen1Completed).withFailMessage(
91+
"Message %s not received in listen1 (latchesByMessageListen1 = %s and latchesByMessageListen2 = %s)",
92+
msg, listeners.latchesByMessageListen1, listeners.latchesByMessageListen2).isTrue();
93+
assertThat(listen2Completed).withFailMessage(
94+
"Message %s not received in listen2 (latchesByMessageListen1 = %s and latchesByMessageListen2 = %s)",
95+
msg, listeners.latchesByMessageListen1, listeners.latchesByMessageListen2).isTrue();
96+
97+
// Without this sleep, the 2nd tracingSetup run sometimes fails due to
98+
// messages from 1st run being
99+
// delivered during the 2nd run. The test runs share the same listener
100+
// config, including the
101+
// same subscription names. Seems like the listener in run2 is getting
102+
// message from run1.
103+
Thread.sleep(5000);
83104
}
84105

85106
List<FinishedSpan> finishedSpans = bb.getFinishedSpans();
@@ -165,20 +186,30 @@ static class ObservationIntegrationTestAppListeners {
165186

166187
private PulsarTemplate<String> template;
167188

168-
CountDownLatch latch = new CountDownLatch(1);
189+
Map<String, CountDownLatch> latchesByMessageListen1 = new HashMap<>();
190+
191+
Map<String, CountDownLatch> latchesByMessageListen2 = new HashMap<>();
169192

170193
ObservationIntegrationTestAppListeners(PulsarTemplate<String> template) {
171194
this.template = template;
172195
}
173196

197+
void expectMessage(String message) {
198+
latchesByMessageListen1.put(message, new CountDownLatch(1));
199+
latchesByMessageListen2.put(message, new CountDownLatch(1));
200+
}
201+
174202
@PulsarListener(id = "obs1-id", properties = { "subscriptionName=obs1-sub", "topicNames=obs1-topic" })
175203
void listen1(String message) throws PulsarClientException {
204+
assertThat(latchesByMessageListen1).containsKey(message);
205+
latchesByMessageListen1.get(message).countDown();
176206
this.template.send("obs2-topic", message);
177207
}
178208

179209
@PulsarListener(id = "obs2-id", properties = { "subscriptionName=obs2-sub", "topicNames=obs2-topic" })
180210
void listen2(String message) {
181-
latch.countDown();
211+
assertThat(latchesByMessageListen2).containsKey(message);
212+
latchesByMessageListen2.get(message).countDown();
182213
}
183214

184215
}

spring-pulsar/src/test/java/org/springframework/pulsar/observation/ObservationTests.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import org.apache.pulsar.client.api.Message;
3232
import org.apache.pulsar.client.api.PulsarClient;
3333
import org.apache.pulsar.client.api.PulsarClientException;
34-
import org.junit.jupiter.api.Disabled;
3534
import org.junit.jupiter.api.Test;
3635

3736
import org.springframework.beans.factory.annotation.Autowired;
@@ -83,7 +82,6 @@
8382
*
8483
* @author Chris Bono
8584
*/
86-
@Disabled
8785
@SpringJUnitConfig
8886
@DirtiesContext
8987
public class ObservationTests implements PulsarTestContainerSupport {
@@ -217,8 +215,8 @@ public KeyValues getLowCardinalityKeyValues(PulsarMessageReceiverContext context
217215
return super.getLowCardinalityKeyValues(context).and(RECEIVER_EXTRA_TAG, context.getListenerId());
218216
}
219217
});
220-
return new ConcurrentPulsarListenerContainerFactory<>(pulsarConsumerFactory,
221-
new PulsarContainerProperties(), observationRegistry);
218+
return new ConcurrentPulsarListenerContainerFactory<>(pulsarConsumerFactory, containerProperties,
219+
observationRegistry);
222220
}
223221

224222
@Bean
@@ -301,12 +299,12 @@ static class ObservationTestAppListeners {
301299
this.template = template;
302300
}
303301

304-
@PulsarListener(id = "obs1-id", properties = { "subscriptionName=obs1-sub", "topicNames=obs1-topic" })
302+
@PulsarListener(id = "obs1-id", properties = { "subscriptionName=obsTest-sub1", "topicNames=obs1-topic" })
305303
void listen1(Message<String> message) throws PulsarClientException {
306304
this.template.send("obs2-topic", message.getValue());
307305
}
308306

309-
@PulsarListener(id = "obs2-id", properties = { "subscriptionName=obs2-sub", "topicNames=obs2-topic" })
307+
@PulsarListener(id = "obs2-id", properties = { "subscriptionName=obsTest-sub2", "topicNames=obs2-topic" })
310308
void listen2(Message<String> message) {
311309
this.message = message;
312310
this.latch.countDown();

0 commit comments

Comments
 (0)