Merge branch '3.2.x'

Closes gh-39356
This commit is contained in:
Moritz Halbritter 2024-01-31 10:00:26 +01:00
commit ff97fdc203
2 changed files with 27 additions and 2 deletions

View File

@ -65,6 +65,7 @@ import org.springframework.pulsar.reader.PulsarReaderContainerProperties;
* @author Soby Chacko
* @author Alexander Preuß
* @author Phillip Webb
* @author Jonas Geiregat
* @since 3.2.0
*/
@AutoConfiguration
@ -131,7 +132,7 @@ public class PulsarAutoConfiguration {
@Bean
@ConditionalOnMissingBean(PulsarConsumerFactory.class)
DefaultPulsarConsumerFactory<Object> pulsarConsumerFactory(PulsarClient pulsarClient,
DefaultPulsarConsumerFactory<?> pulsarConsumerFactory(PulsarClient pulsarClient,
ObjectProvider<ConsumerBuilderCustomizer<?>> customizersProvider) {
List<ConsumerBuilderCustomizer<?>> customizers = new ArrayList<>();
customizers.add(this.propertiesMapper::customizeConsumerBuilder);
@ -150,7 +151,7 @@ public class PulsarAutoConfiguration {
@Bean
@ConditionalOnMissingBean(name = "pulsarListenerContainerFactory")
ConcurrentPulsarListenerContainerFactory<Object> pulsarListenerContainerFactory(
ConcurrentPulsarListenerContainerFactory<?> pulsarListenerContainerFactory(
PulsarConsumerFactory<Object> pulsarConsumerFactory, SchemaResolver schemaResolver,
TopicResolver topicResolver, Environment environment) {
PulsarContainerProperties containerProperties = new PulsarContainerProperties();

View File

@ -35,6 +35,7 @@ import org.junit.jupiter.api.condition.JRE;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.test.context.FilteredClassLoader;
import org.springframework.boot.test.context.TestConfiguration;
@ -374,6 +375,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)
static class ConsumerBuilderCustomizersConfig {
@ -391,6 +401,20 @@ class PulsarAutoConfigurationTests {
}
static class ExplicitGenericTypeConfig {
@Autowired
PulsarConsumerFactory<TestType> consumerFactory;
@Autowired
ConcurrentPulsarListenerContainerFactory<TestType> containerFactory;
static class TestType {
}
}
}
@Nested