mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-09-17 12:09:16 +00:00
Make auto-configurations final and remove public members
Closes gh-32883
This commit is contained in:
+101
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+3
-3
@@ -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) {
|
||||
|
||||
+1
-1
@@ -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)
|
||||
|
||||
+2
-2
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -33,6 +33,6 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties
|
||||
*/
|
||||
@AutoConfiguration
|
||||
@EnableConfigurationProperties
|
||||
public class ConfigurationPropertiesAutoConfiguration {
|
||||
public final class ConfigurationPropertiesAutoConfiguration {
|
||||
|
||||
}
|
||||
|
||||
+2
-2
@@ -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;
|
||||
|
||||
+2
-2
@@ -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]));
|
||||
|
||||
+2
-2
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -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()));
|
||||
}
|
||||
|
||||
+5
-5
@@ -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();
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
|
||||
+1
-1
@@ -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}.
|
||||
|
||||
+2
-2
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -397,7 +397,7 @@ class AutoConfigurationImportSelectorTests {
|
||||
}
|
||||
|
||||
@AutoConfiguration
|
||||
static class SeventhAutoConfiguration {
|
||||
public static final class SeventhAutoConfiguration {
|
||||
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -369,12 +369,12 @@ class ImportAutoConfigurationImportSelectorTests {
|
||||
}
|
||||
|
||||
@AutoConfiguration
|
||||
static class ImportedAutoConfiguration {
|
||||
public static final class ImportedAutoConfiguration {
|
||||
|
||||
}
|
||||
|
||||
@AutoConfiguration
|
||||
static class AnotherImportedAutoConfiguration {
|
||||
public static final class AnotherImportedAutoConfiguration {
|
||||
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -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() {
|
||||
|
||||
+1
-1
@@ -27,6 +27,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
*/
|
||||
@AutoConfiguration
|
||||
@ConditionalOnProperty("unique")
|
||||
public class UniqueShortNameAutoConfiguration {
|
||||
public final class UniqueShortNameAutoConfiguration {
|
||||
|
||||
}
|
||||
|
||||
+2
-2
@@ -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";
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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";
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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";
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -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() {
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+1
-4
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+3
-3
@@ -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;
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+4
-4
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+3
-4
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+4
-5
@@ -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);
|
||||
}
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -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,
|
||||
|
||||
+3
-4
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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,
|
||||
|
||||
+7
-8
@@ -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());
|
||||
|
||||
+9
-9
@@ -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,
|
||||
|
||||
+3
-3
@@ -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());
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+7
-7
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
+2
-3
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
+2
-3
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
|
||||
+2
-2
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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")
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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,
|
||||
|
||||
+1
-1
@@ -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)
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
+3
-3
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+3
-4
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+3
-3
@@ -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);
|
||||
}
|
||||
|
||||
+3
-3
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+4
-4
@@ -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);
|
||||
|
||||
+1
-1
@@ -41,6 +41,6 @@ import org.springframework.context.annotation.Import;
|
||||
ConditionalOnEnabledHealthIndicator.class })
|
||||
@ConditionalOnEnabledHealthIndicator("cassandra")
|
||||
@Import(CassandraDriverConfiguration.class)
|
||||
public class CassandraHealthContributorAutoConfiguration {
|
||||
public final class CassandraHealthContributorAutoConfiguration {
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -41,6 +41,6 @@ import org.springframework.context.annotation.Import;
|
||||
ConditionalOnEnabledHealthIndicator.class })
|
||||
@ConditionalOnEnabledHealthIndicator("cassandra")
|
||||
@Import(CassandraReactiveDriverConfiguration.class)
|
||||
public class CassandraReactiveHealthContributorAutoConfiguration {
|
||||
public final class CassandraReactiveHealthContributorAutoConfiguration {
|
||||
|
||||
}
|
||||
|
||||
+4
-4
@@ -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,
|
||||
|
||||
+5
-5
@@ -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;
|
||||
|
||||
|
||||
+4
-5
@@ -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);
|
||||
|
||||
+3
-3
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+9
-10
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
+5
-5
@@ -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);
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+5
-5
@@ -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));
|
||||
|
||||
+5
-5
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+3
-3
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -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)
|
||||
|
||||
+2
-2
@@ -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);
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -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)
|
||||
|
||||
+5
-6
@@ -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),
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+3
-3
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+7
-7
@@ -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));
|
||||
|
||||
+4
-5
@@ -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);
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
}
|
||||
|
||||
+6
-6
@@ -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
Reference in New Issue
Block a user