Commit 2376f973 authored by Phillip Webb's avatar Phillip Webb

Merge branch '2.1.x'

parents 4e337f74 47c6bf74
...@@ -153,7 +153,7 @@ provision a new environment. To use the installer: ...@@ -153,7 +153,7 @@ provision a new environment. To use the installer:
* Select "`Eclipse IDE for Java Developers`" under "`Eclipse.org`" as the product to * Select "`Eclipse IDE for Java Developers`" under "`Eclipse.org`" as the product to
install and click "`next`". install and click "`next`".
* For the "`Project`" click on "`+`" to add a new setup file. Select "`Github Projects`" * For the "`Project`" click on "`+`" to add a new setup file. Select "`Github Projects`"
and browser for `<checkout>/eclipse/spring-boot-project.setup` from your locally cloned and browse for `<checkout>/eclipse/spring-boot-project.setup` from your locally cloned
copy of the source code. Click "`OK`" to add the setup file to the list. copy of the source code. Click "`OK`" to add the setup file to the list.
* Double-click on "`Spring Boot`" from the project list to add it to the list that will * Double-click on "`Spring Boot`" from the project list to add it to the list that will
be provisioned then click "`Next`". be provisioned then click "`Next`".
...@@ -166,12 +166,20 @@ Once complete you should find that a local workspace has been provisioned comple ...@@ -166,12 +166,20 @@ Once complete you should find that a local workspace has been provisioned comple
all required Eclipse plugins. Projects will be grouped into working-sets to make the code all required Eclipse plugins. Projects will be grouped into working-sets to make the code
easier to navigate. easier to navigate.
If you want to work on the `spring-boot-gradle-plugin` you should remove the imported Maven
project and reimport it as a Gradle project.
TIP: If you see import errors with `com.sun` packages make sure you have setup a valid
`JavaSE-1.8` environment. From preferences select "`Java`", "`Installed JREs`",
"`Execution Environments`" and make sure "`JavaSE-1.8`" points to a Java 1.8
install (we use AdoptOpenJDK on our CI).
==== Manual Installation with M2Eclipse ==== Manual Installation with M2Eclipse
If you prefer to install Eclipse yourself you should use the If you prefer to install Eclipse yourself you should use the
https://eclipse.org/m2e/[M2Eclipse] eclipse plugin. If you don't already have m2eclipse https://eclipse.org/m2e/[M2Eclipse] eclipse plugin. If you don't already have m2eclipse
installed it is available from the "Eclipse marketplace". installed it is available from the "`Eclipse marketplace`".
Spring Boot includes project specific source formatting settings, in order to have these Spring Boot includes project specific source formatting settings, in order to have these
work with m2eclipse, we provide an additional Eclipse plugin that you can install: work with m2eclipse, we provide an additional Eclipse plugin that you can install:
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<setup:Project <setup:Project
xmi:version="2.0" xmi:version="2.0"
xmlns:xmi="https://www.omg.org/XMI" xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jdt="https://www.eclipse.org/oomph/setup/jdt/1.0" xmlns:jdt="http://www.eclipse.org/oomph/setup/jdt/1.0"
xmlns:maven="https://www.eclipse.org/oomph/setup/maven/1.0" xmlns:maven="http://www.eclipse.org/oomph/setup/maven/1.0"
xmlns:predicates="https://www.eclipse.org/oomph/predicates/1.0" xmlns:predicates="http://www.eclipse.org/oomph/predicates/1.0"
xmlns:setup="https://www.eclipse.org/oomph/setup/1.0" xmlns:setup="http://www.eclipse.org/oomph/setup/1.0"
xmlns:setup.p2="https://www.eclipse.org/oomph/setup/p2/1.0" xmlns:setup.p2="http://www.eclipse.org/oomph/setup/p2/1.0"
xmlns:setup.workingsets="https://www.eclipse.org/oomph/setup/workingsets/1.0" xmlns:setup.workingsets="http://www.eclipse.org/oomph/setup/workingsets/1.0"
xmlns:workingsets="https://www.eclipse.org/oomph/workingsets/1.0" xmlns:workingsets="http://www.eclipse.org/oomph/workingsets/1.0"
xsi:schemaLocation="https://www.eclipse.org/oomph/setup/jdt/1.0 https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/JDT.ecore https://www.eclipse.org/oomph/setup/maven/1.0 https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/Maven.ecore https://www.eclipse.org/oomph/predicates/1.0 https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/Predicates.ecore https://www.eclipse.org/oomph/setup/workingsets/1.0 https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/SetupWorkingSets.ecore https://www.eclipse.org/oomph/workingsets/1.0 https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/WorkingSets.ecore" xsi:schemaLocation="http://www.eclipse.org/oomph/setup/jdt/1.0 https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/JDT.ecore http://www.eclipse.org/oomph/setup/maven/1.0 https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/Maven.ecore http://www.eclipse.org/oomph/predicates/1.0 https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/Predicates.ecore http://www.eclipse.org/oomph/setup/workingsets/1.0 https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/SetupWorkingSets.ecore http://www.eclipse.org/oomph/workingsets/1.0 https://git.eclipse.org/c/oomph/org.eclipse.oomph.git/plain/setups/models/WorkingSets.ecore"
name="spring.boot" name="spring.boot.2.2.x"
label="Spring Boot"> label="Spring Boot 2.2.x">
<setupTask <setupTask
xsi:type="setup:VariableTask" xsi:type="setup:VariableTask"
type="FOLDER" type="FOLDER"
...@@ -54,8 +54,6 @@ ...@@ -54,8 +54,6 @@
</setupTask> </setupTask>
<setupTask <setupTask
xsi:type="setup.p2:P2Task"> xsi:type="setup.p2:P2Task">
<requirement
name="epp.package.java"/>
<requirement <requirement
name="org.eclipse.platform.feature.group"/> name="org.eclipse.platform.feature.group"/>
<requirement <requirement
...@@ -78,18 +76,10 @@ ...@@ -78,18 +76,10 @@
name="org.sonatype.m2e.buildhelper.feature.feature.group"/> name="org.sonatype.m2e.buildhelper.feature.feature.group"/>
<requirement <requirement
name="org.springframework.ide.eclipse.boot.feature.feature.group"/> name="org.springframework.ide.eclipse.boot.feature.feature.group"/>
<repository
url="https://download.eclipse.org/technology/epp/packages/oxygen/R/"/>
<repository
url="https://download.eclipse.org/releases/oxygen/"/>
<repository <repository
url="https://dl.bintray.com/spring/javaformat-eclipse/"/> url="https://dl.bintray.com/spring/javaformat-eclipse/"/>
<repository <repository
url="https://download.eclipse.org/egit/github/updates/"/> url="https://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-buildhelper/0.15.0/N/0.15.0.201405280027/"/>
<repository
url="https://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-buildhelper/0.15.0/N/0.15.0.201207090124/"/>
<repository
url="https://dist.springsource.com/release/TOOLS/update/e4.7"/>
<description> <description>
Install the tools needed in the IDE to work with the Install the tools needed in the IDE to work with the
source code for ${scope.project.label} source code for ${scope.project.label}
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
</property> </property>
</activation> </activation>
<properties> <properties>
<spring-javaformat.version>0.0.7</spring-javaformat.version> <spring-javaformat.version>0.0.8</spring-javaformat.version>
</properties> </properties>
<build> <build>
<plugins> <plugins>
......
...@@ -50,14 +50,16 @@ public class AuditAutoConfiguration { ...@@ -50,14 +50,16 @@ public class AuditAutoConfiguration {
} }
@Bean @Bean
@ConditionalOnClass(name = "org.springframework.security.authentication.event.AbstractAuthenticationEvent") @ConditionalOnClass(
name = "org.springframework.security.authentication.event.AbstractAuthenticationEvent")
@ConditionalOnMissingBean(AbstractAuthenticationAuditListener.class) @ConditionalOnMissingBean(AbstractAuthenticationAuditListener.class)
public AuthenticationAuditListener authenticationAuditListener() throws Exception { public AuthenticationAuditListener authenticationAuditListener() throws Exception {
return new AuthenticationAuditListener(); return new AuthenticationAuditListener();
} }
@Bean @Bean
@ConditionalOnClass(name = "org.springframework.security.access.event.AbstractAuthorizationEvent") @ConditionalOnClass(
name = "org.springframework.security.access.event.AbstractAuthorizationEvent")
@ConditionalOnMissingBean(AbstractAuthorizationAuditListener.class) @ConditionalOnMissingBean(AbstractAuthorizationAuditListener.class)
public AuthorizationAuditListener authorizationAuditListener() throws Exception { public AuthorizationAuditListener authorizationAuditListener() throws Exception {
return new AuthorizationAuditListener(); return new AuthorizationAuditListener();
......
...@@ -76,7 +76,8 @@ import org.springframework.web.server.WebFilter; ...@@ -76,7 +76,8 @@ import org.springframework.web.server.WebFilter;
* @since 2.0.0 * @since 2.0.0
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(prefix = "management.cloudfoundry", name = "enabled", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.cloudfoundry", name = "enabled",
matchIfMissing = true)
@AutoConfigureAfter({ HealthEndpointAutoConfiguration.class, @AutoConfigureAfter({ HealthEndpointAutoConfiguration.class,
InfoEndpointAutoConfiguration.class }) InfoEndpointAutoConfiguration.class })
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)
......
...@@ -76,7 +76,8 @@ import org.springframework.web.servlet.DispatcherServlet; ...@@ -76,7 +76,8 @@ import org.springframework.web.servlet.DispatcherServlet;
* @since 2.0.0 * @since 2.0.0
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(prefix = "management.cloudfoundry", name = "enabled", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.cloudfoundry", name = "enabled",
matchIfMissing = true)
@AutoConfigureAfter({ ServletManagementContextAutoConfiguration.class, @AutoConfigureAfter({ ServletManagementContextAutoConfiguration.class,
HealthEndpointAutoConfiguration.class, InfoEndpointAutoConfiguration.class }) HealthEndpointAutoConfiguration.class, InfoEndpointAutoConfiguration.class })
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
......
/* /*
* Copyright 2012-2017 the original author or authors. * Copyright 2012-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -30,7 +30,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties; ...@@ -30,7 +30,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
* @author Andy Wilkinson * @author Andy Wilkinson
* @since 2.0.0 * @since 2.0.0
*/ */
@ConfigurationProperties(prefix = "management.health.elasticsearch", ignoreUnknownFields = false) @ConfigurationProperties(prefix = "management.health.elasticsearch",
ignoreUnknownFields = false)
public class ElasticsearchHealthIndicatorProperties { public class ElasticsearchHealthIndicatorProperties {
/** /**
......
...@@ -42,8 +42,8 @@ import org.springframework.core.type.AnnotatedTypeMetadata; ...@@ -42,8 +42,8 @@ import org.springframework.core.type.AnnotatedTypeMetadata;
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnClass(value = { Log4j2Metrics.class, @ConditionalOnClass(value = { Log4j2Metrics.class, LogManager.class },
LogManager.class }, name = "org.apache.logging.log4j.core.LoggerContext") name = "org.apache.logging.log4j.core.LoggerContext")
@ConditionalOnBean(MeterRegistry.class) @ConditionalOnBean(MeterRegistry.class)
@Conditional(Log4JCoreLoggerContextCondition.class) @Conditional(Log4JCoreLoggerContextCondition.class)
public class Log4J2MetricsAutoConfiguration { public class Log4J2MetricsAutoConfiguration {
......
...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(AppOpticsMeterRegistry.class) @ConditionalOnClass(AppOpticsMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.appoptics", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.appoptics", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(AppOpticsProperties.class) @EnableConfigurationProperties(AppOpticsProperties.class)
public class AppOpticsMetricsExportAutoConfiguration { public class AppOpticsMetricsExportAutoConfiguration {
......
...@@ -47,7 +47,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -47,7 +47,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(AtlasMeterRegistry.class) @ConditionalOnClass(AtlasMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.atlas", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.atlas", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(AtlasProperties.class) @EnableConfigurationProperties(AtlasProperties.class)
public class AtlasMetricsExportAutoConfiguration { public class AtlasMetricsExportAutoConfiguration {
......
...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(DatadogMeterRegistry.class) @ConditionalOnClass(DatadogMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.datadog", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.datadog", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(DatadogProperties.class) @EnableConfigurationProperties(DatadogProperties.class)
public class DatadogMetricsExportAutoConfiguration { public class DatadogMetricsExportAutoConfiguration {
......
...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(DynatraceMeterRegistry.class) @ConditionalOnClass(DynatraceMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.dynatrace", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.dynatrace", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(DynatraceProperties.class) @EnableConfigurationProperties(DynatraceProperties.class)
public class DynatraceMetricsExportAutoConfiguration { public class DynatraceMetricsExportAutoConfiguration {
......
...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(ElasticMeterRegistry.class) @ConditionalOnClass(ElasticMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.elastic", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.elastic", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(ElasticProperties.class) @EnableConfigurationProperties(ElasticProperties.class)
public class ElasticMetricsExportAutoConfiguration { public class ElasticMetricsExportAutoConfiguration {
......
...@@ -46,7 +46,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -46,7 +46,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(GangliaMeterRegistry.class) @ConditionalOnClass(GangliaMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.ganglia", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.ganglia", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(GangliaProperties.class) @EnableConfigurationProperties(GangliaProperties.class)
public class GangliaMetricsExportAutoConfiguration { public class GangliaMetricsExportAutoConfiguration {
......
...@@ -46,7 +46,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -46,7 +46,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(GraphiteMeterRegistry.class) @ConditionalOnClass(GraphiteMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.graphite", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.graphite", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(GraphiteProperties.class) @EnableConfigurationProperties(GraphiteProperties.class)
public class GraphiteMetricsExportAutoConfiguration { public class GraphiteMetricsExportAutoConfiguration {
......
...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(HumioMeterRegistry.class) @ConditionalOnClass(HumioMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.humio", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.humio", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(HumioProperties.class) @EnableConfigurationProperties(HumioProperties.class)
public class HumioMetricsExportAutoConfiguration { public class HumioMetricsExportAutoConfiguration {
......
...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(InfluxMeterRegistry.class) @ConditionalOnClass(InfluxMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.influx", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.influx", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(InfluxProperties.class) @EnableConfigurationProperties(InfluxProperties.class)
public class InfluxMetricsExportAutoConfiguration { public class InfluxMetricsExportAutoConfiguration {
......
...@@ -46,7 +46,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -46,7 +46,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(JmxMeterRegistry.class) @ConditionalOnClass(JmxMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.jmx", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.jmx", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(JmxProperties.class) @EnableConfigurationProperties(JmxProperties.class)
public class JmxMetricsExportAutoConfiguration { public class JmxMetricsExportAutoConfiguration {
......
...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(KairosMeterRegistry.class) @ConditionalOnClass(KairosMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.kairos", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.kairos", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(KairosProperties.class) @EnableConfigurationProperties(KairosProperties.class)
public class KairosMetricsExportAutoConfiguration { public class KairosMetricsExportAutoConfiguration {
......
...@@ -49,7 +49,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -49,7 +49,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(NewRelicMeterRegistry.class) @ConditionalOnClass(NewRelicMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.newrelic", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.newrelic", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(NewRelicProperties.class) @EnableConfigurationProperties(NewRelicProperties.class)
public class NewRelicMetricsExportAutoConfiguration { public class NewRelicMetricsExportAutoConfiguration {
......
...@@ -62,7 +62,8 @@ import org.springframework.core.env.Environment; ...@@ -62,7 +62,8 @@ import org.springframework.core.env.Environment;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(PrometheusMeterRegistry.class) @ConditionalOnClass(PrometheusMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.prometheus", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.prometheus", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(PrometheusProperties.class) @EnableConfigurationProperties(PrometheusProperties.class)
public class PrometheusMetricsExportAutoConfiguration { public class PrometheusMetricsExportAutoConfiguration {
...@@ -106,7 +107,8 @@ public class PrometheusMetricsExportAutoConfiguration { ...@@ -106,7 +107,8 @@ public class PrometheusMetricsExportAutoConfiguration {
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(PushGateway.class) @ConditionalOnClass(PushGateway.class)
@ConditionalOnProperty(prefix = "management.metrics.export.prometheus.pushgateway", name = "enabled") @ConditionalOnProperty(prefix = "management.metrics.export.prometheus.pushgateway",
name = "enabled")
public static class PrometheusPushGatewayConfiguration { public static class PrometheusPushGatewayConfiguration {
private static final Log logger = LogFactory private static final Log logger = LogFactory
......
...@@ -47,7 +47,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -47,7 +47,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(SignalFxMeterRegistry.class) @ConditionalOnClass(SignalFxMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.signalfx", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.signalfx", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(SignalFxProperties.class) @EnableConfigurationProperties(SignalFxProperties.class)
public class SignalFxMetricsExportAutoConfiguration { public class SignalFxMetricsExportAutoConfiguration {
......
...@@ -47,7 +47,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -47,7 +47,8 @@ import org.springframework.context.annotation.Configuration;
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@EnableConfigurationProperties(SimpleProperties.class) @EnableConfigurationProperties(SimpleProperties.class)
@ConditionalOnMissingBean(MeterRegistry.class) @ConditionalOnMissingBean(MeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.simple", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.simple", name = "enabled",
havingValue = "true", matchIfMissing = true)
public class SimpleMetricsExportAutoConfiguration { public class SimpleMetricsExportAutoConfiguration {
@Bean @Bean
......
...@@ -47,7 +47,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -47,7 +47,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(StatsdMeterRegistry.class) @ConditionalOnClass(StatsdMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.statsd", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.statsd", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(StatsdProperties.class) @EnableConfigurationProperties(StatsdProperties.class)
public class StatsdMetricsExportAutoConfiguration { public class StatsdMetricsExportAutoConfiguration {
......
...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -48,7 +48,8 @@ import org.springframework.context.annotation.Configuration;
@AutoConfigureAfter(MetricsAutoConfiguration.class) @AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnBean(Clock.class) @ConditionalOnBean(Clock.class)
@ConditionalOnClass(WavefrontMeterRegistry.class) @ConditionalOnClass(WavefrontMeterRegistry.class)
@ConditionalOnProperty(prefix = "management.metrics.export.wavefront", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.metrics.export.wavefront", name = "enabled",
havingValue = "true", matchIfMissing = true)
@EnableConfigurationProperties(WavefrontProperties.class) @EnableConfigurationProperties(WavefrontProperties.class)
public class WavefrontMetricsExportAutoConfiguration { public class WavefrontMetricsExportAutoConfiguration {
......
...@@ -38,7 +38,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -38,7 +38,8 @@ import org.springframework.context.annotation.Configuration;
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnWebApplication @ConditionalOnWebApplication
@ConditionalOnProperty(prefix = "management.trace.http", name = "enabled", matchIfMissing = true) @ConditionalOnProperty(prefix = "management.trace.http", name = "enabled",
matchIfMissing = true)
@EnableConfigurationProperties(HttpTraceProperties.class) @EnableConfigurationProperties(HttpTraceProperties.class)
public class HttpTraceAutoConfiguration { public class HttpTraceAutoConfiguration {
......
...@@ -96,7 +96,8 @@ class ServletManagementChildContextConfiguration { ...@@ -96,7 +96,8 @@ class ServletManagementChildContextConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ EnableWebSecurity.class, Filter.class }) @ConditionalOnClass({ EnableWebSecurity.class, Filter.class })
@ConditionalOnBean(name = BeanIds.SPRING_SECURITY_FILTER_CHAIN, search = SearchStrategy.ANCESTORS) @ConditionalOnBean(name = BeanIds.SPRING_SECURITY_FILTER_CHAIN,
search = SearchStrategy.ANCESTORS)
static class ServletManagementContextSecurityConfiguration { static class ServletManagementContextSecurityConfiguration {
@Bean @Bean
......
...@@ -55,7 +55,8 @@ public class ServletManagementContextAutoConfiguration { ...@@ -55,7 +55,8 @@ public class ServletManagementContextAutoConfiguration {
// Put Servlets and Filters in their own nested class so they don't force early // Put Servlets and Filters in their own nested class so they don't force early
// instantiation of ManagementServerProperties. // instantiation of ManagementServerProperties.
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(prefix = "management.server", name = "add-application-context-header", havingValue = "true") @ConditionalOnProperty(prefix = "management.server",
name = "add-application-context-header", havingValue = "true")
protected static class ApplicationContextFilterConfiguration { protected static class ApplicationContextFilterConfiguration {
@Bean @Bean
......
/* /*
* Copyright 2012-2018 the original author or authors. * Copyright 2012-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -74,7 +74,8 @@ public class SpringApplicationHierarchyTests { ...@@ -74,7 +74,8 @@ public class SpringApplicationHierarchyTests {
Neo4jDataAutoConfiguration.class, Neo4jRepositoriesAutoConfiguration.class, Neo4jDataAutoConfiguration.class, Neo4jRepositoriesAutoConfiguration.class,
RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class, RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class,
FlywayAutoConfiguration.class, JestAutoConfiguration.class, FlywayAutoConfiguration.class, JestAutoConfiguration.class,
MetricsAutoConfiguration.class }, excludeName = { MetricsAutoConfiguration.class },
excludeName = {
"org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration" }) "org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration" })
public static class Child { public static class Child {
...@@ -87,7 +88,8 @@ public class SpringApplicationHierarchyTests { ...@@ -87,7 +88,8 @@ public class SpringApplicationHierarchyTests {
Neo4jDataAutoConfiguration.class, Neo4jRepositoriesAutoConfiguration.class, Neo4jDataAutoConfiguration.class, Neo4jRepositoriesAutoConfiguration.class,
RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class, RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class,
FlywayAutoConfiguration.class, JestAutoConfiguration.class, FlywayAutoConfiguration.class, JestAutoConfiguration.class,
MetricsAutoConfiguration.class }, excludeName = { MetricsAutoConfiguration.class },
excludeName = {
"org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration" }) "org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration" })
public static class Parent { public static class Parent {
......
...@@ -171,12 +171,14 @@ public class ConditionalOnEnabledEndpointTests { ...@@ -171,12 +171,14 @@ public class ConditionalOnEnabledEndpointTests {
} }
@EndpointExtension(endpoint = FooEndpointEnabledByDefaultTrue.class, filter = TestFilter.class) @EndpointExtension(endpoint = FooEndpointEnabledByDefaultTrue.class,
filter = TestFilter.class)
static class FooEndpointExtensionEnabledByDefaultTrue { static class FooEndpointExtensionEnabledByDefaultTrue {
} }
@EndpointExtension(endpoint = FooEndpointEnabledByDefaultFalse.class, filter = TestFilter.class) @EndpointExtension(endpoint = FooEndpointEnabledByDefaultFalse.class,
filter = TestFilter.class)
static class FooEndpointExtensionEnabledByDefaultFalse { static class FooEndpointExtensionEnabledByDefaultFalse {
} }
......
...@@ -55,7 +55,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. ...@@ -55,7 +55,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
* *
* @author Andy Wilkinson * @author Andy Wilkinson
*/ */
@TestPropertySource(properties = "spring.config.location=classpath:/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/") @TestPropertySource(
properties = "spring.config.location=classpath:/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/")
public class EnvironmentEndpointDocumentationTests public class EnvironmentEndpointDocumentationTests
extends MockMvcEndpointDocumentationTests { extends MockMvcEndpointDocumentationTests {
......
...@@ -34,7 +34,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. ...@@ -34,7 +34,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
* *
* @author Andy Wilkinson * @author Andy Wilkinson
*/ */
@TestPropertySource(properties = "logging.file.name=src/test/resources/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/sample.log") @TestPropertySource(
properties = "logging.file.name=src/test/resources/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/sample.log")
public class LogFileWebEndpointDocumentationTests public class LogFileWebEndpointDocumentationTests
extends MockMvcEndpointDocumentationTests { extends MockMvcEndpointDocumentationTests {
......
...@@ -61,7 +61,8 @@ import static org.springframework.web.reactive.function.server.RouterFunctions.r ...@@ -61,7 +61,8 @@ import static org.springframework.web.reactive.function.server.RouterFunctions.r
* *
* @author Andy Wilkinson * @author Andy Wilkinson
*/ */
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "spring.main.web-application-type=reactive") @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT,
properties = "spring.main.web-application-type=reactive")
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
public class MappingsEndpointReactiveDocumentationTests public class MappingsEndpointReactiveDocumentationTests
extends AbstractEndpointDocumentationTests { extends AbstractEndpointDocumentationTests {
...@@ -204,8 +205,10 @@ public class MappingsEndpointReactiveDocumentationTests ...@@ -204,8 +205,10 @@ public class MappingsEndpointReactiveDocumentationTests
@RestController @RestController
private static class ExampleController { private static class ExampleController {
@PostMapping(path = "/", consumes = { MediaType.APPLICATION_JSON_VALUE, @PostMapping(path = "/",
"!application/xml" }, produces = MediaType.TEXT_PLAIN_VALUE, headers = "X-Custom=Foo", params = "a!=alpha") consumes = { MediaType.APPLICATION_JSON_VALUE, "!application/xml" },
produces = MediaType.TEXT_PLAIN_VALUE, headers = "X-Custom=Foo",
params = "a!=alpha")
public String example() { public String example() {
return "Hello World"; return "Hello World";
} }
......
...@@ -232,8 +232,10 @@ public class MappingsEndpointServletDocumentationTests ...@@ -232,8 +232,10 @@ public class MappingsEndpointServletDocumentationTests
@RestController @RestController
private static class ExampleController { private static class ExampleController {
@PostMapping(path = "/", consumes = { MediaType.APPLICATION_JSON_VALUE, @PostMapping(path = "/",
"!application/xml" }, produces = MediaType.TEXT_PLAIN_VALUE, headers = "X-Custom=Foo", params = "a!=alpha") consumes = { MediaType.APPLICATION_JSON_VALUE, "!application/xml" },
produces = MediaType.TEXT_PLAIN_VALUE, headers = "X-Custom=Foo",
params = "a!=alpha")
public String example() { public String example() {
return "Hello World"; return "Hello World";
} }
......
...@@ -53,7 +53,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. ...@@ -53,7 +53,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
* *
* @author Andy Wilkinson * @author Andy Wilkinson
*/ */
@TestPropertySource(properties = "spring.jackson.serialization.write-dates-as-timestamps=false") @TestPropertySource(
properties = "spring.jackson.serialization.write-dates-as-timestamps=false")
public class SessionsEndpointDocumentationTests public class SessionsEndpointDocumentationTests
extends MockMvcEndpointDocumentationTests { extends MockMvcEndpointDocumentationTests {
......
...@@ -58,7 +58,8 @@ import static org.assertj.core.api.Assertions.assertThat; ...@@ -58,7 +58,8 @@ import static org.assertj.core.api.Assertions.assertThat;
* @author Stephane Nicoll * @author Stephane Nicoll
*/ */
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = "management.endpoints.web.exposure.include=jolokia") @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT,
properties = "management.endpoints.web.exposure.include=jolokia")
@DirtiesContext @DirtiesContext
public class JolokiaEndpointAutoConfigurationIntegrationTests { public class JolokiaEndpointAutoConfigurationIntegrationTests {
......
...@@ -83,7 +83,9 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat ...@@ -83,7 +83,9 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat
* *
* @author Jon Schneider * @author Jon Schneider
*/ */
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = MetricsIntegrationTests.MetricsApp.class, properties = "management.metrics.use-global-registry=false") @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT,
classes = MetricsIntegrationTests.MetricsApp.class,
properties = "management.metrics.use-global-registry=false")
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
public class MetricsIntegrationTests { public class MetricsIntegrationTests {
......
...@@ -482,7 +482,8 @@ public class EndpointDiscovererTests { ...@@ -482,7 +482,8 @@ public class EndpointDiscovererTests {
} }
@EndpointExtension(endpoint = SpecializedTestEndpoint.class, filter = SpecializedEndpointFilter.class) @EndpointExtension(endpoint = SpecializedTestEndpoint.class,
filter = SpecializedEndpointFilter.class)
public static class SpecializedExtension { public static class SpecializedExtension {
@ReadOperation @ReadOperation
......
...@@ -470,8 +470,8 @@ public class JmxEndpointDiscovererTests { ...@@ -470,8 +470,8 @@ public class JmxEndpointDiscovererTests {
@ReadOperation @ReadOperation
@ManagedOperation(description = "Get something based on a timeUnit") @ManagedOperation(description = "Get something based on a timeUnit")
@ManagedOperationParameters({ @ManagedOperationParameters({ @ManagedOperationParameter(name = "unitMs",
@ManagedOperationParameter(name = "unitMs", description = "Number of milliseconds") }) description = "Number of milliseconds") })
public String getSomething(Long timeUnit) { public String getSomething(Long timeUnit) {
return null; return null;
} }
...@@ -487,8 +487,8 @@ public class JmxEndpointDiscovererTests { ...@@ -487,8 +487,8 @@ public class JmxEndpointDiscovererTests {
@DeleteOperation @DeleteOperation
@ManagedOperation(description = "Delete something based on a timeUnit") @ManagedOperation(description = "Delete something based on a timeUnit")
@ManagedOperationParameters({ @ManagedOperationParameters({ @ManagedOperationParameter(name = "unitMs",
@ManagedOperationParameter(name = "unitMs", description = "Number of milliseconds") }) description = "Number of milliseconds") })
public void deleteSomething(Long timeUnit) { public void deleteSomething(Long timeUnit) {
} }
......
...@@ -162,8 +162,8 @@ public class LongTaskTimingHandlerInterceptorTests { ...@@ -162,8 +162,8 @@ public class LongTaskTimingHandlerInterceptorTests {
private CyclicBarrier callableBarrier; private CyclicBarrier callableBarrier;
@Timed @Timed
@Timed(value = "my.long.request", extraTags = { "region", @Timed(value = "my.long.request", extraTags = { "region", "test" },
"test" }, longTask = true) longTask = true)
@GetMapping("/callable/{id}") @GetMapping("/callable/{id}")
public Callable<String> asyncCallable(@PathVariable Long id) throws Exception { public Callable<String> asyncCallable(@PathVariable Long id) throws Exception {
this.callableBarrier.await(); this.callableBarrier.await();
......
...@@ -396,8 +396,8 @@ public class WebMvcMetricsFilterTests { ...@@ -396,8 +396,8 @@ public class WebMvcMetricsFilterTests {
} }
@Timed @Timed
@Timed(value = "my.long.request", extraTags = { "region", @Timed(value = "my.long.request", extraTags = { "region", "test" },
"test" }, longTask = true) longTask = true)
@GetMapping("/callable/{id}") @GetMapping("/callable/{id}")
public Callable<String> asyncCallable(@PathVariable Long id) throws Exception { public Callable<String> asyncCallable(@PathVariable Long id) throws Exception {
this.callableBarrier.await(); this.callableBarrier.await();
......
...@@ -55,7 +55,8 @@ import org.springframework.core.annotation.AliasFor; ...@@ -55,7 +55,8 @@ import org.springframework.core.annotation.AliasFor;
@EnableAutoConfiguration @EnableAutoConfiguration
@ComponentScan(excludeFilters = { @ComponentScan(excludeFilters = {
@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) @Filter(type = FilterType.CUSTOM,
classes = AutoConfigurationExcludeFilter.class) })
@ConfigurationPropertiesScan @ConfigurationPropertiesScan
public @interface SpringBootApplication { public @interface SpringBootApplication {
......
...@@ -41,7 +41,8 @@ import org.springframework.jmx.export.MBeanExporter; ...@@ -41,7 +41,8 @@ import org.springframework.jmx.export.MBeanExporter;
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@AutoConfigureAfter(JmxAutoConfiguration.class) @AutoConfigureAfter(JmxAutoConfiguration.class)
@ConditionalOnProperty(prefix = "spring.application.admin", value = "enabled", havingValue = "true", matchIfMissing = false) @ConditionalOnProperty(prefix = "spring.application.admin", value = "enabled",
havingValue = "true", matchIfMissing = false)
public class SpringApplicationAdminJmxAutoConfiguration { public class SpringApplicationAdminJmxAutoConfiguration {
/** /**
......
...@@ -75,7 +75,8 @@ class RabbitAnnotationDrivenConfiguration { ...@@ -75,7 +75,8 @@ class RabbitAnnotationDrivenConfiguration {
@Bean(name = "rabbitListenerContainerFactory") @Bean(name = "rabbitListenerContainerFactory")
@ConditionalOnMissingBean(name = "rabbitListenerContainerFactory") @ConditionalOnMissingBean(name = "rabbitListenerContainerFactory")
@ConditionalOnProperty(prefix = "spring.rabbitmq.listener", name = "type", havingValue = "simple", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.rabbitmq.listener", name = "type",
havingValue = "simple", matchIfMissing = true)
public SimpleRabbitListenerContainerFactory simpleRabbitListenerContainerFactory( public SimpleRabbitListenerContainerFactory simpleRabbitListenerContainerFactory(
SimpleRabbitListenerContainerFactoryConfigurer configurer, SimpleRabbitListenerContainerFactoryConfigurer configurer,
ConnectionFactory connectionFactory) { ConnectionFactory connectionFactory) {
...@@ -98,7 +99,8 @@ class RabbitAnnotationDrivenConfiguration { ...@@ -98,7 +99,8 @@ class RabbitAnnotationDrivenConfiguration {
@Bean(name = "rabbitListenerContainerFactory") @Bean(name = "rabbitListenerContainerFactory")
@ConditionalOnMissingBean(name = "rabbitListenerContainerFactory") @ConditionalOnMissingBean(name = "rabbitListenerContainerFactory")
@ConditionalOnProperty(prefix = "spring.rabbitmq.listener", name = "type", havingValue = "direct") @ConditionalOnProperty(prefix = "spring.rabbitmq.listener", name = "type",
havingValue = "direct")
public DirectRabbitListenerContainerFactory directRabbitListenerContainerFactory( public DirectRabbitListenerContainerFactory directRabbitListenerContainerFactory(
DirectRabbitListenerContainerFactoryConfigurer configurer, DirectRabbitListenerContainerFactoryConfigurer configurer,
ConnectionFactory connectionFactory) { ConnectionFactory connectionFactory) {
...@@ -109,7 +111,8 @@ class RabbitAnnotationDrivenConfiguration { ...@@ -109,7 +111,8 @@ class RabbitAnnotationDrivenConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@EnableRabbit @EnableRabbit
@ConditionalOnMissingBean(name = RabbitListenerConfigUtils.RABBIT_LISTENER_ANNOTATION_PROCESSOR_BEAN_NAME) @ConditionalOnMissingBean(
name = RabbitListenerConfigUtils.RABBIT_LISTENER_ANNOTATION_PROCESSOR_BEAN_NAME)
protected static class EnableRabbitConfiguration { protected static class EnableRabbitConfiguration {
} }
......
...@@ -194,7 +194,8 @@ public class RabbitAutoConfiguration { ...@@ -194,7 +194,8 @@ public class RabbitAutoConfiguration {
@Bean @Bean
@ConditionalOnSingleCandidate(ConnectionFactory.class) @ConditionalOnSingleCandidate(ConnectionFactory.class)
@ConditionalOnProperty(prefix = "spring.rabbitmq", name = "dynamic", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.rabbitmq", name = "dynamic",
matchIfMissing = true)
@ConditionalOnMissingBean @ConditionalOnMissingBean
public AmqpAdmin amqpAdmin(ConnectionFactory connectionFactory) { public AmqpAdmin amqpAdmin(ConnectionFactory connectionFactory) {
return new RabbitAdmin(connectionFactory); return new RabbitAdmin(connectionFactory);
......
...@@ -42,19 +42,22 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy; ...@@ -42,19 +42,22 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy;
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ EnableAspectJAutoProxy.class, Aspect.class, Advice.class, @ConditionalOnClass({ EnableAspectJAutoProxy.class, Aspect.class, Advice.class,
AnnotatedElement.class }) AnnotatedElement.class })
@ConditionalOnProperty(prefix = "spring.aop", name = "auto", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.aop", name = "auto", havingValue = "true",
matchIfMissing = true)
public class AopAutoConfiguration { public class AopAutoConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@EnableAspectJAutoProxy(proxyTargetClass = false) @EnableAspectJAutoProxy(proxyTargetClass = false)
@ConditionalOnProperty(prefix = "spring.aop", name = "proxy-target-class", havingValue = "false", matchIfMissing = false) @ConditionalOnProperty(prefix = "spring.aop", name = "proxy-target-class",
havingValue = "false", matchIfMissing = false)
public static class JdkDynamicAutoProxyConfiguration { public static class JdkDynamicAutoProxyConfiguration {
} }
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@EnableAspectJAutoProxy(proxyTargetClass = true) @EnableAspectJAutoProxy(proxyTargetClass = true)
@ConditionalOnProperty(prefix = "spring.aop", name = "proxy-target-class", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.aop", name = "proxy-target-class",
havingValue = "true", matchIfMissing = true)
public static class CglibAutoProxyConfiguration { public static class CglibAutoProxyConfiguration {
} }
......
...@@ -83,7 +83,8 @@ public class BatchAutoConfiguration { ...@@ -83,7 +83,8 @@ public class BatchAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
@ConditionalOnProperty(prefix = "spring.batch.job", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.batch.job", name = "enabled",
havingValue = "true", matchIfMissing = true)
public JobLauncherCommandLineRunner jobLauncherCommandLineRunner( public JobLauncherCommandLineRunner jobLauncherCommandLineRunner(
JobLauncher jobLauncher, JobExplorer jobExplorer, JobLauncher jobLauncher, JobExplorer jobExplorer,
JobRepository jobRepository) { JobRepository jobRepository) {
......
...@@ -50,7 +50,8 @@ import org.springframework.util.StringUtils; ...@@ -50,7 +50,8 @@ import org.springframework.util.StringUtils;
* @author Eddú Meléndez * @author Eddú Meléndez
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnMissingBean(name = AbstractApplicationContext.MESSAGE_SOURCE_BEAN_NAME, search = SearchStrategy.CURRENT) @ConditionalOnMissingBean(name = AbstractApplicationContext.MESSAGE_SOURCE_BEAN_NAME,
search = SearchStrategy.CURRENT)
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE) @AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE)
@Conditional(ResourceBundleCondition.class) @Conditional(ResourceBundleCondition.class)
@EnableConfigurationProperties @EnableConfigurationProperties
......
...@@ -44,7 +44,8 @@ import org.springframework.context.annotation.Import; ...@@ -44,7 +44,8 @@ import org.springframework.context.annotation.Import;
public class CouchbaseAutoConfiguration { public class CouchbaseAutoConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnMissingBean(value = CouchbaseConfiguration.class, type = "org.springframework.data.couchbase.config.CouchbaseConfigurer") @ConditionalOnMissingBean(value = CouchbaseConfiguration.class,
type = "org.springframework.data.couchbase.config.CouchbaseConfigurer")
@Import(CouchbaseConfiguration.class) @Import(CouchbaseConfiguration.class)
static class DefaultCouchbaseConfiguration { static class DefaultCouchbaseConfiguration {
...@@ -69,7 +70,8 @@ public class CouchbaseAutoConfiguration { ...@@ -69,7 +70,8 @@ public class CouchbaseAutoConfiguration {
} }
@ConditionalOnBean(type = "org.springframework.data.couchbase.config.CouchbaseConfigurer") @ConditionalOnBean(
type = "org.springframework.data.couchbase.config.CouchbaseConfigurer")
static class CouchbaseConfigurerAvailable { static class CouchbaseConfigurerAvailable {
} }
......
...@@ -40,7 +40,8 @@ public class PersistenceExceptionTranslationAutoConfiguration { ...@@ -40,7 +40,8 @@ public class PersistenceExceptionTranslationAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
@ConditionalOnProperty(prefix = "spring.dao.exceptiontranslation", name = "enabled", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.dao.exceptiontranslation", name = "enabled",
matchIfMissing = true)
public static PersistenceExceptionTranslationPostProcessor persistenceExceptionTranslationPostProcessor( public static PersistenceExceptionTranslationPostProcessor persistenceExceptionTranslationPostProcessor(
Environment environment) { Environment environment) {
PersistenceExceptionTranslationPostProcessor postProcessor = new PersistenceExceptionTranslationPostProcessor(); PersistenceExceptionTranslationPostProcessor postProcessor = new PersistenceExceptionTranslationPostProcessor();
......
...@@ -40,7 +40,8 @@ import org.springframework.data.elasticsearch.client.TransportClientFactoryBean; ...@@ -40,7 +40,8 @@ import org.springframework.data.elasticsearch.client.TransportClientFactoryBean;
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ Client.class, TransportClientFactoryBean.class }) @ConditionalOnClass({ Client.class, TransportClientFactoryBean.class })
@ConditionalOnProperty(prefix = "spring.data.elasticsearch", name = "cluster-nodes", matchIfMissing = false) @ConditionalOnProperty(prefix = "spring.data.elasticsearch", name = "cluster-nodes",
matchIfMissing = false)
@EnableConfigurationProperties(ElasticsearchProperties.class) @EnableConfigurationProperties(ElasticsearchProperties.class)
public class ElasticsearchAutoConfiguration { public class ElasticsearchAutoConfiguration {
......
...@@ -39,7 +39,8 @@ import org.springframework.data.elasticsearch.repository.support.ElasticsearchRe ...@@ -39,7 +39,8 @@ import org.springframework.data.elasticsearch.repository.support.ElasticsearchRe
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ Client.class, ElasticsearchRepository.class }) @ConditionalOnClass({ Client.class, ElasticsearchRepository.class })
@ConditionalOnProperty(prefix = "spring.data.elasticsearch.repositories", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.data.elasticsearch.repositories",
name = "enabled", havingValue = "true", matchIfMissing = true)
@ConditionalOnMissingBean(ElasticsearchRepositoryFactoryBean.class) @ConditionalOnMissingBean(ElasticsearchRepositoryFactoryBean.class)
@Import(ElasticsearchRepositoriesRegistrar.class) @Import(ElasticsearchRepositoriesRegistrar.class)
public class ElasticsearchRepositoriesAutoConfiguration { public class ElasticsearchRepositoriesAutoConfiguration {
......
...@@ -47,7 +47,8 @@ import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations; ...@@ -47,7 +47,8 @@ import org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations;
@ConditionalOnBean(NamedParameterJdbcOperations.class) @ConditionalOnBean(NamedParameterJdbcOperations.class)
@ConditionalOnClass({ NamedParameterJdbcOperations.class, @ConditionalOnClass({ NamedParameterJdbcOperations.class,
AbstractJdbcConfiguration.class }) AbstractJdbcConfiguration.class })
@ConditionalOnProperty(prefix = "spring.data.jdbc.repositories", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.data.jdbc.repositories", name = "enabled",
havingValue = "true", matchIfMissing = true)
@AutoConfigureAfter(JdbcTemplateAutoConfiguration.class) @AutoConfigureAfter(JdbcTemplateAutoConfiguration.class)
public class JdbcRepositoriesAutoConfiguration { public class JdbcRepositoriesAutoConfiguration {
......
...@@ -64,7 +64,8 @@ import org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean; ...@@ -64,7 +64,8 @@ import org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean;
@ConditionalOnClass(JpaRepository.class) @ConditionalOnClass(JpaRepository.class)
@ConditionalOnMissingBean({ JpaRepositoryFactoryBean.class, @ConditionalOnMissingBean({ JpaRepositoryFactoryBean.class,
JpaRepositoryConfigExtension.class }) JpaRepositoryConfigExtension.class })
@ConditionalOnProperty(prefix = "spring.data.jpa.repositories", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.data.jpa.repositories", name = "enabled",
havingValue = "true", matchIfMissing = true)
@Import(JpaRepositoriesAutoConfigureRegistrar.class) @Import(JpaRepositoriesAutoConfigureRegistrar.class)
@AutoConfigureAfter({ HibernateJpaAutoConfiguration.class, @AutoConfigureAfter({ HibernateJpaAutoConfiguration.class,
TaskExecutionAutoConfiguration.class }) TaskExecutionAutoConfiguration.class })
...@@ -98,12 +99,14 @@ public class JpaRepositoriesAutoConfiguration { ...@@ -98,12 +99,14 @@ public class JpaRepositoriesAutoConfiguration {
super(ConfigurationPhase.REGISTER_BEAN); super(ConfigurationPhase.REGISTER_BEAN);
} }
@ConditionalOnProperty(prefix = "spring.data.jpa.repositories", name = "bootstrap-mode", havingValue = "deferred", matchIfMissing = false) @ConditionalOnProperty(prefix = "spring.data.jpa.repositories",
name = "bootstrap-mode", havingValue = "deferred", matchIfMissing = false)
static class DeferredBootstrapMode { static class DeferredBootstrapMode {
} }
@ConditionalOnProperty(prefix = "spring.data.jpa.repositories", name = "bootstrap-mode", havingValue = "lazy", matchIfMissing = false) @ConditionalOnProperty(prefix = "spring.data.jpa.repositories",
name = "bootstrap-mode", havingValue = "lazy", matchIfMissing = false)
static class LazyBootstrapMode { static class LazyBootstrapMode {
} }
......
...@@ -35,7 +35,8 @@ import org.springframework.data.ldap.repository.support.LdapRepositoryFactoryBea ...@@ -35,7 +35,8 @@ import org.springframework.data.ldap.repository.support.LdapRepositoryFactoryBea
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ LdapContext.class, LdapRepository.class }) @ConditionalOnClass({ LdapContext.class, LdapRepository.class })
@ConditionalOnProperty(prefix = "spring.data.ldap.repositories", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.data.ldap.repositories", name = "enabled",
havingValue = "true", matchIfMissing = true)
@ConditionalOnMissingBean(LdapRepositoryFactoryBean.class) @ConditionalOnMissingBean(LdapRepositoryFactoryBean.class)
@Import(LdapRepositoriesRegistrar.class) @Import(LdapRepositoriesRegistrar.class)
public class LdapRepositoriesAutoConfiguration { public class LdapRepositoriesAutoConfiguration {
......
...@@ -52,7 +52,8 @@ class Neo4jBookmarkManagementConfiguration { ...@@ -52,7 +52,8 @@ class Neo4jBookmarkManagementConfiguration {
@Bean(BOOKMARK_MANAGER_BEAN_NAME) @Bean(BOOKMARK_MANAGER_BEAN_NAME)
@ConditionalOnWebApplication @ConditionalOnWebApplication
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.INTERFACES) @Scope(value = WebApplicationContext.SCOPE_REQUEST,
proxyMode = ScopedProxyMode.INTERFACES)
public BookmarkManager requestScopedBookmarkManager() { public BookmarkManager requestScopedBookmarkManager() {
return new CaffeineBookmarkManager(); return new CaffeineBookmarkManager();
} }
......
...@@ -109,7 +109,8 @@ public class Neo4jDataAutoConfiguration { ...@@ -109,7 +109,8 @@ public class Neo4jDataAutoConfiguration {
@ConditionalOnWebApplication(type = Type.SERVLET) @ConditionalOnWebApplication(type = Type.SERVLET)
@ConditionalOnClass({ WebMvcConfigurer.class, OpenSessionInViewInterceptor.class }) @ConditionalOnClass({ WebMvcConfigurer.class, OpenSessionInViewInterceptor.class })
@ConditionalOnMissingBean(OpenSessionInViewInterceptor.class) @ConditionalOnMissingBean(OpenSessionInViewInterceptor.class)
@ConditionalOnProperty(prefix = "spring.data.neo4j", name = "open-in-view", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.data.neo4j", name = "open-in-view",
havingValue = "true", matchIfMissing = true)
protected static class Neo4jWebConfiguration { protected static class Neo4jWebConfiguration {
private static final Log logger = LogFactory.getLog(Neo4jWebConfiguration.class); private static final Log logger = LogFactory.getLog(Neo4jWebConfiguration.class);
......
...@@ -52,7 +52,8 @@ import org.springframework.data.neo4j.repository.support.Neo4jRepositoryFactoryB ...@@ -52,7 +52,8 @@ import org.springframework.data.neo4j.repository.support.Neo4jRepositoryFactoryB
@ConditionalOnClass({ Neo4jSession.class, Neo4jRepository.class }) @ConditionalOnClass({ Neo4jSession.class, Neo4jRepository.class })
@ConditionalOnMissingBean({ Neo4jRepositoryFactoryBean.class, @ConditionalOnMissingBean({ Neo4jRepositoryFactoryBean.class,
Neo4jRepositoryConfigurationExtension.class }) Neo4jRepositoryConfigurationExtension.class })
@ConditionalOnProperty(prefix = "spring.data.neo4j.repositories", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.data.neo4j.repositories", name = "enabled",
havingValue = "true", matchIfMissing = true)
@Import(Neo4jRepositoriesAutoConfigureRegistrar.class) @Import(Neo4jRepositoriesAutoConfigureRegistrar.class)
@AutoConfigureAfter(Neo4jDataAutoConfiguration.class) @AutoConfigureAfter(Neo4jDataAutoConfiguration.class)
public class Neo4jRepositoriesAutoConfiguration { public class Neo4jRepositoriesAutoConfiguration {
......
...@@ -40,7 +40,8 @@ import org.springframework.data.redis.repository.support.RedisRepositoryFactoryB ...@@ -40,7 +40,8 @@ import org.springframework.data.redis.repository.support.RedisRepositoryFactoryB
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(EnableRedisRepositories.class) @ConditionalOnClass(EnableRedisRepositories.class)
@ConditionalOnBean(RedisConnectionFactory.class) @ConditionalOnBean(RedisConnectionFactory.class)
@ConditionalOnProperty(prefix = "spring.data.redis.repositories", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.data.redis.repositories", name = "enabled",
havingValue = "true", matchIfMissing = true)
@ConditionalOnMissingBean(RedisRepositoryFactoryBean.class) @ConditionalOnMissingBean(RedisRepositoryFactoryBean.class)
@Import(RedisRepositoriesAutoConfigureRegistrar.class) @Import(RedisRepositoriesAutoConfigureRegistrar.class)
@AutoConfigureAfter(RedisAutoConfiguration.class) @AutoConfigureAfter(RedisAutoConfiguration.class)
......
...@@ -46,7 +46,8 @@ import org.springframework.data.solr.repository.support.SolrRepositoryFactoryBea ...@@ -46,7 +46,8 @@ import org.springframework.data.solr.repository.support.SolrRepositoryFactoryBea
@ConditionalOnClass({ SolrClient.class, SolrRepository.class }) @ConditionalOnClass({ SolrClient.class, SolrRepository.class })
@ConditionalOnMissingBean({ SolrRepositoryFactoryBean.class, @ConditionalOnMissingBean({ SolrRepositoryFactoryBean.class,
SolrRepositoryConfigExtension.class }) SolrRepositoryConfigExtension.class })
@ConditionalOnProperty(prefix = "spring.data.solr.repositories", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.data.solr.repositories", name = "enabled",
havingValue = "true", matchIfMissing = true)
@Import(SolrRepositoriesRegistrar.class) @Import(SolrRepositoriesRegistrar.class)
public class SolrRepositoriesAutoConfiguration { public class SolrRepositoriesAutoConfiguration {
......
...@@ -39,7 +39,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -39,7 +39,8 @@ import org.springframework.context.annotation.Configuration;
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnWebApplication(type = Type.SERVLET) @ConditionalOnWebApplication(type = Type.SERVLET)
@ConditionalOnClass(WebServlet.class) @ConditionalOnClass(WebServlet.class)
@ConditionalOnProperty(prefix = "spring.h2.console", name = "enabled", havingValue = "true", matchIfMissing = false) @ConditionalOnProperty(prefix = "spring.h2.console", name = "enabled",
havingValue = "true", matchIfMissing = false)
@EnableConfigurationProperties(H2ConsoleProperties.class) @EnableConfigurationProperties(H2ConsoleProperties.class)
public class H2ConsoleAutoConfiguration { public class H2ConsoleAutoConfiguration {
......
...@@ -46,7 +46,8 @@ import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandl ...@@ -46,7 +46,8 @@ import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandl
public class HypermediaHttpMessageConverterConfiguration { public class HypermediaHttpMessageConverterConfiguration {
@Bean @Bean
@ConditionalOnProperty(prefix = "spring.hateoas", name = "use-hal-as-default-json-media-type", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.hateoas",
name = "use-hal-as-default-json-media-type", matchIfMissing = true)
public static HalMessageConverterSupportedMediaTypesCustomizer halMessageConverterSupportedMediaTypeCustomizer() { public static HalMessageConverterSupportedMediaTypesCustomizer halMessageConverterSupportedMediaTypeCustomizer() {
return new HalMessageConverterSupportedMediaTypesCustomizer(); return new HalMessageConverterSupportedMediaTypesCustomizer();
} }
......
...@@ -63,7 +63,9 @@ class GsonHttpMessageConvertersConfiguration { ...@@ -63,7 +63,9 @@ class GsonHttpMessageConvertersConfiguration {
super(ConfigurationPhase.REGISTER_BEAN); super(ConfigurationPhase.REGISTER_BEAN);
} }
@ConditionalOnProperty(name = HttpMessageConvertersAutoConfiguration.PREFERRED_MAPPER_PROPERTY, havingValue = "gson") @ConditionalOnProperty(
name = HttpMessageConvertersAutoConfiguration.PREFERRED_MAPPER_PROPERTY,
havingValue = "gson")
static class GsonPreferred { static class GsonPreferred {
} }
...@@ -87,7 +89,9 @@ class GsonHttpMessageConvertersConfiguration { ...@@ -87,7 +89,9 @@ class GsonHttpMessageConvertersConfiguration {
} }
@ConditionalOnProperty(name = HttpMessageConvertersAutoConfiguration.PREFERRED_MAPPER_PROPERTY, havingValue = "jsonb") @ConditionalOnProperty(
name = HttpMessageConvertersAutoConfiguration.PREFERRED_MAPPER_PROPERTY,
havingValue = "jsonb")
static class JsonbPreferred { static class JsonbPreferred {
} }
......
...@@ -41,13 +41,16 @@ class JacksonHttpMessageConvertersConfiguration { ...@@ -41,13 +41,16 @@ class JacksonHttpMessageConvertersConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(ObjectMapper.class) @ConditionalOnClass(ObjectMapper.class)
@ConditionalOnBean(ObjectMapper.class) @ConditionalOnBean(ObjectMapper.class)
@ConditionalOnProperty(name = HttpMessageConvertersAutoConfiguration.PREFERRED_MAPPER_PROPERTY, havingValue = "jackson", matchIfMissing = true) @ConditionalOnProperty(
name = HttpMessageConvertersAutoConfiguration.PREFERRED_MAPPER_PROPERTY,
havingValue = "jackson", matchIfMissing = true)
protected static class MappingJackson2HttpMessageConverterConfiguration { protected static class MappingJackson2HttpMessageConverterConfiguration {
@Bean @Bean
@ConditionalOnMissingBean(value = MappingJackson2HttpMessageConverter.class, ignoredType = { @ConditionalOnMissingBean(value = MappingJackson2HttpMessageConverter.class,
"org.springframework.hateoas.server.mvc.TypeConstrainedMappingJackson2HttpMessageConverter", ignoredType = {
"org.springframework.data.rest.webmvc.alps.AlpsJsonHttpMessageConverter" }) "org.springframework.hateoas.server.mvc.TypeConstrainedMappingJackson2HttpMessageConverter",
"org.springframework.data.rest.webmvc.alps.AlpsJsonHttpMessageConverter" })
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter( public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(
ObjectMapper objectMapper) { ObjectMapper objectMapper) {
return new MappingJackson2HttpMessageConverter(objectMapper); return new MappingJackson2HttpMessageConverter(objectMapper);
......
...@@ -62,7 +62,9 @@ class JsonbHttpMessageConvertersConfiguration { ...@@ -62,7 +62,9 @@ class JsonbHttpMessageConvertersConfiguration {
super(ConfigurationPhase.REGISTER_BEAN); super(ConfigurationPhase.REGISTER_BEAN);
} }
@ConditionalOnProperty(name = HttpMessageConvertersAutoConfiguration.PREFERRED_MAPPER_PROPERTY, havingValue = "jsonb") @ConditionalOnProperty(
name = HttpMessageConvertersAutoConfiguration.PREFERRED_MAPPER_PROPERTY,
havingValue = "jsonb")
static class JsonbPreferred { static class JsonbPreferred {
} }
......
...@@ -66,7 +66,8 @@ public class ProjectInfoAutoConfiguration { ...@@ -66,7 +66,8 @@ public class ProjectInfoAutoConfiguration {
this.properties.getGit().getEncoding())); this.properties.getGit().getEncoding()));
} }
@ConditionalOnResource(resources = "${spring.info.build.location:classpath:META-INF/build-info.properties}") @ConditionalOnResource(
resources = "${spring.info.build.location:classpath:META-INF/build-info.properties}")
@ConditionalOnMissingBean @ConditionalOnMissingBean
@Bean @Bean
public BuildProperties buildProperties() throws Exception { public BuildProperties buildProperties() throws Exception {
......
...@@ -75,9 +75,11 @@ public class IntegrationAutoConfiguration { ...@@ -75,9 +75,11 @@ public class IntegrationAutoConfiguration {
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(EnableIntegrationMBeanExport.class) @ConditionalOnClass(EnableIntegrationMBeanExport.class)
@ConditionalOnMissingBean(value = IntegrationMBeanExporter.class, search = SearchStrategy.CURRENT) @ConditionalOnMissingBean(value = IntegrationMBeanExporter.class,
search = SearchStrategy.CURRENT)
@ConditionalOnBean(MBeanServer.class) @ConditionalOnBean(MBeanServer.class)
@ConditionalOnProperty(prefix = "spring.jmx", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.jmx", name = "enabled", havingValue = "true",
matchIfMissing = true)
protected static class IntegrationJmxConfiguration { protected static class IntegrationJmxConfiguration {
@Bean @Bean
...@@ -101,7 +103,9 @@ public class IntegrationAutoConfiguration { ...@@ -101,7 +103,9 @@ public class IntegrationAutoConfiguration {
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(EnableIntegrationManagement.class) @ConditionalOnClass(EnableIntegrationManagement.class)
@ConditionalOnMissingBean(value = IntegrationManagementConfigurer.class, name = IntegrationManagementConfigurer.MANAGEMENT_CONFIGURER_NAME, search = SearchStrategy.CURRENT) @ConditionalOnMissingBean(value = IntegrationManagementConfigurer.class,
name = IntegrationManagementConfigurer.MANAGEMENT_CONFIGURER_NAME,
search = SearchStrategy.CURRENT)
protected static class IntegrationManagementConfiguration { protected static class IntegrationManagementConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
......
...@@ -50,7 +50,8 @@ abstract class DataSourceConfiguration { ...@@ -50,7 +50,8 @@ abstract class DataSourceConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(org.apache.tomcat.jdbc.pool.DataSource.class) @ConditionalOnClass(org.apache.tomcat.jdbc.pool.DataSource.class)
@ConditionalOnMissingBean(DataSource.class) @ConditionalOnMissingBean(DataSource.class)
@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "org.apache.tomcat.jdbc.pool.DataSource", matchIfMissing = true) @ConditionalOnProperty(name = "spring.datasource.type",
havingValue = "org.apache.tomcat.jdbc.pool.DataSource", matchIfMissing = true)
static class Tomcat { static class Tomcat {
@Bean @Bean
...@@ -77,7 +78,8 @@ abstract class DataSourceConfiguration { ...@@ -77,7 +78,8 @@ abstract class DataSourceConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(HikariDataSource.class) @ConditionalOnClass(HikariDataSource.class)
@ConditionalOnMissingBean(DataSource.class) @ConditionalOnMissingBean(DataSource.class)
@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.zaxxer.hikari.HikariDataSource", matchIfMissing = true) @ConditionalOnProperty(name = "spring.datasource.type",
havingValue = "com.zaxxer.hikari.HikariDataSource", matchIfMissing = true)
static class Hikari { static class Hikari {
@Bean @Bean
...@@ -99,7 +101,9 @@ abstract class DataSourceConfiguration { ...@@ -99,7 +101,9 @@ abstract class DataSourceConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(org.apache.commons.dbcp2.BasicDataSource.class) @ConditionalOnClass(org.apache.commons.dbcp2.BasicDataSource.class)
@ConditionalOnMissingBean(DataSource.class) @ConditionalOnMissingBean(DataSource.class)
@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "org.apache.commons.dbcp2.BasicDataSource", matchIfMissing = true) @ConditionalOnProperty(name = "spring.datasource.type",
havingValue = "org.apache.commons.dbcp2.BasicDataSource",
matchIfMissing = true)
static class Dbcp2 { static class Dbcp2 {
@Bean @Bean
......
...@@ -42,7 +42,8 @@ import org.springframework.jmx.export.MBeanExporter; ...@@ -42,7 +42,8 @@ import org.springframework.jmx.export.MBeanExporter;
* @author Stephane Nicoll * @author Stephane Nicoll
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(prefix = "spring.jmx", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.jmx", name = "enabled", havingValue = "true",
matchIfMissing = true)
class DataSourceJmxConfiguration { class DataSourceJmxConfiguration {
private static final Log logger = LogFactory.getLog(DataSourceJmxConfiguration.class); private static final Log logger = LogFactory.getLog(DataSourceJmxConfiguration.class);
......
...@@ -132,7 +132,8 @@ public class JerseyAutoConfiguration implements ServletContextAware { ...@@ -132,7 +132,8 @@ public class JerseyAutoConfiguration implements ServletContextAware {
@Bean @Bean
@ConditionalOnMissingBean(name = "jerseyFilterRegistration") @ConditionalOnMissingBean(name = "jerseyFilterRegistration")
@ConditionalOnProperty(prefix = "spring.jersey", name = "type", havingValue = "filter") @ConditionalOnProperty(prefix = "spring.jersey", name = "type",
havingValue = "filter")
public FilterRegistrationBean<ServletContainer> jerseyFilterRegistration( public FilterRegistrationBean<ServletContainer> jerseyFilterRegistration(
JerseyApplicationPath applicationPath) { JerseyApplicationPath applicationPath) {
FilterRegistrationBean<ServletContainer> registration = new FilterRegistrationBean<>(); FilterRegistrationBean<ServletContainer> registration = new FilterRegistrationBean<>();
...@@ -157,7 +158,8 @@ public class JerseyAutoConfiguration implements ServletContextAware { ...@@ -157,7 +158,8 @@ public class JerseyAutoConfiguration implements ServletContextAware {
@Bean @Bean
@ConditionalOnMissingBean(name = "jerseyServletRegistration") @ConditionalOnMissingBean(name = "jerseyServletRegistration")
@ConditionalOnProperty(prefix = "spring.jersey", name = "type", havingValue = "servlet", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.jersey", name = "type",
havingValue = "servlet", matchIfMissing = true)
public ServletRegistrationBean<ServletContainer> jerseyServletRegistration( public ServletRegistrationBean<ServletContainer> jerseyServletRegistration(
JerseyApplicationPath applicationPath) { JerseyApplicationPath applicationPath) {
ServletRegistrationBean<ServletContainer> registration = new ServletRegistrationBean<>( ServletRegistrationBean<ServletContainer> registration = new ServletRegistrationBean<>(
......
...@@ -86,7 +86,8 @@ class JmsAnnotationDrivenConfiguration { ...@@ -86,7 +86,8 @@ class JmsAnnotationDrivenConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@EnableJms @EnableJms
@ConditionalOnMissingBean(name = JmsListenerConfigUtils.JMS_LISTENER_ANNOTATION_PROCESSOR_BEAN_NAME) @ConditionalOnMissingBean(
name = JmsListenerConfigUtils.JMS_LISTENER_ANNOTATION_PROCESSOR_BEAN_NAME)
protected static class EnableJmsConfiguration { protected static class EnableJmsConfiguration {
} }
......
...@@ -51,7 +51,8 @@ class ActiveMQConnectionFactoryConfiguration { ...@@ -51,7 +51,8 @@ class ActiveMQConnectionFactoryConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(CachingConnectionFactory.class) @ConditionalOnClass(CachingConnectionFactory.class)
@ConditionalOnProperty(prefix = "spring.activemq.pool", name = "enabled", havingValue = "false", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.activemq.pool", name = "enabled",
havingValue = "false", matchIfMissing = true)
static class SimpleConnectionFactoryConfiguration { static class SimpleConnectionFactoryConfiguration {
private final ActiveMQProperties properties; private final ActiveMQProperties properties;
...@@ -66,7 +67,8 @@ class ActiveMQConnectionFactoryConfiguration { ...@@ -66,7 +67,8 @@ class ActiveMQConnectionFactoryConfiguration {
} }
@Bean @Bean
@ConditionalOnProperty(prefix = "spring.jms.cache", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.jms.cache", name = "enabled",
havingValue = "true", matchIfMissing = true)
public CachingConnectionFactory cachingJmsConnectionFactory( public CachingConnectionFactory cachingJmsConnectionFactory(
JmsProperties jmsProperties) { JmsProperties jmsProperties) {
JmsProperties.Cache cacheProperties = jmsProperties.getCache(); JmsProperties.Cache cacheProperties = jmsProperties.getCache();
...@@ -79,7 +81,8 @@ class ActiveMQConnectionFactoryConfiguration { ...@@ -79,7 +81,8 @@ class ActiveMQConnectionFactoryConfiguration {
} }
@Bean @Bean
@ConditionalOnProperty(prefix = "spring.jms.cache", name = "enabled", havingValue = "false") @ConditionalOnProperty(prefix = "spring.jms.cache", name = "enabled",
havingValue = "false")
public ActiveMQConnectionFactory jmsConnectionFactory() { public ActiveMQConnectionFactory jmsConnectionFactory() {
return createConnectionFactory(); return createConnectionFactory();
} }
...@@ -97,7 +100,8 @@ class ActiveMQConnectionFactoryConfiguration { ...@@ -97,7 +100,8 @@ class ActiveMQConnectionFactoryConfiguration {
static class PooledConnectionFactoryConfiguration { static class PooledConnectionFactoryConfiguration {
@Bean(destroyMethod = "stop") @Bean(destroyMethod = "stop")
@ConditionalOnProperty(prefix = "spring.activemq.pool", name = "enabled", havingValue = "true", matchIfMissing = false) @ConditionalOnProperty(prefix = "spring.activemq.pool", name = "enabled",
havingValue = "true", matchIfMissing = false)
public JmsPoolConnectionFactory pooledJmsConnectionFactory( public JmsPoolConnectionFactory pooledJmsConnectionFactory(
ActiveMQProperties properties, ActiveMQProperties properties,
ObjectProvider<ActiveMQConnectionFactoryCustomizer> factoryCustomizers) { ObjectProvider<ActiveMQConnectionFactoryCustomizer> factoryCustomizers) {
......
...@@ -60,7 +60,8 @@ class ActiveMQXAConnectionFactoryConfiguration { ...@@ -60,7 +60,8 @@ class ActiveMQXAConnectionFactoryConfiguration {
} }
@Bean @Bean
@ConditionalOnProperty(prefix = "spring.activemq.pool", name = "enabled", havingValue = "false", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.activemq.pool", name = "enabled",
havingValue = "false", matchIfMissing = true)
public ActiveMQConnectionFactory nonXaJmsConnectionFactory( public ActiveMQConnectionFactory nonXaJmsConnectionFactory(
ActiveMQProperties properties, ActiveMQProperties properties,
ObjectProvider<ActiveMQConnectionFactoryCustomizer> factoryCustomizers) { ObjectProvider<ActiveMQConnectionFactoryCustomizer> factoryCustomizers) {
......
...@@ -45,7 +45,8 @@ class ArtemisConnectionFactoryConfiguration { ...@@ -45,7 +45,8 @@ class ArtemisConnectionFactoryConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(CachingConnectionFactory.class) @ConditionalOnClass(CachingConnectionFactory.class)
@ConditionalOnProperty(prefix = "spring.artemis.pool", name = "enabled", havingValue = "false", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.artemis.pool", name = "enabled",
havingValue = "false", matchIfMissing = true)
static class SimpleConnectionFactoryConfiguration { static class SimpleConnectionFactoryConfiguration {
private final ArtemisProperties properties; private final ArtemisProperties properties;
...@@ -59,7 +60,8 @@ class ArtemisConnectionFactoryConfiguration { ...@@ -59,7 +60,8 @@ class ArtemisConnectionFactoryConfiguration {
} }
@Bean @Bean
@ConditionalOnProperty(prefix = "spring.jms.cache", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.jms.cache", name = "enabled",
havingValue = "true", matchIfMissing = true)
public CachingConnectionFactory cachingJmsConnectionFactory( public CachingConnectionFactory cachingJmsConnectionFactory(
JmsProperties jmsProperties) { JmsProperties jmsProperties) {
JmsProperties.Cache cacheProperties = jmsProperties.getCache(); JmsProperties.Cache cacheProperties = jmsProperties.getCache();
...@@ -72,7 +74,8 @@ class ArtemisConnectionFactoryConfiguration { ...@@ -72,7 +74,8 @@ class ArtemisConnectionFactoryConfiguration {
} }
@Bean @Bean
@ConditionalOnProperty(prefix = "spring.jms.cache", name = "enabled", havingValue = "false") @ConditionalOnProperty(prefix = "spring.jms.cache", name = "enabled",
havingValue = "false")
public ActiveMQConnectionFactory jmsConnectionFactory() { public ActiveMQConnectionFactory jmsConnectionFactory() {
return createConnectionFactory(); return createConnectionFactory();
} }
...@@ -89,7 +92,8 @@ class ArtemisConnectionFactoryConfiguration { ...@@ -89,7 +92,8 @@ class ArtemisConnectionFactoryConfiguration {
static class PooledConnectionFactoryConfiguration { static class PooledConnectionFactoryConfiguration {
@Bean(destroyMethod = "stop") @Bean(destroyMethod = "stop")
@ConditionalOnProperty(prefix = "spring.artemis.pool", name = "enabled", havingValue = "true", matchIfMissing = false) @ConditionalOnProperty(prefix = "spring.artemis.pool", name = "enabled",
havingValue = "true", matchIfMissing = false)
public JmsPoolConnectionFactory pooledJmsConnectionFactory( public JmsPoolConnectionFactory pooledJmsConnectionFactory(
ListableBeanFactory beanFactory, ArtemisProperties properties) { ListableBeanFactory beanFactory, ArtemisProperties properties) {
ActiveMQConnectionFactory connectionFactory = new ArtemisConnectionFactoryFactory( ActiveMQConnectionFactory connectionFactory = new ArtemisConnectionFactoryFactory(
......
...@@ -43,7 +43,8 @@ import org.springframework.context.annotation.Configuration; ...@@ -43,7 +43,8 @@ import org.springframework.context.annotation.Configuration;
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(EmbeddedJMS.class) @ConditionalOnClass(EmbeddedJMS.class)
@ConditionalOnProperty(prefix = "spring.artemis.embedded", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.artemis.embedded", name = "enabled",
havingValue = "true", matchIfMissing = true)
class ArtemisEmbeddedServerConfiguration { class ArtemisEmbeddedServerConfiguration {
private final ArtemisProperties properties; private final ArtemisProperties properties;
......
...@@ -61,7 +61,8 @@ public class JmxAutoConfiguration { ...@@ -61,7 +61,8 @@ public class JmxAutoConfiguration {
@Bean @Bean
@Primary @Primary
@ConditionalOnMissingBean(value = MBeanExporter.class, search = SearchStrategy.CURRENT) @ConditionalOnMissingBean(value = MBeanExporter.class,
search = SearchStrategy.CURRENT)
public AnnotationMBeanExporter mbeanExporter(ObjectNamingStrategy namingStrategy, public AnnotationMBeanExporter mbeanExporter(ObjectNamingStrategy namingStrategy,
BeanFactory beanFactory) { BeanFactory beanFactory) {
AnnotationMBeanExporter exporter = new AnnotationMBeanExporter(); AnnotationMBeanExporter exporter = new AnnotationMBeanExporter();
...@@ -76,7 +77,8 @@ public class JmxAutoConfiguration { ...@@ -76,7 +77,8 @@ public class JmxAutoConfiguration {
} }
@Bean @Bean
@ConditionalOnMissingBean(value = ObjectNamingStrategy.class, search = SearchStrategy.CURRENT) @ConditionalOnMissingBean(value = ObjectNamingStrategy.class,
search = SearchStrategy.CURRENT)
public ParentAwareNamingStrategy objectNamingStrategy() { public ParentAwareNamingStrategy objectNamingStrategy() {
ParentAwareNamingStrategy namingStrategy = new ParentAwareNamingStrategy( ParentAwareNamingStrategy namingStrategy = new ParentAwareNamingStrategy(
new AnnotationJmxAttributeSource()); new AnnotationJmxAttributeSource());
......
...@@ -34,9 +34,9 @@ import org.springframework.context.annotation.Configuration; ...@@ -34,9 +34,9 @@ import org.springframework.context.annotation.Configuration;
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(Jsonb.class) @ConditionalOnClass(Jsonb.class)
@ConditionalOnResource(resources = { @ConditionalOnResource(
"classpath:META-INF/services/javax.json.bind.spi.JsonbProvider", resources = { "classpath:META-INF/services/javax.json.bind.spi.JsonbProvider",
"classpath:META-INF/services/javax.json.spi.JsonProvider" }) "classpath:META-INF/services/javax.json.spi.JsonProvider" })
public class JsonbAutoConfiguration { public class JsonbAutoConfiguration {
@Bean @Bean
......
...@@ -104,7 +104,8 @@ class KafkaAnnotationDrivenConfiguration { ...@@ -104,7 +104,8 @@ class KafkaAnnotationDrivenConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@EnableKafka @EnableKafka
@ConditionalOnMissingBean(name = KafkaListenerConfigUtils.KAFKA_LISTENER_ANNOTATION_PROCESSOR_BEAN_NAME) @ConditionalOnMissingBean(
name = KafkaListenerConfigUtils.KAFKA_LISTENER_ANNOTATION_PROCESSOR_BEAN_NAME)
protected static class EnableKafkaConfiguration { protected static class EnableKafkaConfiguration {
} }
......
...@@ -42,7 +42,8 @@ import org.springframework.kafka.config.StreamsBuilderFactoryBean; ...@@ -42,7 +42,8 @@ import org.springframework.kafka.config.StreamsBuilderFactoryBean;
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(StreamsBuilder.class) @ConditionalOnClass(StreamsBuilder.class)
@ConditionalOnBean(name = KafkaStreamsDefaultConfiguration.DEFAULT_STREAMS_BUILDER_BEAN_NAME) @ConditionalOnBean(
name = KafkaStreamsDefaultConfiguration.DEFAULT_STREAMS_BUILDER_BEAN_NAME)
class KafkaStreamsAnnotationDrivenConfiguration { class KafkaStreamsAnnotationDrivenConfiguration {
private final KafkaProperties properties; private final KafkaProperties properties;
......
...@@ -66,7 +66,8 @@ import org.springframework.util.Assert; ...@@ -66,7 +66,8 @@ import org.springframework.util.Assert;
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ SpringLiquibase.class, DatabaseChange.class }) @ConditionalOnClass({ SpringLiquibase.class, DatabaseChange.class })
@ConditionalOnBean(DataSource.class) @ConditionalOnBean(DataSource.class)
@ConditionalOnProperty(prefix = "spring.liquibase", name = "enabled", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.liquibase", name = "enabled",
matchIfMissing = true)
@AutoConfigureAfter({ DataSourceAutoConfiguration.class, @AutoConfigureAfter({ DataSourceAutoConfiguration.class,
HibernateJpaAutoConfiguration.class }) HibernateJpaAutoConfiguration.class })
public class LiquibaseAutoConfiguration { public class LiquibaseAutoConfiguration {
......
...@@ -44,8 +44,8 @@ import org.springframework.core.env.Environment; ...@@ -44,8 +44,8 @@ import org.springframework.core.env.Environment;
public class MongoAutoConfiguration { public class MongoAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean(type = { "com.mongodb.MongoClient", @ConditionalOnMissingBean(
"com.mongodb.client.MongoClient" }) type = { "com.mongodb.MongoClient", "com.mongodb.client.MongoClient" })
public MongoClient mongo(MongoProperties properties, public MongoClient mongo(MongoProperties properties,
ObjectProvider<MongoClientOptions> options, Environment environment) { ObjectProvider<MongoClientOptions> options, Environment environment) {
return new MongoClientFactory(properties, environment) return new MongoClientFactory(properties, environment)
......
...@@ -208,7 +208,8 @@ public abstract class JpaBaseConfiguration implements BeanFactoryAware { ...@@ -208,7 +208,8 @@ public abstract class JpaBaseConfiguration implements BeanFactoryAware {
@ConditionalOnMissingBean({ OpenEntityManagerInViewInterceptor.class, @ConditionalOnMissingBean({ OpenEntityManagerInViewInterceptor.class,
OpenEntityManagerInViewFilter.class }) OpenEntityManagerInViewFilter.class })
@ConditionalOnMissingFilterBean(OpenEntityManagerInViewFilter.class) @ConditionalOnMissingFilterBean(OpenEntityManagerInViewFilter.class)
@ConditionalOnProperty(prefix = "spring.jpa", name = "open-in-view", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.jpa", name = "open-in-view",
havingValue = "true", matchIfMissing = true)
protected static class JpaWebConfiguration { protected static class JpaWebConfiguration {
private static final Log logger = LogFactory.getLog(JpaWebConfiguration.class); private static final Log logger = LogFactory.getLog(JpaWebConfiguration.class);
......
...@@ -67,7 +67,8 @@ public class UserDetailsServiceAutoConfiguration { ...@@ -67,7 +67,8 @@ public class UserDetailsServiceAutoConfiguration {
.getLog(UserDetailsServiceAutoConfiguration.class); .getLog(UserDetailsServiceAutoConfiguration.class);
@Bean @Bean
@ConditionalOnMissingBean(type = "org.springframework.security.oauth2.client.registration.ClientRegistrationRepository") @ConditionalOnMissingBean(
type = "org.springframework.security.oauth2.client.registration.ClientRegistrationRepository")
@Lazy @Lazy
public InMemoryUserDetailsManager inMemoryUserDetailsManager( public InMemoryUserDetailsManager inMemoryUserDetailsManager(
SecurityProperties properties, SecurityProperties properties,
......
...@@ -48,7 +48,8 @@ import org.springframework.scheduling.config.TaskManagementConfigUtils; ...@@ -48,7 +48,8 @@ import org.springframework.scheduling.config.TaskManagementConfigUtils;
public class TaskSchedulingAutoConfiguration { public class TaskSchedulingAutoConfiguration {
@Bean @Bean
@ConditionalOnBean(name = TaskManagementConfigUtils.SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME) @ConditionalOnBean(
name = TaskManagementConfigUtils.SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME)
@ConditionalOnMissingBean({ SchedulingConfigurer.class, TaskScheduler.class, @ConditionalOnMissingBean({ SchedulingConfigurer.class, TaskScheduler.class,
ScheduledExecutorService.class }) ScheduledExecutorService.class })
public ThreadPoolTaskScheduler taskScheduler(TaskSchedulerBuilder builder) { public ThreadPoolTaskScheduler taskScheduler(TaskSchedulerBuilder builder) {
......
...@@ -80,14 +80,16 @@ public class TransactionAutoConfiguration { ...@@ -80,14 +80,16 @@ public class TransactionAutoConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@EnableTransactionManagement(proxyTargetClass = false) @EnableTransactionManagement(proxyTargetClass = false)
@ConditionalOnProperty(prefix = "spring.aop", name = "proxy-target-class", havingValue = "false", matchIfMissing = false) @ConditionalOnProperty(prefix = "spring.aop", name = "proxy-target-class",
havingValue = "false", matchIfMissing = false)
public static class JdkDynamicAutoProxyConfiguration { public static class JdkDynamicAutoProxyConfiguration {
} }
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@EnableTransactionManagement(proxyTargetClass = true) @EnableTransactionManagement(proxyTargetClass = true)
@ConditionalOnProperty(prefix = "spring.aop", name = "proxy-target-class", havingValue = "true", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.aop", name = "proxy-target-class",
havingValue = "true", matchIfMissing = true)
public static class CglibAutoProxyConfiguration { public static class CglibAutoProxyConfiguration {
} }
......
...@@ -44,7 +44,8 @@ import org.springframework.validation.beanvalidation.MethodValidationPostProcess ...@@ -44,7 +44,8 @@ import org.springframework.validation.beanvalidation.MethodValidationPostProcess
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass(ExecutableValidator.class) @ConditionalOnClass(ExecutableValidator.class)
@ConditionalOnResource(resources = "classpath:META-INF/services/javax.validation.spi.ValidationProvider") @ConditionalOnResource(
resources = "classpath:META-INF/services/javax.validation.spi.ValidationProvider")
@Import(PrimaryDefaultValidatorPostProcessor.class) @Import(PrimaryDefaultValidatorPostProcessor.class)
public class ValidationAutoConfiguration { public class ValidationAutoConfiguration {
......
...@@ -89,7 +89,8 @@ public class WebFluxAutoConfiguration { ...@@ -89,7 +89,8 @@ public class WebFluxAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean(HiddenHttpMethodFilter.class) @ConditionalOnMissingBean(HiddenHttpMethodFilter.class)
@ConditionalOnProperty(prefix = "spring.webflux.hiddenmethod.filter", name = "enabled", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.webflux.hiddenmethod.filter",
name = "enabled", matchIfMissing = true)
public OrderedHiddenHttpMethodFilter hiddenHttpMethodFilter() { public OrderedHiddenHttpMethodFilter hiddenHttpMethodFilter() {
return new OrderedHiddenHttpMethodFilter(); return new OrderedHiddenHttpMethodFilter();
} }
......
...@@ -61,7 +61,8 @@ public class ErrorWebFluxAutoConfiguration { ...@@ -61,7 +61,8 @@ public class ErrorWebFluxAutoConfiguration {
} }
@Bean @Bean
@ConditionalOnMissingBean(value = ErrorWebExceptionHandler.class, search = SearchStrategy.CURRENT) @ConditionalOnMissingBean(value = ErrorWebExceptionHandler.class,
search = SearchStrategy.CURRENT)
@Order(-1) @Order(-1)
public ErrorWebExceptionHandler errorWebExceptionHandler( public ErrorWebExceptionHandler errorWebExceptionHandler(
ErrorAttributes errorAttributes, ResourceProperties resourceProperties, ErrorAttributes errorAttributes, ResourceProperties resourceProperties,
...@@ -79,7 +80,8 @@ public class ErrorWebFluxAutoConfiguration { ...@@ -79,7 +80,8 @@ public class ErrorWebFluxAutoConfiguration {
} }
@Bean @Bean
@ConditionalOnMissingBean(value = ErrorAttributes.class, search = SearchStrategy.CURRENT) @ConditionalOnMissingBean(value = ErrorAttributes.class,
search = SearchStrategy.CURRENT)
public DefaultErrorAttributes errorAttributes() { public DefaultErrorAttributes errorAttributes() {
return new DefaultErrorAttributes( return new DefaultErrorAttributes(
this.serverProperties.getError().isIncludeException()); this.serverProperties.getError().isIncludeException());
......
...@@ -118,7 +118,8 @@ public class DispatcherServletAutoConfiguration { ...@@ -118,7 +118,8 @@ public class DispatcherServletAutoConfiguration {
protected static class DispatcherServletRegistrationConfiguration { protected static class DispatcherServletRegistrationConfiguration {
@Bean(name = DEFAULT_DISPATCHER_SERVLET_REGISTRATION_BEAN_NAME) @Bean(name = DEFAULT_DISPATCHER_SERVLET_REGISTRATION_BEAN_NAME)
@ConditionalOnBean(value = DispatcherServlet.class, name = DEFAULT_DISPATCHER_SERVLET_BEAN_NAME) @ConditionalOnBean(value = DispatcherServlet.class,
name = DEFAULT_DISPATCHER_SERVLET_BEAN_NAME)
public DispatcherServletRegistrationBean dispatcherServletRegistration( public DispatcherServletRegistrationBean dispatcherServletRegistration(
DispatcherServlet dispatcherServlet, WebMvcProperties webMvcProperties, DispatcherServlet dispatcherServlet, WebMvcProperties webMvcProperties,
ObjectProvider<MultipartConfigElement> multipartConfig) { ObjectProvider<MultipartConfigElement> multipartConfig) {
......
...@@ -44,7 +44,8 @@ import org.springframework.web.filter.CharacterEncodingFilter; ...@@ -44,7 +44,8 @@ import org.springframework.web.filter.CharacterEncodingFilter;
@EnableConfigurationProperties(HttpProperties.class) @EnableConfigurationProperties(HttpProperties.class)
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
@ConditionalOnClass(CharacterEncodingFilter.class) @ConditionalOnClass(CharacterEncodingFilter.class)
@ConditionalOnProperty(prefix = "spring.http.encoding", value = "enabled", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.http.encoding", value = "enabled",
matchIfMissing = true)
public class HttpEncodingAutoConfiguration { public class HttpEncodingAutoConfiguration {
private final HttpProperties.Encoding properties; private final HttpProperties.Encoding properties;
......
...@@ -51,7 +51,8 @@ import org.springframework.web.servlet.DispatcherServlet; ...@@ -51,7 +51,8 @@ import org.springframework.web.servlet.DispatcherServlet;
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ Servlet.class, StandardServletMultipartResolver.class, @ConditionalOnClass({ Servlet.class, StandardServletMultipartResolver.class,
MultipartConfigElement.class }) MultipartConfigElement.class })
@ConditionalOnProperty(prefix = "spring.servlet.multipart", name = "enabled", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.servlet.multipart", name = "enabled",
matchIfMissing = true)
@ConditionalOnWebApplication(type = Type.SERVLET) @ConditionalOnWebApplication(type = Type.SERVLET)
@EnableConfigurationProperties(MultipartProperties.class) @EnableConfigurationProperties(MultipartProperties.class)
public class MultipartAutoConfiguration { public class MultipartAutoConfiguration {
......
...@@ -59,7 +59,8 @@ class ServletWebServerFactoryConfiguration { ...@@ -59,7 +59,8 @@ class ServletWebServerFactoryConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ Servlet.class, Tomcat.class, UpgradeProtocol.class }) @ConditionalOnClass({ Servlet.class, Tomcat.class, UpgradeProtocol.class })
@ConditionalOnMissingBean(value = ServletWebServerFactory.class, search = SearchStrategy.CURRENT) @ConditionalOnMissingBean(value = ServletWebServerFactory.class,
search = SearchStrategy.CURRENT)
public static class EmbeddedTomcat { public static class EmbeddedTomcat {
@Bean @Bean
...@@ -82,7 +83,8 @@ class ServletWebServerFactoryConfiguration { ...@@ -82,7 +83,8 @@ class ServletWebServerFactoryConfiguration {
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ Servlet.class, Server.class, Loader.class, @ConditionalOnClass({ Servlet.class, Server.class, Loader.class,
WebAppContext.class }) WebAppContext.class })
@ConditionalOnMissingBean(value = ServletWebServerFactory.class, search = SearchStrategy.CURRENT) @ConditionalOnMissingBean(value = ServletWebServerFactory.class,
search = SearchStrategy.CURRENT)
public static class EmbeddedJetty { public static class EmbeddedJetty {
@Bean @Bean
...@@ -97,7 +99,8 @@ class ServletWebServerFactoryConfiguration { ...@@ -97,7 +99,8 @@ class ServletWebServerFactoryConfiguration {
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnClass({ Servlet.class, Undertow.class, SslClientAuthMode.class }) @ConditionalOnClass({ Servlet.class, Undertow.class, SslClientAuthMode.class })
@ConditionalOnMissingBean(value = ServletWebServerFactory.class, search = SearchStrategy.CURRENT) @ConditionalOnMissingBean(value = ServletWebServerFactory.class,
search = SearchStrategy.CURRENT)
public static class EmbeddedUndertow { public static class EmbeddedUndertow {
@Bean @Bean
......
...@@ -154,14 +154,16 @@ public class WebMvcAutoConfiguration { ...@@ -154,14 +154,16 @@ public class WebMvcAutoConfiguration {
@Bean @Bean
@ConditionalOnMissingBean(HiddenHttpMethodFilter.class) @ConditionalOnMissingBean(HiddenHttpMethodFilter.class)
@ConditionalOnProperty(prefix = "spring.mvc.hiddenmethod.filter", name = "enabled", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.mvc.hiddenmethod.filter", name = "enabled",
matchIfMissing = true)
public OrderedHiddenHttpMethodFilter hiddenHttpMethodFilter() { public OrderedHiddenHttpMethodFilter hiddenHttpMethodFilter() {
return new OrderedHiddenHttpMethodFilter(); return new OrderedHiddenHttpMethodFilter();
} }
@Bean @Bean
@ConditionalOnMissingBean(FormContentFilter.class) @ConditionalOnMissingBean(FormContentFilter.class)
@ConditionalOnProperty(prefix = "spring.mvc.formcontent.filter", name = "enabled", matchIfMissing = true) @ConditionalOnProperty(prefix = "spring.mvc.formcontent.filter", name = "enabled",
matchIfMissing = true)
public OrderedFormContentFilter formContentFilter() { public OrderedFormContentFilter formContentFilter() {
return new OrderedFormContentFilter(); return new OrderedFormContentFilter();
} }
...@@ -270,7 +272,8 @@ public class WebMvcAutoConfiguration { ...@@ -270,7 +272,8 @@ public class WebMvcAutoConfiguration {
@Bean @Bean
@ConditionalOnBean(ViewResolver.class) @ConditionalOnBean(ViewResolver.class)
@ConditionalOnMissingBean(name = "viewResolver", value = ContentNegotiatingViewResolver.class) @ConditionalOnMissingBean(name = "viewResolver",
value = ContentNegotiatingViewResolver.class)
public ContentNegotiatingViewResolver viewResolver(BeanFactory beanFactory) { public ContentNegotiatingViewResolver viewResolver(BeanFactory beanFactory) {
ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver(); ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver();
resolver.setContentNegotiationManager( resolver.setContentNegotiationManager(
...@@ -407,7 +410,8 @@ public class WebMvcAutoConfiguration { ...@@ -407,7 +410,8 @@ public class WebMvcAutoConfiguration {
} }
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(value = "spring.mvc.favicon.enabled", matchIfMissing = true) @ConditionalOnProperty(value = "spring.mvc.favicon.enabled",
matchIfMissing = true)
public static class FaviconConfiguration implements ResourceLoaderAware { public static class FaviconConfiguration implements ResourceLoaderAware {
private final ResourceProperties resourceProperties; private final ResourceProperties resourceProperties;
......
...@@ -96,14 +96,16 @@ public class ErrorMvcAutoConfiguration { ...@@ -96,14 +96,16 @@ public class ErrorMvcAutoConfiguration {
} }
@Bean @Bean
@ConditionalOnMissingBean(value = ErrorAttributes.class, search = SearchStrategy.CURRENT) @ConditionalOnMissingBean(value = ErrorAttributes.class,
search = SearchStrategy.CURRENT)
public DefaultErrorAttributes errorAttributes() { public DefaultErrorAttributes errorAttributes() {
return new DefaultErrorAttributes( return new DefaultErrorAttributes(
this.serverProperties.getError().isIncludeException()); this.serverProperties.getError().isIncludeException());
} }
@Bean @Bean
@ConditionalOnMissingBean(value = ErrorController.class, search = SearchStrategy.CURRENT) @ConditionalOnMissingBean(value = ErrorController.class,
search = SearchStrategy.CURRENT)
public BasicErrorController basicErrorController(ErrorAttributes errorAttributes, public BasicErrorController basicErrorController(ErrorAttributes errorAttributes,
ObjectProvider<ErrorViewResolver> errorViewResolvers) { ObjectProvider<ErrorViewResolver> errorViewResolvers) {
return new BasicErrorController(errorAttributes, this.serverProperties.getError(), return new BasicErrorController(errorAttributes, this.serverProperties.getError(),
...@@ -145,7 +147,8 @@ public class ErrorMvcAutoConfiguration { ...@@ -145,7 +147,8 @@ public class ErrorMvcAutoConfiguration {
} }
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ConditionalOnProperty(prefix = "server.error.whitelabel", name = "enabled", matchIfMissing = true) @ConditionalOnProperty(prefix = "server.error.whitelabel", name = "enabled",
matchIfMissing = true)
@Conditional(ErrorTemplateMissingCondition.class) @Conditional(ErrorTemplateMissingCondition.class)
protected static class WhitelabelErrorViewConfiguration { protected static class WhitelabelErrorViewConfiguration {
......
...@@ -61,7 +61,9 @@ public class AutoConfigurationExcludeFilterTests { ...@@ -61,7 +61,9 @@ public class AutoConfigurationExcludeFilterTests {
} }
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@ComponentScan(basePackageClasses = ExampleConfiguration.class, excludeFilters = @ComponentScan.Filter(type = FilterType.CUSTOM, classes = TestAutoConfigurationExcludeFilter.class)) @ComponentScan(basePackageClasses = ExampleConfiguration.class,
excludeFilters = @ComponentScan.Filter(type = FilterType.CUSTOM,
classes = TestAutoConfigurationExcludeFilter.class))
static class Config { static class Config {
} }
......
...@@ -303,12 +303,14 @@ public class AutoConfigurationImportSelectorTests { ...@@ -303,12 +303,14 @@ public class AutoConfigurationImportSelectorTests {
} }
@EnableAutoConfiguration(excludeName = "org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration") @EnableAutoConfiguration(
excludeName = "org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration")
private class EnableAutoConfigurationWithClassNameExclusions { private class EnableAutoConfigurationWithClassNameExclusions {
} }
@EnableAutoConfiguration(exclude = MustacheAutoConfiguration.class, excludeName = "org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration") @EnableAutoConfiguration(exclude = MustacheAutoConfiguration.class,
excludeName = "org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration")
private class EnableAutoConfigurationWithClassAndClassNameExclusions { private class EnableAutoConfigurationWithClassAndClassNameExclusions {
} }
...@@ -318,17 +320,20 @@ public class AutoConfigurationImportSelectorTests { ...@@ -318,17 +320,20 @@ public class AutoConfigurationImportSelectorTests {
} }
@EnableAutoConfiguration(excludeName = "org.springframework.boot.autoconfigure.AutoConfigurationImportSelectorTests.TestConfiguration") @EnableAutoConfiguration(
excludeName = "org.springframework.boot.autoconfigure.AutoConfigurationImportSelectorTests.TestConfiguration")
private class EnableAutoConfigurationWithFaultyClassNameExclude { private class EnableAutoConfigurationWithFaultyClassNameExclude {
} }
@EnableAutoConfiguration(excludeName = "org.springframework.boot.autoconfigure.DoesNotExist1") @EnableAutoConfiguration(
excludeName = "org.springframework.boot.autoconfigure.DoesNotExist1")
private class EnableAutoConfigurationWithAbsentClassNameExclude { private class EnableAutoConfigurationWithAbsentClassNameExclude {
} }
@SpringBootApplication(excludeName = "org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration") @SpringBootApplication(
excludeName = "org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration")
private class SpringBootApplicationWithClassNameExclusions { private class SpringBootApplicationWithClassNameExclusions {
} }
......
/* /*
* Copyright 2012-2018 the original author or authors. * Copyright 2012-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
...@@ -237,7 +237,8 @@ public class AutoConfigurationSorterTests { ...@@ -237,7 +237,8 @@ public class AutoConfigurationSorterTests {
} }
@AutoConfigureAfter(name = "org.springframework.boot.autoconfigure.AutoConfigurationSorterTests$AutoConfigureB") @AutoConfigureAfter(
name = "org.springframework.boot.autoconfigure.AutoConfigurationSorterTests$AutoConfigureB")
public static class AutoConfigureA2 { public static class AutoConfigureA2 {
} }
...@@ -266,7 +267,8 @@ public class AutoConfigurationSorterTests { ...@@ -266,7 +267,8 @@ public class AutoConfigurationSorterTests {
} }
@AutoConfigureBefore(name = "org.springframework.boot.autoconfigure.AutoConfigurationSorterTests$AutoConfigureB") @AutoConfigureBefore(
name = "org.springframework.boot.autoconfigure.AutoConfigurationSorterTests$AutoConfigureB")
public static class AutoConfigureW2 { public static class AutoConfigureW2 {
} }
......
...@@ -102,8 +102,8 @@ public class ImportAutoConfigurationTests { ...@@ -102,8 +102,8 @@ public class ImportAutoConfigurationTests {
} }
@ImportAutoConfiguration(classes = { ConfigD.class, @ImportAutoConfiguration(classes = { ConfigD.class, ConfigB.class },
ConfigB.class }, exclude = ConfigC.class) exclude = ConfigC.class)
@MetaImportAutoConfiguration @MetaImportAutoConfiguration
static class ExcludingConfig { static class ExcludingConfig {
......
...@@ -701,9 +701,9 @@ public class CacheAutoConfigurationTests extends AbstractCacheAutoConfigurationT ...@@ -701,9 +701,9 @@ public class CacheAutoConfigurationTests extends AbstractCacheAutoConfigurationT
"spring.cache.cacheNames[0]=foo", "spring.cache.cacheNames[0]=foo",
"spring.cache.cacheNames[1]=bar") "spring.cache.cacheNames[1]=bar")
.run((context) -> .run((context) ->
// see customizer // see customizer
assertThat(getCacheManager(context, JCacheCacheManager.class).getCacheNames()) assertThat(getCacheManager(context, JCacheCacheManager.class)
.containsOnly("foo", "custom1")); .getCacheNames()).containsOnly("foo", "custom1"));
} }
finally { finally {
Caching.getCachingProvider(cachingProviderClassName).close(); Caching.getCachingProvider(cachingProviderClassName).close();
......
...@@ -458,7 +458,8 @@ public class ConditionalOnBeanTests { ...@@ -458,7 +458,8 @@ public class ConditionalOnBeanTests {
static class ParameterizedConditionWithValueConfig { static class ParameterizedConditionWithValueConfig {
@Bean @Bean
@ConditionalOnBean(value = CustomExampleBean.class, parameterizedContainer = TestParameterizedContainer.class) @ConditionalOnBean(value = CustomExampleBean.class,
parameterizedContainer = TestParameterizedContainer.class)
public CustomExampleBean conditionalCustomExampleBean() { public CustomExampleBean conditionalCustomExampleBean() {
return new CustomExampleBean(); return new CustomExampleBean();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment