Make auto-configurations final and remove public members

Closes gh-32883
This commit is contained in:
Moritz Halbritter
2025-07-29 09:48:49 +02:00
parent a7e0689a50
commit c0f1f641ce
334 changed files with 891 additions and 811 deletions
@@ -22,10 +22,12 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import com.tngtech.archunit.base.DescribedPredicate;
import com.tngtech.archunit.core.domain.AccessTarget.CodeUnitCallTarget;
@@ -33,6 +35,9 @@ import com.tngtech.archunit.core.domain.JavaAnnotation;
import com.tngtech.archunit.core.domain.JavaCall;
import com.tngtech.archunit.core.domain.JavaClass;
import com.tngtech.archunit.core.domain.JavaClass.Predicates;
import com.tngtech.archunit.core.domain.JavaConstructor;
import com.tngtech.archunit.core.domain.JavaField;
import com.tngtech.archunit.core.domain.JavaMember;
import com.tngtech.archunit.core.domain.JavaMethod;
import com.tngtech.archunit.core.domain.JavaModifier;
import com.tngtech.archunit.core.domain.JavaParameter;
@@ -68,6 +73,8 @@ import org.springframework.util.ResourceUtils;
*/
final class ArchitectureRules {
private static final String AUTOCONFIGURATION_ANNOTATION = "org.springframework.boot.autoconfigure.AutoConfiguration";
private ArchitectureRules() {
}
@@ -98,6 +105,8 @@ final class ArchitectureRules {
rules.add(methodLevelConfigurationPropertiesShouldNotSpecifyOnlyPrefixAttribute());
rules.add(conditionsShouldNotBePublic());
rules.add(allConfigurationPropertiesBindingBeanMethodsShouldBeStatic());
rules.add(autoConfigurationClassesShouldBePublicAndFinal());
rules.add(autoConfigurationClassesShouldHaveNoPublicMembers());
return List.copyOf(rules);
}
@@ -319,6 +328,63 @@ final class ArchitectureRules {
.allowEmptyShould(true);
}
private static ArchRule autoConfigurationClassesShouldBePublicAndFinal() {
return ArchRuleDefinition.classes()
.that()
.areAnnotatedWith(AUTOCONFIGURATION_ANNOTATION)
.should()
.bePublic()
.andShould()
.haveModifier(JavaModifier.FINAL)
.allowEmptyShould(true);
}
private static ArchRule autoConfigurationClassesShouldHaveNoPublicMembers() {
return ArchRuleDefinition.members()
.that()
.areDeclaredInClassesThat()
.areAnnotatedWith(AUTOCONFIGURATION_ANNOTATION)
.and(areNotDefaultConstructors())
.and(areNotConstants())
.and(dontOverridePublicMethods())
.should()
.notBePublic()
.allowEmptyShould(true);
}
private static DescribedPredicate<? super JavaMember> dontOverridePublicMethods() {
OverridesPublicMethod<JavaMember> predicate = new OverridesPublicMethod<>();
return DescribedPredicate.describe("don't override public methods", (member) -> !predicate.test(member));
}
private static DescribedPredicate<JavaMember> areNotDefaultConstructors() {
return DescribedPredicate.describe("aren't default constructors",
(member) -> !areDefaultConstructors().test(member));
}
private static DescribedPredicate<JavaMember> areDefaultConstructors() {
return DescribedPredicate.describe("are default constructors", (member) -> {
if (!(member instanceof JavaConstructor constructor)) {
return false;
}
return constructor.getParameters().isEmpty();
});
}
private static DescribedPredicate<JavaMember> areNotConstants() {
return DescribedPredicate.describe("aren't constants", (member) -> !areConstants().test(member));
}
private static DescribedPredicate<JavaMember> areConstants() {
return DescribedPredicate.describe("are constants", (member) -> {
if (member instanceof JavaField field) {
Set<JavaModifier> modifiers = field.getModifiers();
return modifiers.contains(JavaModifier.STATIC) && modifiers.contains(JavaModifier.FINAL);
}
return false;
});
}
private static boolean containsOnlySingleType(JavaType[] types, JavaType type) {
return types.length == 1 && type.equals(types[0]);
}
@@ -391,4 +457,39 @@ final class ArchitectureRules {
return string + " should be used instead";
}
private static class OverridesPublicMethod<T extends JavaMember> extends DescribedPredicate<T> {
OverridesPublicMethod() {
super("overrides public method");
}
@Override
public boolean test(T member) {
if (!(member instanceof JavaMethod javaMethod)) {
return false;
}
Stream<JavaMethod> superClassMethods = member.getOwner()
.getAllRawSuperclasses()
.stream()
.flatMap((superClass) -> superClass.getMethods().stream());
Stream<JavaMethod> interfaceMethods = member.getOwner()
.getAllRawInterfaces()
.stream()
.flatMap((iface) -> iface.getMethods().stream());
return Stream.concat(superClassMethods, interfaceMethods)
.anyMatch((superMethod) -> isPublic(superMethod) && isOverridden(superMethod, javaMethod));
}
private boolean isPublic(JavaMethod method) {
return method.getModifiers().contains(JavaModifier.PUBLIC);
}
private boolean isOverridden(JavaMethod superMethod, JavaMethod method) {
return superMethod.getName().equals(method.getName())
&& superMethod.getRawParameterTypes().size() == method.getRawParameterTypes().size()
&& superMethod.getDescriptor().equals(method.getDescriptor());
}
}
}
@@ -40,7 +40,7 @@ import org.springframework.jmx.export.MBeanExporter;
*/
@AutoConfiguration(after = JmxAutoConfiguration.class)
@ConditionalOnBooleanProperty("spring.application.admin.enabled")
public class SpringApplicationAdminJmxAutoConfiguration {
public final class SpringApplicationAdminJmxAutoConfiguration {
/**
* The property to use to customize the {@code ObjectName} of the application admin
@@ -55,8 +55,8 @@ public class SpringApplicationAdminJmxAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public SpringApplicationAdminMXBeanRegistrar springApplicationAdminRegistrar(
ObjectProvider<MBeanExporter> mbeanExporters, Environment environment) throws MalformedObjectNameException {
SpringApplicationAdminMXBeanRegistrar springApplicationAdminRegistrar(ObjectProvider<MBeanExporter> mbeanExporters,
Environment environment) throws MalformedObjectNameException {
String jmxName = environment.getProperty(JMX_NAME_PROPERTY, DEFAULT_JMX_NAME);
if (mbeanExporters != null) { // Make sure to not register that MBean twice
for (MBeanExporter mbeanExporter : mbeanExporters) {
@@ -45,7 +45,7 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy;
*/
@AutoConfiguration
@ConditionalOnBooleanProperty(name = "spring.aop.auto", matchIfMissing = true)
public class AopAutoConfiguration {
public final class AopAutoConfiguration {
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(Advice.class)
@@ -31,11 +31,11 @@ import org.springframework.context.annotation.Bean;
* @since 2.3.0
*/
@AutoConfiguration
public class ApplicationAvailabilityAutoConfiguration {
public final class ApplicationAvailabilityAutoConfiguration {
@Bean
@ConditionalOnMissingBean(ApplicationAvailability.class)
public ApplicationAvailabilityBean applicationAvailability() {
ApplicationAvailabilityBean applicationAvailability() {
return new ApplicationAvailabilityBean();
}
@@ -33,6 +33,6 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
*/
@AutoConfiguration
@EnableConfigurationProperties
public class ConfigurationPropertiesAutoConfiguration {
public final class ConfigurationPropertiesAutoConfiguration {
}
@@ -34,12 +34,12 @@ import org.springframework.context.support.DefaultLifecycleProcessor;
*/
@AutoConfiguration
@EnableConfigurationProperties(LifecycleProperties.class)
public class LifecycleAutoConfiguration {
public final class LifecycleAutoConfiguration {
@Bean(name = AbstractApplicationContext.LIFECYCLE_PROCESSOR_BEAN_NAME)
@ConditionalOnMissingBean(name = AbstractApplicationContext.LIFECYCLE_PROCESSOR_BEAN_NAME,
search = SearchStrategy.CURRENT)
public DefaultLifecycleProcessor defaultLifecycleProcessor(LifecycleProperties properties) {
DefaultLifecycleProcessor defaultLifecycleProcessor(LifecycleProperties properties) {
DefaultLifecycleProcessor lifecycleProcessor = new DefaultLifecycleProcessor();
lifecycleProcessor.setTimeoutPerShutdownPhase(properties.getTimeoutPerShutdownPhase().toMillis());
return lifecycleProcessor;
@@ -68,12 +68,12 @@ import org.springframework.util.StringUtils;
@Conditional(ResourceBundleCondition.class)
@EnableConfigurationProperties(MessageSourceProperties.class)
@ImportRuntimeHints(MessageSourceRuntimeHints.class)
public class MessageSourceAutoConfiguration {
public final class MessageSourceAutoConfiguration {
private static final Resource[] NO_RESOURCES = {};
@Bean
public MessageSource messageSource(MessageSourceProperties properties) {
MessageSource messageSource(MessageSourceProperties properties) {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
if (!CollectionUtils.isEmpty(properties.getBasename())) {
messageSource.setBasenames(properties.getBasename().toArray(new String[0]));
@@ -35,11 +35,11 @@ import org.springframework.core.Ordered;
*/
@AutoConfiguration
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)
public class PropertyPlaceholderAutoConfiguration {
public final class PropertyPlaceholderAutoConfiguration {
@Bean
@ConditionalOnMissingBean(search = SearchStrategy.CURRENT)
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
@@ -49,18 +49,18 @@ import org.springframework.core.type.AnnotatedTypeMetadata;
*/
@AutoConfiguration
@EnableConfigurationProperties(ProjectInfoProperties.class)
public class ProjectInfoAutoConfiguration {
public final class ProjectInfoAutoConfiguration {
private final ProjectInfoProperties properties;
public ProjectInfoAutoConfiguration(ProjectInfoProperties properties) {
ProjectInfoAutoConfiguration(ProjectInfoProperties properties) {
this.properties = properties;
}
@Conditional(GitResourceAvailableCondition.class)
@ConditionalOnMissingBean
@Bean
public GitProperties gitProperties() throws Exception {
GitProperties gitProperties() throws Exception {
return new GitProperties(
loadFrom(this.properties.getGit().getLocation(), "git", this.properties.getGit().getEncoding()));
}
@@ -68,7 +68,7 @@ public class ProjectInfoAutoConfiguration {
@ConditionalOnResource(resources = "${spring.info.build.location:classpath:META-INF/build-info.properties}")
@ConditionalOnMissingBean
@Bean
public BuildProperties buildProperties() throws Exception {
BuildProperties buildProperties() throws Exception {
return new BuildProperties(
loadFrom(this.properties.getBuild().getLocation(), "build", this.properties.getBuild().getEncoding()));
}
@@ -53,18 +53,18 @@ import org.springframework.util.StringUtils;
@EnableConfigurationProperties(JmxProperties.class)
@ConditionalOnClass({ MBeanExporter.class })
@ConditionalOnBooleanProperty("spring.jmx.enabled")
public class JmxAutoConfiguration {
public final class JmxAutoConfiguration {
private final JmxProperties properties;
public JmxAutoConfiguration(JmxProperties properties) {
JmxAutoConfiguration(JmxProperties properties) {
this.properties = properties;
}
@Bean
@Primary
@ConditionalOnMissingBean(value = MBeanExporter.class, search = SearchStrategy.CURRENT)
public AnnotationMBeanExporter mbeanExporter(ObjectNamingStrategy namingStrategy, BeanFactory beanFactory) {
AnnotationMBeanExporter mbeanExporter(ObjectNamingStrategy namingStrategy, BeanFactory beanFactory) {
AnnotationMBeanExporter exporter = new AnnotationMBeanExporter();
exporter.setRegistrationPolicy(this.properties.getRegistrationPolicy());
exporter.setNamingStrategy(namingStrategy);
@@ -78,7 +78,7 @@ public class JmxAutoConfiguration {
@Bean
@ConditionalOnMissingBean(value = ObjectNamingStrategy.class, search = SearchStrategy.CURRENT)
public ParentAwareNamingStrategy objectNamingStrategy() {
ParentAwareNamingStrategy objectNamingStrategy() {
ParentAwareNamingStrategy namingStrategy = new ParentAwareNamingStrategy(new AnnotationJmxAttributeSource());
String defaultDomain = this.properties.getDefaultDomain();
if (StringUtils.hasLength(defaultDomain)) {
@@ -90,7 +90,7 @@ public class JmxAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public MBeanServer mbeanServer() {
MBeanServer mbeanServer() {
MBeanServerFactoryBean factory = new MBeanServerFactoryBean();
factory.setLocateExistingServerIfPossible(true);
factory.afterPropertiesSet();
@@ -36,7 +36,7 @@ import org.springframework.core.io.ResourceLoader;
*/
@AutoConfiguration
@EnableConfigurationProperties(SslProperties.class)
public class SslAutoConfiguration {
public final class SslAutoConfiguration {
private final ResourceLoader resourceLoader;
@@ -39,7 +39,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
TaskExecutorConfigurations.SimpleAsyncTaskExecutorBuilderConfiguration.class,
TaskExecutorConfigurations.TaskExecutorConfiguration.class,
TaskExecutorConfigurations.BootstrapExecutorConfiguration.class })
public class TaskExecutionAutoConfiguration {
public final class TaskExecutionAutoConfiguration {
/**
* Bean name of the application {@link TaskExecutor}.
@@ -41,11 +41,11 @@ import org.springframework.scheduling.config.TaskManagementConfigUtils;
@Import({ TaskSchedulingConfigurations.ThreadPoolTaskSchedulerBuilderConfiguration.class,
TaskSchedulingConfigurations.SimpleAsyncTaskSchedulerBuilderConfiguration.class,
TaskSchedulingConfigurations.TaskSchedulerConfiguration.class })
public class TaskSchedulingAutoConfiguration {
public final class TaskSchedulingAutoConfiguration {
@Bean
@ConditionalOnBean(name = TaskManagementConfigUtils.SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME)
public static LazyInitializationExcludeFilter scheduledBeanLazyInitializationExcludeFilter() {
static LazyInitializationExcludeFilter scheduledBeanLazyInitializationExcludeFilter() {
return new ScheduledBeanLazyInitializationExcludeFilter();
}
@@ -397,7 +397,7 @@ class AutoConfigurationImportSelectorTests {
}
@AutoConfiguration
static class SeventhAutoConfiguration {
public static final class SeventhAutoConfiguration {
}
@@ -318,7 +318,7 @@ class AutoConfigurationSorterTests {
}
@AutoConfiguration(after = AutoConfigureB2.class)
static class AutoConfigureA3 {
public static final class AutoConfigureA3 {
}
@@ -333,7 +333,7 @@ class AutoConfigurationSorterTests {
}
@AutoConfiguration(after = { AutoConfigureC.class })
static class AutoConfigureB2 {
public static final class AutoConfigureB2 {
}
@@ -381,7 +381,7 @@ class AutoConfigurationSorterTests {
}
@AutoConfiguration(before = AutoConfigureX.class)
static class AutoConfigureY2 {
public static final class AutoConfigureY2 {
}
@@ -397,7 +397,7 @@ class AutoConfigurationSorterTests {
}
@AutoConfiguration(before = AutoConfigureY2.class)
static class AutoConfigureZ2 {
public static final class AutoConfigureZ2 {
}
@@ -369,12 +369,12 @@ class ImportAutoConfigurationImportSelectorTests {
}
@AutoConfiguration
static class ImportedAutoConfiguration {
public static final class ImportedAutoConfiguration {
}
@AutoConfiguration
static class AnotherImportedAutoConfiguration {
public static final class AnotherImportedAutoConfiguration {
}
@@ -322,18 +322,18 @@ class ConditionEvaluationReportTests {
@AutoConfiguration
@ConditionalOnProperty(name = "com.example.property", matchIfMissing = true)
static class MatchingAutoConfiguration {
public static final class MatchingAutoConfiguration {
}
@AutoConfiguration
@ConditionalOnBean(Duration.class)
static class NonMatchingAutoConfiguration {
public static final class NonMatchingAutoConfiguration {
}
@AutoConfiguration
static class UnconditionalAutoConfiguration {
public static final class UnconditionalAutoConfiguration {
@Bean
String example() {
@@ -27,6 +27,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
*/
@AutoConfiguration
@ConditionalOnProperty("unique")
public class UniqueShortNameAutoConfiguration {
public final class UniqueShortNameAutoConfiguration {
}
@@ -28,10 +28,10 @@ import org.springframework.context.annotation.Bean;
*/
@AutoConfiguration("autoConfigOne")
@ConditionalOnProperty("sample.first")
public class SampleAutoConfiguration {
public final class SampleAutoConfiguration {
@Bean
public String one() {
String one() {
return "one";
}
@@ -28,10 +28,10 @@ import org.springframework.context.annotation.Bean;
*/
@AutoConfiguration("autoConfigTwo")
@ConditionalOnProperty("sample.second")
public class SampleAutoConfiguration {
public final class SampleAutoConfiguration {
@Bean
public String two() {
String two() {
return "two";
}
@@ -20,10 +20,10 @@ import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean;
@AutoConfiguration
public class ExampleFilteredAutoConfiguration {
public final class ExampleFilteredAutoConfiguration {
@Bean
public String anotherExample() {
String anotherExample() {
return "fail";
}
@@ -135,13 +135,13 @@ class ConditionEvaluationReportLoggerTests {
@AutoConfiguration
@ConditionalOnProperty(name = "com.example.property", matchIfMissing = true)
static class MatchingAutoConfiguration {
public static final class MatchingAutoConfiguration {
}
@AutoConfiguration
@ConditionalOnBean(Duration.class)
static class NonMatchingAutoConfiguration {
public static final class NonMatchingAutoConfiguration {
}
@@ -148,18 +148,18 @@ class ConditionEvaluationReportLoggingListenerTests {
@AutoConfiguration
@ConditionalOnProperty(name = "com.example.property", matchIfMissing = true)
static class MatchingAutoConfiguration {
public static final class MatchingAutoConfiguration {
}
@AutoConfiguration
@ConditionalOnBean(Duration.class)
static class NonMatchingAutoConfiguration {
public static final class NonMatchingAutoConfiguration {
}
@AutoConfiguration
static class UnconditionalAutoConfiguration {
public static final class UnconditionalAutoConfiguration {
@Bean
String example() {
@@ -41,7 +41,7 @@ import org.springframework.test.context.support.DynamicPropertyRegistrarBeanInit
@AutoConfiguration
@Order(Ordered.HIGHEST_PRECEDENCE)
@ConditionalOnClass(DynamicPropertyRegistry.class)
public class TestcontainersPropertySourceAutoConfiguration {
public final class TestcontainersPropertySourceAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@@ -34,9 +34,6 @@ import org.springframework.core.Ordered;
@AutoConfiguration
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)
@Import(ServiceConnectionAutoConfigurationRegistrar.class)
public class ServiceConnectionAutoConfiguration {
ServiceConnectionAutoConfiguration() {
}
public final class ServiceConnectionAutoConfiguration {
}
@@ -31,18 +31,18 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
@AutoConfiguration
public class ExampleAutoConfiguration {
public final class ExampleAutoConfiguration {
@Bean
@ConditionalOnWarDeployment
public ServletRegistrationBean<TestServlet> onWarTestServlet() {
ServletRegistrationBean<TestServlet> onWarTestServlet() {
ServletRegistrationBean<TestServlet> registration = new ServletRegistrationBean<>(new TestServlet());
registration.addUrlMappings("/conditionalOnWar");
return registration;
}
@Bean
public ServletRegistrationBean<TestServlet> testServlet() {
ServletRegistrationBean<TestServlet> testServlet() {
ServletRegistrationBean<TestServlet> registration = new ServletRegistrationBean<>(new TestServlet());
registration.addUrlMappings("/always");
return registration;
@@ -46,7 +46,7 @@ import org.springframework.context.annotation.Import;
@ConditionalOnMissingBean(ConnectionFactory.class)
@EnableConfigurationProperties({ ActiveMQProperties.class, JmsProperties.class })
@Import({ ActiveMQXAConnectionFactoryConfiguration.class, ActiveMQConnectionFactoryConfiguration.class })
public class ActiveMQAutoConfiguration {
public final class ActiveMQAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@@ -42,25 +42,25 @@ import org.springframework.context.annotation.Bean;
@AutoConfiguration
@ConditionalOnBean(AuditEventRepository.class)
@ConditionalOnBooleanProperty(name = "management.auditevents.enabled", matchIfMissing = true)
public class AuditAutoConfiguration {
public final class AuditAutoConfiguration {
@Bean
@ConditionalOnMissingBean(AbstractAuditListener.class)
public AuditListener auditListener(AuditEventRepository auditEventRepository) {
AuditListener auditListener(AuditEventRepository auditEventRepository) {
return new AuditListener(auditEventRepository);
}
@Bean
@ConditionalOnClass(name = "org.springframework.security.authentication.event.AbstractAuthenticationEvent")
@ConditionalOnMissingBean(AbstractAuthenticationAuditListener.class)
public AuthenticationAuditListener authenticationAuditListener() {
AuthenticationAuditListener authenticationAuditListener() {
return new AuthenticationAuditListener();
}
@Bean
@ConditionalOnClass(name = "org.springframework.security.access.event.AbstractAuthorizationEvent")
@ConditionalOnMissingBean(AbstractAuthorizationAuditListener.class)
public AuthorizationAuditListener authorizationAuditListener() {
AuthorizationAuditListener authorizationAuditListener() {
return new AuthorizationAuditListener();
}
@@ -35,12 +35,12 @@ import org.springframework.context.annotation.Bean;
*/
@AutoConfiguration(after = AuditAutoConfiguration.class)
@ConditionalOnAvailableEndpoint(AuditEventsEndpoint.class)
public class AuditEventsEndpointAutoConfiguration {
public final class AuditEventsEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@ConditionalOnBean(AuditEventRepository.class)
public AuditEventsEndpoint auditEventsEndpoint(AuditEventRepository auditEventRepository) {
AuditEventsEndpoint auditEventsEndpoint(AuditEventRepository auditEventRepository) {
return new AuditEventsEndpoint(auditEventRepository);
}
@@ -38,20 +38,19 @@ import org.springframework.context.annotation.Bean;
*/
@AutoConfiguration(after = ApplicationAvailabilityAutoConfiguration.class)
@ConditionalOnClass(Health.class)
public class AvailabilityHealthContributorAutoConfiguration {
public final class AvailabilityHealthContributorAutoConfiguration {
@Bean
@ConditionalOnMissingBean(name = "livenessStateHealthIndicator")
@ConditionalOnBooleanProperty("management.health.livenessstate.enabled")
public LivenessStateHealthIndicator livenessStateHealthIndicator(ApplicationAvailability applicationAvailability) {
LivenessStateHealthIndicator livenessStateHealthIndicator(ApplicationAvailability applicationAvailability) {
return new LivenessStateHealthIndicator(applicationAvailability);
}
@Bean
@ConditionalOnMissingBean(name = "readinessStateHealthIndicator")
@ConditionalOnBooleanProperty("management.health.readinessstate.enabled")
public ReadinessStateHealthIndicator readinessStateHealthIndicator(
ApplicationAvailability applicationAvailability) {
ReadinessStateHealthIndicator readinessStateHealthIndicator(ApplicationAvailability applicationAvailability) {
return new ReadinessStateHealthIndicator(applicationAvailability);
}
@@ -46,23 +46,22 @@ import org.springframework.core.type.AnnotatedTypeMetadata;
ApplicationAvailabilityAutoConfiguration.class })
@ConditionalOnClass(Health.class)
@Conditional(AvailabilityProbesAutoConfiguration.ProbesCondition.class)
public class AvailabilityProbesAutoConfiguration {
public final class AvailabilityProbesAutoConfiguration {
@Bean
@ConditionalOnMissingBean(name = "livenessStateHealthIndicator")
public LivenessStateHealthIndicator livenessStateHealthIndicator(ApplicationAvailability applicationAvailability) {
LivenessStateHealthIndicator livenessStateHealthIndicator(ApplicationAvailability applicationAvailability) {
return new LivenessStateHealthIndicator(applicationAvailability);
}
@Bean
@ConditionalOnMissingBean(name = "readinessStateHealthIndicator")
public ReadinessStateHealthIndicator readinessStateHealthIndicator(
ApplicationAvailability applicationAvailability) {
ReadinessStateHealthIndicator readinessStateHealthIndicator(ApplicationAvailability applicationAvailability) {
return new ReadinessStateHealthIndicator(applicationAvailability);
}
@Bean
public AvailabilityProbesHealthEndpointGroupsPostProcessor availabilityProbesHealthEndpointGroupsPostProcessor(
AvailabilityProbesHealthEndpointGroupsPostProcessor availabilityProbesHealthEndpointGroupsPostProcessor(
Environment environment) {
return new AvailabilityProbesHealthEndpointGroupsPostProcessor(environment);
}
@@ -32,11 +32,11 @@ import org.springframework.context.annotation.Bean;
*/
@AutoConfiguration
@ConditionalOnAvailableEndpoint(BeansEndpoint.class)
public class BeansEndpointAutoConfiguration {
public final class BeansEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public BeansEndpoint beansEndpoint(ConfigurableApplicationContext applicationContext) {
BeansEndpoint beansEndpoint(ConfigurableApplicationContext applicationContext) {
return new BeansEndpoint(applicationContext);
}
@@ -33,11 +33,11 @@ import org.springframework.context.annotation.Bean;
*/
@AutoConfiguration
@ConditionalOnAvailableEndpoint(ConditionsReportEndpoint.class)
public class ConditionsReportEndpointAutoConfiguration {
public final class ConditionsReportEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean(search = SearchStrategy.CURRENT)
public ConditionsReportEndpoint conditionsReportEndpoint(ConfigurableApplicationContext context) {
ConditionsReportEndpoint conditionsReportEndpoint(ConfigurableApplicationContext context) {
return new ConditionsReportEndpoint(context);
}
@@ -31,11 +31,11 @@ import org.springframework.context.annotation.Bean;
*/
@AutoConfiguration
@ConditionalOnAvailableEndpoint(ShutdownEndpoint.class)
public class ShutdownEndpointAutoConfiguration {
public final class ShutdownEndpointAutoConfiguration {
@Bean(destroyMethod = "")
@ConditionalOnMissingBean
public ShutdownEndpoint shutdownEndpoint() {
ShutdownEndpoint shutdownEndpoint() {
return new ShutdownEndpoint();
}
@@ -41,11 +41,11 @@ import org.springframework.context.annotation.Bean;
@AutoConfiguration
@ConditionalOnAvailableEndpoint(ConfigurationPropertiesReportEndpoint.class)
@EnableConfigurationProperties(ConfigurationPropertiesReportEndpointProperties.class)
public class ConfigurationPropertiesReportEndpointAutoConfiguration {
public final class ConfigurationPropertiesReportEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public ConfigurationPropertiesReportEndpoint configurationPropertiesReportEndpoint(
ConfigurationPropertiesReportEndpoint configurationPropertiesReportEndpoint(
ConfigurationPropertiesReportEndpointProperties properties,
ObjectProvider<SanitizingFunction> sanitizingFunctions) {
return new ConfigurationPropertiesReportEndpoint(sanitizingFunctions.orderedStream().toList(),
@@ -56,7 +56,7 @@ public class ConfigurationPropertiesReportEndpointAutoConfiguration {
@ConditionalOnMissingBean
@ConditionalOnBean(ConfigurationPropertiesReportEndpoint.class)
@ConditionalOnAvailableEndpoint(exposure = EndpointExposure.WEB)
public ConfigurationPropertiesReportEndpointWebExtension configurationPropertiesReportEndpointWebExtension(
ConfigurationPropertiesReportEndpointWebExtension configurationPropertiesReportEndpointWebExtension(
ConfigurationPropertiesReportEndpoint configurationPropertiesReportEndpoint,
ConfigurationPropertiesReportEndpointProperties properties) {
return new ConfigurationPropertiesReportEndpointWebExtension(configurationPropertiesReportEndpoint,
@@ -45,12 +45,11 @@ import org.springframework.core.env.Environment;
* @since 2.0.0
*/
@AutoConfiguration
public class EndpointAutoConfiguration {
public final class EndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public ParameterValueMapper endpointOperationParameterMapper(
@EndpointConverter ObjectProvider<Converter<?, ?>> converters,
ParameterValueMapper endpointOperationParameterMapper(@EndpointConverter ObjectProvider<Converter<?, ?>> converters,
@EndpointConverter ObjectProvider<GenericConverter> genericConverters) {
ConversionService conversionService = createConversionService(converters.orderedStream().toList(),
genericConverters.orderedStream().toList());
@@ -70,7 +69,7 @@ public class EndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public CachingOperationInvokerAdvisor endpointCachingOperationInvokerAdvisor(Environment environment) {
CachingOperationInvokerAdvisor endpointCachingOperationInvokerAdvisor(Environment environment) {
return new CachingOperationInvokerAdvisor(new EndpointIdTimeToLivePropertyFunction(environment));
}
@@ -41,14 +41,14 @@ import org.springframework.util.ClassUtils;
*/
@AutoConfiguration
@SuppressWarnings("removal")
public class JacksonEndpointAutoConfiguration {
public final class JacksonEndpointAutoConfiguration {
private static final String CONTRIBUTED_HEALTH = "org.springframework.boot.health.contributor.ContributedHealth";
@Bean
@ConditionalOnBooleanProperty(name = "management.endpoints.jackson.isolated-object-mapper", matchIfMissing = true)
@ConditionalOnClass({ ObjectMapper.class, Jackson2ObjectMapperBuilder.class })
public EndpointObjectMapper endpointObjectMapper() {
EndpointObjectMapper endpointObjectMapper() {
ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json()
.featuresToEnable(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY)
.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,
@@ -64,7 +64,7 @@ import org.springframework.util.ObjectUtils;
@AutoConfiguration(after = { JmxAutoConfiguration.class, EndpointAutoConfiguration.class })
@EnableConfigurationProperties({ JmxEndpointProperties.class, JmxProperties.class })
@ConditionalOnBooleanProperty("spring.jmx.enabled")
public class JmxEndpointAutoConfiguration {
public final class JmxEndpointAutoConfiguration {
private final ApplicationContext applicationContext;
@@ -72,7 +72,7 @@ public class JmxEndpointAutoConfiguration {
private final JmxProperties jmxProperties;
public JmxEndpointAutoConfiguration(ApplicationContext applicationContext, JmxEndpointProperties properties,
JmxEndpointAutoConfiguration(ApplicationContext applicationContext, JmxEndpointProperties properties,
JmxProperties jmxProperties) {
this.applicationContext = applicationContext;
this.properties = properties;
@@ -81,7 +81,7 @@ public class JmxEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean(JmxEndpointsSupplier.class)
public JmxEndpointDiscoverer jmxAnnotationEndpointDiscoverer(ParameterValueMapper parameterValueMapper,
JmxEndpointDiscoverer jmxAnnotationEndpointDiscoverer(ParameterValueMapper parameterValueMapper,
ObjectProvider<OperationInvokerAdvisor> invokerAdvisors,
ObjectProvider<EndpointFilter<ExposableJmxEndpoint>> endpointFilters,
ObjectProvider<OperationFilter<JmxOperation>> operationFilters) {
@@ -92,16 +92,15 @@ public class JmxEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean(value = EndpointObjectNameFactory.class, search = SearchStrategy.CURRENT)
public DefaultEndpointObjectNameFactory endpointObjectNameFactory(MBeanServer mBeanServer) {
DefaultEndpointObjectNameFactory endpointObjectNameFactory(MBeanServer mBeanServer) {
String contextId = ObjectUtils.getIdentityHexString(this.applicationContext);
return new DefaultEndpointObjectNameFactory(this.properties, this.jmxProperties, mBeanServer, contextId);
}
@Bean
@ConditionalOnSingleCandidate(MBeanServer.class)
public JmxEndpointExporter jmxMBeanExporter(MBeanServer mBeanServer,
EndpointObjectNameFactory endpointObjectNameFactory, ObjectProvider<ObjectMapper> objectMapper,
JmxEndpointsSupplier jmxEndpointsSupplier) {
JmxEndpointExporter jmxMBeanExporter(MBeanServer mBeanServer, EndpointObjectNameFactory endpointObjectNameFactory,
ObjectProvider<ObjectMapper> objectMapper, JmxEndpointsSupplier jmxEndpointsSupplier) {
JmxOperationResponseMapper responseMapper = new JacksonJmxOperationResponseMapper(
objectMapper.getIfAvailable());
return new JmxEndpointExporter(mBeanServer, endpointObjectNameFactory, responseMapper,
@@ -110,7 +109,7 @@ public class JmxEndpointAutoConfiguration {
}
@Bean
public IncludeExcludeEndpointFilter<ExposableJmxEndpoint> jmxIncludeExcludePropertyEndpointFilter() {
IncludeExcludeEndpointFilter<ExposableJmxEndpoint> jmxIncludeExcludePropertyEndpointFilter() {
JmxEndpointProperties.Exposure exposure = this.properties.getExposure();
return new IncludeExcludeEndpointFilter<>(ExposableJmxEndpoint.class, exposure.getInclude(),
exposure.getExclude(), EndpointExposure.JMX.getDefaultIncludes());
@@ -65,31 +65,31 @@ import org.springframework.util.StringUtils;
@AutoConfiguration(after = EndpointAutoConfiguration.class)
@ConditionalOnWebApplication
@EnableConfigurationProperties(WebEndpointProperties.class)
public class WebEndpointAutoConfiguration {
public final class WebEndpointAutoConfiguration {
private final ApplicationContext applicationContext;
private final WebEndpointProperties properties;
public WebEndpointAutoConfiguration(ApplicationContext applicationContext, WebEndpointProperties properties) {
WebEndpointAutoConfiguration(ApplicationContext applicationContext, WebEndpointProperties properties) {
this.applicationContext = applicationContext;
this.properties = properties;
}
@Bean
public PathMapper webEndpointPathMapper() {
PathMapper webEndpointPathMapper() {
return new MappingWebEndpointPathMapper(this.properties.getPathMapping());
}
@Bean
@ConditionalOnMissingBean
public EndpointMediaTypes endpointMediaTypes() {
EndpointMediaTypes endpointMediaTypes() {
return EndpointMediaTypes.DEFAULT;
}
@Bean
@ConditionalOnMissingBean(WebEndpointsSupplier.class)
public WebEndpointDiscoverer webEndpointDiscoverer(ParameterValueMapper parameterValueMapper,
WebEndpointDiscoverer webEndpointDiscoverer(ParameterValueMapper parameterValueMapper,
EndpointMediaTypes endpointMediaTypes, ObjectProvider<PathMapper> endpointPathMappers,
ObjectProvider<AdditionalPathsMapper> additionalPathsMappers,
ObjectProvider<OperationInvokerAdvisor> invokerAdvisors,
@@ -104,7 +104,7 @@ public class WebEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean(org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpointsSupplier.class)
@SuppressWarnings({ "deprecation", "removal" })
public org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpointDiscoverer controllerEndpointDiscoverer(
org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpointDiscoverer controllerEndpointDiscoverer(
ObjectProvider<PathMapper> endpointPathMappers,
ObjectProvider<Collection<EndpointFilter<org.springframework.boot.actuate.endpoint.web.annotation.ExposableControllerEndpoint>>> filters) {
return new org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpointDiscoverer(
@@ -114,7 +114,7 @@ public class WebEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public PathMappedEndpoints pathMappedEndpoints(Collection<EndpointsSupplier<?>> endpointSuppliers) {
PathMappedEndpoints pathMappedEndpoints(Collection<EndpointsSupplier<?>> endpointSuppliers) {
String basePath = this.properties.getBasePath();
PathMappedEndpoints pathMappedEndpoints = new PathMappedEndpoints(basePath, endpointSuppliers);
if ((!StringUtils.hasText(basePath) || "/".equals(basePath))
@@ -144,7 +144,7 @@ public class WebEndpointAutoConfiguration {
}
@Bean
public IncludeExcludeEndpointFilter<ExposableWebEndpoint> webExposeExcludePropertyEndpointFilter() {
IncludeExcludeEndpointFilter<ExposableWebEndpoint> webExposeExcludePropertyEndpointFilter() {
WebEndpointProperties.Exposure exposure = this.properties.getExposure();
return new IncludeExcludeEndpointFilter<>(ExposableWebEndpoint.class, exposure.getInclude(),
exposure.getExclude(), EndpointExposure.WEB.getDefaultIncludes());
@@ -152,7 +152,7 @@ public class WebEndpointAutoConfiguration {
@Bean
@SuppressWarnings("removal")
public IncludeExcludeEndpointFilter<org.springframework.boot.actuate.endpoint.web.annotation.ExposableControllerEndpoint> controllerExposeExcludePropertyEndpointFilter() {
IncludeExcludeEndpointFilter<org.springframework.boot.actuate.endpoint.web.annotation.ExposableControllerEndpoint> controllerExposeExcludePropertyEndpointFilter() {
WebEndpointProperties.Exposure exposure = this.properties.getExposure();
return new IncludeExcludeEndpointFilter<>(
org.springframework.boot.actuate.endpoint.web.annotation.ExposableControllerEndpoint.class,
@@ -40,11 +40,11 @@ import org.springframework.core.env.Environment;
@AutoConfiguration
@ConditionalOnAvailableEndpoint(EnvironmentEndpoint.class)
@EnableConfigurationProperties(EnvironmentEndpointProperties.class)
public class EnvironmentEndpointAutoConfiguration {
public final class EnvironmentEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public EnvironmentEndpoint environmentEndpoint(Environment environment, EnvironmentEndpointProperties properties,
EnvironmentEndpoint environmentEndpoint(Environment environment, EnvironmentEndpointProperties properties,
ObjectProvider<SanitizingFunction> sanitizingFunctions) {
return new EnvironmentEndpoint(environment, sanitizingFunctions.orderedStream().toList(),
properties.getShowValues());
@@ -54,7 +54,7 @@ public class EnvironmentEndpointAutoConfiguration {
@ConditionalOnMissingBean
@ConditionalOnBean(EnvironmentEndpoint.class)
@ConditionalOnAvailableEndpoint(exposure = EndpointExposure.WEB)
public EnvironmentEndpointWebExtension environmentEndpointWebExtension(EnvironmentEndpoint environmentEndpoint,
EnvironmentEndpointWebExtension environmentEndpointWebExtension(EnvironmentEndpoint environmentEndpoint,
EnvironmentEndpointProperties properties) {
return new EnvironmentEndpointWebExtension(environmentEndpoint, properties.getShowValues(),
properties.getRoles());
@@ -43,6 +43,6 @@ import org.springframework.context.annotation.Import;
@EnableConfigurationProperties(HealthEndpointProperties.class)
@Import({ HealthEndpointConfiguration.class, HealthEndpointWebExtensionConfiguration.class,
HealthEndpointReactiveWebExtensionConfiguration.class })
public class HealthEndpointAutoConfiguration {
public final class HealthEndpointAutoConfiguration {
}
@@ -50,7 +50,7 @@ import org.springframework.core.env.ConfigurableEnvironment;
*/
@AutoConfiguration(after = ProjectInfoAutoConfiguration.class)
@EnableConfigurationProperties(InfoContributorProperties.class)
public class InfoContributorAutoConfiguration {
public final class InfoContributorAutoConfiguration {
/**
* The default order for the core {@link InfoContributor} beans.
@@ -60,7 +60,7 @@ public class InfoContributorAutoConfiguration {
@Bean
@ConditionalOnEnabledInfoContributor(value = "env", fallback = InfoContributorFallback.DISABLE)
@Order(DEFAULT_ORDER)
public EnvironmentInfoContributor envInfoContributor(ConfigurableEnvironment environment) {
EnvironmentInfoContributor envInfoContributor(ConfigurableEnvironment environment) {
return new EnvironmentInfoContributor(environment);
}
@@ -69,7 +69,7 @@ public class InfoContributorAutoConfiguration {
@ConditionalOnSingleCandidate(GitProperties.class)
@ConditionalOnMissingBean
@Order(DEFAULT_ORDER)
public GitInfoContributor gitInfoContributor(GitProperties gitProperties,
GitInfoContributor gitInfoContributor(GitProperties gitProperties,
InfoContributorProperties infoContributorProperties) {
return new GitInfoContributor(gitProperties, infoContributorProperties.getGit().getMode());
}
@@ -78,28 +78,28 @@ public class InfoContributorAutoConfiguration {
@ConditionalOnEnabledInfoContributor("build")
@ConditionalOnSingleCandidate(BuildProperties.class)
@Order(DEFAULT_ORDER)
public InfoContributor buildInfoContributor(BuildProperties buildProperties) {
InfoContributor buildInfoContributor(BuildProperties buildProperties) {
return new BuildInfoContributor(buildProperties);
}
@Bean
@ConditionalOnEnabledInfoContributor(value = "java", fallback = InfoContributorFallback.DISABLE)
@Order(DEFAULT_ORDER)
public JavaInfoContributor javaInfoContributor() {
JavaInfoContributor javaInfoContributor() {
return new JavaInfoContributor();
}
@Bean
@ConditionalOnEnabledInfoContributor(value = "os", fallback = InfoContributorFallback.DISABLE)
@Order(DEFAULT_ORDER)
public OsInfoContributor osInfoContributor() {
OsInfoContributor osInfoContributor() {
return new OsInfoContributor();
}
@Bean
@ConditionalOnEnabledInfoContributor(value = "process", fallback = InfoContributorFallback.DISABLE)
@Order(DEFAULT_ORDER)
public ProcessInfoContributor processInfoContributor() {
ProcessInfoContributor processInfoContributor() {
return new ProcessInfoContributor();
}
@@ -33,11 +33,11 @@ import org.springframework.context.annotation.Bean;
*/
@AutoConfiguration(after = InfoContributorAutoConfiguration.class)
@ConditionalOnAvailableEndpoint(InfoEndpoint.class)
public class InfoEndpointAutoConfiguration {
public final class InfoEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public InfoEndpoint infoEndpoint(ObjectProvider<InfoContributor> infoContributors) {
InfoEndpoint infoEndpoint(ObjectProvider<InfoContributor> infoContributors) {
return new InfoEndpoint(infoContributors.orderedStream().toList());
}
@@ -44,13 +44,12 @@ import org.springframework.util.StringUtils;
@AutoConfiguration
@ConditionalOnAvailableEndpoint(LogFileWebEndpoint.class)
@EnableConfigurationProperties(LogFileWebEndpointProperties.class)
public class LogFileWebEndpointAutoConfiguration {
public final class LogFileWebEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@Conditional(LogFileCondition.class)
public LogFileWebEndpoint logFileWebEndpoint(ObjectProvider<LogFile> logFile,
LogFileWebEndpointProperties properties) {
LogFileWebEndpoint logFileWebEndpoint(ObjectProvider<LogFile> logFile, LogFileWebEndpointProperties properties) {
return new LogFileWebEndpoint(logFile.getIfAvailable(), properties.getExternalFile());
}
@@ -41,14 +41,13 @@ import org.springframework.core.type.AnnotatedTypeMetadata;
*/
@AutoConfiguration
@ConditionalOnAvailableEndpoint(LoggersEndpoint.class)
public class LoggersEndpointAutoConfiguration {
public final class LoggersEndpointAutoConfiguration {
@Bean
@ConditionalOnBean(LoggingSystem.class)
@Conditional(OnEnabledLoggingSystemCondition.class)
@ConditionalOnMissingBean
public LoggersEndpoint loggersEndpoint(LoggingSystem loggingSystem,
ObjectProvider<LoggerGroups> springBootLoggerGroups) {
LoggersEndpoint loggersEndpoint(LoggingSystem loggingSystem, ObjectProvider<LoggerGroups> springBootLoggerGroups) {
return new LoggersEndpoint(loggingSystem, springBootLoggerGroups.getIfAvailable(LoggerGroups::new));
}
@@ -31,11 +31,11 @@ import org.springframework.context.annotation.Bean;
*/
@AutoConfiguration
@ConditionalOnAvailableEndpoint(HeapDumpWebEndpoint.class)
public class HeapDumpWebEndpointAutoConfiguration {
public final class HeapDumpWebEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public HeapDumpWebEndpoint heapDumpWebEndpoint() {
HeapDumpWebEndpoint heapDumpWebEndpoint() {
return new HeapDumpWebEndpoint();
}
@@ -31,11 +31,11 @@ import org.springframework.context.annotation.Bean;
*/
@AutoConfiguration
@ConditionalOnAvailableEndpoint(ThreadDumpEndpoint.class)
public class ThreadDumpEndpointAutoConfiguration {
public final class ThreadDumpEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public ThreadDumpEndpoint dumpEndpoint() {
ThreadDumpEndpoint dumpEndpoint() {
return new ThreadDumpEndpoint();
}
@@ -38,7 +38,7 @@ import org.springframework.core.io.ResourceLoader;
@AutoConfiguration
@ConditionalOnAvailableEndpoint(SbomEndpoint.class)
@EnableConfigurationProperties(SbomProperties.class)
public class SbomEndpointAutoConfiguration {
public final class SbomEndpointAutoConfiguration {
private final SbomProperties properties;
@@ -33,11 +33,11 @@ import org.springframework.scheduling.config.ScheduledTaskHolder;
*/
@AutoConfiguration
@ConditionalOnAvailableEndpoint(ScheduledTasksEndpoint.class)
public class ScheduledTasksEndpointAutoConfiguration {
public final class ScheduledTasksEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public ScheduledTasksEndpoint scheduledTasksEndpoint(ObjectProvider<ScheduledTaskHolder> holders) {
ScheduledTasksEndpoint scheduledTasksEndpoint(ObjectProvider<ScheduledTaskHolder> holders) {
return new ScheduledTasksEndpoint(holders.orderedStream().toList());
}
@@ -39,7 +39,7 @@ import org.springframework.context.annotation.Bean;
@ConditionalOnClass(Health.class)
@ConditionalOnEnabledHealthIndicator("ssl")
@EnableConfigurationProperties(SslHealthIndicatorProperties.class)
public class SslHealthContributorAutoConfiguration {
public final class SslHealthContributorAutoConfiguration {
@Bean
@ConditionalOnMissingBean(name = "sslHealthIndicator")
@@ -40,11 +40,11 @@ import org.springframework.core.type.AnnotatedTypeMetadata;
@AutoConfiguration
@ConditionalOnAvailableEndpoint(StartupEndpoint.class)
@Conditional(StartupEndpointAutoConfiguration.ApplicationStartupCondition.class)
public class StartupEndpointAutoConfiguration {
public final class StartupEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public StartupEndpoint startupEndpoint(BufferingApplicationStartup applicationStartup) {
StartupEndpoint startupEndpoint(BufferingApplicationStartup applicationStartup) {
return new StartupEndpoint(applicationStartup);
}
@@ -39,11 +39,11 @@ import org.springframework.context.annotation.Bean;
@ConditionalOnClass(Health.class)
@ConditionalOnEnabledHealthIndicator("diskspace")
@EnableConfigurationProperties(DiskSpaceHealthIndicatorProperties.class)
public class DiskSpaceHealthContributorAutoConfiguration {
public final class DiskSpaceHealthContributorAutoConfiguration {
@Bean
@ConditionalOnMissingBean(name = "diskSpaceHealthIndicator")
public DiskSpaceHealthIndicator diskSpaceHealthIndicator(DiskSpaceHealthIndicatorProperties properties) {
DiskSpaceHealthIndicator diskSpaceHealthIndicator(DiskSpaceHealthIndicatorProperties properties) {
return new DiskSpaceHealthIndicator(properties.getPath(), properties.getThreshold());
}
@@ -34,12 +34,12 @@ import org.springframework.context.annotation.Bean;
*/
@AutoConfiguration
@ConditionalOnAvailableEndpoint(HttpExchangesEndpoint.class)
public class HttpExchangesEndpointAutoConfiguration {
public final class HttpExchangesEndpointAutoConfiguration {
@Bean
@ConditionalOnBean(HttpExchangeRepository.class)
@ConditionalOnMissingBean
public HttpExchangesEndpoint httpExchangesEndpoint(HttpExchangeRepository exchangeRepository) {
HttpExchangesEndpoint httpExchangesEndpoint(HttpExchangeRepository exchangeRepository) {
return new HttpExchangesEndpoint(exchangeRepository);
}
@@ -33,7 +33,7 @@ import org.springframework.context.annotation.Bean;
*/
@AutoConfiguration
@ConditionalOnAvailableEndpoint(MappingsEndpoint.class)
public class MappingsEndpointAutoConfiguration {
public final class MappingsEndpointAutoConfiguration {
@Bean
MappingsEndpoint mappingsEndpoint(ApplicationContext applicationContext,
@@ -47,7 +47,7 @@ import org.springframework.util.Assert;
*/
@AutoConfiguration
@AutoConfigureOrder(Ordered.LOWEST_PRECEDENCE)
public class ManagementContextAutoConfiguration {
public final class ManagementContextAutoConfiguration {
@Configuration(proxyBeanMethods = false)
@ConditionalOnManagementPort(ManagementPortType.SAME)
@@ -77,7 +77,7 @@ import org.springframework.core.io.ResourceLoader;
@ConditionalOnClass({ RabbitTemplate.class, Channel.class })
@EnableConfigurationProperties(RabbitProperties.class)
@Import({ RabbitAnnotationDrivenConfiguration.class, RabbitStreamConfiguration.class })
public class RabbitAutoConfiguration {
public final class RabbitAutoConfiguration {
@Configuration(proxyBeanMethods = false)
protected static class RabbitConnectionFactoryCreator {
@@ -40,16 +40,16 @@ import org.springframework.context.annotation.Bean;
@ConditionalOnClass({ RabbitHealthIndicator.class, RabbitTemplate.class, ConditionalOnEnabledHealthIndicator.class })
@ConditionalOnBean(RabbitTemplate.class)
@ConditionalOnEnabledHealthIndicator("rabbit")
public class RabbitHealthContributorAutoConfiguration
public final class RabbitHealthContributorAutoConfiguration
extends CompositeHealthContributorConfiguration<RabbitHealthIndicator, RabbitTemplate> {
public RabbitHealthContributorAutoConfiguration() {
RabbitHealthContributorAutoConfiguration() {
super(RabbitHealthIndicator::new);
}
@Bean
@ConditionalOnMissingBean(name = { "rabbitHealthIndicator", "rabbitHealthContributor" })
public HealthContributor rabbitHealthContributor(ConfigurableListableBeanFactory beanFactory) {
HealthContributor rabbitHealthContributor(ConfigurableListableBeanFactory beanFactory) {
return createContributor(beanFactory, RabbitTemplate.class);
}
@@ -39,10 +39,10 @@ import org.springframework.context.annotation.Bean;
after = RabbitAutoConfiguration.class)
@ConditionalOnClass({ ConnectionFactory.class, AbstractConnectionFactory.class, MeterRegistry.class })
@ConditionalOnBean({ org.springframework.amqp.rabbit.connection.ConnectionFactory.class, MeterRegistry.class })
public class RabbitMetricsAutoConfiguration {
public final class RabbitMetricsAutoConfiguration {
@Bean
public static RabbitConnectionFactoryMetricsPostProcessor rabbitConnectionFactoryMetricsPostProcessor(
static RabbitConnectionFactoryMetricsPostProcessor rabbitConnectionFactoryMetricsPostProcessor(
ApplicationContext applicationContext) {
return new RabbitConnectionFactoryMetricsPostProcessor(applicationContext);
}
@@ -49,7 +49,7 @@ import org.springframework.context.annotation.Import;
@EnableConfigurationProperties({ ArtemisProperties.class, JmsProperties.class })
@Import({ ArtemisEmbeddedServerConfiguration.class, ArtemisXAConnectionFactoryConfiguration.class,
ArtemisConnectionFactoryConfiguration.class })
public class ArtemisAutoConfiguration {
public final class ArtemisAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@@ -76,13 +76,12 @@ import org.springframework.util.StringUtils;
@ConditionalOnMissingBean(value = DefaultBatchConfiguration.class, annotation = EnableBatchProcessing.class)
@EnableConfigurationProperties(BatchProperties.class)
@Import(DatabaseInitializationDependencyConfigurer.class)
public class BatchAutoConfiguration {
public final class BatchAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@ConditionalOnBooleanProperty(name = "spring.batch.job.enabled", matchIfMissing = true)
public JobLauncherApplicationRunner jobLauncherApplicationRunner(JobOperator jobOperator,
BatchProperties properties) {
JobLauncherApplicationRunner jobLauncherApplicationRunner(JobOperator jobOperator, BatchProperties properties) {
JobLauncherApplicationRunner runner = new JobLauncherApplicationRunner(jobOperator);
String jobName = properties.getJob().getName();
if (StringUtils.hasText(jobName)) {
@@ -93,7 +92,7 @@ public class BatchAutoConfiguration {
@Bean
@ConditionalOnMissingBean(ExitCodeGenerator.class)
public JobExecutionExitCodeGenerator jobExecutionExitCodeGenerator() {
JobExecutionExitCodeGenerator jobExecutionExitCodeGenerator() {
return new JobExecutionExitCodeGenerator();
}
@@ -36,7 +36,7 @@ import org.springframework.context.annotation.Bean;
@AutoConfiguration(afterName = "org.springframework.boot.observation.autoconfigure.ObservationAutoConfiguration")
@ConditionalOnBean(ObservationRegistry.class)
@ConditionalOnClass({ ObservationRegistry.class, BatchObservabilityBeanPostProcessor.class })
public class BatchObservationAutoConfiguration {
public final class BatchObservationAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@@ -60,16 +60,16 @@ import org.springframework.util.Assert;
@ConditionalOnMissingBean(value = CacheManager.class, name = "cacheResolver")
@EnableConfigurationProperties(CacheProperties.class)
@Import({ CacheConfigurationImportSelector.class, CacheManagerEntityManagerFactoryDependsOnConfiguration.class })
public class CacheAutoConfiguration {
public final class CacheAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public CacheManagerCustomizers cacheManagerCustomizers(ObjectProvider<CacheManagerCustomizer<?>> customizers) {
CacheManagerCustomizers cacheManagerCustomizers(ObjectProvider<CacheManagerCustomizer<?>> customizers) {
return new CacheManagerCustomizers(customizers.orderedStream().toList());
}
@Bean
public CacheManagerValidator cacheAutoConfigurationValidator(CacheProperties cacheProperties,
CacheManagerValidator cacheAutoConfigurationValidator(CacheProperties cacheProperties,
ObjectProvider<CacheManager> cacheManager) {
return new CacheManagerValidator(cacheProperties, cacheManager);
}
@@ -41,11 +41,11 @@ import org.springframework.context.annotation.Bean;
@AutoConfiguration(after = CacheAutoConfiguration.class)
@ConditionalOnClass({ CacheManager.class, ConditionalOnAvailableEndpoint.class })
@ConditionalOnAvailableEndpoint(CachesEndpoint.class)
public class CachesEndpointAutoConfiguration {
public final class CachesEndpointAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public CachesEndpoint cachesEndpoint(ConfigurableListableBeanFactory beanFactory) {
CachesEndpoint cachesEndpoint(ConfigurableListableBeanFactory beanFactory) {
return new CachesEndpoint(
SimpleAutowireCandidateResolver.resolveAutowireCandidates(beanFactory, CacheManager.class));
}
@@ -54,7 +54,7 @@ public class CachesEndpointAutoConfiguration {
@ConditionalOnMissingBean
@ConditionalOnBean(CachesEndpoint.class)
@ConditionalOnAvailableEndpoint(exposure = EndpointExposure.WEB)
public CachesEndpointWebExtension cachesEndpointWebExtension(CachesEndpoint cachesEndpoint) {
CachesEndpointWebExtension cachesEndpointWebExtension(CachesEndpoint cachesEndpoint) {
return new CachesEndpointWebExtension(cachesEndpoint);
}
@@ -39,6 +39,6 @@ import org.springframework.context.annotation.Import;
@ConditionalOnBean(CacheManager.class)
@ConditionalOnClass(MeterRegistry.class)
@Import({ CacheMeterBinderProvidersConfiguration.class, CacheMetricsRegistrarConfiguration.class })
public class CacheMetricsAutoConfiguration {
public final class CacheMetricsAutoConfiguration {
}
@@ -77,7 +77,7 @@ import org.springframework.util.StringUtils;
@AutoConfiguration
@ConditionalOnClass(CqlSession.class)
@EnableConfigurationProperties(CassandraProperties.class)
public class CassandraAutoConfiguration {
public final class CassandraAutoConfiguration {
private static final Config SPRING_BOOT_DEFAULTS;
static {
@@ -103,14 +103,14 @@ public class CassandraAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@Lazy
public CqlSession cassandraSession(CqlSessionBuilder cqlSessionBuilder) {
CqlSession cassandraSession(CqlSessionBuilder cqlSessionBuilder) {
return cqlSessionBuilder.build();
}
@Bean
@ConditionalOnMissingBean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public CqlSessionBuilder cassandraSessionBuilder(DriverConfigLoader driverConfigLoader,
CqlSessionBuilder cassandraSessionBuilder(DriverConfigLoader driverConfigLoader,
CassandraConnectionDetails connectionDetails,
ObjectProvider<CqlSessionBuilderCustomizer> builderCustomizers) {
CqlSessionBuilder builder = CqlSession.builder().withConfigLoader(driverConfigLoader);
@@ -141,7 +141,7 @@ public class CassandraAutoConfiguration {
@Bean(destroyMethod = "")
@ConditionalOnMissingBean
public DriverConfigLoader cassandraDriverConfigLoader(CassandraConnectionDetails connectionDetails,
DriverConfigLoader cassandraDriverConfigLoader(CassandraConnectionDetails connectionDetails,
ObjectProvider<DriverConfigLoaderBuilderCustomizer> builderCustomizers) {
ProgrammaticDriverConfigLoaderBuilder builder = new DefaultProgrammaticDriverConfigLoaderBuilder(
() -> cassandraConfiguration(connectionDetails), DefaultDriverConfigLoader.DEFAULT_ROOT_PATH);
@@ -41,6 +41,6 @@ import org.springframework.context.annotation.Import;
ConditionalOnEnabledHealthIndicator.class })
@ConditionalOnEnabledHealthIndicator("cassandra")
@Import(CassandraDriverConfiguration.class)
public class CassandraHealthContributorAutoConfiguration {
public final class CassandraHealthContributorAutoConfiguration {
}
@@ -41,6 +41,6 @@ import org.springframework.context.annotation.Import;
ConditionalOnEnabledHealthIndicator.class })
@ConditionalOnEnabledHealthIndicator("cassandra")
@Import(CassandraReactiveDriverConfiguration.class)
public class CassandraReactiveHealthContributorAutoConfiguration {
public final class CassandraReactiveHealthContributorAutoConfiguration {
}
@@ -80,7 +80,7 @@ import org.springframework.web.server.WebFilter;
@ConditionalOnBooleanProperty(name = "management.cloudfoundry.enabled", matchIfMissing = true)
@ConditionalOnWebApplication(type = Type.REACTIVE)
@ConditionalOnCloudPlatform(CloudPlatform.CLOUD_FOUNDRY)
public class CloudFoundryReactiveActuatorAutoConfiguration {
public final class CloudFoundryReactiveActuatorAutoConfiguration {
private static final String BASE_PATH = "/cloudfoundryapplication";
@@ -88,7 +88,7 @@ public class CloudFoundryReactiveActuatorAutoConfiguration {
@ConditionalOnMissingBean
@ConditionalOnAvailableEndpoint
@ConditionalOnBean({ HealthEndpoint.class, ReactiveHealthEndpointWebExtension.class })
public CloudFoundryReactiveHealthEndpointWebExtension cloudFoundryReactiveHealthEndpointWebExtension(
CloudFoundryReactiveHealthEndpointWebExtension cloudFoundryReactiveHealthEndpointWebExtension(
ReactiveHealthEndpointWebExtension reactiveHealthEndpointWebExtension) {
return new CloudFoundryReactiveHealthEndpointWebExtension(reactiveHealthEndpointWebExtension);
}
@@ -97,7 +97,7 @@ public class CloudFoundryReactiveActuatorAutoConfiguration {
@ConditionalOnMissingBean
@ConditionalOnAvailableEndpoint
@ConditionalOnBean({ InfoEndpoint.class, GitProperties.class })
public CloudFoundryInfoEndpointWebExtension cloudFoundryInfoEndpointWebExtension(GitProperties properties,
CloudFoundryInfoEndpointWebExtension cloudFoundryInfoEndpointWebExtension(GitProperties properties,
ObjectProvider<InfoContributor> infoContributors) {
List<InfoContributor> contributors = infoContributors.orderedStream()
.map((infoContributor) -> (infoContributor instanceof GitInfoContributor)
@@ -108,7 +108,7 @@ public class CloudFoundryReactiveActuatorAutoConfiguration {
@Bean
@SuppressWarnings("removal")
public CloudFoundryWebFluxEndpointHandlerMapping cloudFoundryWebFluxEndpointHandlerMapping(
CloudFoundryWebFluxEndpointHandlerMapping cloudFoundryWebFluxEndpointHandlerMapping(
ParameterValueMapper parameterMapper, EndpointMediaTypes endpointMediaTypes,
WebClient.Builder webClientBuilder,
org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpointsSupplier controllerEndpointsSupplier,
@@ -83,7 +83,7 @@ import org.springframework.web.servlet.DispatcherServlet;
@ConditionalOnClass(DispatcherServlet.class)
@ConditionalOnBean(DispatcherServlet.class)
@ConditionalOnCloudPlatform(CloudPlatform.CLOUD_FOUNDRY)
public class CloudFoundryActuatorAutoConfiguration {
public final class CloudFoundryActuatorAutoConfiguration {
private static final String BASE_PATH = "/cloudfoundryapplication";
@@ -91,7 +91,7 @@ public class CloudFoundryActuatorAutoConfiguration {
@ConditionalOnMissingBean
@ConditionalOnAvailableEndpoint
@ConditionalOnBean({ HealthEndpoint.class, HealthEndpointWebExtension.class })
public CloudFoundryHealthEndpointWebExtension cloudFoundryHealthEndpointWebExtension(
CloudFoundryHealthEndpointWebExtension cloudFoundryHealthEndpointWebExtension(
HealthEndpointWebExtension healthEndpointWebExtension) {
return new CloudFoundryHealthEndpointWebExtension(healthEndpointWebExtension);
}
@@ -100,7 +100,7 @@ public class CloudFoundryActuatorAutoConfiguration {
@ConditionalOnMissingBean
@ConditionalOnAvailableEndpoint
@ConditionalOnBean({ InfoEndpoint.class, GitProperties.class })
public CloudFoundryInfoEndpointWebExtension cloudFoundryInfoEndpointWebExtension(GitProperties properties,
CloudFoundryInfoEndpointWebExtension cloudFoundryInfoEndpointWebExtension(GitProperties properties,
ObjectProvider<InfoContributor> infoContributors) {
List<InfoContributor> contributors = infoContributors.orderedStream()
.map((infoContributor) -> (infoContributor instanceof GitInfoContributor)
@@ -111,7 +111,7 @@ public class CloudFoundryActuatorAutoConfiguration {
@Bean
@SuppressWarnings("removal")
public CloudFoundryWebEndpointServletHandlerMapping cloudFoundryWebEndpointServletHandlerMapping(
CloudFoundryWebEndpointServletHandlerMapping cloudFoundryWebEndpointServletHandlerMapping(
ParameterValueMapper parameterMapper, EndpointMediaTypes endpointMediaTypes,
RestTemplateBuilder restTemplateBuilder,
org.springframework.boot.actuate.endpoint.web.annotation.ServletEndpointsSupplier servletEndpointsSupplier,
@@ -164,7 +164,7 @@ public class CloudFoundryActuatorAutoConfiguration {
*/
@ConditionalOnClass({ WebSecurityCustomizer.class, WebSecurity.class })
@Configuration(proxyBeanMethods = false)
public static class IgnoredCloudFoundryPathsWebSecurityConfiguration {
static class IgnoredCloudFoundryPathsWebSecurityConfiguration {
private static final int FILTER_CHAIN_ORDER = -1;
@@ -79,7 +79,7 @@ import org.springframework.util.StringUtils;
@ConditionalOnClass(Cluster.class)
@Conditional(CouchbaseCondition.class)
@EnableConfigurationProperties(CouchbaseProperties.class)
public class CouchbaseAutoConfiguration {
public final class CouchbaseAutoConfiguration {
private final ResourceLoader resourceLoader;
@@ -98,8 +98,7 @@ public class CouchbaseAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public ClusterEnvironment couchbaseClusterEnvironment(
ObjectProvider<ClusterEnvironmentBuilderCustomizer> customizers,
ClusterEnvironment couchbaseClusterEnvironment(ObjectProvider<ClusterEnvironmentBuilderCustomizer> customizers,
CouchbaseConnectionDetails connectionDetails) {
Builder builder = initializeEnvironmentBuilder(connectionDetails);
customizers.orderedStream().forEach((customizer) -> customizer.customize(builder));
@@ -108,7 +107,7 @@ public class CouchbaseAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public Authenticator couchbaseAuthenticator(CouchbaseConnectionDetails connectionDetails) throws IOException {
Authenticator couchbaseAuthenticator(CouchbaseConnectionDetails connectionDetails) throws IOException {
if (connectionDetails.getUsername() != null && connectionDetails.getPassword() != null) {
return PasswordAuthenticator.create(connectionDetails.getUsername(), connectionDetails.getPassword());
}
@@ -137,7 +136,7 @@ public class CouchbaseAutoConfiguration {
@Bean(destroyMethod = "disconnect")
@ConditionalOnMissingBean
public Cluster couchbaseCluster(ClusterEnvironment couchbaseClusterEnvironment, Authenticator authenticator,
Cluster couchbaseCluster(ClusterEnvironment couchbaseClusterEnvironment, Authenticator authenticator,
CouchbaseConnectionDetails connectionDetails) {
ClusterOptions options = ClusterOptions.clusterOptions(authenticator).environment(couchbaseClusterEnvironment);
return Cluster.connect(connectionDetails.getConnectionString(), options);
@@ -45,16 +45,16 @@ import org.springframework.context.annotation.Bean;
@ConditionalOnClass({ Cluster.class, CouchbaseHealthIndicator.class, ConditionalOnEnabledHealthIndicator.class })
@ConditionalOnBean(Cluster.class)
@ConditionalOnEnabledHealthIndicator("couchbase")
public class CouchbaseHealthContributorAutoConfiguration
public final class CouchbaseHealthContributorAutoConfiguration
extends CompositeHealthContributorConfiguration<CouchbaseHealthIndicator, Cluster> {
public CouchbaseHealthContributorAutoConfiguration() {
CouchbaseHealthContributorAutoConfiguration() {
super(CouchbaseHealthIndicator::new);
}
@Bean
@ConditionalOnMissingBean(name = { "couchbaseHealthIndicator", "couchbaseHealthContributor" })
public HealthContributor couchbaseHealthContributor(ConfigurableListableBeanFactory beanFactory) {
HealthContributor couchbaseHealthContributor(ConfigurableListableBeanFactory beanFactory) {
return createContributor(beanFactory, Cluster.class);
}
@@ -45,16 +45,16 @@ import org.springframework.context.annotation.Bean;
ConditionalOnEnabledHealthIndicator.class })
@ConditionalOnBean(Cluster.class)
@ConditionalOnEnabledHealthIndicator("couchbase")
public class CouchbaseReactiveHealthContributorAutoConfiguration
public final class CouchbaseReactiveHealthContributorAutoConfiguration
extends CompositeReactiveHealthContributorConfiguration<CouchbaseReactiveHealthIndicator, Cluster> {
public CouchbaseReactiveHealthContributorAutoConfiguration() {
CouchbaseReactiveHealthContributorAutoConfiguration() {
super(CouchbaseReactiveHealthIndicator::new);
}
@Bean
@ConditionalOnMissingBean(name = { "couchbaseHealthIndicator", "couchbaseHealthContributor" })
public ReactiveHealthContributor couchbaseHealthContributor(ConfigurableListableBeanFactory beanFactory) {
ReactiveHealthContributor couchbaseHealthContributor(ConfigurableListableBeanFactory beanFactory) {
return createContributor(beanFactory, Cluster.class);
}
@@ -63,17 +63,17 @@ import org.springframework.data.cassandra.core.mapping.SimpleUserTypeResolver;
@AutoConfiguration(after = CassandraAutoConfiguration.class)
@ConditionalOnClass({ CqlSession.class, CassandraAdminOperations.class })
@ConditionalOnBean(CqlSession.class)
public class CassandraDataAutoConfiguration {
public final class CassandraDataAutoConfiguration {
private final CqlSession session;
public CassandraDataAutoConfiguration(@Lazy CqlSession session) {
CassandraDataAutoConfiguration(@Lazy CqlSession session) {
this.session = session;
}
@Bean
@ConditionalOnMissingBean
public static CassandraManagedTypes cassandraManagedTypes(BeanFactory beanFactory) throws ClassNotFoundException {
static CassandraManagedTypes cassandraManagedTypes(BeanFactory beanFactory) throws ClassNotFoundException {
List<String> packages = EntityScanPackages.get(beanFactory).getPackageNames();
if (packages.isEmpty() && AutoConfigurationPackages.has(beanFactory)) {
packages = AutoConfigurationPackages.get(beanFactory);
@@ -86,7 +86,7 @@ public class CassandraDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public CassandraMappingContext cassandraMappingContext(CassandraManagedTypes cassandraManagedTypes,
CassandraMappingContext cassandraMappingContext(CassandraManagedTypes cassandraManagedTypes,
CassandraCustomConversions conversions) {
CassandraMappingContext context = new CassandraMappingContext();
context.setManagedTypes(cassandraManagedTypes);
@@ -96,8 +96,7 @@ public class CassandraDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public CassandraConverter cassandraConverter(CassandraMappingContext mapping,
CassandraCustomConversions conversions) {
CassandraConverter cassandraConverter(CassandraMappingContext mapping, CassandraCustomConversions conversions) {
MappingCassandraConverter converter = new MappingCassandraConverter(mapping);
converter.setCodecRegistry(() -> this.session.getContext().getCodecRegistry());
converter.setCustomConversions(conversions);
@@ -107,7 +106,7 @@ public class CassandraDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean(SessionFactory.class)
public SessionFactoryFactoryBean cassandraSessionFactory(Environment environment, CassandraConverter converter) {
SessionFactoryFactoryBean cassandraSessionFactory(Environment environment, CassandraConverter converter) {
SessionFactoryFactoryBean session = new SessionFactoryFactoryBean();
session.setSession(this.session);
session.setConverter(converter);
@@ -118,19 +117,19 @@ public class CassandraDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean(CqlOperations.class)
public CqlTemplate cqlTemplate(SessionFactory sessionFactory) {
CqlTemplate cqlTemplate(SessionFactory sessionFactory) {
return new CqlTemplate(sessionFactory);
}
@Bean
@ConditionalOnMissingBean(CassandraOperations.class)
public CassandraTemplate cassandraTemplate(CqlTemplate cqlTemplate, CassandraConverter converter) {
CassandraTemplate cassandraTemplate(CqlTemplate cqlTemplate, CassandraConverter converter) {
return new CassandraTemplate(cqlTemplate, converter);
}
@Bean
@ConditionalOnMissingBean
public CassandraCustomConversions cassandraCustomConversions() {
CassandraCustomConversions cassandraCustomConversions() {
return new CassandraCustomConversions(Collections.emptyList());
}
@@ -46,29 +46,29 @@ import org.springframework.data.cassandra.core.cql.session.DefaultReactiveSessio
@AutoConfiguration(after = CassandraDataAutoConfiguration.class)
@ConditionalOnClass({ CqlSession.class, ReactiveCassandraTemplate.class, Flux.class })
@ConditionalOnBean(CqlSession.class)
public class CassandraReactiveDataAutoConfiguration {
public final class CassandraReactiveDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public ReactiveSession reactiveCassandraSession(CqlSession session) {
ReactiveSession reactiveCassandraSession(CqlSession session) {
return new DefaultBridgedReactiveSession(session);
}
@Bean
@ConditionalOnMissingBean
public ReactiveSessionFactory reactiveCassandraSessionFactory(ReactiveSession reactiveCassandraSession) {
ReactiveSessionFactory reactiveCassandraSessionFactory(ReactiveSession reactiveCassandraSession) {
return new DefaultReactiveSessionFactory(reactiveCassandraSession);
}
@Bean
@ConditionalOnMissingBean(ReactiveCqlOperations.class)
public ReactiveCqlTemplate reactiveCqlTemplate(ReactiveSessionFactory reactiveCassandraSessionFactory) {
ReactiveCqlTemplate reactiveCqlTemplate(ReactiveSessionFactory reactiveCassandraSessionFactory) {
return new ReactiveCqlTemplate(reactiveCassandraSessionFactory);
}
@Bean
@ConditionalOnMissingBean(ReactiveCassandraOperations.class)
public ReactiveCassandraTemplate reactiveCassandraTemplate(ReactiveCqlTemplate reactiveCqlTemplate,
ReactiveCassandraTemplate reactiveCassandraTemplate(ReactiveCqlTemplate reactiveCqlTemplate,
CassandraConverter converter) {
return new ReactiveCassandraTemplate(reactiveCqlTemplate, converter);
}
@@ -42,6 +42,6 @@ import org.springframework.data.cassandra.repository.support.ReactiveCassandraRe
@ConditionalOnRepositoryType(store = "cassandra", type = RepositoryType.REACTIVE)
@ConditionalOnMissingBean(ReactiveCassandraRepositoryFactoryBean.class)
@Import(CassandraReactiveRepositoriesRegistrar.class)
public class CassandraReactiveRepositoriesAutoConfiguration {
public final class CassandraReactiveRepositoriesAutoConfiguration {
}
@@ -42,6 +42,6 @@ import org.springframework.data.cassandra.repository.support.CassandraRepository
@ConditionalOnRepositoryType(store = "cassandra", type = RepositoryType.IMPERATIVE)
@ConditionalOnMissingBean(CassandraRepositoryFactoryBean.class)
@Import(CassandraRepositoriesRegistrar.class)
public class CassandraRepositoriesAutoConfiguration {
public final class CassandraRepositoriesAutoConfiguration {
}
@@ -45,23 +45,23 @@ import org.springframework.util.function.SingletonSupplier;
@ConditionalOnClass(org.springframework.data.repository.Repository.class)
@ConditionalOnBean(MeterRegistry.class)
@EnableConfigurationProperties(DataMetricsProperties.class)
public class SpringDataRepositoryMetricsAutoConfiguration {
public final class SpringDataRepositoryMetricsAutoConfiguration {
private final DataMetricsProperties properties;
public SpringDataRepositoryMetricsAutoConfiguration(DataMetricsProperties properties) {
SpringDataRepositoryMetricsAutoConfiguration(DataMetricsProperties properties) {
this.properties = properties;
}
@Bean
@ConditionalOnMissingBean(RepositoryTagsProvider.class)
public DefaultRepositoryTagsProvider repositoryTagsProvider() {
DefaultRepositoryTagsProvider repositoryTagsProvider() {
return new DefaultRepositoryTagsProvider();
}
@Bean
@ConditionalOnMissingBean
public MetricsRepositoryMethodInvocationListener metricsRepositoryMethodInvocationListener(
MetricsRepositoryMethodInvocationListener metricsRepositoryMethodInvocationListener(
ObjectProvider<MeterRegistry> registry, RepositoryTagsProvider tagsProvider) {
Repository properties = this.properties.getRepository();
return new MetricsRepositoryMethodInvocationListener(registry::getObject, tagsProvider,
@@ -69,7 +69,7 @@ public class SpringDataRepositoryMetricsAutoConfiguration {
}
@Bean
public static MetricsRepositoryMethodInvocationListenerBeanPostProcessor metricsRepositoryMethodInvocationListenerBeanPostProcessor(
static MetricsRepositoryMethodInvocationListenerBeanPostProcessor metricsRepositoryMethodInvocationListenerBeanPostProcessor(
ObjectProvider<MetricsRepositoryMethodInvocationListener> metricsRepositoryMethodInvocationListener) {
return new MetricsRepositoryMethodInvocationListenerBeanPostProcessor(
SingletonSupplier.of(metricsRepositoryMethodInvocationListener::getObject));
@@ -51,17 +51,17 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@ConditionalOnClass({ PageableHandlerMethodArgumentResolver.class, WebMvcConfigurer.class })
@ConditionalOnMissingBean(PageableHandlerMethodArgumentResolver.class)
@EnableConfigurationProperties(SpringDataWebProperties.class)
public class SpringDataWebAutoConfiguration {
public final class SpringDataWebAutoConfiguration {
private final SpringDataWebProperties properties;
public SpringDataWebAutoConfiguration(SpringDataWebProperties properties) {
SpringDataWebAutoConfiguration(SpringDataWebProperties properties) {
this.properties = properties;
}
@Bean
@ConditionalOnMissingBean
public PageableHandlerMethodArgumentResolverCustomizer pageableCustomizer() {
PageableHandlerMethodArgumentResolverCustomizer pageableCustomizer() {
return (resolver) -> {
Pageable pageable = this.properties.getPageable();
resolver.setPageParameterName(pageable.getPageParameter());
@@ -76,13 +76,13 @@ public class SpringDataWebAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public SortHandlerMethodArgumentResolverCustomizer sortCustomizer() {
SortHandlerMethodArgumentResolverCustomizer sortCustomizer() {
return (resolver) -> resolver.setSortParameter(this.properties.getSort().getSortParameter());
}
@Bean
@ConditionalOnMissingBean
public SpringDataWebSettings springDataWebSettings() {
SpringDataWebSettings springDataWebSettings() {
return new SpringDataWebSettings(this.properties.getPageable().getSerializationMode());
}
@@ -44,15 +44,15 @@ import org.springframework.data.couchbase.repository.CouchbaseRepository;
@EnableConfigurationProperties(CouchbaseDataProperties.class)
@Import({ CouchbaseDataConfiguration.class, CouchbaseClientFactoryConfiguration.class,
CouchbaseClientFactoryDependentConfiguration.class })
public class CouchbaseDataAutoConfiguration {
public final class CouchbaseDataAutoConfiguration {
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(Validator.class)
public static class ValidationConfiguration {
static class ValidationConfiguration {
@Bean
@ConditionalOnSingleCandidate(Validator.class)
public ValidatingCouchbaseEventListener validationEventListener(Validator validator) {
ValidatingCouchbaseEventListener validationEventListener(Validator validator) {
return new ValidatingCouchbaseEventListener(validator);
}
@@ -35,6 +35,6 @@ import org.springframework.data.couchbase.repository.ReactiveCouchbaseRepository
@AutoConfiguration(after = CouchbaseDataAutoConfiguration.class)
@ConditionalOnClass({ Cluster.class, ReactiveCouchbaseRepository.class, Flux.class })
@Import(CouchbaseReactiveDataConfiguration.class)
public class CouchbaseReactiveDataAutoConfiguration {
public final class CouchbaseReactiveDataAutoConfiguration {
}
@@ -44,6 +44,6 @@ import org.springframework.data.couchbase.repository.support.ReactiveCouchbaseRe
@ConditionalOnBean(ReactiveRepositoryOperationsMapping.class)
@ConditionalOnMissingBean(ReactiveCouchbaseRepositoryFactoryBean.class)
@Import(CouchbaseReactiveRepositoriesRegistrar.class)
public class CouchbaseReactiveRepositoriesAutoConfiguration {
public final class CouchbaseReactiveRepositoriesAutoConfiguration {
}
@@ -44,6 +44,6 @@ import org.springframework.data.couchbase.repository.support.CouchbaseRepository
@ConditionalOnRepositoryType(store = "couchbase", type = RepositoryType.IMPERATIVE)
@ConditionalOnMissingBean(CouchbaseRepositoryFactoryBean.class)
@Import(CouchbaseRepositoriesRegistrar.class)
public class CouchbaseRepositoriesAutoConfiguration {
public final class CouchbaseRepositoriesAutoConfiguration {
}
@@ -43,6 +43,6 @@ import org.springframework.data.elasticsearch.repository.config.EnableReactiveEl
@Import({ ElasticsearchDataConfiguration.BaseConfiguration.class,
ElasticsearchDataConfiguration.JavaClientConfiguration.class,
ElasticsearchDataConfiguration.ReactiveRestClientConfiguration.class })
public class ElasticsearchDataAutoConfiguration {
public final class ElasticsearchDataAutoConfiguration {
}
@@ -42,6 +42,6 @@ import org.springframework.data.elasticsearch.repository.support.ReactiveElastic
@ConditionalOnBooleanProperty(name = "spring.data.elasticsearch.repositories.enabled", matchIfMissing = true)
@ConditionalOnMissingBean(ReactiveElasticsearchRepositoryFactoryBean.class)
@Import(ElasticsearchReactiveRepositoriesRegistrar.class)
public class ElasticsearchReactiveRepositoriesAutoConfiguration {
public final class ElasticsearchReactiveRepositoriesAutoConfiguration {
}
@@ -40,6 +40,6 @@ import org.springframework.data.elasticsearch.repository.support.ElasticsearchRe
@ConditionalOnBooleanProperty(name = "spring.data.elasticsearch.repositories.enabled", matchIfMissing = true)
@ConditionalOnMissingBean(ElasticsearchRepositoryFactoryBean.class)
@Import(ElasticsearchRepositoriesRegistrar.class)
public class ElasticsearchRepositoriesAutoConfiguration {
public final class ElasticsearchRepositoriesAutoConfiguration {
}
@@ -45,16 +45,16 @@ import org.springframework.data.elasticsearch.client.elc.ReactiveElasticsearchCl
ConditionalOnEnabledHealthIndicator.class })
@ConditionalOnBean(ReactiveElasticsearchClient.class)
@ConditionalOnEnabledHealthIndicator("elasticsearch")
public class ElasticsearchReactiveHealthContributorAutoConfiguration extends
public final class ElasticsearchReactiveHealthContributorAutoConfiguration extends
CompositeReactiveHealthContributorConfiguration<ElasticsearchReactiveHealthIndicator, ReactiveElasticsearchClient> {
public ElasticsearchReactiveHealthContributorAutoConfiguration() {
ElasticsearchReactiveHealthContributorAutoConfiguration() {
super(ElasticsearchReactiveHealthIndicator::new);
}
@Bean
@ConditionalOnMissingBean(name = { "elasticsearchHealthIndicator", "elasticsearchHealthContributor" })
public ReactiveHealthContributor elasticsearchHealthContributor(ConfigurableListableBeanFactory beanFactory) {
ReactiveHealthContributor elasticsearchHealthContributor(ConfigurableListableBeanFactory beanFactory) {
return createContributor(beanFactory, ReactiveElasticsearchClient.class);
}
@@ -69,7 +69,7 @@ import org.springframework.transaction.PlatformTransactionManager;
@ConditionalOnClass({ NamedParameterJdbcOperations.class, AbstractJdbcConfiguration.class })
@ConditionalOnBooleanProperty(name = "spring.data.jdbc.repositories.enabled", matchIfMissing = true)
@EnableConfigurationProperties(JdbcDataProperties.class)
public class JdbcRepositoriesAutoConfiguration {
public final class JdbcRepositoriesAutoConfiguration {
@Configuration(proxyBeanMethods = false)
@ConditionalOnMissingBean(JdbcRepositoryConfigExtension.class)
@@ -77,11 +77,11 @@ import org.springframework.util.ClassUtils;
@ConditionalOnMissingBean({ JpaRepositoryFactoryBean.class, JpaRepositoryConfigExtension.class })
@ConditionalOnBooleanProperty(name = "spring.data.jpa.repositories.enabled", matchIfMissing = true)
@Import(JpaRepositoriesImportSelector.class)
public class JpaRepositoriesAutoConfiguration {
public final class JpaRepositoriesAutoConfiguration {
@Bean
@Conditional(BootstrapExecutorCondition.class)
public EntityManagerFactoryBuilderCustomizer entityManagerFactoryBootstrapExecutorCustomizer(
EntityManagerFactoryBuilderCustomizer entityManagerFactoryBootstrapExecutorCustomizer(
Map<String, AsyncTaskExecutor> taskExecutors) {
return (builder) -> {
AsyncTaskExecutor bootstrapExecutor = determineBootstrapExecutor(taskExecutors);
@@ -38,6 +38,6 @@ import org.springframework.data.ldap.repository.support.LdapRepositoryFactoryBea
@ConditionalOnBooleanProperty(name = "spring.data.ldap.repositories.enabled", matchIfMissing = true)
@ConditionalOnMissingBean(LdapRepositoryFactoryBean.class)
@Import(LdapRepositoriesRegistrar.class)
public class LdapRepositoriesAutoConfiguration {
public final class LdapRepositoriesAutoConfiguration {
}
@@ -57,7 +57,7 @@ import org.springframework.data.mongodb.gridfs.GridFsTemplate;
@EnableConfigurationProperties(MongoProperties.class)
@Import({ MongoDataConfiguration.class, MongoDatabaseFactoryConfiguration.class,
MongoDatabaseFactoryDependentConfiguration.class })
public class MongoDataAutoConfiguration {
public final class MongoDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean(MongoConnectionDetails.class)
@@ -72,7 +72,7 @@ import org.springframework.util.StringUtils;
@ConditionalOnBean(MongoClient.class)
@EnableConfigurationProperties(MongoProperties.class)
@Import(MongoDataConfiguration.class)
public class MongoReactiveDataAutoConfiguration {
public final class MongoReactiveDataAutoConfiguration {
private final MongoConnectionDetails connectionDetails;
@@ -82,8 +82,7 @@ public class MongoReactiveDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean(ReactiveMongoDatabaseFactory.class)
public SimpleReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory(MongoClient mongo,
MongoProperties properties) {
SimpleReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory(MongoClient mongo, MongoProperties properties) {
String database = properties.getDatabase();
if (database == null) {
database = this.connectionDetails.getConnectionString().getDatabase();
@@ -93,20 +92,20 @@ public class MongoReactiveDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean(ReactiveMongoOperations.class)
public ReactiveMongoTemplate reactiveMongoTemplate(ReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory,
ReactiveMongoTemplate reactiveMongoTemplate(ReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory,
MongoConverter converter) {
return new ReactiveMongoTemplate(reactiveMongoDatabaseFactory, converter);
}
@Bean
@ConditionalOnMissingBean(DataBufferFactory.class)
public DefaultDataBufferFactory dataBufferFactory() {
DefaultDataBufferFactory dataBufferFactory() {
return new DefaultDataBufferFactory();
}
@Bean
@ConditionalOnMissingBean(ReactiveGridFsOperations.class)
public ReactiveGridFsTemplate reactiveGridFsTemplate(ReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory,
ReactiveGridFsTemplate reactiveGridFsTemplate(ReactiveMongoDatabaseFactory reactiveMongoDatabaseFactory,
MappingMongoConverter mappingMongoConverter, DataBufferFactory dataBufferFactory) {
return new ReactiveGridFsTemplate(dataBufferFactory,
new GridFsReactiveMongoDatabaseFactory(reactiveMongoDatabaseFactory, this.connectionDetails),
@@ -54,6 +54,6 @@ import org.springframework.data.mongodb.repository.support.ReactiveMongoReposito
ReactiveMongoRepositoryConfigurationExtension.class })
@ConditionalOnRepositoryType(store = "mongodb", type = RepositoryType.REACTIVE)
@Import(MongoReactiveRepositoriesRegistrar.class)
public class MongoReactiveRepositoriesAutoConfiguration {
public final class MongoReactiveRepositoriesAutoConfiguration {
}
@@ -55,6 +55,6 @@ import org.springframework.data.mongodb.repository.support.MongoRepositoryFactor
@ConditionalOnMissingBean({ MongoRepositoryFactoryBean.class, MongoRepositoryConfigurationExtension.class })
@ConditionalOnRepositoryType(store = "mongodb", type = RepositoryType.IMPERATIVE)
@Import(MongoRepositoriesRegistrar.class)
public class MongoRepositoriesAutoConfiguration {
public final class MongoRepositoriesAutoConfiguration {
}
@@ -42,16 +42,16 @@ import org.springframework.data.mongodb.core.MongoTemplate;
@ConditionalOnClass({ MongoTemplate.class, MongoHealthIndicator.class, ConditionalOnEnabledHealthIndicator.class })
@ConditionalOnBean(MongoTemplate.class)
@ConditionalOnEnabledHealthIndicator("mongo")
public class MongoHealthContributorAutoConfiguration
public final class MongoHealthContributorAutoConfiguration
extends CompositeHealthContributorConfiguration<MongoHealthIndicator, MongoTemplate> {
public MongoHealthContributorAutoConfiguration() {
MongoHealthContributorAutoConfiguration() {
super(MongoHealthIndicator::new);
}
@Bean
@ConditionalOnMissingBean(name = { "mongoHealthIndicator", "mongoHealthContributor" })
public HealthContributor mongoHealthContributor(ConfigurableListableBeanFactory beanFactory) {
HealthContributor mongoHealthContributor(ConfigurableListableBeanFactory beanFactory) {
return createContributor(beanFactory, MongoTemplate.class);
}
@@ -44,16 +44,16 @@ import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
ConditionalOnEnabledHealthIndicator.class })
@ConditionalOnBean(ReactiveMongoTemplate.class)
@ConditionalOnEnabledHealthIndicator("mongo")
public class MongoReactiveHealthContributorAutoConfiguration
public final class MongoReactiveHealthContributorAutoConfiguration
extends CompositeReactiveHealthContributorConfiguration<MongoReactiveHealthIndicator, ReactiveMongoTemplate> {
public MongoReactiveHealthContributorAutoConfiguration() {
MongoReactiveHealthContributorAutoConfiguration() {
super(MongoReactiveHealthIndicator::new);
}
@Bean
@ConditionalOnMissingBean(name = { "mongoHealthIndicator", "mongoHealthContributor" })
public ReactiveHealthContributor mongoHealthContributor(ConfigurableListableBeanFactory beanFactory) {
ReactiveHealthContributor mongoHealthContributor(ConfigurableListableBeanFactory beanFactory) {
return createContributor(beanFactory, ReactiveMongoTemplate.class);
}
@@ -64,11 +64,11 @@ import org.springframework.transaction.TransactionManager;
@ConditionalOnClass({ Driver.class, Neo4jTransactionManager.class, PlatformTransactionManager.class })
@EnableConfigurationProperties(Neo4jDataProperties.class)
@ConditionalOnBean(Driver.class)
public class Neo4jDataAutoConfiguration {
public final class Neo4jDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public Neo4jConversions neo4jConversions() {
Neo4jConversions neo4jConversions() {
return new Neo4jConversions();
}
@@ -82,7 +82,7 @@ public class Neo4jDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public Neo4jMappingContext neo4jMappingContext(Neo4jManagedTypes managedTypes, Neo4jConversions neo4jConversions) {
Neo4jMappingContext neo4jMappingContext(Neo4jManagedTypes managedTypes, Neo4jConversions neo4jConversions) {
Neo4jMappingContext context = new Neo4jMappingContext(neo4jConversions);
context.setManagedTypes(managedTypes);
return context;
@@ -90,7 +90,7 @@ public class Neo4jDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public DatabaseSelectionProvider databaseSelectionProvider(Neo4jDataProperties properties) {
DatabaseSelectionProvider databaseSelectionProvider(Neo4jDataProperties properties) {
String database = properties.getDatabase();
return (database != null) ? DatabaseSelectionProvider.createStaticDatabaseSelectionProvider(database)
: DatabaseSelectionProvider.getDefaultSelectionProvider();
@@ -98,19 +98,19 @@ public class Neo4jDataAutoConfiguration {
@Bean(Neo4jRepositoryConfigurationExtension.DEFAULT_NEO4J_CLIENT_BEAN_NAME)
@ConditionalOnMissingBean
public Neo4jClient neo4jClient(Driver driver, DatabaseSelectionProvider databaseNameProvider) {
Neo4jClient neo4jClient(Driver driver, DatabaseSelectionProvider databaseNameProvider) {
return Neo4jClient.create(driver, databaseNameProvider);
}
@Bean(Neo4jRepositoryConfigurationExtension.DEFAULT_NEO4J_TEMPLATE_BEAN_NAME)
@ConditionalOnMissingBean(Neo4jOperations.class)
public Neo4jTemplate neo4jTemplate(Neo4jClient neo4jClient, Neo4jMappingContext neo4jMappingContext) {
Neo4jTemplate neo4jTemplate(Neo4jClient neo4jClient, Neo4jMappingContext neo4jMappingContext) {
return new Neo4jTemplate(neo4jClient, neo4jMappingContext);
}
@Bean(Neo4jRepositoryConfigurationExtension.DEFAULT_TRANSACTION_MANAGER_BEAN_NAME)
@ConditionalOnMissingBean(TransactionManager.class)
public Neo4jTransactionManager transactionManager(Driver driver, DatabaseSelectionProvider databaseNameProvider,
Neo4jTransactionManager transactionManager(Driver driver, DatabaseSelectionProvider databaseNameProvider,
ObjectProvider<TransactionManagerCustomizers> optionalCustomizers) {
Neo4jTransactionManager transactionManager = new Neo4jTransactionManager(driver, databaseNameProvider);
optionalCustomizers.ifAvailable((customizer) -> customizer.customize(transactionManager));
@@ -46,11 +46,11 @@ import org.springframework.transaction.ReactiveTransactionManager;
@ConditionalOnClass({ Driver.class, ReactiveNeo4jTemplate.class, ReactiveTransactionManager.class, Flux.class })
@ConditionalOnBean(Driver.class)
@EnableConfigurationProperties(Neo4jDataProperties.class)
public class Neo4jReactiveDataAutoConfiguration {
public final class Neo4jReactiveDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public ReactiveDatabaseSelectionProvider reactiveDatabaseSelectionProvider(Neo4jDataProperties dataProperties) {
ReactiveDatabaseSelectionProvider reactiveDatabaseSelectionProvider(Neo4jDataProperties dataProperties) {
String database = dataProperties.getDatabase();
return (database != null) ? ReactiveDatabaseSelectionProvider.createStaticDatabaseSelectionProvider(database)
: ReactiveDatabaseSelectionProvider.getDefaultSelectionProvider();
@@ -58,15 +58,14 @@ public class Neo4jReactiveDataAutoConfiguration {
@Bean(ReactiveNeo4jRepositoryConfigurationExtension.DEFAULT_NEO4J_CLIENT_BEAN_NAME)
@ConditionalOnMissingBean
public ReactiveNeo4jClient reactiveNeo4jClient(Driver driver,
ReactiveDatabaseSelectionProvider databaseNameProvider) {
ReactiveNeo4jClient reactiveNeo4jClient(Driver driver, ReactiveDatabaseSelectionProvider databaseNameProvider) {
return ReactiveNeo4jClient.create(driver, databaseNameProvider);
}
@Bean(ReactiveNeo4jRepositoryConfigurationExtension.DEFAULT_NEO4J_TEMPLATE_BEAN_NAME)
@ConditionalOnMissingBean(ReactiveNeo4jOperations.class)
@ConditionalOnBean(Neo4jMappingContext.class)
public ReactiveNeo4jTemplate reactiveNeo4jTemplate(ReactiveNeo4jClient neo4jClient,
ReactiveNeo4jTemplate reactiveNeo4jTemplate(ReactiveNeo4jClient neo4jClient,
Neo4jMappingContext neo4jMappingContext) {
return new ReactiveNeo4jTemplate(neo4jClient, neo4jMappingContext);
}
@@ -44,6 +44,6 @@ import org.springframework.data.neo4j.repository.support.ReactiveNeo4jRepository
ReactiveNeo4jRepositoryConfigurationExtension.class })
@ConditionalOnRepositoryType(store = "neo4j", type = RepositoryType.REACTIVE)
@Import(Neo4jReactiveRepositoriesRegistrar.class)
public class Neo4jReactiveRepositoriesAutoConfiguration {
public final class Neo4jReactiveRepositoriesAutoConfiguration {
}
@@ -54,6 +54,6 @@ import org.springframework.data.neo4j.repository.support.Neo4jRepositoryFactoryB
@ConditionalOnMissingBean({ Neo4jRepositoryFactoryBean.class, Neo4jRepositoryConfigurationExtension.class })
@ConditionalOnRepositoryType(store = "neo4j", type = RepositoryType.IMPERATIVE)
@Import(Neo4jRepositoriesRegistrar.class)
public class Neo4jRepositoriesAutoConfiguration {
public final class Neo4jRepositoriesAutoConfiguration {
}
@@ -54,20 +54,20 @@ import org.springframework.r2dbc.core.DatabaseClient;
@AutoConfiguration(after = R2dbcAutoConfiguration.class)
@ConditionalOnClass({ DatabaseClient.class, R2dbcEntityTemplate.class })
@ConditionalOnSingleCandidate(DatabaseClient.class)
public class R2dbcDataAutoConfiguration {
public final class R2dbcDataAutoConfiguration {
private final DatabaseClient databaseClient;
private final R2dbcDialect dialect;
public R2dbcDataAutoConfiguration(DatabaseClient databaseClient) {
R2dbcDataAutoConfiguration(DatabaseClient databaseClient) {
this.databaseClient = databaseClient;
this.dialect = DialectResolver.getDialect(this.databaseClient.getConnectionFactory());
}
@Bean
@ConditionalOnMissingBean
public R2dbcEntityTemplate r2dbcEntityTemplate(R2dbcConverter r2dbcConverter) {
R2dbcEntityTemplate r2dbcEntityTemplate(R2dbcConverter r2dbcConverter) {
return new R2dbcEntityTemplate(this.databaseClient, this.dialect, r2dbcConverter);
}
@@ -80,7 +80,7 @@ public class R2dbcDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public R2dbcMappingContext r2dbcMappingContext(ObjectProvider<NamingStrategy> namingStrategy,
R2dbcMappingContext r2dbcMappingContext(ObjectProvider<NamingStrategy> namingStrategy,
R2dbcCustomConversions r2dbcCustomConversions, RelationalManagedTypes r2dbcManagedTypes) {
R2dbcMappingContext relationalMappingContext = new R2dbcMappingContext(
namingStrategy.getIfAvailable(() -> DefaultNamingStrategy.INSTANCE));
@@ -91,14 +91,14 @@ public class R2dbcDataAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public MappingR2dbcConverter r2dbcConverter(R2dbcMappingContext mappingContext,
MappingR2dbcConverter r2dbcConverter(R2dbcMappingContext mappingContext,
R2dbcCustomConversions r2dbcCustomConversions) {
return new MappingR2dbcConverter(mappingContext, r2dbcCustomConversions);
}
@Bean
@ConditionalOnMissingBean
public R2dbcCustomConversions r2dbcCustomConversions() {
R2dbcCustomConversions r2dbcCustomConversions() {
List<Object> converters = new ArrayList<>(this.dialect.getConverters());
converters.addAll(R2dbcCustomConversions.STORE_CONVERTERS);
return new R2dbcCustomConversions(

Some files were not shown because too many files have changed in this diff Show More