Skip to content
Open
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,13 +16,13 @@

package org.springframework.boot.gson.autoconfigure;

import java.util.List;
import java.util.function.Consumer;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.Strictness;

import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
Expand All @@ -38,6 +38,7 @@
*
* @author David Liu
* @author Ivan Golovko
* @author Yanming Zhou
* @since 4.0.0
*/
@AutoConfiguration
Expand All @@ -47,9 +48,9 @@ public final class GsonAutoConfiguration {

@Bean
@ConditionalOnMissingBean
GsonBuilder gsonBuilder(List<GsonBuilderCustomizer> customizers) {
GsonBuilder gsonBuilder(ObjectProvider<GsonBuilderCustomizer> customizers) {
GsonBuilder builder = new GsonBuilder();
customizers.forEach((c) -> c.customize(builder));
customizers.orderedStream().forEach((c) -> c.customize(builder));
return builder;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@
* @author Phillip Webb
* @author Eddú Meléndez
* @author Ralf Ueberfuhr
* @author Yanming Zhou
* @since 4.0.0
*/
@AutoConfiguration
Expand All @@ -113,29 +114,22 @@ JacksonComponentModule jsonComponentModule() {

@Bean
@ConditionalOnMissingBean
JsonFactory jsonFactory(List<JsonFactoryBuilderCustomizer> customizers) {
JsonFactory jsonFactory(ObjectProvider<JsonFactoryBuilderCustomizer> customizers) {
JsonFactoryBuilder builder = JsonFactory.builder();
for (JsonFactoryBuilderCustomizer customizer : customizers) {
customizer.customize(builder);
}
customizers.orderedStream().forEach((customizer) -> customizer.customize(builder));
return builder.build();
}

@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@ConditionalOnMissingBean
JsonMapper.Builder jsonMapperBuilder(List<JsonMapperBuilderCustomizer> customizers, JsonFactory jsonFactory) {
JsonMapper.Builder jsonMapperBuilder(ObjectProvider<JsonMapperBuilderCustomizer> customizers,
JsonFactory jsonFactory) {
JsonMapper.Builder builder = JsonMapper.builder(jsonFactory);
customize(builder, customizers);
customizers.orderedStream().forEach((customizer) -> customizer.customize(builder));
return builder;
}

private void customize(JsonMapper.Builder builder, List<JsonMapperBuilderCustomizer> customizers) {
for (JsonMapperBuilderCustomizer customizer : customizers) {
customizer.customize(builder);
}
}

@Bean
@Primary
@ConditionalOnMissingBean
Expand Down Expand Up @@ -250,29 +244,22 @@ static class CborConfiguration {

@Bean
@ConditionalOnMissingBean
CBORFactory cborFactory(List<CborFactoryBuilderCustomizer> customizers) {
CBORFactory cborFactory(ObjectProvider<CborFactoryBuilderCustomizer> customizers) {
CBORFactoryBuilder builder = CBORFactory.builder();
for (CborFactoryBuilderCustomizer customizer : customizers) {
customizer.customize(builder);
}
customizers.orderedStream().forEach((customizer) -> customizer.customize(builder));
return builder.build();
}

@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@ConditionalOnMissingBean
CBORMapper.Builder cborMapperBuilder(CBORFactory factory, List<CborMapperBuilderCustomizer> customizers) {
CBORMapper.Builder cborMapperBuilder(CBORFactory factory,
ObjectProvider<CborMapperBuilderCustomizer> customizers) {
CBORMapper.Builder builder = CBORMapper.builder(factory);
customize(builder, customizers);
customizers.orderedStream().forEach((customizer) -> customizer.customize(builder));
return builder;
}

private void customize(CBORMapper.Builder builder, List<CborMapperBuilderCustomizer> customizers) {
for (CborMapperBuilderCustomizer customizer : customizers) {
customizer.customize(builder);
}
}

@Bean
@ConditionalOnMissingBean
CBORMapper cborMapper(CBORMapper.Builder builder) {
Expand Down Expand Up @@ -340,29 +327,22 @@ static class XmlConfiguration {

@Bean
@ConditionalOnMissingBean
XmlFactory xmlFactory(List<XmlFactoryBuilderCustomizer> customizers) {
XmlFactory xmlFactory(ObjectProvider<XmlFactoryBuilderCustomizer> customizers) {
XmlFactoryBuilder builder = XmlFactory.builder();
for (XmlFactoryBuilderCustomizer customizer : customizers) {
customizer.customize(builder);
}
customizers.orderedStream().forEach((customizer) -> customizer.customize(builder));
return builder.build();
}

@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@ConditionalOnMissingBean
XmlMapper.Builder xmlMapperBuilder(XmlFactory xmlFactory, List<XmlMapperBuilderCustomizer> customizers) {
XmlMapper.Builder xmlMapperBuilder(XmlFactory xmlFactory,
ObjectProvider<XmlMapperBuilderCustomizer> customizers) {
XmlMapper.Builder builder = XmlMapper.builder(xmlFactory);
customize(builder, customizers);
customizers.orderedStream().forEach((customizer) -> customizer.customize(builder));
return builder;
}

private void customize(XmlMapper.Builder builder, List<XmlMapperBuilderCustomizer> customizers) {
for (XmlMapperBuilderCustomizer customizer : customizers) {
customizer.customize(builder);
}
}

@Bean
@ConditionalOnMissingBean
XmlMapper xmlMapper(XmlMapper.Builder builder) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@
* @author Phillip Webb
* @author Eddú Meléndez
* @author Ralf Ueberfuhr
* @author Yanming Zhou
* @since 4.0.0
* @deprecated since 4.0.0 for removal in 4.3.0 in favor of Jackson 3.
*/
Expand Down Expand Up @@ -157,20 +158,14 @@ static class JacksonObjectMapperBuilderConfiguration {
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@ConditionalOnMissingBean
org.springframework.http.converter.json.Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder(
ApplicationContext applicationContext, List<Jackson2ObjectMapperBuilderCustomizer> customizers) {
ApplicationContext applicationContext,
ObjectProvider<Jackson2ObjectMapperBuilderCustomizer> customizers) {
org.springframework.http.converter.json.Jackson2ObjectMapperBuilder builder = new org.springframework.http.converter.json.Jackson2ObjectMapperBuilder();
builder.applicationContext(applicationContext);
customize(builder, customizers);
customizers.orderedStream().forEach((customizer) -> customizer.customize(builder));
return builder;
}

private void customize(org.springframework.http.converter.json.Jackson2ObjectMapperBuilder builder,
List<Jackson2ObjectMapperBuilderCustomizer> customizers) {
for (Jackson2ObjectMapperBuilderCustomizer customizer : customizers) {
customizer.customize(builder);
}
}

}

@Configuration(proxyBeanMethods = false)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

package org.springframework.boot.kotlinx.serialization.json.autoconfigure;

import java.util.List;
import java.util.function.Consumer;

import kotlin.Unit;
Expand All @@ -26,6 +25,7 @@
import kotlinx.serialization.json.JsonKt;
import kotlinx.serialization.json.JsonNamingStrategy;

import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
Expand All @@ -39,6 +39,7 @@
* {@link EnableAutoConfiguration Auto-configuration} for Kotlinx Serialization JSON.
*
* @author Dmitry Sulman
* @author Yanming Zhou
* @since 4.0.0
*/
@AutoConfiguration
Expand All @@ -48,9 +49,9 @@ public final class KotlinxSerializationJsonAutoConfiguration {

@Bean
@ConditionalOnMissingBean
Json kotlinSerializationJson(List<KotlinxSerializationJsonBuilderCustomizer> customizers) {
Json kotlinSerializationJson(ObjectProvider<KotlinxSerializationJsonBuilderCustomizer> customizers) {
Function1<JsonBuilder, Unit> builderAction = (jsonBuilder) -> {
customizers.forEach((c) -> c.customize(jsonBuilder));
customizers.orderedStream().forEach((customizer) -> customizer.customize(jsonBuilder));
return Unit.INSTANCE;
};
return JsonKt.Json(Json.Default, builderAction);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
* @author Moritz Halbritter
* @author Marcin Grzejszczak
* @author Jonatan Ivanov
* @author Yanming Zhou
* @since 4.0.0
*/
@AutoConfiguration(before = { MicrometerTracingAutoConfiguration.class, NoopTracerAutoConfiguration.class })
Expand Down Expand Up @@ -100,7 +101,7 @@ CompositeSpanHandler compositeSpanHandler(ObjectProvider<SpanExportingPredicate>
@Bean
@ConditionalOnMissingBean
Tracing braveTracing(Environment environment, List<SpanHandler> spanHandlers,
List<TracingCustomizer> tracingCustomizers, CurrentTraceContext currentTraceContext,
ObjectProvider<TracingCustomizer> tracingCustomizers, CurrentTraceContext currentTraceContext,
Factory propagationFactory, Sampler sampler) {
if (this.braveTracingProperties.isSpanJoiningSupported()) {
if (this.tracingProperties.getPropagation().getType() != null
Expand Down Expand Up @@ -128,9 +129,7 @@ Tracing braveTracing(Environment environment, List<SpanHandler> spanHandlers,
.sampler(sampler)
.localServiceName(applicationName);
spanHandlers.forEach(builder::addSpanHandler);
for (TracingCustomizer tracingCustomizer : tracingCustomizers) {
tracingCustomizer.customize(builder);
}
tracingCustomizers.orderedStream().forEach((customizer) -> customizer.customize(builder));
return builder.build();
}

Expand All @@ -143,12 +142,10 @@ brave.Tracer braveTracer(Tracing tracing) {
@Bean
@ConditionalOnMissingBean
CurrentTraceContext braveCurrentTraceContext(List<CurrentTraceContext.ScopeDecorator> scopeDecorators,
List<CurrentTraceContextCustomizer> currentTraceContextCustomizers) {
ObjectProvider<CurrentTraceContextCustomizer> currentTraceContextCustomizers) {
ThreadLocalCurrentTraceContext.Builder builder = ThreadLocalCurrentTraceContext.newBuilder();
scopeDecorators.forEach(builder::addScopeDecorator);
for (CurrentTraceContextCustomizer currentTraceContextCustomizer : currentTraceContextCustomizers) {
currentTraceContextCustomizer.customize(builder);
}
currentTraceContextCustomizers.orderedStream().forEach((customizer) -> customizer.customize(builder));
return builder.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@

package org.springframework.boot.resttestclient.autoconfigure;

import java.util.List;

import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.AutoConfiguration;
Expand All @@ -38,6 +36,7 @@
* @author Stephane Nicoll
* @author Andy Wilkinson
* @author Phillip Webb
* @author Yanming Zhou
* @see AutoConfigureRestTestClient
*/
@AutoConfiguration
Expand All @@ -53,9 +52,9 @@ SpringBootRestTestClientBuilderCustomizer springBootRestTestClientBuilderCustomi
@Bean
@ConditionalOnMissingBean
RestTestClient restTestClient(WebApplicationContext applicationContext,
List<RestTestClientBuilderCustomizer> customizers) {
ObjectProvider<RestTestClientBuilderCustomizer> customizers) {
RestTestClient.Builder<?> builder = getBuilder(applicationContext);
customizers.forEach((customizer) -> customizer.customize(builder));
customizers.orderedStream().forEach((customizer) -> customizer.customize(builder));
return builder.build();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
* @author Stephane Nicoll
* @author Andy Wilkinson
* @author Phillip Webb
* @author Yanming Zhou
* @since 4.0.0
*/
@AutoConfiguration(after = CodecsAutoConfiguration.class)
Expand All @@ -63,10 +64,10 @@ SpringBootWebTestClientBuilderCustomizer springBootWebTestClientBuilderCustomize

@Bean
@ConditionalOnMissingBean
WebTestClient webTestClient(ApplicationContext applicationContext, List<WebTestClientBuilderCustomizer> customizers,
List<MockServerConfigurer> configurers) {
WebTestClient webTestClient(ApplicationContext applicationContext,
ObjectProvider<WebTestClientBuilderCustomizer> customizers, List<MockServerConfigurer> configurers) {
WebTestClient.Builder builder = getBuilder(applicationContext, configurers);
customizers.forEach((customizer) -> customizer.customize(builder));
customizers.orderedStream().forEach((customizer) -> customizer.customize(builder));
return builder.build();
}

Expand Down
Loading