Fix custom test PulsarProducerFactory
Spring Pulsar 1.1.x introduced a new method `getPulsarClient` on `PulsarProducerFactory` and the PulsarBinderIntegrationTests has a custom factory that must be updated in order to run on both Pulsar 1.0.x and 1.1.x (i.e. Spring Boot 3.2.x and 3.3.x).
This commit is contained in:
@@ -26,6 +26,7 @@ import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import org.apache.pulsar.client.api.Producer;
|
||||
import org.apache.pulsar.client.api.PulsarClient;
|
||||
import org.apache.pulsar.client.api.Schema;
|
||||
import org.apache.pulsar.client.impl.schema.JSONSchema;
|
||||
import org.apache.pulsar.common.schema.KeyValue;
|
||||
@@ -637,8 +638,8 @@ class PulsarBinderIntegrationTests implements PulsarTestContainerSupport {
|
||||
static class BinderAndBindingPropsTestConfig {
|
||||
|
||||
@Bean
|
||||
TrackingProducerFactoryBeanPostProcessor trackingProducerFactory() {
|
||||
return new TrackingProducerFactoryBeanPostProcessor();
|
||||
TrackingProducerFactoryBeanPostProcessor trackingProducerFactory(PulsarClient pulsarClient) {
|
||||
return new TrackingProducerFactoryBeanPostProcessor(pulsarClient);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@@ -650,10 +651,16 @@ class PulsarBinderIntegrationTests implements PulsarTestContainerSupport {
|
||||
|
||||
static class TrackingProducerFactoryBeanPostProcessor implements BeanPostProcessor {
|
||||
|
||||
private final PulsarClient pulsarClient;
|
||||
|
||||
TrackingProducerFactoryBeanPostProcessor(PulsarClient pulsarClient) {
|
||||
this.pulsarClient = pulsarClient;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
|
||||
if (bean instanceof DefaultPulsarProducerFactory defaultFactory) {
|
||||
return new TrackingProducerFactory(defaultFactory);
|
||||
return new TrackingProducerFactory(defaultFactory, this.pulsarClient);
|
||||
}
|
||||
return bean;
|
||||
}
|
||||
@@ -664,10 +671,18 @@ class PulsarBinderIntegrationTests implements PulsarTestContainerSupport {
|
||||
|
||||
private final DefaultPulsarProducerFactory<String> trackedProducerFactory;
|
||||
|
||||
private final PulsarClient pulsarClient;
|
||||
|
||||
List<Producer<String>> producersCreated = new ArrayList<>();
|
||||
|
||||
TrackingProducerFactory(DefaultPulsarProducerFactory<String> trackedProducerFactory) {
|
||||
TrackingProducerFactory(DefaultPulsarProducerFactory<String> trackedProducerFactory, PulsarClient pulsarClient) {
|
||||
this.trackedProducerFactory = trackedProducerFactory;
|
||||
this.pulsarClient = pulsarClient;
|
||||
}
|
||||
|
||||
// This is required in PulsarProducerFactory in Spring Pulsar 1.1.x (i.e. Spring Boot 3.3.x)
|
||||
public PulsarClient getPulsarClient() {
|
||||
return this.pulsarClient;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user