Merge pull request #39308 from jonasgeiregat
* pr/39308: Polish "Use generic wildcard for Pulsar beans" Use generic wildcard for Pulsar beans Closes gh-39308
This commit is contained in:
commit
7842f737ba
|
@ -65,6 +65,7 @@ import org.springframework.pulsar.reader.PulsarReaderContainerProperties;
|
||||||
* @author Soby Chacko
|
* @author Soby Chacko
|
||||||
* @author Alexander Preuß
|
* @author Alexander Preuß
|
||||||
* @author Phillip Webb
|
* @author Phillip Webb
|
||||||
|
* @author Jonas Geiregat
|
||||||
* @since 3.2.0
|
* @since 3.2.0
|
||||||
*/
|
*/
|
||||||
@AutoConfiguration
|
@AutoConfiguration
|
||||||
|
@ -131,7 +132,7 @@ public class PulsarAutoConfiguration {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean(PulsarConsumerFactory.class)
|
@ConditionalOnMissingBean(PulsarConsumerFactory.class)
|
||||||
DefaultPulsarConsumerFactory<Object> pulsarConsumerFactory(PulsarClient pulsarClient,
|
DefaultPulsarConsumerFactory<?> pulsarConsumerFactory(PulsarClient pulsarClient,
|
||||||
ObjectProvider<ConsumerBuilderCustomizer<?>> customizersProvider) {
|
ObjectProvider<ConsumerBuilderCustomizer<?>> customizersProvider) {
|
||||||
List<ConsumerBuilderCustomizer<?>> customizers = new ArrayList<>();
|
List<ConsumerBuilderCustomizer<?>> customizers = new ArrayList<>();
|
||||||
customizers.add(this.propertiesMapper::customizeConsumerBuilder);
|
customizers.add(this.propertiesMapper::customizeConsumerBuilder);
|
||||||
|
@ -150,7 +151,7 @@ public class PulsarAutoConfiguration {
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@ConditionalOnMissingBean(name = "pulsarListenerContainerFactory")
|
@ConditionalOnMissingBean(name = "pulsarListenerContainerFactory")
|
||||||
ConcurrentPulsarListenerContainerFactory<Object> pulsarListenerContainerFactory(
|
ConcurrentPulsarListenerContainerFactory<?> pulsarListenerContainerFactory(
|
||||||
PulsarConsumerFactory<Object> pulsarConsumerFactory, SchemaResolver schemaResolver,
|
PulsarConsumerFactory<Object> pulsarConsumerFactory, SchemaResolver schemaResolver,
|
||||||
TopicResolver topicResolver, Environment environment) {
|
TopicResolver topicResolver, Environment environment) {
|
||||||
PulsarContainerProperties containerProperties = new PulsarContainerProperties();
|
PulsarContainerProperties containerProperties = new PulsarContainerProperties();
|
||||||
|
|
|
@ -34,6 +34,7 @@ import org.junit.jupiter.api.condition.JRE;
|
||||||
import org.junit.jupiter.params.ParameterizedTest;
|
import org.junit.jupiter.params.ParameterizedTest;
|
||||||
import org.junit.jupiter.params.provider.ValueSource;
|
import org.junit.jupiter.params.provider.ValueSource;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||||
import org.springframework.boot.test.context.FilteredClassLoader;
|
import org.springframework.boot.test.context.FilteredClassLoader;
|
||||||
import org.springframework.boot.test.context.TestConfiguration;
|
import org.springframework.boot.test.context.TestConfiguration;
|
||||||
|
@ -373,6 +374,15 @@ class PulsarAutoConfigurationTests {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void injectsExpectedBeanWithExplicitGenericType() {
|
||||||
|
this.contextRunner.withBean(ExplicitGenericTypeConfig.class)
|
||||||
|
.run((context) -> assertThat(context).getBean(ExplicitGenericTypeConfig.class)
|
||||||
|
.hasFieldOrPropertyWithValue("consumerFactory", context.getBean(PulsarConsumerFactory.class))
|
||||||
|
.hasFieldOrPropertyWithValue("containerFactory",
|
||||||
|
context.getBean(ConcurrentPulsarListenerContainerFactory.class)));
|
||||||
|
}
|
||||||
|
|
||||||
@TestConfiguration(proxyBeanMethods = false)
|
@TestConfiguration(proxyBeanMethods = false)
|
||||||
static class ConsumerBuilderCustomizersConfig {
|
static class ConsumerBuilderCustomizersConfig {
|
||||||
|
|
||||||
|
@ -390,6 +400,20 @@ class PulsarAutoConfigurationTests {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static class ExplicitGenericTypeConfig {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
PulsarConsumerFactory<TestType> consumerFactory;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
ConcurrentPulsarListenerContainerFactory<TestType> containerFactory;
|
||||||
|
|
||||||
|
static class TestType {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nested
|
@Nested
|
||||||
|
|
Loading…
Reference in New Issue