Merge branch '2.1.x'

pull/16342/head
Phillip Webb 6 years ago
commit 2376f973f4

@ -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
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:

@ -1,18 +1,18 @@
<?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 @@
</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 @@
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 @@
</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 {
} }
@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;
* @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;
* @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)

@ -1,5 +1,5 @@
/* /*
* 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;
* @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;
*/ */
@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;
@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;
@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;
@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;
@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;
@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;
@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;
@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;
@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;
@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;
@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;
@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;
@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;
@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 {
*/ */
@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;
@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;
@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;
@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;
@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;
*/ */
@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 {
@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 {
// 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

@ -1,5 +1,5 @@
/* /*
* 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 {
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 {
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 {
} }
@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.
* *
* @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.
* *
* @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
* *
* @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
@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
@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.
* *
* @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;
* @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
* *
* @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 {
} }
@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 {
@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 {
@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 {
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 {
} }
@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;
@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;
*/ */
@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 {
@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 {
@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 {
@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 {
@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;
@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 {
@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;
* @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;
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 {
} }
@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 {
@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;
*/ */
@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
*/ */
@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;
@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;
@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 {
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
*/ */
@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 {
@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 {
@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
@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
@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
@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;
@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
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 {
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 {
} }
@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 {
@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 {
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 {
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 {
*/ */
@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 {
*/ */
@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 {
@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 {
@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 {
@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;
* @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 {
@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 {
@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 {
@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 {
@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 {
} }
@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 {
} }
@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 {
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 {
} }
@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 {
@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 {
} }
@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 {
} }
@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 {
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;
*/ */
@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 {
@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 {
} }
@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;
*/ */
@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 {
@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;
*/ */
@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;
@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;
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 {
@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 {
.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;
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 {
@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
*/ */
@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 {
@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 {
} }
@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 {
} }
@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 {
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;
@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;
@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 {
@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 {
@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 {
*/ */
@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 {
@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 {
@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 {
} }
@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 {
} }
@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 {
} }
@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 {
} }
@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 {
} }
@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 {
} }
@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 {
} }

@ -1,5 +1,5 @@
/* /*
* 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 {
} }
@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 {
} }
@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 {
} }
@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
"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 {
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();
} }

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

Loading…
Cancel
Save