diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/InfoContributorAutoConfiguration.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/InfoContributorAutoConfiguration.java index 2a46aeec917..97f4fff96c5 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/InfoContributorAutoConfiguration.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/InfoContributorAutoConfiguration.java @@ -82,7 +82,8 @@ public class InfoContributorAutoConfiguration { @ConditionalOnSingleCandidate(BuildProperties.class) @Order(DEFAULT_ORDER) public InfoContributor buildInfoContributor(BuildProperties buildProperties) { - return new BuildInfoContributor(buildProperties, this.properties.getBuild().getMode()); + return new BuildInfoContributor(buildProperties, + this.properties.getBuild().getMode()); } } diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/info/BuildInfoContributor.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/info/BuildInfoContributor.java index 2142ae870e2..6e158d6bd50 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/info/BuildInfoContributor.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/info/BuildInfoContributor.java @@ -23,7 +23,6 @@ import org.springframework.boot.info.BuildProperties; import org.springframework.core.env.PropertiesPropertySource; import org.springframework.core.env.PropertySource; - /** * An {@link InfoContributor} that exposes {@link BuildProperties}. * diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/info/GitInfoContributor.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/info/GitInfoContributor.java index 17458e76f6a..2e102c34cef 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/info/GitInfoContributor.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/info/GitInfoContributor.java @@ -62,9 +62,12 @@ public class GitInfoContributor extends InfoPropertiesInfoContributor content) { - replaceValue(getNestedMap(content, "commit"), "time", getProperties().getCommitTime()); - replaceValue(getNestedMap(content, "build"), "time", getProperties().getDate("build.time")); + replaceValue(getNestedMap(content, "commit"), "time", + getProperties().getCommitTime()); + replaceValue(getNestedMap(content, "build"), "time", + getProperties().getDate("build.time")); } } diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/info/InfoPropertiesInfoContributor.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/info/InfoPropertiesInfoContributor.java index 2dd58a9ba7a..6f30be29f28 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/info/InfoPropertiesInfoContributor.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/info/InfoPropertiesInfoContributor.java @@ -32,7 +32,8 @@ import org.springframework.util.StringUtils; * @author Stephane Nicoll * @since 1.4.0 */ -public abstract class InfoPropertiesInfoContributor implements InfoContributor { +public abstract class InfoPropertiesInfoContributor + implements InfoContributor { private final T properties; @@ -103,9 +104,7 @@ public abstract class InfoPropertiesInfoContributor im if (this.mode.equals(Mode.FULL)) { return this.properties.toPropertySource(); } - else { - return toSimplePropertySource(); - } + return toSimplePropertySource(); } /** @@ -141,16 +140,13 @@ public abstract class InfoPropertiesInfoContributor im */ @SuppressWarnings("unchecked") protected Map getNestedMap(Map map, String key) { - Object o = map.get(key); - if (o == null) { + Object value = map.get(key); + if (value == null) { return Collections.emptyMap(); } - else { - return (Map) o; - } + return (Map) value; } - /** * Defines how properties should be exposed. */ diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/EndpointAutoConfigurationTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/EndpointAutoConfigurationTests.java index 73d303505f6..e075cd6d0dd 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/EndpointAutoConfigurationTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/EndpointAutoConfigurationTests.java @@ -269,9 +269,10 @@ public class EndpointAutoConfigurationTests { if (location.exists()) { Properties gitInfoProperties = PropertiesLoaderUtils .loadProperties(location); - PropertiesPropertySource gitPropertySource = - new PropertiesPropertySource("git", gitInfoProperties); - this.content = new PropertySourcesBinder(gitPropertySource).extractAll("git"); + PropertiesPropertySource gitPropertySource = new PropertiesPropertySource( + "git", gitInfoProperties); + this.content = new PropertySourcesBinder(gitPropertySource) + .extractAll("git"); } } diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/InfoContributorAutoConfigurationTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/InfoContributorAutoConfigurationTests.java index cd580ffe010..00b945c3fa1 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/InfoContributorAutoConfigurationTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/InfoContributorAutoConfigurationTests.java @@ -85,8 +85,8 @@ public class InfoContributorAutoConfigurationTests { Map beans = this.context .getBeansOfType(InfoContributor.class); assertThat(beans).containsKeys("gitInfoContributor"); - Map content = - invokeContributor(this.context.getBean("gitInfoContributor", InfoContributor.class)); + Map content = invokeContributor( + this.context.getBean("gitInfoContributor", InfoContributor.class)); Object git = content.get("git"); assertThat(git).isInstanceOf(Map.class); Map gitInfo = (Map) git; @@ -97,8 +97,8 @@ public class InfoContributorAutoConfigurationTests { @Test public void gitPropertiesFullMode() { load(GitPropertiesConfiguration.class, "management.info.git.mode=full"); - Map content = - invokeContributor(this.context.getBean("gitInfoContributor", InfoContributor.class)); + Map content = invokeContributor( + this.context.getBean("gitInfoContributor", InfoContributor.class)); Object git = content.get("git"); assertThat(git).isInstanceOf(Map.class); Map gitInfo = (Map) git; @@ -120,8 +120,8 @@ public class InfoContributorAutoConfigurationTests { Map beans = this.context .getBeansOfType(InfoContributor.class); assertThat(beans).containsKeys("buildInfoContributor"); - Map content = - invokeContributor(this.context.getBean("buildInfoContributor", InfoContributor.class)); + Map content = invokeContributor( + this.context.getBean("buildInfoContributor", InfoContributor.class)); Object build = content.get("build"); assertThat(build).isInstanceOf(Map.class); Map gitInfo = (Map) build; @@ -132,8 +132,8 @@ public class InfoContributorAutoConfigurationTests { @Test public void buildPropertiesFullMode() { load(BuildPropertiesConfiguration.class, "management.info.build.mode=full"); - Map content = - invokeContributor(this.context.getBean("buildInfoContributor", InfoContributor.class)); + Map content = invokeContributor( + this.context.getBean("buildInfoContributor", InfoContributor.class)); Object build = content.get("build"); assertThat(build).isInstanceOf(Map.class); Map gitInfo = (Map) build; diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/SpringApplicationHierarchyTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/SpringApplicationHierarchyTests.java index 46d3b1a8692..187acb94f77 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/SpringApplicationHierarchyTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/SpringApplicationHierarchyTests.java @@ -62,24 +62,24 @@ public class SpringApplicationHierarchyTests { @EnableAutoConfiguration(exclude = { ElasticsearchDataAutoConfiguration.class, ElasticsearchRepositoriesAutoConfiguration.class, - CassandraAutoConfiguration.class, - CassandraDataAutoConfiguration.class, + CassandraAutoConfiguration.class, CassandraDataAutoConfiguration.class, RedisAutoConfiguration.class, - RedisRepositoriesAutoConfiguration.class}, excludeName = { + RedisRepositoriesAutoConfiguration.class }, excludeName = { "org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration" }) public static class Child { + } @EnableAutoConfiguration(exclude = { JolokiaAutoConfiguration.class, EndpointMBeanExportAutoConfiguration.class, ElasticsearchDataAutoConfiguration.class, ElasticsearchRepositoriesAutoConfiguration.class, - CassandraAutoConfiguration.class, - CassandraDataAutoConfiguration.class, + CassandraAutoConfiguration.class, CassandraDataAutoConfiguration.class, RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class }, excludeName = { "org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration" }) public static class Parent { + } } diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/info/GitInfoContributorTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/info/GitInfoContributorTests.java index e377a426739..c67a6becbca 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/info/GitInfoContributorTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/info/GitInfoContributorTests.java @@ -39,7 +39,8 @@ public class GitInfoContributorTests { Properties properties = new Properties(); properties.put("branch", "master"); properties.put("commit.time", "2016-03-04T14:36:33+0100"); - GitInfoContributor contributor = new GitInfoContributor(new GitProperties(properties)); + GitInfoContributor contributor = new GitInfoContributor( + new GitProperties(properties)); Map content = contributor.generateContent(); assertThat(content.get("commit")).isInstanceOf(Map.class); Map commit = (Map) content.get("commit"); @@ -54,7 +55,8 @@ public class GitInfoContributorTests { Properties properties = new Properties(); properties.put("branch", "master"); properties.put("commit.id", "8e29a0b0d423d2665c6ee5171947c101a5c15681"); - GitInfoContributor contributor = new GitInfoContributor(new GitProperties(properties)); + GitInfoContributor contributor = new GitInfoContributor( + new GitProperties(properties)); Map content = contributor.generateContent(); assertThat(content.get("commit")).isInstanceOf(Map.class); Map commit = (Map) content.get("commit"); diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java index ec1bfaab9d6..c2dad4408be 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java @@ -29,8 +29,6 @@ import org.springframework.amqp.support.converter.MessageConverter; import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.amqp.RabbitProperties.Retry; -import org.springframework.boot.autoconfigure.amqp.RabbitProperties.Template; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -161,29 +159,33 @@ public class RabbitAutoConfiguration { if (messageConverter != null) { rabbitTemplate.setMessageConverter(messageConverter); } - Template template = this.properties.getTemplate(); - Retry retry = template.getRetry(); - if (retry.isEnabled()) { - RetryTemplate retryTemplate = new RetryTemplate(); - SimpleRetryPolicy retryPolicy = new SimpleRetryPolicy(); - retryPolicy.setMaxAttempts(retry.getMaxAttempts()); - retryTemplate.setRetryPolicy(retryPolicy); - ExponentialBackOffPolicy backOffPolicy = new ExponentialBackOffPolicy(); - backOffPolicy.setInitialInterval(retry.getInitialInterval()); - backOffPolicy.setMultiplier(retry.getMultiplier()); - backOffPolicy.setMaxInterval(retry.getMaxInterval()); - retryTemplate.setBackOffPolicy(backOffPolicy); - rabbitTemplate.setRetryTemplate(retryTemplate); + RabbitProperties.Template templateProperties = this.properties.getTemplate(); + RabbitProperties.Retry retryProperties = templateProperties.getRetry(); + if (retryProperties.isEnabled()) { + rabbitTemplate.setRetryTemplate(createRetryTemplate(retryProperties)); } - if (template.getReceiveTimeout() != null) { - rabbitTemplate.setReceiveTimeout(template.getReceiveTimeout()); + if (templateProperties.getReceiveTimeout() != null) { + rabbitTemplate.setReceiveTimeout(templateProperties.getReceiveTimeout()); } - if (template.getReplyTimeout() != null) { - rabbitTemplate.setReplyTimeout(template.getReplyTimeout()); + if (templateProperties.getReplyTimeout() != null) { + rabbitTemplate.setReplyTimeout(templateProperties.getReplyTimeout()); } return rabbitTemplate; } + private RetryTemplate createRetryTemplate(RabbitProperties.Retry properties) { + RetryTemplate template = new RetryTemplate(); + SimpleRetryPolicy policy = new SimpleRetryPolicy(); + policy.setMaxAttempts(properties.getMaxAttempts()); + template.setRetryPolicy(policy); + ExponentialBackOffPolicy backOffPolicy = new ExponentialBackOffPolicy(); + backOffPolicy.setInitialInterval(properties.getInitialInterval()); + backOffPolicy.setMultiplier(properties.getMultiplier()); + backOffPolicy.setMaxInterval(properties.getMaxInterval()); + template.setBackOffPolicy(backOffPolicy); + return template; + } + @Bean @ConditionalOnSingleCandidate(ConnectionFactory.class) @ConditionalOnProperty(prefix = "spring.rabbitmq", name = "dynamic", matchIfMissing = true) @@ -192,7 +194,6 @@ public class RabbitAutoConfiguration { return new RabbitAdmin(connectionFactory); } - } @Configuration diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java index 1009cec1059..f952e522164 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java @@ -512,8 +512,7 @@ public class RabbitProperties { private int maxAttempts = 3; /** - * Interval between the first and second attempt to publish or deliver - * a message. + * Interval between the first and second attempt to publish or deliver a message. */ private long initialInterval = 1000L; diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/SimpleRabbitListenerContainerFactoryConfigurer.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/SimpleRabbitListenerContainerFactoryConfigurer.java index 55521dbd145..037e86601bb 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/SimpleRabbitListenerContainerFactoryConfigurer.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/SimpleRabbitListenerContainerFactoryConfigurer.java @@ -92,14 +92,14 @@ public final class SimpleRabbitListenerContainerFactoryConfigurer { } ListenerRetry retryConfig = listenerConfig.getRetry(); if (retryConfig.isEnabled()) { - RetryInterceptorBuilder builder = (retryConfig.isStateless() ? - RetryInterceptorBuilder.stateless() : RetryInterceptorBuilder.stateful()); - factory.setAdviceChain(builder - .maxAttempts(retryConfig.getMaxAttempts()) - .backOffOptions(retryConfig.getInitialInterval(), - retryConfig.getMultiplier(), retryConfig.getMaxInterval()) - .recoverer(new RejectAndDontRequeueRecoverer()) - .build()); + RetryInterceptorBuilder builder = (retryConfig.isStateless() + ? RetryInterceptorBuilder.stateless() + : RetryInterceptorBuilder.stateful()); + builder.maxAttempts(retryConfig.getMaxAttempts()); + builder.backOffOptions(retryConfig.getInitialInterval(), + retryConfig.getMultiplier(), retryConfig.getMaxInterval()); + builder.recoverer(new RejectAndDontRequeueRecoverer()); + factory.setAdviceChain(builder.build()); } } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfiguration.java index f85244bfa2a..a086b465733 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfiguration.java @@ -65,7 +65,7 @@ import org.springframework.util.Assert; @ConditionalOnMissingBean(value = CacheManager.class, name = "cacheResolver") @EnableConfigurationProperties(CacheProperties.class) @AutoConfigureBefore(HibernateJpaAutoConfiguration.class) -@AutoConfigureAfter({CouchbaseAutoConfiguration.class, HazelcastAutoConfiguration.class, +@AutoConfigureAfter({ CouchbaseAutoConfiguration.class, HazelcastAutoConfiguration.class, RedisAutoConfiguration.class }) @Import({ CacheManagerCustomizers.class, CacheConfigurationImportSelector.class }) public class CacheAutoConfiguration { diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheConfigurations.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheConfigurations.java index b5d57911401..226959064eb 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheConfigurations.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheConfigurations.java @@ -30,9 +30,6 @@ import org.springframework.util.Assert; */ final class CacheConfigurations { - private CacheConfigurations() { - } - private static final Map> MAPPINGS; static { @@ -51,6 +48,9 @@ final class CacheConfigurations { MAPPINGS = Collections.unmodifiableMap(mappings); } + private CacheConfigurations() { + } + public static String getConfigurationClass(CacheType cacheType) { Class configurationClass = MAPPINGS.get(cacheType); Assert.state(configurationClass != null, "Unknown cache type " + cacheType); diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CouchbaseCacheConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CouchbaseCacheConfiguration.java index 202c8df53dd..a66dda2b1bb 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CouchbaseCacheConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CouchbaseCacheConfiguration.java @@ -37,7 +37,7 @@ import org.springframework.context.annotation.Configuration; * @since 1.4.0 */ @Configuration -@ConditionalOnClass({Bucket.class, CouchbaseCacheManager.class}) +@ConditionalOnClass({ Bucket.class, CouchbaseCacheManager.class }) @ConditionalOnMissingBean(CacheManager.class) @ConditionalOnSingleCandidate(Bucket.class) @Conditional(CacheCondition.class) @@ -60,8 +60,8 @@ public class CouchbaseCacheConfiguration { public CouchbaseCacheManager cacheManager() { List cacheNames = this.cacheProperties.getCacheNames(); CouchbaseCacheManager cacheManager = new CouchbaseCacheManager( - CacheBuilder.newInstance(this.bucket) - .withExpirationInMillis(this.cacheProperties.getCouchbase().getExpiration()), + CacheBuilder.newInstance(this.bucket).withExpirationInMillis( + this.cacheProperties.getCouchbase().getExpiration()), cacheNames.toArray(new String[cacheNames.size()])); return this.customizers.customize(cacheManager); } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfiguration.java index 38846c4a614..c569fab30b9 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfiguration.java @@ -45,12 +45,11 @@ import org.springframework.data.couchbase.config.CouchbaseConfigurer; * @since 1.4.0 */ @Configuration -@ConditionalOnClass({CouchbaseBucket.class, Cluster.class}) +@ConditionalOnClass({ CouchbaseBucket.class, Cluster.class }) @Conditional(CouchbaseAutoConfiguration.CouchbaseCondition.class) @EnableConfigurationProperties(CouchbaseProperties.class) public class CouchbaseAutoConfiguration { - @Configuration @ConditionalOnMissingBean(CouchbaseConfigurer.class) public static class CouchbaseConfiguration { @@ -77,8 +76,10 @@ public class CouchbaseAutoConfiguration { @Bean @Primary public ClusterInfo couchbaseClusterInfo() throws Exception { - return couchbaseCluster().clusterManager(this.properties.getBucket().getName(), - this.properties.getBucket().getPassword()).info(); + return couchbaseCluster() + .clusterManager(this.properties.getBucket().getName(), + this.properties.getBucket().getPassword()) + .info(); } @Bean @@ -96,13 +97,12 @@ public class CouchbaseAutoConfiguration { protected CouchbaseEnvironment createEnvironment(CouchbaseProperties properties) { CouchbaseProperties.Endpoints endpoints = properties.getEnv().getEndpoints(); CouchbaseProperties.Timeouts timeouts = properties.getEnv().getTimeouts(); - DefaultCouchbaseEnvironment.Builder builder = DefaultCouchbaseEnvironment.builder() - .connectTimeout(timeouts.getConnect()) + DefaultCouchbaseEnvironment.Builder builder = DefaultCouchbaseEnvironment + .builder().connectTimeout(timeouts.getConnect()) .kvEndpoints(endpoints.getKeyValue()) .kvTimeout(timeouts.getKeyValue()) .queryEndpoints(endpoints.getQuery()) - .queryTimeout(timeouts.getQuery()) - .viewEndpoints(endpoints.getView()) + .queryTimeout(timeouts.getQuery()).viewEndpoints(endpoints.getView()) .viewTimeout(timeouts.getView()); CouchbaseProperties.Ssl ssl = properties.getEnv().getSsl(); if (ssl.getEnabled()) { @@ -121,8 +121,8 @@ public class CouchbaseAutoConfiguration { /** * Determine if Couchbase should be configured. This happens if either the - * user-configuration defines a {@link CouchbaseConfigurer} or if at least - * the "bootstrapHosts" property is specified. + * user-configuration defines a {@link CouchbaseConfigurer} or if at least the + * "bootstrapHosts" property is specified. */ static class CouchbaseCondition extends AnyNestedCondition { diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseProperties.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseProperties.java index ad95aeebced..7451657d63a 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseProperties.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseProperties.java @@ -57,7 +57,6 @@ public class CouchbaseProperties { return this.env; } - public static class Bucket { /** @@ -175,7 +174,8 @@ public class CouchbaseProperties { private String keyStorePassword; public Boolean getEnabled() { - return (this.enabled != null ? this.enabled : StringUtils.hasText(this.keyStore)); + return (this.enabled != null ? this.enabled + : StringUtils.hasText(this.keyStore)); } public void setEnabled(Boolean enabled) { diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseConfigurerAdapterConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseConfigurerAdapterConfiguration.java index 86d9e37db89..f49fe464cd5 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseConfigurerAdapterConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseConfigurerAdapterConfiguration.java @@ -25,8 +25,8 @@ import org.springframework.context.annotation.Configuration; import org.springframework.data.couchbase.config.CouchbaseConfigurer; /** - * Adapt the core Couchbase configuration to an expected {@link CouchbaseConfigurer} - * if necessary. + * Adapt the core Couchbase configuration to an expected {@link CouchbaseConfigurer} if + * necessary. * * @author Stephane Nicoll */ @@ -44,8 +44,10 @@ class CouchbaseConfigurerAdapterConfiguration { @Bean @ConditionalOnMissingBean public CouchbaseConfigurer springBootCouchbaseConfigurer() throws Exception { - return new SpringBootCouchbaseConfigurer(this.configuration.couchbaseEnvironment(), - this.configuration.couchbaseCluster(), this.configuration.couchbaseClusterInfo(), + return new SpringBootCouchbaseConfigurer( + this.configuration.couchbaseEnvironment(), + this.configuration.couchbaseCluster(), + this.configuration.couchbaseClusterInfo(), this.configuration.couchbaseClient()); } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfiguration.java index 537f676a347..578da111140 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfiguration.java @@ -40,7 +40,7 @@ import org.springframework.data.couchbase.repository.CouchbaseRepository; * @since 1.4.0 */ @Configuration -@ConditionalOnClass({Bucket.class, CouchbaseRepository.class}) +@ConditionalOnClass({ Bucket.class, CouchbaseRepository.class }) @AutoConfigureAfter(CouchbaseAutoConfiguration.class) @EnableConfigurationProperties(CouchbaseDataProperties.class) @Import({ CouchbaseConfigurerAdapterConfiguration.class, diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesRegistrar.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesRegistrar.java index 855cdafe276..84b5c6c8ec5 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesRegistrar.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesRegistrar.java @@ -29,7 +29,6 @@ import org.springframework.data.repository.config.RepositoryConfigurationExtensi * Repositories. * * @author Eddú Meléndez - * @since 1.4.0 */ class CouchbaseRepositoriesRegistrar extends AbstractRepositoryConfigurationSourceSupport { diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/SpringBootCouchbaseDataConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/SpringBootCouchbaseDataConfiguration.java index d0ae4065fc9..19254c7f149 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/SpringBootCouchbaseDataConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/couchbase/SpringBootCouchbaseDataConfiguration.java @@ -68,9 +68,7 @@ class SpringBootCouchbaseDataConfiguration extends AbstractCouchbaseDataConfigur if (this.properties.isAutoIndex()) { return new IndexManager(true, true, true); } - else { - return new IndexManager(false, false, false); - } + return new IndexManager(false, false, false); } } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisRepositoriesAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisRepositoriesAutoConfiguration.java index a6d4da31594..c0ca59b3044 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisRepositoriesAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisRepositoriesAutoConfiguration.java @@ -43,4 +43,5 @@ import org.springframework.data.redis.repository.support.RedisRepositoryFactoryB @Import(RedisRepositoriesAutoConfigureRegistrar.class) @AutoConfigureAfter(RedisAutoConfiguration.class) public class RedisRepositoriesAutoConfiguration { + } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisRepositoriesAutoConfigureRegistrar.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisRepositoriesAutoConfigureRegistrar.java index 44dcdd7cd63..c25eb5f90f3 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisRepositoriesAutoConfigureRegistrar.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisRepositoriesAutoConfigureRegistrar.java @@ -50,6 +50,7 @@ class RedisRepositoriesAutoConfigureRegistrar @EnableRedisRepositories private static class EnableRedisRepositoriesConfiguration { + } } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfiguration.java index eb852a8922c..1e0e3b177cc 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfiguration.java @@ -63,7 +63,8 @@ public class H2ConsoleAutoConfiguration { public ServletRegistrationBean h2Console() { String path = this.properties.getPath(); String urlMapping = (path.endsWith("/") ? path + "*" : path + "/*"); - ServletRegistrationBean registration = new ServletRegistrationBean(new WebServlet(), urlMapping); + ServletRegistrationBean registration = new ServletRegistrationBean( + new WebServlet(), urlMapping); H2ConsoleProperties.Settings settings = this.properties.getSettings(); if (settings.isTrace()) { registration.addInitParameter("trace", ""); diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/info/ProjectInfoAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/info/ProjectInfoAutoConfiguration.java index 33b669a3f18..3faf8ab1264 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/info/ProjectInfoAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/info/ProjectInfoAutoConfiguration.java @@ -66,7 +66,8 @@ public class ProjectInfoAutoConfiguration { @ConditionalOnMissingBean @Bean public BuildProperties buildProperties() throws Exception { - return new BuildProperties(loadFrom(this.properties.getBuild().getLocation(), "build")); + return new BuildProperties( + loadFrom(this.properties.getBuild().getLocation(), "build")); } protected Properties loadFrom(Resource location, String prefix) throws IOException { @@ -88,8 +89,10 @@ public class ProjectInfoAutoConfiguration { @Override public ConditionOutcome getMatchOutcome(ConditionContext context, AnnotatedTypeMetadata metadata) { - ResourceLoader loader = context.getResourceLoader() == null - ? this.defaultResourceLoader : context.getResourceLoader(); + ResourceLoader loader = context.getResourceLoader(); + if (loader == null) { + loader = this.defaultResourceLoader; + } PropertyResolver propertyResolver = context.getEnvironment(); RelaxedPropertyResolver resolver = new RelaxedPropertyResolver( propertyResolver, "spring.info.git."); diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/info/ProjectInfoProperties.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/info/ProjectInfoProperties.java index a94a8faeff8..34cc5086c68 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/info/ProjectInfoProperties.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/info/ProjectInfoProperties.java @@ -53,7 +53,6 @@ public class ProjectInfoProperties { getGit().setLocation(defaultGitLocation); } - /** * Build specific info properties. */ @@ -62,7 +61,8 @@ public class ProjectInfoProperties { /** * Location of the generated build.properties file. */ - private Resource location = new ClassPathResource("META-INF/boot/build.properties"); + private Resource location = new ClassPathResource( + "META-INF/boot/build.properties"); public Resource getLocation() { return this.location; diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfiguration.java index b302c6b753b..83b64ccc95b 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/JmsAutoConfiguration.java @@ -65,7 +65,8 @@ public class JmsAutoConfiguration { public JmsTemplate jmsTemplate(ConnectionFactory connectionFactory) { JmsTemplate jmsTemplate = new JmsTemplate(connectionFactory); jmsTemplate.setPubSubDomain(this.properties.isPubSubDomain()); - DestinationResolver destinationResolver = this.destinationResolver.getIfUnique(); + DestinationResolver destinationResolver = this.destinationResolver + .getIfUnique(); if (destinationResolver != null) { jmsTemplate.setDestinationResolver(destinationResolver); } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQConnectionFactoryConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQConnectionFactoryConfiguration.java index b2162414645..c81534285ef 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQConnectionFactoryConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQConnectionFactoryConfiguration.java @@ -55,7 +55,8 @@ class ActiveMQConnectionFactoryConfiguration { @Bean(destroyMethod = "stop") @ConditionalOnProperty(prefix = "spring.activemq.pool", name = "enabled", havingValue = "true", matchIfMissing = false) @ConfigurationProperties("spring.activemq.pool.configuration") - public PooledConnectionFactory pooledJmsConnectionFactory(ActiveMQProperties properties) { + public PooledConnectionFactory pooledJmsConnectionFactory( + ActiveMQProperties properties) { PooledConnectionFactory pooledConnectionFactory = new PooledConnectionFactory( new ActiveMQConnectionFactoryFactory(properties) .createConnectionFactory(ActiveMQConnectionFactory.class)); diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQProperties.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQProperties.java index ab719dbc826..e81c31f183a 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQProperties.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQProperties.java @@ -67,6 +67,26 @@ public class ActiveMQProperties { this.inMemory = inMemory; } + /** + * Get if pooling is enabled. + * @return if pooling is enabled + * @deprecated since 1.4 in favor of "spring.activemq.pool.enabled" + */ + @Deprecated + public boolean isPooled() { + return getPool().isEnabled(); + } + + /** + * Set if pooling is enabled. + * @param pooled the pooling enabled value + * @deprecated since 1.4 in favor of "spring.activemq.pool.enabled" + */ + @Deprecated + public void setPooled(boolean pooled) { + getPool().setEnabled(pooled); + } + public String getUser() { return this.user; } @@ -91,7 +111,7 @@ public class ActiveMQProperties { this.pool = pool; } - protected static class Pool { + public static class Pool { /** * Whether a PooledConnectionFactory should be created instead of a regular @@ -147,4 +167,5 @@ public class ActiveMQProperties { } } + } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQXAConnectionFactoryConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQXAConnectionFactoryConfiguration.java index 24ecb240f18..74d9097a17b 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQXAConnectionFactoryConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQXAConnectionFactoryConfiguration.java @@ -45,7 +45,7 @@ import org.springframework.context.annotation.Primary; class ActiveMQXAConnectionFactoryConfiguration { @Primary - @Bean(name = {"jmsConnectionFactory", "xaJmsConnectionFactory"}) + @Bean(name = { "jmsConnectionFactory", "xaJmsConnectionFactory" }) public ConnectionFactory jmsConnectionFactory(ActiveMQProperties properties, XAConnectionFactoryWrapper wrapper) throws Exception { ActiveMQXAConnectionFactory connectionFactory = new ActiveMQConnectionFactoryFactory( diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfigurationTests.java index 987cc798765..e34d2c21a4c 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfigurationTests.java @@ -158,11 +158,14 @@ public class RabbitAutoConfigurationTests { DirectFieldAccessor dfa = new DirectFieldAccessor(rabbitTemplate); assertThat(dfa.getPropertyValue("receiveTimeout")).isEqualTo(123L); assertThat(dfa.getPropertyValue("replyTimeout")).isEqualTo(456L); - RetryTemplate retryTemplate = (RetryTemplate) dfa.getPropertyValue("retryTemplate"); + RetryTemplate retryTemplate = (RetryTemplate) dfa + .getPropertyValue("retryTemplate"); assertThat(retryTemplate).isNotNull(); dfa = new DirectFieldAccessor(retryTemplate); - SimpleRetryPolicy retryPolicy = (SimpleRetryPolicy) dfa.getPropertyValue("retryPolicy"); - ExponentialBackOffPolicy backOffPolicy = (ExponentialBackOffPolicy) dfa.getPropertyValue("backOffPolicy"); + SimpleRetryPolicy retryPolicy = (SimpleRetryPolicy) dfa + .getPropertyValue("retryPolicy"); + ExponentialBackOffPolicy backOffPolicy = (ExponentialBackOffPolicy) dfa + .getPropertyValue("backOffPolicy"); assertThat(retryPolicy.getMaxAttempts()).isEqualTo(4); assertThat(backOffPolicy.getInitialInterval()).isEqualTo(2000); assertThat(backOffPolicy.getMultiplier()).isEqualTo(1.5); @@ -182,8 +185,7 @@ public class RabbitAutoConfigurationTests { @Test public void testConnectionFactoryCacheSettings() { - load(TestConfiguration.class, - "spring.rabbitmq.cache.channel.size=23", + load(TestConfiguration.class, "spring.rabbitmq.cache.channel.size=23", "spring.rabbitmq.cache.channel.checkoutTimeout=1000", "spring.rabbitmq.cache.connection.mode=CONNECTION", "spring.rabbitmq.cache.connection.size=2"); @@ -273,16 +275,20 @@ public class RabbitAutoConfigurationTests { assertThat(dfa.getPropertyValue("txSize")).isEqualTo(20); assertThat(dfa.getPropertyValue("messageConverter")) .isSameAs(this.context.getBean("myMessageConverter")); - assertThat(dfa.getPropertyValue("defaultRequeueRejected")).isEqualTo(Boolean.FALSE); + assertThat(dfa.getPropertyValue("defaultRequeueRejected")) + .isEqualTo(Boolean.FALSE); Advice[] adviceChain = (Advice[]) dfa.getPropertyValue("adviceChain"); assertThat(adviceChain).isNotNull(); assertThat(adviceChain.length).isEqualTo(1); dfa = new DirectFieldAccessor(adviceChain[0]); - RetryTemplate retryTemplate = (RetryTemplate) dfa.getPropertyValue("retryOperations"); + RetryTemplate retryTemplate = (RetryTemplate) dfa + .getPropertyValue("retryOperations"); assertThat(retryTemplate).isNotNull(); dfa = new DirectFieldAccessor(retryTemplate); - SimpleRetryPolicy retryPolicy = (SimpleRetryPolicy) dfa.getPropertyValue("retryPolicy"); - ExponentialBackOffPolicy backOffPolicy = (ExponentialBackOffPolicy) dfa.getPropertyValue("backOffPolicy"); + SimpleRetryPolicy retryPolicy = (SimpleRetryPolicy) dfa + .getPropertyValue("retryPolicy"); + ExponentialBackOffPolicy backOffPolicy = (ExponentialBackOffPolicy) dfa + .getPropertyValue("backOffPolicy"); assertThat(retryPolicy.getMaxAttempts()).isEqualTo(4); assertThat(backOffPolicy.getInitialInterval()).isEqualTo(2000); assertThat(backOffPolicy.getMultiplier()).isEqualTo(1.5); @@ -427,10 +433,12 @@ public class RabbitAutoConfigurationTests { @Configuration @EnableRabbit protected static class EnableRabbitConfiguration { + } @Configuration protected static class NoEnableRabbitConfiguration { + } } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java index 34d928adcec..1be92f740a5 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfigurationTests.java @@ -214,7 +214,8 @@ public class CacheAutoConfigurationTests { @Test public void couchbaseCacheExplicit() { load(CouchbaseCacheConfiguration.class, "spring.cache.type=couchbase"); - CouchbaseCacheManager cacheManager = validateCacheManager(CouchbaseCacheManager.class); + CouchbaseCacheManager cacheManager = validateCacheManager( + CouchbaseCacheManager.class); assertThat(cacheManager.getCacheNames()).isEmpty(); } @@ -228,24 +229,29 @@ public class CacheAutoConfigurationTests { public void couchbaseCacheExplicitWithCaches() { load(CouchbaseCacheConfiguration.class, "spring.cache.type=couchbase", "spring.cache.cacheNames[0]=foo", "spring.cache.cacheNames[1]=bar"); - CouchbaseCacheManager cacheManager = validateCacheManager(CouchbaseCacheManager.class); + CouchbaseCacheManager cacheManager = validateCacheManager( + CouchbaseCacheManager.class); assertThat(cacheManager.getCacheNames()).containsOnly("foo", "bar"); Cache cache = cacheManager.getCache("foo"); assertThat(cache).isInstanceOf(CouchbaseCache.class); assertThat(((CouchbaseCache) cache).getTtl()).isEqualTo(0); - assertThat(((CouchbaseCache) cache).getNativeCache()).isEqualTo(this.context.getBean("bucket")); + assertThat(((CouchbaseCache) cache).getNativeCache()) + .isEqualTo(this.context.getBean("bucket")); } @Test public void couchbaseCacheExplicitWithTtl() { load(CouchbaseCacheConfiguration.class, "spring.cache.type=couchbase", - "spring.cache.cacheNames=foo,bar", "spring.cache.couchbase.expiration=2000"); - CouchbaseCacheManager cacheManager = validateCacheManager(CouchbaseCacheManager.class); + "spring.cache.cacheNames=foo,bar", + "spring.cache.couchbase.expiration=2000"); + CouchbaseCacheManager cacheManager = validateCacheManager( + CouchbaseCacheManager.class); assertThat(cacheManager.getCacheNames()).containsOnly("foo", "bar"); Cache cache = cacheManager.getCache("foo"); assertThat(cache).isInstanceOf(CouchbaseCache.class); assertThat(((CouchbaseCache) cache).getTtl()).isEqualTo(2000); - assertThat(((CouchbaseCache) cache).getNativeCache()).isEqualTo(this.context.getBean("bucket")); + assertThat(((CouchbaseCache) cache).getNativeCache()) + .isEqualTo(this.context.getBean("bucket")); } @Test @@ -789,7 +795,8 @@ public class CacheAutoConfigurationTests { } @Configuration - @Import({ CouchbaseCacheConfiguration.class, CacheManagerCustomizersConfiguration.class }) + @Import({ CouchbaseCacheConfiguration.class, + CacheManagerCustomizersConfiguration.class }) static class CouchbaseCacheAndCustomizersConfiguration { } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/AbstractCouchbaseAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/AbstractCouchbaseAutoConfigurationTests.java index 68be602657d..aa82f553e54 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/AbstractCouchbaseAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/AbstractCouchbaseAutoConfigurationTests.java @@ -23,6 +23,8 @@ import org.springframework.boot.test.EnvironmentTestUtils; import org.springframework.context.annotation.AnnotationConfigApplicationContext; /** + * Base class for {@link CouchbaseAutoConfiguration} tests. + * * @author Stephane Nicoll */ public abstract class AbstractCouchbaseAutoConfigurationTests { diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfigurationIntegrationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfigurationIntegrationTests.java index 34e7da3ca22..19778ed39ef 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfigurationIntegrationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfigurationIntegrationTests.java @@ -59,7 +59,6 @@ public class CouchbaseAutoConfigurationIntegrationTests assertThat(this.context.getBeansOfType(Bucket.class)).hasSize(2); } - @Configuration static class CustomConfiguration { diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfigurationTests.java index 3677d983562..9fab0a1fc85 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseAutoConfigurationTests.java @@ -33,7 +33,8 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Eddú Meléndez * @author Stephane Nicoll */ -public class CouchbaseAutoConfigurationTests extends AbstractCouchbaseAutoConfigurationTests { +public class CouchbaseAutoConfigurationTests + extends AbstractCouchbaseAutoConfigurationTests { @Rule public ExpectedException thrown = ExpectedException.none(); @@ -47,8 +48,7 @@ public class CouchbaseAutoConfigurationTests extends AbstractCouchbaseAutoConfig @Test public void bootstrapHostsNotRequiredIfCouchbaseConfigurerIsSet() { load(CouchbaseTestConfigurer.class); - assertThat(this.context.getBeansOfType(CouchbaseTestConfigurer.class)) - .hasSize(1); + assertThat(this.context.getBeansOfType(CouchbaseTestConfigurer.class)).hasSize(1); // No beans are going to be created assertNoCouchbaseBeans(); } @@ -56,8 +56,7 @@ public class CouchbaseAutoConfigurationTests extends AbstractCouchbaseAutoConfig @Test public void bootstrapHostsIgnoredIfCouchbaseConfigurerIsSet() { load(CouchbaseTestConfigurer.class, "spring.couchbase.bootstrapHosts=localhost"); - assertThat(this.context.getBeansOfType(CouchbaseTestConfigurer.class)) - .hasSize(1); + assertThat(this.context.getBeansOfType(CouchbaseTestConfigurer.class)).hasSize(1); assertNoCouchbaseBeans(); } @@ -114,11 +113,12 @@ public class CouchbaseAutoConfigurationTests extends AbstractCouchbaseAutoConfig assertThat(env.sslKeystorePassword()).isNull(); } - private DefaultCouchbaseEnvironment customizeEnv(String... environment) throws Exception { + private DefaultCouchbaseEnvironment customizeEnv(String... environment) + throws Exception { load(CouchbaseTestConfigurer.class, environment); CouchbaseProperties properties = this.context.getBean(CouchbaseProperties.class); - return (DefaultCouchbaseEnvironment) new CouchbaseAutoConfiguration.CouchbaseConfiguration(properties) - .couchbaseEnvironment(); + return (DefaultCouchbaseEnvironment) new CouchbaseAutoConfiguration.CouchbaseConfiguration( + properties).couchbaseEnvironment(); } } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseTestServer.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseTestServer.java index d078ec1b53b..ff5b810faef 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseTestServer.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/couchbase/CouchbaseTestServer.java @@ -25,14 +25,14 @@ import com.couchbase.client.java.env.CouchbaseEnvironment; import com.couchbase.client.java.env.DefaultCouchbaseEnvironment; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.junit.Assume; +import org.junit.AssumptionViolatedException; import org.junit.rules.TestRule; import org.junit.runner.Description; import org.junit.runners.model.Statement; /** - * {@link TestRule} for working with an optional Couchbase server. Expects - * a default {@link Bucket} with no password to be available on localhost. + * {@link TestRule} for working with an optional Couchbase server. Expects a default + * {@link Bucket} with no password to be available on localhost. * * @author Stephane Nicoll */ @@ -40,19 +40,20 @@ public class CouchbaseTestServer implements TestRule { private static final Log logger = LogFactory.getLog(CouchbaseTestServer.class); - private CouchbaseEnvironment env; + private CouchbaseEnvironment environment; private Cluster cluster; @Override public Statement apply(Statement base, Description description) { try { - this.env = DefaultCouchbaseEnvironment.create(); - this.cluster = CouchbaseCluster.create(this.env, "localhost"); + this.environment = DefaultCouchbaseEnvironment.create(); + this.cluster = CouchbaseCluster.create(this.environment, + "localhost"); testConnection(this.cluster); - return new CouchbaseStatement(base, this.env, this.cluster); + return new CouchbaseStatement(base, this.environment, this.cluster); } - catch (Exception e) { + catch (Exception ex) { logger.info("No couchbase server available"); return new SkipStatement(); } @@ -64,10 +65,10 @@ public class CouchbaseTestServer implements TestRule { } /** - * @return the couchbase env if any + * @return the Couchbase environment if any */ - public CouchbaseEnvironment getEnv() { - return this.env; + public CouchbaseEnvironment getCouchbaseEnvironment() { + return this.environment; } /** @@ -77,16 +78,18 @@ public class CouchbaseTestServer implements TestRule { return this.cluster; } - private static class CouchbaseStatement extends Statement { + private final Statement base; - private final CouchbaseEnvironment env; + + private final CouchbaseEnvironment environment; private final Cluster cluster; - CouchbaseStatement(Statement base, CouchbaseEnvironment env, Cluster cluster) { + CouchbaseStatement(Statement base, CouchbaseEnvironment environment, + Cluster cluster) { this.base = base; - this.env = env; + this.environment = environment; this.cluster = cluster; } @@ -98,10 +101,11 @@ public class CouchbaseTestServer implements TestRule { finally { try { this.cluster.disconnect(); - this.env.shutdownAsync(); + this.environment.shutdownAsync(); } catch (Exception ex) { - logger.warn("Exception while trying to cleanup couchbase resource", ex); + logger.warn("Exception while trying to cleanup couchbase resource", + ex); } } } @@ -111,8 +115,8 @@ public class CouchbaseTestServer implements TestRule { @Override public void evaluate() throws Throwable { - Assume.assumeTrue("Skipping test due to Couchbase " - + "not being available", false); + throw new AssumptionViolatedException( + "Skipping test due to Couchbase not being available"); } } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfigurationTests.java index 345d2614a57..f387ebcb2db 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseDataAutoConfigurationTests.java @@ -65,14 +65,15 @@ public class CouchbaseDataAutoConfigurationTests { @Test public void customConfiguration() { load(CustomCouchbaseConfiguration.class); - CouchbaseTemplate couchbaseTemplate = this.context.getBean(CouchbaseTemplate.class); - assertThat(couchbaseTemplate.getDefaultConsistency()).isEqualTo(Consistency.STRONGLY_CONSISTENT); + CouchbaseTemplate couchbaseTemplate = this.context + .getBean(CouchbaseTemplate.class); + assertThat(couchbaseTemplate.getDefaultConsistency()) + .isEqualTo(Consistency.STRONGLY_CONSISTENT); } @Test public void validatorIsPresent() { load(ValidatorConfiguration.class); - ValidatingCouchbaseEventListener listener = this.context .getBean(ValidatingCouchbaseEventListener.class); assertThat(new DirectFieldAccessor(listener).getPropertyValue("validator")) @@ -90,8 +91,7 @@ public class CouchbaseDataAutoConfigurationTests { @Test public void enableAutoIndex() { - load(CouchbaseTestConfigurer.class, - "spring.data.couchbase.auto-index=true"); + load(CouchbaseTestConfigurer.class, "spring.data.couchbase.auto-index=true"); IndexManager indexManager = this.context.getBean(IndexManager.class); assertThat(indexManager.isIgnoreViews()).isFalse(); assertThat(indexManager.isIgnoreN1qlPrimary()).isFalse(); @@ -115,13 +115,11 @@ public class CouchbaseDataAutoConfigurationTests { context.register(config); } context.register(PropertyPlaceholderAutoConfiguration.class, - CouchbaseAutoConfiguration.class, - CouchbaseDataAutoConfiguration.class); + CouchbaseAutoConfiguration.class, CouchbaseDataAutoConfiguration.class); context.refresh(); this.context = context; } - @Configuration @Import(CouchbaseTestConfigurer.class) static class ValidatorConfiguration { @@ -145,6 +143,7 @@ public class CouchbaseDataAutoConfigurationTests { protected Consistency getDefaultConsistency() { return Consistency.STRONGLY_CONSISTENT; } + } } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesAutoConfigurationTests.java index 9f633221409..2797c8996eb 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/couchbase/CouchbaseRepositoriesAutoConfigurationTests.java @@ -82,8 +82,7 @@ public class CouchbaseRepositoriesAutoConfigurationTests { context.register(config); } context.register(PropertyPlaceholderAutoConfiguration.class, - CouchbaseAutoConfiguration.class, - CouchbaseDataAutoConfiguration.class, + CouchbaseAutoConfiguration.class, CouchbaseDataAutoConfiguration.class, CouchbaseRepositoriesAutoConfiguration.class); context.refresh(); this.context = context; diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisRepositoriesAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisRepositoriesAutoConfigurationTests.java index 2c5fc4eb794..657c4b22e4d 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisRepositoriesAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisRepositoriesAutoConfigurationTests.java @@ -43,8 +43,7 @@ public class RedisRepositoriesAutoConfigurationTests { @Rule public RedisTestServer redis = new RedisTestServer(); - private AnnotationConfigApplicationContext context - = new AnnotationConfigApplicationContext(); + private AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); @After public void close() { @@ -53,8 +52,8 @@ public class RedisRepositoriesAutoConfigurationTests { @Test public void testDefaultRepositoryConfiguration() { - this.context.register(TestConfiguration.class, - RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class, + this.context.register(TestConfiguration.class, RedisAutoConfiguration.class, + RedisRepositoriesAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class); this.context.refresh(); assertThat(this.context.getBean(CityRepository.class)).isNotNull(); @@ -62,8 +61,7 @@ public class RedisRepositoriesAutoConfigurationTests { @Test public void testNoRepositoryConfiguration() { - this.context.register(EmptyConfiguration.class, - RedisAutoConfiguration.class, + this.context.register(EmptyConfiguration.class, RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class); this.context.refresh(); @@ -72,8 +70,7 @@ public class RedisRepositoriesAutoConfigurationTests { @Test public void doesNotTriggerDefaultRepositoryDetectionIfCustomized() { - this.context.register(CustomizedConfiguration.class, - RedisAutoConfiguration.class, + this.context.register(CustomizedConfiguration.class, RedisAutoConfiguration.class, RedisRepositoriesAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class); this.context.refresh(); diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfigurationTests.java index f64ba7f8cb8..21c40daf303 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfigurationTests.java @@ -70,12 +70,12 @@ public class H2ConsoleAutoConfigurationTests { "spring.h2.console.enabled:true"); this.context.refresh(); assertThat(this.context.getBeansOfType(ServletRegistrationBean.class)).hasSize(1); - assertThat(this.context.getBean(ServletRegistrationBean.class).getUrlMappings()) - .contains("/h2-console/*"); - assertThat(this.context.getBean(ServletRegistrationBean.class).getInitParameters()). - doesNotContainKey("trace"); - assertThat(this.context.getBean(ServletRegistrationBean.class).getInitParameters()). - doesNotContainKey("webAllowOthers"); + ServletRegistrationBean registrationBean = this.context + .getBean(ServletRegistrationBean.class); + assertThat(registrationBean.getUrlMappings()).contains("/h2-console/*"); + assertThat(registrationBean.getInitParameters()).doesNotContainKey("trace"); + assertThat(registrationBean.getInitParameters()) + .doesNotContainKey("webAllowOthers"); } @Test @@ -114,17 +114,16 @@ public class H2ConsoleAutoConfigurationTests { public void customInitParameters() { this.context.register(H2ConsoleAutoConfiguration.class); EnvironmentTestUtils.addEnvironment(this.context, - "spring.h2.console.enabled:true", - "spring.h2.console.settings.trace=true", + "spring.h2.console.enabled:true", "spring.h2.console.settings.trace=true", "spring.h2.console.settings.webAllowOthers=true"); this.context.refresh(); assertThat(this.context.getBeansOfType(ServletRegistrationBean.class)).hasSize(1); - assertThat(this.context.getBean(ServletRegistrationBean.class).getUrlMappings()) - .contains("/h2-console/*"); - assertThat(this.context.getBean(ServletRegistrationBean.class).getInitParameters()). - containsEntry("trace", ""); - assertThat(this.context.getBean(ServletRegistrationBean.class).getInitParameters()). - containsEntry("webAllowOthers", ""); + ServletRegistrationBean registrationBean = this.context + .getBean(ServletRegistrationBean.class); + assertThat(registrationBean.getUrlMappings()).contains("/h2-console/*"); + assertThat(registrationBean.getInitParameters()).containsEntry("trace", ""); + assertThat(registrationBean.getInitParameters()).containsEntry("webAllowOthers", + ""); } } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/info/ProjectInfoAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/info/ProjectInfoAutoConfigurationTests.java index 4a4385e00c5..076ed3b364b 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/info/ProjectInfoAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/info/ProjectInfoAutoConfigurationTests.java @@ -51,7 +51,8 @@ public class ProjectInfoAutoConfigurationTests { @Test public void gitPropertiesUnavailableIfResourceNotAvailable() { load(); - Map beans = this.context.getBeansOfType(GitProperties.class); + Map beans = this.context + .getBeansOfType(GitProperties.class); assertThat(beans).hasSize(0); } @@ -61,7 +62,8 @@ public class ProjectInfoAutoConfigurationTests { "spring.git.properties=classpath:/org/springframework/boot/autoconfigure/info/git-no-data.properties"); GitProperties gitProperties = this.context.getBean(GitProperties.class); assertThat(gitProperties.getBranch()).isNull(); - assertThat(gitProperties.getCommitId()).isEqualTo("f95038ec09e29d8f91982fd1cbcc0f3b131b1d0a"); + assertThat(gitProperties.getCommitId()) + .isEqualTo("f95038ec09e29d8f91982fd1cbcc0f3b131b1d0a"); assertThat(gitProperties.getCommitTime().getTime()).isEqualTo(1456995720000L); } @@ -70,7 +72,8 @@ public class ProjectInfoAutoConfigurationTests { load("spring.git.properties=classpath:/org/springframework/boot/autoconfigure/info/git-epoch.properties"); GitProperties gitProperties = this.context.getBean(GitProperties.class); assertThat(gitProperties.getBranch()).isEqualTo("master"); - assertThat(gitProperties.getCommitId()).isEqualTo("5009933788f5f8c687719de6a697074ff80b1b69"); + assertThat(gitProperties.getCommitId()) + .isEqualTo("5009933788f5f8c687719de6a697074ff80b1b69"); assertThat(gitProperties.getCommitTime().getTime()).isEqualTo(1457103850000L); } @@ -114,7 +117,8 @@ public class ProjectInfoAutoConfigurationTests { @Test public void buildPropertiesCustomInvalidLocation() { load("spring.info.build.location=classpath:/org/acme/no-build.properties"); - Map beans = this.context.getBeansOfType(BuildProperties.class); + Map beans = this.context + .getBeansOfType(BuildProperties.class); assertThat(beans).hasSize(0); } @@ -122,7 +126,8 @@ public class ProjectInfoAutoConfigurationTests { public void buildPropertiesFallbackWithBuildInfoBean() { load(CustomInfoPropertiesConfiguration.class); BuildProperties buildProperties = this.context.getBean(BuildProperties.class); - assertThat(buildProperties).isSameAs(this.context.getBean("customBuildProperties")); + assertThat(buildProperties) + .isSameAs(this.context.getBean("customBuildProperties")); } private void load(String... environment) { diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQAutoConfigurationTests.java index ed18e0ad3ad..beba743ad99 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQAutoConfigurationTests.java @@ -21,7 +21,6 @@ import javax.jms.JMSException; import org.apache.activemq.ActiveMQConnectionFactory; import org.apache.activemq.pool.PooledConnectionFactory; - import org.junit.Test; import org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration; @@ -64,21 +63,22 @@ public class ActiveMQAutoConfigurationTests { @Test public void customPooledConnectionFactoryConfiguration() { - load(EmptyConfiguration.class, - "spring.activemq.pool.enabled:true", - "spring.activemq.pool.maxConnections:256", - "spring.activemq.pool.idleTimeout:512", - "spring.activemq.pool.expiryTimeout:4096", - "spring.activemq.pool.configuration.maximumActiveSessionPerConnection:1024", - "spring.activemq.pool.configuration.timeBetweenExpirationCheckMillis:2048"); - ConnectionFactory connectionFactory = this.context.getBean(ConnectionFactory.class); + load(EmptyConfiguration.class, "spring.activemq.pool.enabled:true", + "spring.activemq.pool.maxConnections:256", + "spring.activemq.pool.idleTimeout:512", + "spring.activemq.pool.expiryTimeout:4096", + "spring.activemq.pool.configuration.maximumActiveSessionPerConnection:1024", + "spring.activemq.pool.configuration.timeBetweenExpirationCheckMillis:2048"); + ConnectionFactory connectionFactory = this.context + .getBean(ConnectionFactory.class); assertThat(connectionFactory).isInstanceOf(PooledConnectionFactory.class); - PooledConnectionFactory pooledConnectionFactory = (PooledConnectionFactory) connectionFactory; assertThat(pooledConnectionFactory.getMaxConnections()).isEqualTo(256); assertThat(pooledConnectionFactory.getIdleTimeout()).isEqualTo(512); - assertThat(pooledConnectionFactory.getMaximumActiveSessionPerConnection()).isEqualTo(1024); - assertThat(pooledConnectionFactory.getTimeBetweenExpirationCheckMillis()).isEqualTo(2048); + assertThat(pooledConnectionFactory.getMaximumActiveSessionPerConnection()) + .isEqualTo(1024); + assertThat(pooledConnectionFactory.getTimeBetweenExpirationCheckMillis()) + .isEqualTo(2048); assertThat(pooledConnectionFactory.getExpiryTimeout()).isEqualTo(4096); } @@ -119,6 +119,7 @@ public class ActiveMQAutoConfigurationTests { public ConnectionFactory connectionFactory() { return mock(ConnectionFactory.class); } + } } diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQPropertiesTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQPropertiesTests.java index fe032a1c4ae..63eae653283 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQPropertiesTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jms/activemq/ActiveMQPropertiesTests.java @@ -21,7 +21,7 @@ import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; /** - * Tests for {@link ActiveMQProperties} and ActiveMQConnectionFactoryFactory. + * Tests for {@link ActiveMQProperties} and {@link ActiveMQConnectionFactoryFactory}. * * @author Stephane Nicoll * @author Aurélien Leboulanger diff --git a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc index 1ebd0dd123e..a31fa695b78 100644 --- a/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc +++ b/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc @@ -3231,6 +3231,7 @@ SSL support: Check the `spring.couchbase.env.*` properties for more details. + [[boot-features-spring-data-couchbase-repositories]] ==== Spring Data Couchbase repositories Spring Data includes repository support for Couchbase. For complete details of Spring @@ -3266,6 +3267,7 @@ If you add a `@Bean` of your own of type `CouchbaseTemplate` named `couchbaseTem will replace the default. + [[boot-features-caching]] == Caching The Spring Framework provides support for transparently adding caching to an application. @@ -3947,6 +3949,8 @@ You can modify this behavior in two ways; set the `defaultRequeueRejected` prope will be attempted; or, throw an `AmqpRejectAndDontRequeueException` to signal the message should be rejected. This is the mechanism used when retries are enabled and the maximum delivery attempts is reached. + + [[boot-features-email]] == Sending email The Spring Framework provides an easy abstraction for sending email using the diff --git a/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildInfoMojo.java b/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildInfoMojo.java index a3f4ab16915..0df02016c9c 100644 --- a/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildInfoMojo.java +++ b/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildInfoMojo.java @@ -20,6 +20,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; +import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; @@ -34,7 +35,8 @@ import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; /** - * Generate a {@code build.properties} file based the content of the current {@link MavenProject}. + * Generate a {@code build.properties} file based the content of the current + * {@link MavenProject}. * * @author Stephane Nicoll * @since 1.4.0 @@ -64,27 +66,30 @@ public class BuildInfoMojo extends AbstractMojo { @Override public void execute() throws MojoExecutionException, MojoFailureException { Properties properties = createBuildInfo(); - FileOutputStream fos = null; try { createFileIfNecessary(this.outputFile); - fos = new FileOutputStream(this.outputFile); - properties.store(fos, "Properties"); + FileOutputStream outputStream = new FileOutputStream(this.outputFile); + try { + properties.store(outputStream, "Properties"); + } + finally { + closeQuietly(outputStream); + } } - catch (FileNotFoundException e) { - throw new MojoExecutionException(e.getMessage(), e); + catch (FileNotFoundException ex) { + throw new MojoExecutionException(ex.getMessage(), ex); } catch (IOException e) { throw new MojoExecutionException(e.getMessage(), e); } - finally { - try { - if (fos != null) { - fos.close(); - } - } - catch (IOException e) { - getLog().error("Error closing FileOutputStream: " + fos); - } + } + + private void closeQuietly(OutputStream outputStream) { + try { + outputStream.close(); + } + catch (IOException ex) { + getLog().error("Error closing FileOutputStream: " + outputStream); } } @@ -108,7 +113,8 @@ public class BuildInfoMojo extends AbstractMojo { return sdf.format(date); } - private void createFileIfNecessary(File file) throws MojoExecutionException, IOException { + private void createFileIfNecessary(File file) + throws MojoExecutionException, IOException { if (file.exists()) { return; } diff --git a/spring-boot-tools/spring-boot-maven-plugin/src/test/java/org/springframework/boot/maven/Verify.java b/spring-boot-tools/spring-boot-maven-plugin/src/test/java/org/springframework/boot/maven/Verify.java index b7e588d1eff..85c3eee88e6 100644 --- a/spring-boot-tools/spring-boot-maven-plugin/src/test/java/org/springframework/boot/maven/Verify.java +++ b/spring-boot-tools/spring-boot-maven-plugin/src/test/java/org/springframework/boot/maven/Verify.java @@ -84,7 +84,6 @@ public final class Verify { return properties; } - public static class ArchiveVerifier { private final ZipFile zipFile; diff --git a/spring-boot/src/main/java/org/springframework/boot/bind/PropertySourcesBinder.java b/spring-boot/src/main/java/org/springframework/boot/bind/PropertySourcesBinder.java index 212d7e8a28b..7186b38fe43 100644 --- a/spring-boot/src/main/java/org/springframework/boot/bind/PropertySourcesBinder.java +++ b/spring-boot/src/main/java/org/springframework/boot/bind/PropertySourcesBinder.java @@ -81,8 +81,7 @@ public class PropertySourcesBinder { } /** - * Extract the keys using the specified {@code prefix}. The - * prefix won't be included. + * Extract the keys using the specified {@code prefix}. The prefix won't be included. *

* Any key that starts with the {@code prefix} will be included * @param prefix the prefix to use @@ -119,7 +118,8 @@ public class PropertySourcesBinder { } } - private static PropertySources createPropertySources(PropertySource propertySource) { + private static PropertySources createPropertySources( + PropertySource propertySource) { MutablePropertySources propertySources = new MutablePropertySources(); propertySources.addLast(propertySource); return propertySources; diff --git a/spring-boot/src/main/java/org/springframework/boot/context/properties/ConfigurationProperties.java b/spring-boot/src/main/java/org/springframework/boot/context/properties/ConfigurationProperties.java index c142d41dda0..dbf5a1fba59 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/properties/ConfigurationProperties.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/properties/ConfigurationProperties.java @@ -90,7 +90,8 @@ public @interface ConfigurationProperties { * defined in the environment. * @return the path (or paths) of resources to bind to * @see #merge() - * @deprecated configure the environment with those additional locations instead + * @deprecated since 1.4 in favor of configuring the environment directly with + * additional locations */ @Deprecated String[] locations() default {}; @@ -100,7 +101,8 @@ public @interface ConfigurationProperties { * merged with the default configuration. * @return the flag value (default true) * @see #locations() - * @deprecated as {@link #locations()} is deprecated as well + * @deprecated since 1.4 along with {@link #locations()} in favor of configuring the + * environment directly with additional locations */ @Deprecated boolean merge() default true; diff --git a/spring-boot/src/main/java/org/springframework/boot/context/web/LocalServerPort.java b/spring-boot/src/main/java/org/springframework/boot/context/web/LocalServerPort.java index 3b11b297a0c..5b08632c264 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/web/LocalServerPort.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/web/LocalServerPort.java @@ -16,6 +16,7 @@ package org.springframework.boot.context.web; +import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -24,18 +25,19 @@ import java.lang.annotation.Target; import org.springframework.beans.factory.annotation.Value; /** - * Annotation at the field or method/constructor parameter level - * that injects the HTTP port that got allocated at runtime. - *

- * Convenient meta-annotation replacing {@code @LocalServerPort}. + * Annotation at the field or method/constructor parameter level that injects the HTTP + * port that got allocated at runtime. Privdes a convenient alternative for + * @Value("${local.server.port}"). * * @author Anand Shah * @author Stephane Nicoll * @since 1.4.0 */ -@Value("${local.server.port}") -@Target({ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE}) +@Target({ ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, + ElementType.ANNOTATION_TYPE }) @Retention(RetentionPolicy.RUNTIME) +@Documented +@Value("${local.server.port}") public @interface LocalServerPort { } diff --git a/spring-boot/src/main/java/org/springframework/boot/context/web/ServerPortInfoApplicationContextInitializer.java b/spring-boot/src/main/java/org/springframework/boot/context/web/ServerPortInfoApplicationContextInitializer.java index ddc84866a47..cfbb7c46656 100644 --- a/spring-boot/src/main/java/org/springframework/boot/context/web/ServerPortInfoApplicationContextInitializer.java +++ b/spring-boot/src/main/java/org/springframework/boot/context/web/ServerPortInfoApplicationContextInitializer.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2015 the original author or authors. + * Copyright 2012-2016 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -31,6 +31,7 @@ import org.springframework.core.env.ConfigurableEnvironment; import org.springframework.core.env.Environment; import org.springframework.core.env.MapPropertySource; import org.springframework.core.env.MutablePropertySources; +import org.springframework.core.env.PropertySource; import org.springframework.util.StringUtils; /** @@ -57,12 +58,14 @@ public class ServerPortInfoApplicationContextInitializer public void initialize(ConfigurableApplicationContext applicationContext) { applicationContext.addApplicationListener( new ApplicationListener() { + @Override public void onApplicationEvent( EmbeddedServletContainerInitializedEvent event) { ServerPortInfoApplicationContextInitializer.this .onApplicationEvent(event); } + }); } @@ -83,26 +86,24 @@ public class ServerPortInfoApplicationContextInitializer private void setPortProperty(ApplicationContext context, String propertyName, int port) { if (context instanceof ConfigurableApplicationContext) { - ConfigurableEnvironment environment = ((ConfigurableApplicationContext) context) - .getEnvironment(); - MutablePropertySources sources = environment.getPropertySources(); - Map map; - if (!sources.contains("server.ports")) { - map = new HashMap(); - MapPropertySource source = new MapPropertySource("server.ports", map); - sources.addFirst(source); - } - else { - @SuppressWarnings("unchecked") - Map value = (Map) sources - .get("server.ports").getSource(); - map = value; - } - map.put(propertyName, port); + setPortProperty(((ConfigurableApplicationContext) context).getEnvironment(), + propertyName, port); } if (context.getParent() != null) { setPortProperty(context.getParent(), propertyName, port); } } + @SuppressWarnings("unchecked") + private void setPortProperty(ConfigurableEnvironment environment, String propertyName, + int port) { + MutablePropertySources sources = environment.getPropertySources(); + PropertySource source = sources.get("server.ports"); + if (source == null) { + source = new MapPropertySource("server.ports", new HashMap()); + sources.addFirst(source); + } + ((Map) source.getSource()).put(propertyName, port); + } + } diff --git a/spring-boot/src/main/java/org/springframework/boot/info/BuildProperties.java b/spring-boot/src/main/java/org/springframework/boot/info/BuildProperties.java index 6b37863e731..2c3ced5763b 100644 --- a/spring-boot/src/main/java/org/springframework/boot/info/BuildProperties.java +++ b/spring-boot/src/main/java/org/springframework/boot/info/BuildProperties.java @@ -72,8 +72,8 @@ public class BuildProperties extends InfoProperties { /** * Return the timestamp of the build or {@code null}. *

- * If the original value could not be parsed properly, it is still available with - * the {@code time} key. + * If the original value could not be parsed properly, it is still available with the + * {@code time} key. * @return the build time * @see #get(String) */ diff --git a/spring-boot/src/main/java/org/springframework/boot/info/GitProperties.java b/spring-boot/src/main/java/org/springframework/boot/info/GitProperties.java index 3b8e7deb27a..2a9847e4bce 100644 --- a/spring-boot/src/main/java/org/springframework/boot/info/GitProperties.java +++ b/spring-boot/src/main/java/org/springframework/boot/info/GitProperties.java @@ -54,16 +54,18 @@ public class GitProperties extends InfoProperties { * @return the short commit id */ public String getShortCommitId() { - String commitId = getCommitId(); - return commitId == null ? null - : (commitId.length() > 7 ? commitId.substring(0, 7) : commitId); + String id = getCommitId(); + if (id == null) { + return null; + } + return (id.length() > 7 ? id.substring(0, 7) : id); } /** * Return the timestamp of the commit or {@code null}. *

- * If the original value could not be parsed properly, it is still available with - * the {@code commit.time} key. + * If the original value could not be parsed properly, it is still available with the + * {@code commit.time} key. * @return the commit time * @see #get(String) */ @@ -72,12 +74,12 @@ public class GitProperties extends InfoProperties { } private static Properties processEntries(Properties properties) { - coerceDate(properties, "commit.time"); - coerceDate(properties, "build.time"); + coercePropertyToEpoch(properties, "commit.time"); + coercePropertyToEpoch(properties, "build.time"); return properties; } - private static void coerceDate(Properties properties, String key) { + private static void coercePropertyToEpoch(Properties properties, String key) { String value = properties.getProperty(key); if (value != null) { properties.setProperty(key, coerceToEpoch(value)); @@ -85,9 +87,9 @@ public class GitProperties extends InfoProperties { } /** - * Attempt to convert the specified value to epoch time. Git properties - * information are known to be specified either as epoch time in seconds - * or using a specific date format. + * Attempt to convert the specified value to epoch time. Git properties information + * are known to be specified either as epoch time in seconds or using a specific date + * format. * @param s the value to coerce to * @return the epoch time in milliseconds or the original value if it couldn't be * converted @@ -110,7 +112,7 @@ public class GitProperties extends InfoProperties { try { return Long.parseLong(s) * 1000; } - catch (NumberFormatException e) { + catch (NumberFormatException ex) { return null; } } diff --git a/spring-boot/src/main/java/org/springframework/boot/info/InfoProperties.java b/spring-boot/src/main/java/org/springframework/boot/info/InfoProperties.java index 84edba503a3..6b6072a8cbd 100644 --- a/spring-boot/src/main/java/org/springframework/boot/info/InfoProperties.java +++ b/spring-boot/src/main/java/org/springframework/boot/info/InfoProperties.java @@ -17,8 +17,8 @@ package org.springframework.boot.info; import java.util.Date; -import java.util.Enumeration; import java.util.Iterator; +import java.util.Map; import java.util.Properties; import org.springframework.core.env.PropertiesPropertySource; @@ -26,8 +26,8 @@ import org.springframework.core.env.PropertySource; import org.springframework.util.Assert; /** - * Base class for components exposing unstructured data with dedicated methods for - * well known keys. + * Base class for components exposing unstructured data with dedicated methods for well + * known keys. * * @author Stephane Nicoll * @since 1.4.0 @@ -55,10 +55,8 @@ public class InfoProperties implements Iterable { } /** - * Return the value of the specified property as a {@link Date} or {@code null} - *

- * Return {@code null} if the value is not a valid {@link Long} representing an - * epoch time. + * Return the value of the specified property as a {@link Date} or {@code null} if the + * value is not a valid {@link Long} representation of an epoch time. * @param key the id of the property * @return the property value */ @@ -66,10 +64,9 @@ public class InfoProperties implements Iterable { String s = get(key); if (s != null) { try { - long epoch = Long.parseLong(s); - return new Date(epoch); + return new Date(Long.parseLong(s)); } - catch (NumberFormatException e) { + catch (NumberFormatException ex) { // Not valid epoch time } } @@ -86,15 +83,42 @@ public class InfoProperties implements Iterable { * @return a {@link PropertySource} */ public PropertySource toPropertySource() { - return new PropertiesPropertySource(getClass().getSimpleName(), copy(this.entries)); + return new PropertiesPropertySource(getClass().getSimpleName(), + copy(this.entries)); } - private static Properties copy(Properties properties) { + private Properties copy(Properties properties) { Properties copy = new Properties(); copy.putAll(properties); return copy; } + private final class PropertiesIterator implements Iterator { + + private final Iterator> iterator; + + private PropertiesIterator(Properties properties) { + this.iterator = properties.entrySet().iterator(); + } + + @Override + public boolean hasNext() { + return this.iterator.hasNext(); + } + + @Override + public Entry next() { + Map.Entry entry = this.iterator.next(); + return new Entry((String) entry.getKey(), (String) entry.getValue()); + } + + @Override + public void remove() { + throw new UnsupportedOperationException("InfoProperties are immutable."); + } + + } + /** * Property entry. */ @@ -119,33 +143,4 @@ public class InfoProperties implements Iterable { } - private final class PropertiesIterator implements Iterator { - - private final Properties properties; - - private final Enumeration keys; - - private PropertiesIterator(Properties properties) { - this.properties = properties; - this.keys = this.properties.keys(); - } - - @Override - public boolean hasNext() { - return this.keys.hasMoreElements(); - } - - @Override - public Entry next() { - String key = (String) this.keys.nextElement(); - return new Entry(key, this.properties.getProperty(key)); - } - - @Override - public void remove() { - throw new UnsupportedOperationException("InfoProperties are immutable."); - } - - } - } diff --git a/spring-boot/src/main/java/org/springframework/boot/logging/LoggingApplicationListener.java b/spring-boot/src/main/java/org/springframework/boot/logging/LoggingApplicationListener.java index 537bbed3448..169a8c362e1 100644 --- a/spring-boot/src/main/java/org/springframework/boot/logging/LoggingApplicationListener.java +++ b/spring-boot/src/main/java/org/springframework/boot/logging/LoggingApplicationListener.java @@ -47,10 +47,9 @@ import org.springframework.util.StringUtils; /** * An {@link ApplicationListener} that configures the {@link LoggingSystem}. If the - * environment contains a {@code logging.config} property it will be used to - * bootstrap the logging system, otherwise a default configuration is used. Regardless, - * logging levels will be customized if the environment contains {@code logging.level.*} - * entries. + * environment contains a {@code logging.config} property it will be used to bootstrap the + * logging system, otherwise a default configuration is used. Regardless, logging levels + * will be customized if the environment contains {@code logging.level.*} entries. *

* By default, log output is only written to the console. If a log file is required the * {@code logging.path} and {@code logging.file} properties can be used. @@ -295,7 +294,7 @@ public class LoggingApplicationListener implements GenericApplicationListener { private boolean isSet(ConfigurableEnvironment environment, String property) { String value = environment.getProperty(property); - return !(value == null || value.equals("false")); + return (value != null && !value.equals("false")); } private void initializeSystem(ConfigurableEnvironment environment, diff --git a/spring-boot/src/test/java/org/springframework/boot/bind/PropertySourcesBinderTests.java b/spring-boot/src/test/java/org/springframework/boot/bind/PropertySourcesBinderTests.java index 5e50215fc78..0cebf86194d 100644 --- a/spring-boot/src/test/java/org/springframework/boot/bind/PropertySourcesBinderTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/bind/PropertySourcesBinderTests.java @@ -37,7 +37,8 @@ public class PropertySourcesBinderTests { @Test public void extractAllWithPrefix() { EnvironmentTestUtils.addEnvironment(this.env, "foo.first=1", "foo.second=2"); - Map content = new PropertySourcesBinder(this.env).extractAll("foo"); + Map content = new PropertySourcesBinder(this.env) + .extractAll("foo"); assertThat(content.get("first")).isEqualTo("1"); assertThat(content.get("second")).isEqualTo("2"); assertThat(content).hasSize(2); @@ -46,7 +47,8 @@ public class PropertySourcesBinderTests { @Test @SuppressWarnings("unchecked") public void extractNoPrefix() { - EnvironmentTestUtils.addEnvironment(this.env, "foo.ctx.first=1", "foo.ctx.second=2"); + EnvironmentTestUtils.addEnvironment(this.env, "foo.ctx.first=1", + "foo.ctx.second=2"); Map content = new PropertySourcesBinder(this.env).extractAll(""); assertThat(content.get("foo")).isInstanceOf(Map.class); Map foo = (Map) content.get("foo"); @@ -67,8 +69,9 @@ public class PropertySourcesBinderTests { assertThat(bean.getCounter()).isEqualTo(42); } - + @SuppressWarnings("unused") private static class TestBean { + private String name; private Integer counter; diff --git a/spring-boot/src/test/java/org/springframework/boot/context/web/LocalServerPortTests.java b/spring-boot/src/test/java/org/springframework/boot/context/web/LocalServerPortTests.java new file mode 100644 index 00000000000..45ca5285ce3 --- /dev/null +++ b/spring-boot/src/test/java/org/springframework/boot/context/web/LocalServerPortTests.java @@ -0,0 +1,55 @@ +/* + * Copyright 2012-2016 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.context.web; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Tests for {@link LocalServerPort}. + * + * @author Anand Shah + * @author Phillip Webb + */ +@RunWith(SpringRunner.class) +@TestPropertySource(properties = "local.server.port=8181") +public class LocalServerPortTests { + + @Value("${local.server.port}") + private String fromValue; + + @LocalServerPort + private String fromAnnotation; + + @Test + public void testLocalServerPortAnnotation() { + assertThat(this.fromAnnotation).isNotNull().isEqualTo(this.fromValue); + } + + @Configuration + static class Config { + + } + +} diff --git a/spring-boot/src/test/java/org/springframework/boot/info/BuildPropertiesTests.java b/spring-boot/src/test/java/org/springframework/boot/info/BuildPropertiesTests.java index 59ae0438e01..8e00eec0bbb 100644 --- a/spring-boot/src/test/java/org/springframework/boot/info/BuildPropertiesTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/info/BuildPropertiesTests.java @@ -31,8 +31,8 @@ public class BuildPropertiesTests { @Test public void basicInfo() { - BuildProperties properties = new BuildProperties(createProperties( - "com.example", "demo", "0.0.1", "2016-03-04T14:36:33+0100")); + BuildProperties properties = new BuildProperties(createProperties("com.example", + "demo", "0.0.1", "2016-03-04T14:36:33+0100")); assertThat(properties.getGroup()).isEqualTo("com.example"); assertThat(properties.getArtifact()).isEqualTo("demo"); assertThat(properties.getVersion()).isEqualTo("0.0.1"); diff --git a/spring-boot/src/test/java/org/springframework/boot/info/GitPropertiesTests.java b/spring-boot/src/test/java/org/springframework/boot/info/GitPropertiesTests.java index 13bd2453015..8c79ab270a1 100644 --- a/spring-boot/src/test/java/org/springframework/boot/info/GitPropertiesTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/info/GitPropertiesTests.java @@ -81,7 +81,8 @@ public class GitPropertiesTests { assertThat(properties.getShortCommitId()).isEqualTo("abc"); } - private static Properties createProperties(String branch, String commitId, String commitTime) { + private static Properties createProperties(String branch, String commitId, + String commitTime) { Properties properties = new Properties(); properties.put("branch", branch); properties.put("commit.id", commitId); diff --git a/spring-boot/src/test/java/org/springframework/boot/info/InfoPropertiesTests.java b/spring-boot/src/test/java/org/springframework/boot/info/InfoPropertiesTests.java index ddb924653ab..2920f3413dc 100644 --- a/spring-boot/src/test/java/org/springframework/boot/info/InfoPropertiesTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/info/InfoPropertiesTests.java @@ -86,6 +86,7 @@ public class InfoPropertiesTests { MyInfoProperties(Properties entries) { super(entries); } + } } diff --git a/spring-boot/src/test/java/org/springframework/boot/testutil/ClassPathExclusions.java b/spring-boot/src/test/java/org/springframework/boot/testutil/ClassPathExclusions.java index ec44d407d6c..3781a38ec78 100644 --- a/spring-boot/src/test/java/org/springframework/boot/testutil/ClassPathExclusions.java +++ b/spring-boot/src/test/java/org/springframework/boot/testutil/ClassPathExclusions.java @@ -37,7 +37,6 @@ public @interface ClassPathExclusions { * path. Matching is performed against an entry's {@link File#getName() file name}. * For example, to exclude Hibernate Validator from the classpath, * {@code "hibernate-validator-*.jar"} can be used. - * * @return the exclusion patterns */ String[] value(); diff --git a/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunner.java b/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunner.java index fc86a8aec7c..f5c80bdd97d 100644 --- a/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunner.java +++ b/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunner.java @@ -47,36 +47,15 @@ import org.springframework.util.StringUtils; */ public class FilteredClassPathRunner extends BlockJUnit4ClassRunner { - public FilteredClassPathRunner(Class klass) throws InitializationError { - super(klass); + public FilteredClassPathRunner(Class testClass) throws InitializationError { + super(testClass); } @Override protected TestClass createTestClass(Class testClass) { try { - final ClassLoader classLoader = createTestClassLoader(testClass); - return new TestClass(classLoader.loadClass(testClass.getName())) { - - @SuppressWarnings("unchecked") - @Override - public List getAnnotatedMethods( - Class annotationClass) { - List methods = new ArrayList(); - try { - for (FrameworkMethod frameworkMethod : super.getAnnotatedMethods( - (Class) classLoader - .loadClass(annotationClass.getName()))) { - methods.add(new CustomTcclFrameworkMethod(classLoader, - frameworkMethod.getMethod())); - } - return methods; - } - catch (ClassNotFoundException ex) { - throw new RuntimeException(ex); - } - } - - }; + ClassLoader classLoader = createTestClassLoader(testClass); + return new FilteredTestClass(classLoader, testClass.getName()); } catch (Exception ex) { throw new IllegalStateException(ex); @@ -136,6 +115,9 @@ public class FilteredClassPathRunner extends BlockJUnit4ClassRunner { return filteredUrls.toArray(new URL[filteredUrls.size()]); } + /** + * Filter for class path entries. + */ private static final class ClassPathEntryFilter { private final List exclusions; @@ -163,25 +145,75 @@ public class FilteredClassPathRunner extends BlockJUnit4ClassRunner { } } - private static final class CustomTcclFrameworkMethod extends FrameworkMethod { + /** + * Filtered version of JUnit's {@link TestClass}. + */ + private static final class FilteredTestClass extends TestClass { - private final ClassLoader customTccl; + private final ClassLoader classLoader; - private CustomTcclFrameworkMethod(ClassLoader customTccl, Method method) { + FilteredTestClass(ClassLoader classLoader, String testClassName) + throws ClassNotFoundException { + super(classLoader.loadClass(testClassName)); + this.classLoader = classLoader; + } + + @Override + public List getAnnotatedMethods( + Class annotationClass) { + try { + return getAnnotatedMethods(annotationClass.getName()); + } + catch (ClassNotFoundException ex) { + throw new RuntimeException(ex); + } + } + + @SuppressWarnings("unchecked") + private List getAnnotatedMethods(String annotationClassName) + throws ClassNotFoundException { + Class annotationClass = (Class) this.classLoader + .loadClass(annotationClassName); + List methods = super.getAnnotatedMethods(annotationClass); + return wrapFrameworkMethods(methods); + } + + private List wrapFrameworkMethods( + List methods) { + List wrapped = new ArrayList( + methods.size()); + for (FrameworkMethod frameworkMethod : methods) { + wrapped.add(new FilteredFrameworkMethod(this.classLoader, + frameworkMethod.getMethod())); + } + return wrapped; + } + + } + + /** + * Filtered version of JUnit's {@link FrameworkMethod}. + */ + private static final class FilteredFrameworkMethod extends FrameworkMethod { + + private final ClassLoader classLoader; + + private FilteredFrameworkMethod(ClassLoader classLoader, Method method) { super(method); - this.customTccl = customTccl; + this.classLoader = classLoader; } @Override public Object invokeExplosively(Object target, Object... params) throws Throwable { - ClassLoader originalTccl = Thread.currentThread().getContextClassLoader(); - Thread.currentThread().setContextClassLoader(this.customTccl); + ClassLoader originalClassLoader = Thread.currentThread() + .getContextClassLoader(); + Thread.currentThread().setContextClassLoader(this.classLoader); try { return super.invokeExplosively(target, params); } finally { - Thread.currentThread().setContextClassLoader(originalTccl); + Thread.currentThread().setContextClassLoader(originalClassLoader); } } diff --git a/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunnerTests.java b/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunnerTests.java index af010d29acd..73ef93cb801 100644 --- a/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunnerTests.java +++ b/spring-boot/src/test/java/org/springframework/boot/testutil/FilteredClassPathRunnerTests.java @@ -30,18 +30,18 @@ import static org.assertj.core.api.Assertions.assertThat; @ClassPathExclusions("hibernate-validator-*.jar") public class FilteredClassPathRunnerTests { + private static final String EXCLUDED_RESOURCE = "META-INF/services/" + + "javax.validation.spi.ValidationProvider"; + @Test public void entriesAreFilteredFromTestClassClassLoader() { - assertThat(getClass().getClassLoader() - .getResource("META-INF/services/javax.validation.spi.ValidationProvider")) - .isNull(); + assertThat(getClass().getClassLoader().getResource(EXCLUDED_RESOURCE)).isNull(); } @Test public void entriesAreFilteredFromThreadContextClassLoader() { assertThat(Thread.currentThread().getContextClassLoader() - .getResource("META-INF/services/javax.validation.spi.ValidationProvider")) - .isNull(); + .getResource(EXCLUDED_RESOURCE)).isNull(); } }