Skip to content

Using ObjectProvider<T> with ordered list access instead of ObjectProvider<List<T>> #14472

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@

package org.springframework.boot.actuate.autoconfigure.info;

import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint;
Expand All @@ -42,9 +41,8 @@ public class InfoEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@ConditionalOnEnabledEndpoint
public InfoEndpoint infoEndpoint(
ObjectProvider<List<InfoContributor>> infoContributors) {
return new InfoEndpoint(infoContributors.getIfAvailable(Collections::emptyList));
public InfoEndpoint infoEndpoint(ObjectProvider<InfoContributor> infoContributors) {
return new InfoEndpoint(infoContributors.stream().collect(Collectors.toList()));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@

package org.springframework.boot.actuate.autoconfigure.scheduling;

import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnEnabledEndpoint;
Expand All @@ -41,8 +40,8 @@ public class ScheduledTasksEndpointAutoConfiguration {
@ConditionalOnMissingBean
@ConditionalOnEnabledEndpoint
public ScheduledTasksEndpoint scheduledTasksEndpoint(
ObjectProvider<List<ScheduledTaskHolder>> holders) {
return new ScheduledTasksEndpoint(holders.getIfAvailable(Collections::emptyList));
ObjectProvider<ScheduledTaskHolder> holders) {
return new ScheduledTasksEndpoint(holders.stream().collect(Collectors.toList()));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package org.springframework.boot.autoconfigure.admin;

import java.util.List;
import java.util.stream.Collectors;

import javax.management.MalformedObjectNameException;

Expand Down Expand Up @@ -62,8 +63,8 @@ public class SpringApplicationAdminJmxAutoConfiguration {
private final Environment environment;

public SpringApplicationAdminJmxAutoConfiguration(
ObjectProvider<List<MBeanExporter>> mbeanExporters, Environment environment) {
this.mbeanExporters = mbeanExporters.getIfAvailable();
ObjectProvider<MBeanExporter> mbeanExporters, Environment environment) {
this.mbeanExporters = mbeanExporters.stream().collect(Collectors.toList());
this.environment = environment;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
package org.springframework.boot.autoconfigure.amqp;

import java.time.Duration;
import java.util.List;
import java.util.stream.Collectors;

import com.rabbitmq.client.Channel;

Expand Down Expand Up @@ -161,11 +161,11 @@ protected static class RabbitTemplateConfiguration {

private final ObjectProvider<MessageConverter> messageConverter;

private final ObjectProvider<List<RabbitRetryTemplateCustomizer>> retryTemplateCustomizers;
private final ObjectProvider<RabbitRetryTemplateCustomizer> retryTemplateCustomizers;

public RabbitTemplateConfiguration(RabbitProperties properties,
ObjectProvider<MessageConverter> messageConverter,
ObjectProvider<List<RabbitRetryTemplateCustomizer>> retryTemplateCustomizers) {
ObjectProvider<RabbitRetryTemplateCustomizer> retryTemplateCustomizers) {
this.properties = properties;
this.messageConverter = messageConverter;
this.retryTemplateCustomizers = retryTemplateCustomizers;
Expand All @@ -184,9 +184,10 @@ public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
template.setMandatory(determineMandatoryFlag());
RabbitProperties.Template properties = this.properties.getTemplate();
if (properties.getRetry().isEnabled()) {
template.setRetryTemplate(new RetryTemplateFactory(
this.retryTemplateCustomizers.getIfAvailable())
.createRetryTemplate(properties.getRetry(),
template.setRetryTemplate(
new RetryTemplateFactory(this.retryTemplateCustomizers.stream()
.collect(Collectors.toList())).createRetryTemplate(
properties.getRetry(),
RabbitRetryTemplateCustomizer.Target.SENDER));
}
map.from(properties::getReceiveTimeout).whenNonNull().as(Duration::toMillis)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

package org.springframework.boot.autoconfigure.cache;

import java.util.List;
import java.util.stream.Collectors;

import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.ObjectProvider;
Expand Down Expand Up @@ -67,8 +67,9 @@ public class CacheAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public CacheManagerCustomizers cacheManagerCustomizers(
ObjectProvider<List<CacheManagerCustomizer<?>>> customizers) {
return new CacheManagerCustomizers(customizers.getIfAvailable());
ObjectProvider<CacheManagerCustomizer<?>> customizers) {
return new CacheManagerCustomizers(
customizers.stream().collect(Collectors.toList()));
}

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import java.time.Duration;
import java.util.List;
import java.util.stream.Collectors;

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.PoolingOptions;
Expand Down Expand Up @@ -54,9 +55,10 @@ public class CassandraAutoConfiguration {
private final List<ClusterBuilderCustomizer> builderCustomizers;

public CassandraAutoConfiguration(CassandraProperties properties,
ObjectProvider<List<ClusterBuilderCustomizer>> builderCustomizers) {
ObjectProvider<ClusterBuilderCustomizer> builderCustomizers) {
this.properties = properties;
this.builderCustomizers = builderCustomizers.getIfAvailable();
this.builderCustomizers = builderCustomizers.stream()
.collect(Collectors.toList());
}

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package org.springframework.boot.autoconfigure.data.neo4j;

import java.util.List;
import java.util.stream.Collectors;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Expand Down Expand Up @@ -70,14 +71,13 @@ public org.neo4j.ogm.config.Configuration configuration(Neo4jProperties properti
@Bean
public SessionFactory sessionFactory(org.neo4j.ogm.config.Configuration configuration,
ApplicationContext applicationContext,
ObjectProvider<List<EventListener>> eventListeners) {
ObjectProvider<EventListener> eventListeners) {
SessionFactory sessionFactory = new SessionFactory(configuration,
getPackagesToScan(applicationContext));
List<EventListener> providedEventListeners = eventListeners.getIfAvailable();
if (providedEventListeners != null) {
for (EventListener eventListener : providedEventListeners) {
sessionFactory.register(eventListener);
}
List<EventListener> providedEventListeners = eventListeners.stream()
.collect(Collectors.toList());
for (EventListener eventListener : providedEventListeners) {
sessionFactory.register(eventListener);
}
return sessionFactory;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import java.time.Duration;
import java.util.List;
import java.util.stream.Collectors;

import com.google.gson.Gson;
import io.searchbox.client.JestClient;
Expand Down Expand Up @@ -57,10 +58,11 @@ public class JestAutoConfiguration {
private final List<HttpClientConfigBuilderCustomizer> builderCustomizers;

public JestAutoConfiguration(JestProperties properties, ObjectProvider<Gson> gson,
ObjectProvider<List<HttpClientConfigBuilderCustomizer>> builderCustomizers) {
ObjectProvider<HttpClientConfigBuilderCustomizer> builderCustomizers) {
this.properties = properties;
this.gsonProvider = gson;
this.builderCustomizers = builderCustomizers.getIfAvailable();
this.builderCustomizers = builderCustomizers.stream()
.collect(Collectors.toList());
}

@Bean(destroyMethod = "shutdownClient")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

package org.springframework.boot.autoconfigure.elasticsearch.rest;

import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
Expand Down Expand Up @@ -54,10 +54,10 @@ public class RestClientAutoConfiguration {
private final List<RestClientBuilderCustomizer> builderCustomizers;

public RestClientAutoConfiguration(RestClientProperties properties,
ObjectProvider<List<RestClientBuilderCustomizer>> builderCustomizers) {
ObjectProvider<RestClientBuilderCustomizer> builderCustomizers) {
this.properties = properties;
this.builderCustomizers = builderCustomizers
.getIfAvailable(Collections::emptyList);
this.builderCustomizers = builderCustomizers.stream()
.collect(Collectors.toList());
}

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
Expand Down Expand Up @@ -61,8 +62,8 @@ public class HttpMessageConvertersAutoConfiguration {
private final List<HttpMessageConverter<?>> converters;

public HttpMessageConvertersAutoConfiguration(
ObjectProvider<List<HttpMessageConverter<?>>> convertersProvider) {
this.converters = convertersProvider.getIfAvailable();
ObjectProvider<HttpMessageConverter<?>> convertersProvider) {
this.converters = convertersProvider.stream().collect(Collectors.toList());
}

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import java.util.Arrays;
import java.util.EnumSet;
import java.util.List;
import java.util.stream.Collectors;

import javax.annotation.PostConstruct;
import javax.servlet.DispatcherType;
Expand Down Expand Up @@ -99,10 +100,10 @@ public class JerseyAutoConfiguration implements ServletContextAware {
private String path;

public JerseyAutoConfiguration(JerseyProperties jersey, ResourceConfig config,
ObjectProvider<List<ResourceConfigCustomizer>> customizers) {
ObjectProvider<ResourceConfigCustomizer> customizers) {
this.jersey = jersey;
this.config = config;
this.customizers = customizers.getIfAvailable();
this.customizers = customizers.stream().collect(Collectors.toList());
}

@PostConstruct
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,8 @@
package org.springframework.boot.autoconfigure.liquibase;

import java.lang.reflect.Method;
import java.util.Collections;
import java.util.List;
import java.util.function.Supplier;
import java.util.stream.Collectors;

import javax.annotation.PostConstruct;
import javax.persistence.EntityManagerFactory;
Expand Down Expand Up @@ -75,9 +74,9 @@ public class LiquibaseAutoConfiguration {

@Bean
public LiquibaseSchemaManagementProvider liquibaseDefaultDdlModeProvider(
ObjectProvider<List<SpringLiquibase>> liquibases) {
ObjectProvider<SpringLiquibase> liquibases) {
return new LiquibaseSchemaManagementProvider(
liquibases.getIfAvailable(Collections::emptyList));
liquibases.stream().collect(Collectors.toList()));
}

@Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.stream.Collectors;

import javax.sql.DataSource;

Expand Down Expand Up @@ -72,12 +73,12 @@ public class QuartzAutoConfiguration {
private final ApplicationContext applicationContext;

public QuartzAutoConfiguration(QuartzProperties properties,
ObjectProvider<List<SchedulerFactoryBeanCustomizer>> customizers,
ObjectProvider<SchedulerFactoryBeanCustomizer> customizers,
ObjectProvider<JobDetail[]> jobDetails,
ObjectProvider<Map<String, Calendar>> calendars,
ObjectProvider<Trigger[]> triggers, ApplicationContext applicationContext) {
this.properties = properties;
this.customizers = customizers.getIfAvailable();
this.customizers = customizers.stream().collect(Collectors.toList());
this.jobDetails = jobDetails.getIfAvailable();
this.calendars = calendars.getIfAvailable();
this.triggers = triggers.getIfAvailable();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

package org.springframework.boot.autoconfigure.transaction;

import java.util.List;
import java.util.stream.Collectors;

import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
Expand Down Expand Up @@ -55,8 +55,9 @@ public class TransactionAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public TransactionManagerCustomizers platformTransactionManagerCustomizers(
ObjectProvider<List<PlatformTransactionManagerCustomizer<?>>> customizers) {
return new TransactionManagerCustomizers(customizers.getIfAvailable());
ObjectProvider<PlatformTransactionManagerCustomizer<?>> customizers) {
return new TransactionManagerCustomizers(
customizers.stream().collect(Collectors.toList()));
}

@Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
Expand Down Expand Up @@ -48,11 +49,11 @@ public class RestTemplateAutoConfiguration {

private final ObjectProvider<HttpMessageConverters> messageConverters;

private final ObjectProvider<List<RestTemplateCustomizer>> restTemplateCustomizers;
private final ObjectProvider<RestTemplateCustomizer> restTemplateCustomizers;

public RestTemplateAutoConfiguration(
ObjectProvider<HttpMessageConverters> messageConverters,
ObjectProvider<List<RestTemplateCustomizer>> restTemplateCustomizers) {
ObjectProvider<RestTemplateCustomizer> restTemplateCustomizers) {
this.messageConverters = messageConverters;
this.restTemplateCustomizers = restTemplateCustomizers;
}
Expand All @@ -65,8 +66,8 @@ public RestTemplateBuilder restTemplateBuilder() {
if (converters != null) {
builder = builder.messageConverters(converters.getConverters());
}
List<RestTemplateCustomizer> customizers = this.restTemplateCustomizers
.getIfAvailable();
List<RestTemplateCustomizer> customizers = this.restTemplateCustomizers.stream()
.collect(Collectors.toList());
if (!CollectionUtils.isEmpty(customizers)) {
customizers = new ArrayList<>(customizers);
AnnotationAwareOrderComparator.sort(customizers);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import java.util.Collection;
import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Expand Down Expand Up @@ -125,18 +126,19 @@ public static class WebFluxConfig implements WebFluxConfigurer {

public WebFluxConfig(ResourceProperties resourceProperties,
WebFluxProperties webFluxProperties, ListableBeanFactory beanFactory,
ObjectProvider<List<HandlerMethodArgumentResolver>> resolvers,
ObjectProvider<List<CodecCustomizer>> codecCustomizers,
ObjectProvider<HandlerMethodArgumentResolver> resolvers,
ObjectProvider<CodecCustomizer> codecCustomizers,
ObjectProvider<ResourceHandlerRegistrationCustomizer> resourceHandlerRegistrationCustomizer,
ObjectProvider<List<ViewResolver>> viewResolvers) {
ObjectProvider<ViewResolver> viewResolvers) {
this.resourceProperties = resourceProperties;
this.webFluxProperties = webFluxProperties;
this.beanFactory = beanFactory;
this.argumentResolvers = resolvers.getIfAvailable();
this.codecCustomizers = codecCustomizers.getIfAvailable();
this.argumentResolvers = resolvers.stream().collect(Collectors.toList());
this.codecCustomizers = codecCustomizers.stream()
.collect(Collectors.toList());
this.resourceHandlerRegistrationCustomizer = resourceHandlerRegistrationCustomizer
.getIfAvailable();
this.viewResolvers = viewResolvers.getIfAvailable();
this.viewResolvers = viewResolvers.stream().collect(Collectors.toList());
}

@Override
Expand Down
Loading