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