Commit 1f417997 authored by Phillip Webb's avatar Phillip Webb

Merge branch '1.5.x'

parents f03da0b4 d15f3548
......@@ -93,6 +93,7 @@ public class CacheStatisticsAutoConfiguration {
public HazelcastCacheStatisticsProvider hazelcastCacheStatisticsProvider() {
return new HazelcastCacheStatisticsProvider();
}
}
@Configuration
......
......@@ -83,4 +83,5 @@ public class EndpointMBeanExportProperties {
public void setStaticNames(String[] staticNames) {
this.staticNames = StringUtils.splitArrayElementsIntoProperties(staticNames, "=");
}
}
......@@ -266,6 +266,7 @@ public class EndpointWebMvcAutoConfiguration
@Conditional(OnManagementMvcCondition.class)
@Import(ManagementContextConfigurationsImportSelector.class)
protected static class EndpointWebMvcConfiguration {
}
/**
......
......@@ -43,4 +43,5 @@ public class JolokiaProperties {
public void setConfig(Map<String, String> config) {
this.config = config;
}
}
......@@ -126,6 +126,7 @@ public class ManagementWebSecurityAutoConfiguration {
}
}
}
@Configuration
......@@ -158,6 +159,7 @@ public class ManagementWebSecurityAutoConfiguration {
@Conditional(WebSecurityEnablerCondition.class)
@EnableWebSecurity
protected static class WebSecurityEnabler extends AuthenticationManagerConfiguration {
}
/**
......
......@@ -67,7 +67,6 @@ import org.springframework.messaging.MessageChannel;
* @see MetricWriter
* @see InMemoryMetricRepository
* @see Exporter
*
* @author Dave Syer
*/
@Configuration
......@@ -108,6 +107,7 @@ public class MetricRepositoryAutoConfiguration {
public BufferGaugeService gaugeService(GaugeBuffers writer) {
return new BufferGaugeService(writer);
}
}
}
......@@ -145,7 +145,8 @@ final class MetricsFilter extends OncePerRequestFilter {
suffix);
}
private String determineMetricNameSuffix(HttpServletRequest request, String path, int status) {
private String determineMetricNameSuffix(HttpServletRequest request, String path,
int status) {
Object bestMatchingPattern = request
.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
if (bestMatchingPattern != null) {
......
......@@ -101,7 +101,6 @@ public class CloudFoundryActuatorAutoConfiguration {
/**
* Nested configuration for ignored requests if Spring Security is present.
*
*/
@ConditionalOnClass(WebSecurity.class)
static class CloudFoundryIgnoredRequestConfiguration {
......
......@@ -59,4 +59,5 @@ public class BeansEndpoint extends AbstractEndpoint<List<Object>>
public List<Object> invoke() {
return this.parser.parseList(this.liveBeansView.getSnapshotAsJson());
}
}
......@@ -332,6 +332,7 @@ public class ConfigurationPropertiesReportEndpoint
}
return setter;
}
}
}
......@@ -93,4 +93,5 @@ public class HealthEndpoint extends AbstractEndpoint<Health> {
}
return name;
}
}
......@@ -47,4 +47,5 @@ public class TraceEndpoint extends AbstractEndpoint<List<Trace>> {
public List<Trace> invoke() {
return this.repository.findAll();
}
}
......@@ -47,4 +47,5 @@ public class ShutdownEndpointMBean extends EndpointMBean {
public Object shutdown() {
return convert(getEndpoint().invoke());
}
}
......@@ -58,4 +58,5 @@ public class HalJsonMvcEndpoint extends AbstractNamedMvcEndpoint {
protected final ManagementServletContext getManagementServletContext() {
return this.managementServletContext;
}
}
......@@ -45,8 +45,8 @@ import org.springframework.web.util.UrlPathHelper;
*/
@ConfigurationProperties(prefix = "endpoints.jolokia", ignoreUnknownFields = false)
@HypermediaDisabled
public class JolokiaMvcEndpoint extends AbstractNamedMvcEndpoint
implements InitializingBean, ApplicationContextAware, ServletContextAware, DisposableBean {
public class JolokiaMvcEndpoint extends AbstractNamedMvcEndpoint implements
InitializingBean, ApplicationContextAware, ServletContextAware, DisposableBean {
private final ServletWrappingController controller = new ServletWrappingController();
......@@ -116,6 +116,7 @@ public class JolokiaMvcEndpoint extends AbstractNamedMvcEndpoint
}
return value;
}
}
}
......@@ -49,4 +49,5 @@ public class ShutdownMvcEndpoint extends EndpointMvcAdapter {
}
return super.invoke();
}
}
......@@ -50,4 +50,5 @@ public abstract class AbstractHealthIndicator implements HealthIndicator {
* system status.
*/
protected abstract void doHealthCheck(Health.Builder builder) throws Exception;
}
......@@ -61,4 +61,5 @@ public class DiskSpaceHealthIndicator extends AbstractHealthIndicator {
.withDetail("free", diskFreeInBytes)
.withDetail("threshold", this.properties.getThreshold());
}
}
......@@ -299,6 +299,7 @@ public final class Health {
public Health build() {
return new Health(this);
}
}
}
......@@ -42,4 +42,5 @@ public interface HealthAggregator {
* @return the aggregated health
*/
Health aggregate(Map<String, Health> healths);
}
......@@ -167,6 +167,7 @@ public class DropwizardMetricServices implements CounterService, GaugeService {
public void setValue(double value) {
this.value = value;
}
}
}
......@@ -240,4 +240,5 @@ public class MetricCopyExporter extends AbstractMetricExporter {
}
};
}
......@@ -90,7 +90,6 @@ public class OpenTsdbGaugeWriter implements GaugeWriter {
/**
* Creates a new {@code OpenTsdbGaugeWriter} with the given millisecond
* {@code connectTimeout} and {@code readTimeout}.
*
* @param connectTimeout the connect timeout in milliseconds
* @param readTimeout the read timeout in milliseconds
*/
......
......@@ -58,7 +58,6 @@ public class RedisMetricRepository implements MetricRepository {
* Create a RedisMetricRepository with a default prefix to apply to all metric names.
* If multiple repositories share a redis instance they will feed into the same global
* metrics.
*
* @param redisConnectionFactory the redis connection factory
*/
public RedisMetricRepository(RedisConnectionFactory redisConnectionFactory) {
......@@ -70,7 +69,6 @@ public class RedisMetricRepository implements MetricRepository {
* unique to this repository or to a logical repository contributed to by multiple
* instances, where they all see the same values). Recommended constructor for general
* purpose use.
*
* @param redisConnectionFactory the redis connection factory
* @param prefix the prefix to set for all metrics keys
*/
......@@ -84,7 +82,6 @@ public class RedisMetricRepository implements MetricRepository {
* redis store will hold a zset under the key just so the metric names can be
* enumerated. Read operations, especially {@link #findAll()} and {@link #count()},
* will only be accurate if the key is unique to the prefix of this repository.
*
* @param redisConnectionFactory the redis connection factory
* @param prefix the prefix to set for all metrics keys
* @param key the key to set
......
......@@ -51,4 +51,5 @@ final class RedisUtils {
RedisConnectionFactory redisConnectionFactory) {
return new StringRedisTemplate(redisConnectionFactory);
}
}
......@@ -78,4 +78,5 @@ public class InMemoryRichGaugeRepository implements RichGaugeRepository {
public long count() {
return this.repository.count();
}
}
......@@ -99,6 +99,7 @@ public class SimpleInMemoryRepository<T> {
/**
* Callback used to update a value.
*
* @param <T> the value type
*/
public interface Callback<T> {
......
......@@ -64,8 +64,8 @@ public class AuthorizationAuditListener extends AbstractAuthorizationAuditListen
if (event.getAuthentication().getDetails() != null) {
data.put("details", event.getAuthentication().getDetails());
}
publish(new AuditEvent(event.getAuthentication().getName(),
AUTHORIZATION_FAILURE, data));
publish(new AuditEvent(event.getAuthentication().getName(), AUTHORIZATION_FAILURE,
data));
}
}
......@@ -101,6 +101,7 @@ public class AuditAutoConfigurationTests {
}
public static class TestAuditEventRepository extends InMemoryAuditEventRepository {
}
@Configuration
......
......@@ -558,6 +558,7 @@ public class HealthIndicatorAutoConfigurationTests {
public JestClient jestClient() {
return mock(JestClient.class);
}
}
}
......@@ -274,11 +274,13 @@ public class ManagementWebSecurityAutoConfigurationTests {
@EnableGlobalAuthentication
@Configuration
static class AuthenticationConfig {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("user").password("password")
.roles("USER");
}
}
@Configuration
......
......@@ -279,6 +279,7 @@ public class PublicMetricsAutoConfigurationTests {
public DataSource commonsDbcpDataSource() {
return InitializedBuilder.create().type(BasicDataSource.class).build();
}
}
@Configuration
......@@ -295,6 +296,7 @@ public class PublicMetricsAutoConfigurationTests {
public DataSource commonsDbcpDataSource() {
return InitializedBuilder.create().type(BasicDataSource.class).build();
}
}
@Configuration
......@@ -311,6 +313,7 @@ public class PublicMetricsAutoConfigurationTests {
public DataSource dataSource() {
return InitializedBuilder.create().type(BasicDataSource.class).build();
}
}
@Configuration
......@@ -326,6 +329,7 @@ public class PublicMetricsAutoConfigurationTests {
}
};
}
}
@Configuration
......@@ -386,4 +390,5 @@ public class PublicMetricsAutoConfigurationTests {
}
}
}
......@@ -84,6 +84,7 @@ public class AutoConfigurationReportEndpointTests
public AutoConfigurationReportEndpoint endpoint() {
return new AutoConfigurationReportEndpoint();
}
}
}
......@@ -87,10 +87,12 @@ public class ConfigurationPropertiesReportEndpointParentTests {
@Configuration
@EnableConfigurationProperties
public static class Parent {
@Bean
public TestProperties testProperties() {
return new TestProperties();
}
}
@Configuration
......@@ -127,6 +129,7 @@ public class ConfigurationPropertiesReportEndpointParentTests {
}
public static class OtherProperties {
}
@ConfigurationProperties(prefix = "test")
......@@ -143,4 +146,5 @@ public class ConfigurationPropertiesReportEndpointParentTests {
}
}
}
......@@ -318,6 +318,7 @@ public class ConfigurationPropertiesReportEndpointSerializationTests {
}
public static class Bar {
private String name = "123456";
public String getName() {
......@@ -327,6 +328,7 @@ public class ConfigurationPropertiesReportEndpointSerializationTests {
public void setName(String name) {
this.name = name;
}
}
}
......
......@@ -186,10 +186,12 @@ public class ConfigurationPropertiesReportEndpointTests
@Configuration
@EnableConfigurationProperties
public static class Parent {
@Bean
public TestProperties testProperties() {
return new TestProperties();
}
}
@Configuration
......@@ -281,4 +283,5 @@ public class ConfigurationPropertiesReportEndpointTests
}
}
}
......@@ -54,4 +54,5 @@ public class DumpEndpointTests extends AbstractEndpointTests<DumpEndpoint> {
}
}
}
......@@ -204,4 +204,5 @@ public class EnvironmentEndpointTests extends AbstractEndpointTests<EnvironmentE
}
}
}
......@@ -74,5 +74,7 @@ public class HealthEndpointTests extends AbstractEndpointTests<HealthEndpoint> {
public HealthAggregator healthAggregator() {
return new OrderedHealthAggregator();
}
}
}
......@@ -111,4 +111,5 @@ public class MetricsEndpointTests extends AbstractEndpointTests<MetricsEndpoint>
}
}
}
......@@ -126,6 +126,7 @@ public class RequestMappingEndpointTests {
@Configuration
protected static class MappingConfiguration {
@Bean
@Lazy
@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS)
......@@ -134,5 +135,7 @@ public class RequestMappingEndpointTests {
mapping.setUrlMap(Collections.singletonMap("/foo", new Object()));
return mapping;
}
}
}
......@@ -102,4 +102,5 @@ public class ShutdownEndpointTests extends AbstractEndpointTests<ShutdownEndpoin
}
}
}
......@@ -96,9 +96,12 @@ public class ShutdownParentEndpointTests {
};
}
}
@Configuration
public static class Empty {
}
}
......@@ -56,5 +56,7 @@ public class TraceEndpointTests extends AbstractEndpointTests<TraceEndpoint> {
repository.add(Collections.<String, Object>singletonMap("a", "b"));
return new TraceEndpoint(repository);
}
}
}
......@@ -269,8 +269,8 @@ public class EndpointMBeanExporterTests {
MBeanExporter mbeanExporter = registerLoggersEndpoint();
Object response = mbeanExporter.getServer().invoke(
getObjectName("loggersEndpoint", this.context), "setLogLevel",
new Object[]{"com.example", "trace"},
new String[]{String.class.getName(), String.class.getName()});
new Object[] { "com.example", "trace" },
new String[] { String.class.getName(), String.class.getName() });
assertThat(response).isNull();
}
......@@ -280,10 +280,9 @@ public class EndpointMBeanExporterTests {
this.thrown.expect(MBeanException.class);
this.thrown.expectCause(hasMessage(containsString("No enum constant")));
this.thrown.expectCause(hasMessage(containsString("LogLevel.INVALID")));
mbeanExporter.getServer().invoke(
getObjectName("loggersEndpoint", this.context), "setLogLevel",
new Object[]{"com.example", "invalid"},
new String[]{String.class.getName(), String.class.getName()});
mbeanExporter.getServer().invoke(getObjectName("loggersEndpoint", this.context),
"setLogLevel", new Object[] { "com.example", "invalid" },
new String[] { String.class.getName(), String.class.getName() });
}
private MBeanExporter registerLoggersEndpoint() {
......
......@@ -90,14 +90,17 @@ public class JolokiaMvcEndpointContextPathTests {
EndpointWebMvcAutoConfiguration.class, JolokiaAutoConfiguration.class,
ManagementServerPropertiesAutoConfiguration.class })
public static class Config {
}
public static class ContextPathListener
implements ApplicationContextInitializer<ConfigurableApplicationContext> {
@Override
public void initialize(ConfigurableApplicationContext context) {
EnvironmentTestUtils.addEnvironment(context, "management.contextPath:/admin");
}
}
}
......@@ -101,6 +101,7 @@ public class MvcEndpointsTests {
public String invoke() {
return "foo";
}
}
private static class TestMvcEndpoint extends EndpointMvcAdapter {
......@@ -108,6 +109,7 @@ public class MvcEndpointsTests {
TestMvcEndpoint(Endpoint<?> delegate) {
super(delegate);
}
}
private static class OtherTestMvcEndpoint extends EndpointMvcAdapter {
......@@ -115,6 +117,7 @@ public class MvcEndpointsTests {
OtherTestMvcEndpoint(Endpoint<?> delegate) {
super(delegate);
}
}
}
......@@ -33,6 +33,7 @@ import static org.assertj.core.api.Assertions.assertThat;
public class DropwizardMetricServicesTests {
private final MetricRegistry registry = new MetricRegistry();
private final DropwizardMetricServices writer = new DropwizardMetricServices(
this.registry);
......@@ -89,7 +90,6 @@ public class DropwizardMetricServicesTests {
* thread is updating the same set of metrics. This would be an example case of the
* writer being used with the MetricsFilter handling several requests/sec to the same
* URL.
*
* @throws Exception if an error occurs
*/
@Test
......
......@@ -53,10 +53,12 @@ public class SpringIntegrationMetricReaderTests {
@Configuration
@Import({ JmxAutoConfiguration.class, IntegrationAutoConfiguration.class })
protected static class TestConfiguration {
@Bean
public SpringIntegrationMetricReader reader(IntegrationMBeanExporter exporter) {
return new SpringIntegrationMetricReader(exporter);
}
}
}
......@@ -32,9 +32,12 @@ import static org.assertj.core.api.Assertions.assertThat;
public class MultiMetricRichGaugeReaderTests {
private InMemoryMetricRepository repository = new InMemoryMetricRepository();
private MultiMetricRichGaugeReader reader = new MultiMetricRichGaugeReader(
this.repository);
private InMemoryRichGaugeRepository data = new InMemoryRichGaugeRepository();
private RichGaugeExporter exporter = new RichGaugeExporter(this.data,
this.repository);
......
......@@ -86,8 +86,8 @@ public class AuthenticationAuditListenerTests {
AuditApplicationEvent event = handleAuthenticationEvent(
new AuthenticationSwitchUserEvent(
new UsernamePasswordAuthenticationToken("user", "password"),
new User("user", "password",
AuthorityUtils.commaSeparatedStringToAuthorityList("USER"))));
new User("user", "password", AuthorityUtils
.commaSeparatedStringToAuthorityList("USER"))));
assertThat(event.getAuditEvent().getType())
.isEqualTo(AuthenticationAuditListener.AUTHENTICATION_SWITCH);
}
......@@ -98,12 +98,12 @@ public class AuthenticationAuditListenerTests {
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
"user", "password");
authentication.setDetails(details);
AuditApplicationEvent event = handleAuthenticationEvent(new AuthenticationFailureExpiredEvent(
authentication, new BadCredentialsException("Bad user")));
AuditApplicationEvent event = handleAuthenticationEvent(
new AuthenticationFailureExpiredEvent(authentication,
new BadCredentialsException("Bad user")));
assertThat(event.getAuditEvent().getType())
.isEqualTo(AuthenticationAuditListener.AUTHENTICATION_FAILURE);
assertThat(event.getAuditEvent().getData())
.containsEntry("details", details);
assertThat(event.getAuditEvent().getData()).containsEntry("details", details);
}
private AuditApplicationEvent handleAuthenticationEvent(
......
......@@ -56,7 +56,8 @@ public class AuthorizationAuditListenerTests {
public void testAuthenticationCredentialsNotFound() {
AuditApplicationEvent event = handleAuthorizationEvent(
new AuthenticationCredentialsNotFoundEvent(this,
Collections.<ConfigAttribute>singletonList(new SecurityConfig("USER")),
Collections.<ConfigAttribute>singletonList(
new SecurityConfig("USER")),
new AuthenticationCredentialsNotFoundException("Bad user")));
assertThat(event.getAuditEvent().getType())
.isEqualTo(AuthenticationAuditListener.AUTHENTICATION_FAILURE);
......@@ -66,7 +67,8 @@ public class AuthorizationAuditListenerTests {
public void testAuthorizationFailure() {
AuditApplicationEvent event = handleAuthorizationEvent(
new AuthorizationFailureEvent(this,
Collections.<ConfigAttribute>singletonList(new SecurityConfig("USER")),
Collections.<ConfigAttribute>singletonList(
new SecurityConfig("USER")),
new UsernamePasswordAuthenticationToken("user", "password"),
new AccessDeniedException("Bad user")));
assertThat(event.getAuditEvent().getType())
......@@ -81,7 +83,8 @@ public class AuthorizationAuditListenerTests {
authentication.setDetails(details);
AuditApplicationEvent event = handleAuthorizationEvent(
new AuthorizationFailureEvent(this,
Collections.<ConfigAttribute>singletonList(new SecurityConfig("USER")),
Collections.<ConfigAttribute>singletonList(
new SecurityConfig("USER")),
authentication, new AccessDeniedException("Bad user")));
assertThat(event.getAuditEvent().getType())
.isEqualTo(AuthorizationAuditListener.AUTHORIZATION_FAILURE);
......
......@@ -95,4 +95,5 @@ public abstract class AbstractDependsOnBeanFactoryPostProcessor
throw ex;
}
}
}
......@@ -127,6 +127,7 @@ class AutoConfigurationSorter {
}
return rtn;
}
}
private static class AutoConfigurationClass {
......
......@@ -71,6 +71,7 @@ import org.springframework.retry.support.RetryTemplate;
* <li>{@literal spring.rabbitmq.virtualHost} is used to specify the (optional) virtual
* host to which the client should connect.</li>
* </ul>
*
* @author Greg Turnquist
* @author Josh Long
* @author Stephane Nicoll
......
......@@ -47,12 +47,14 @@ public class AopAutoConfiguration {
@EnableAspectJAutoProxy(proxyTargetClass = false)
@ConditionalOnProperty(prefix = "spring.aop", name = "proxy-target-class", havingValue = "false", matchIfMissing = true)
public static class JdkDynamicAutoProxyConfiguration {
}
@Configuration
@EnableAspectJAutoProxy(proxyTargetClass = true)
@ConditionalOnProperty(prefix = "spring.aop", name = "proxy-target-class", havingValue = "true", matchIfMissing = false)
public static class CglibAutoProxyConfiguration {
}
}
......@@ -101,6 +101,7 @@ public class CacheAutoConfiguration {
* instantiation.
*/
static class CacheManagerValidatorPostProcessor implements BeanFactoryPostProcessor {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
throws BeansException {
......@@ -120,6 +121,7 @@ public class CacheAutoConfiguration {
result[result.length - 1] = value;
return result;
}
}
/**
......@@ -141,6 +143,7 @@ public class CacheAutoConfiguration {
+ "be auto-configured, check your configuration (caching "
+ "type is '" + this.cacheProperties.getType() + "')");
}
}
/**
......
......@@ -67,6 +67,7 @@ abstract class HazelcastInstanceConfiguration {
existingHazelcastInstance);
return this.customizers.customize(cacheManager);
}
}
@Configuration
......
......@@ -159,10 +159,12 @@ class JCacheCacheConfiguration {
@Conditional(JCacheProviderAvailableCondition.class)
static class JCacheProvider {
}
@ConditionalOnSingleCandidate(CacheManager.class)
static class CustomJCacheCacheManager {
}
}
......
......@@ -264,6 +264,7 @@ public final class ConditionEvaluationReport {
public String toString() {
return this.condition.getClass() + " " + this.outcome;
}
}
private static class AncestorsMatchedCondition implements Condition {
......
......@@ -228,8 +228,8 @@ public final class ConditionMessage {
/**
* Indicate that one or more results were found. For example
* {@code found("bean", "beans").items("x", "y")} results in the message
* "found beans x, y".
* {@code found("bean", "beans").items("x", "y")} results in the message "found
* beans x, y".
* @param singular the article found in singular form
* @param plural the article found in plural form
* @return an {@link ItemsBuilder}
......@@ -240,8 +240,8 @@ public final class ConditionMessage {
/**
* Indicate that one or more results were not found. For example
* {@code didNotFind("bean").items("x")} results in the message
* "did not find bean x".
* {@code didNotFind("bean").items("x")} results in the message "did not find bean
* x".
* @param article the article found
* @return an {@link ItemsBuilder}
*/
......@@ -251,8 +251,8 @@ public final class ConditionMessage {
/**
* Indicate that one or more results were found. For example
* {@code didNotFind("bean", "beans").items("x", "y")} results in the message
* "did not find beans x, y".
* {@code didNotFind("bean", "beans").items("x", "y")} results in the message "did
* not find beans x, y".
* @param singular the article found in singular form
* @param plural the article found in plural form
* @return an {@link ItemsBuilder}
......@@ -330,8 +330,8 @@ public final class ConditionMessage {
/**
* Used when no items are available. For example
* {@code didNotFind("any beans").atAll()} results in the message
* "did not find any beans".
* {@code didNotFind("any beans").atAll()} results in the message "did not find
* any beans".
* @return a built {@link ConditionMessage}
*/
public ConditionMessage atAll() {
......@@ -340,8 +340,8 @@ public final class ConditionMessage {
/**
* Indicate the items. For example
* {@code didNotFind("bean", "beans").items("x", "y")} results in the message
* "did not find beans x, y".
* {@code didNotFind("bean", "beans").items("x", "y")} results in the message "did
* not find beans x, y".
* @param items the items (may be {@code null})
* @return a built {@link ConditionMessage}
*/
......@@ -351,8 +351,8 @@ public final class ConditionMessage {
/**
* Indicate the items. For example
* {@code didNotFind("bean", "beans").items("x", "y")} results in the message
* "did not find beans x, y".
* {@code didNotFind("bean", "beans").items("x", "y")} results in the message "did
* not find beans x, y".
* @param style the render style
* @param items the items (may be {@code null})
* @return a built {@link ConditionMessage}
......
......@@ -35,4 +35,5 @@ import org.springframework.context.annotation.Conditional;
@Documented
@Conditional(OnWebApplicationCondition.class)
public @interface ConditionalOnWebApplication {
}
......@@ -439,6 +439,7 @@ class OnBeanCondition extends SpringBootCondition implements ConfigurationCondit
Assert.isTrue(getTypes().size() == 1, annotationName() + " annotations must "
+ "specify only one type (got " + getTypes() + ")");
}
}
static final class BeanTypeDeductionException extends RuntimeException {
......
......@@ -134,10 +134,12 @@ public class CouchbaseAutoConfiguration {
@Conditional(OnBootstrapHostsCondition.class)
static class BootstrapHostsProperty {
}
@ConditionalOnBean(type = "org.springframework.data.couchbase.config.CouchbaseConfigurer")
static class CouchbaseConfigurerAvailable {
}
}
......
......@@ -51,6 +51,7 @@ class CassandraRepositoriesAutoConfigureRegistrar
@EnableCassandraRepositories
private static class EnableCassandraRepositoriesConfiguration {
}
}
......@@ -51,5 +51,7 @@ class JpaRepositoriesAutoConfigureRegistrar
@EnableJpaRepositories
private static class EnableJpaRepositoriesConfiguration {
}
}
......@@ -50,6 +50,7 @@ class MongoRepositoriesAutoConfigureRegistrar
@EnableMongoRepositories
private static class EnableMongoRepositoriesConfiguration {
}
}
......@@ -133,4 +133,5 @@ public class FlywayProperties {
public boolean isCreateDataSource() {
return this.url != null && this.user != null;
}
}
......@@ -57,6 +57,7 @@ public class IntegrationAutoConfiguration {
@Configuration
@EnableIntegration
protected static class IntegrationConfiguration {
}
@Configuration
......
......@@ -95,6 +95,7 @@ public class DataSourceAutoConfiguration {
@ConditionalOnMissingBean({ DataSource.class, XADataSource.class })
@Import(EmbeddedDataSourceConfiguration.class)
protected static class EmbeddedDatabaseConfiguration {
}
@Configuration
......@@ -140,10 +141,12 @@ public class DataSourceAutoConfiguration {
@ConditionalOnProperty(prefix = "spring.datasource", name = "type")
static class ExplicitType {
}
@Conditional(PooledDataSourceAvailableCondition.class)
static class PooledDataSourceAvailable {
}
}
......@@ -177,6 +180,7 @@ public class DataSourceAutoConfiguration {
.findType();
return (dataSourceClass == null ? null : dataSourceClass.getClassLoader());
}
}
/**
......
......@@ -124,8 +124,8 @@ class DataSourceInitializer implements ApplicationListener<DataSourceInitialized
runScripts(scripts, username, password);
}
private List<Resource> getScripts(String propertyName,
List<String> resources, String fallback) {
private List<Resource> getScripts(String propertyName, List<String> resources,
String fallback) {
if (resources != null) {
return getResources(propertyName, resources, true);
}
......@@ -136,8 +136,8 @@ class DataSourceInitializer implements ApplicationListener<DataSourceInitialized
return getResources(propertyName, fallbackResources, false);
}
private List<Resource> getResources(String propertyName,
List<String> locations, boolean validate) {
private List<Resource> getResources(String propertyName, List<String> locations,
boolean validate) {
List<Resource> resources = new ArrayList<Resource>();
for (String location : locations) {
for (Resource resource : doGetResources(location)) {
......
......@@ -117,7 +117,6 @@ public enum EmbeddedDatabaseConnection {
/**
* Convenience method to determine if a given driver class name represents an embedded
* database type.
*
* @param driverClass the driver class
* @return true if the driver class is one of the embedded types
*/
......@@ -130,7 +129,6 @@ public enum EmbeddedDatabaseConnection {
/**
* Convenience method to determine if a given data source represents an embedded
* database type.
*
* @param dataSource the data source to interrogate
* @return true if the data source is one of the embedded types
*/
......@@ -186,4 +184,5 @@ public enum EmbeddedDatabaseConnection {
}
}
}
......@@ -228,6 +228,7 @@ public class JerseyAutoConfiguration implements ServletContextAware {
// will try and register a ContextLoaderListener which we don't need
servletContext.setInitParameter("contextConfigLocation", "<NONE>");
}
}
@ConditionalOnClass(JacksonFeature.class)
......
......@@ -85,7 +85,9 @@ public class JerseyProperties {
}
public enum Type {
SERVLET, FILTER
}
public static class Filter {
......
......@@ -85,6 +85,7 @@ class JmsAnnotationDrivenConfiguration {
@EnableJms
@ConditionalOnMissingBean(name = JmsListenerConfigUtils.JMS_LISTENER_ANNOTATION_PROCESSOR_BEAN_NAME)
protected static class EnableJmsConfiguration {
}
@ConditionalOnJndi
......
......@@ -101,6 +101,7 @@ public class JmsAutoConfiguration {
}
return jmsTemplate;
}
}
@ConditionalOnClass(JmsMessagingTemplate.class)
......
......@@ -130,6 +130,7 @@ public class JmsProperties {
? this.concurrency + "-" + this.maxConcurrency
: String.valueOf(this.concurrency));
}
}
public static class Template {
......
......@@ -95,10 +95,12 @@ public class JndiConnectionFactoryAutoConfiguration {
@ConditionalOnJndi({ "java:/JmsXA", "java:/XAConnectionFactory" })
static class Jndi {
}
@ConditionalOnProperty(prefix = "spring.jms", name = "jndi-name")
static class Property {
}
}
......
......@@ -30,8 +30,8 @@ import org.springframework.jdbc.support.SQLExceptionTranslator;
import org.springframework.jdbc.support.SQLStateSQLExceptionTranslator;
/**
* Transforms {@link java.sql.SQLException} into a Spring-specific {@link
* DataAccessException}.
* Transforms {@link java.sql.SQLException} into a Spring-specific
* {@link DataAccessException}.
*
* @author Lukas Eder
* @author Andreas Ahlenstorf
......@@ -66,8 +66,8 @@ class JooqExceptionTranslator extends DefaultExecuteListener {
/**
* Handle a single exception in the chain. SQLExceptions might be nested multiple
* levels deep. The outermost exception is usually the least interesting one (
* "Call getNextException to see the cause."). Therefore the innermost exception is
* levels deep. The outermost exception is usually the least interesting one ("Call
* getNextException to see the cause."). Therefore the innermost exception is
* propagated and all other exceptions are logged.
* @param context the execute context
* @param translator the exception translator
......
......@@ -122,6 +122,7 @@ public class LiquibaseAutoConfiguration {
.username(this.properties.getUser())
.password(this.properties.getPassword()).build();
}
}
/**
......
......@@ -110,10 +110,12 @@ public class MailSenderAutoConfiguration {
@ConditionalOnProperty(prefix = "spring.mail", name = "host")
static class HostProperty {
}
@ConditionalOnProperty(prefix = "spring.mail", name = "jndi-name")
static class JndiNameProperty {
}
}
......
......@@ -194,7 +194,6 @@ public class MongoProperties {
* {@code environment}. If the configured port is zero, the value of the
* {@code local.mongo.port} property retrieved from the {@code environment} is used to
* configure the client.
*
* @param options the options
* @param environment the environment
* @return the Mongo client
......
......@@ -106,6 +106,7 @@ class DataSourceInitializedPublisher implements BeanPostProcessor {
registry.registerBeanDefinition(BEAN_NAME, beanDefinition);
}
}
}
}
......@@ -43,4 +43,5 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur
@AutoConfigureAfter(SecurityAutoConfiguration.class)
@EnableWebSecurity
public class FallbackWebSecurityAutoConfiguration {
}
......@@ -171,7 +171,9 @@ public class SecurityProperties implements SecurityPrerequisite {
public static class Headers {
public enum HSTS {
NONE, DOMAIN, ALL
}
public enum ContentSecurityPolicyMode {
......
......@@ -237,6 +237,7 @@ public class SpringBootWebSecurityConfiguration {
@Order(SecurityProperties.BASIC_AUTH_ORDER)
protected static class ApplicationNoWebSecurityConfigurerAdapter
extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.requestMatcher(new RequestMatcher() {
......@@ -246,6 +247,7 @@ public class SpringBootWebSecurityConfiguration {
}
});
}
}
@Configuration
......
......@@ -251,6 +251,7 @@ public class ResourceServerProperties implements Validator, BeanFactoryAware {
}
return null;
}
}
}
......@@ -33,7 +33,6 @@ public interface UserInfoRestTemplateCustomizer {
/**
* Customize the rest template before it is initialized.
*
* @param template the rest template
*/
void customize(OAuth2RestTemplate template);
......
......@@ -77,11 +77,14 @@ public class SendGridAutoConfiguration {
@ConditionalOnProperty(prefix = "spring.sendgrid", value = "username")
static class SendGridUserProperty {
}
@ConditionalOnProperty(prefix = "spring.sendgrid", value = "api-key")
static class SendGridApiKeyProperty {
}
}
}
......@@ -84,6 +84,7 @@ public class LinkedInAutoConfiguration {
return new LinkedInConnectionFactory(this.properties.getAppId(),
this.properties.getAppSecret());
}
}
}
......@@ -146,6 +146,7 @@ public class SocialWebAutoConfiguration {
}
};
}
}
@Configuration
......@@ -186,4 +187,5 @@ public class SocialWebAutoConfiguration {
}
}
}
......@@ -83,6 +83,7 @@ public class ThymeleafAutoConfiguration {
public SpringResourceResourceResolver thymeleafResourceResolver() {
return new SpringResourceResourceResolver();
}
}
@Configuration
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment