|
27 | 27 | import org.apache.pulsar.client.api.Schema; |
28 | 28 | import org.assertj.core.api.AbstractListAssert; |
29 | 29 | import org.assertj.core.api.ObjectAssert; |
| 30 | +import org.jspecify.annotations.Nullable; |
30 | 31 | import org.junit.jupiter.api.BeforeAll; |
31 | 32 | import org.testcontainers.containers.PulsarContainer; |
32 | 33 | import org.testcontainers.junit.jupiter.Testcontainers; |
@@ -103,6 +104,13 @@ protected AbstractListAssert<?, List<? extends String>, String, ObjectAssert<Str |
103 | 104 | .get()).map(Message::getValue); |
104 | 105 | } |
105 | 106 |
|
| 107 | + @FunctionalInterface |
| 108 | + public interface TestPulsarContainerPropertiesCustomizer { |
| 109 | + |
| 110 | + void customize(PulsarContainerProperties containerProps); |
| 111 | + |
| 112 | + } |
| 113 | + |
106 | 114 | @Configuration |
107 | 115 | @EnablePulsar |
108 | 116 | public static class TopLevelConfig { |
@@ -135,11 +143,15 @@ public PulsarConsumerFactory<?> pulsarConsumerFactory(PulsarClient pulsarClient, |
135 | 143 | } |
136 | 144 |
|
137 | 145 | @Bean |
138 | | - PulsarContainerProperties pulsarContainerProperties(PulsarAwareTransactionManager pulsarTransactionManager) { |
| 146 | + PulsarContainerProperties pulsarContainerProperties(PulsarAwareTransactionManager pulsarTransactionManager, |
| 147 | + @Nullable TestPulsarContainerPropertiesCustomizer containerPropsCustomizer) { |
139 | 148 | var containerProps = new PulsarContainerProperties(); |
140 | 149 | containerProps.transactions().setEnabled(true); |
141 | 150 | containerProps.transactions().setRequired(false); |
142 | 151 | containerProps.transactions().setTransactionManager(pulsarTransactionManager); |
| 152 | + if (containerPropsCustomizer != null) { |
| 153 | + containerPropsCustomizer.customize(containerProps); |
| 154 | + } |
143 | 155 | return containerProps; |
144 | 156 | } |
145 | 157 |
|
|
0 commit comments