diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/jetty/JettyMetricsAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/jetty/JettyMetricsAutoConfiguration.java index c4f50203c7..c9d1e302b5 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/jetty/JettyMetricsAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/jetty/JettyMetricsAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 the original author or authors. + * Copyright 2012-2021 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. @@ -46,25 +46,23 @@ import org.springframework.context.annotation.Configuration; @Configuration(proxyBeanMethods = false) @ConditionalOnWebApplication @ConditionalOnClass({ JettyServerThreadPoolMetrics.class, Server.class }) +@ConditionalOnBean(MeterRegistry.class) @AutoConfigureAfter(CompositeMeterRegistryAutoConfiguration.class) public class JettyMetricsAutoConfiguration { @Bean - @ConditionalOnBean(MeterRegistry.class) @ConditionalOnMissingBean({ JettyServerThreadPoolMetrics.class, JettyServerThreadPoolMetricsBinder.class }) public JettyServerThreadPoolMetricsBinder jettyServerThreadPoolMetricsBinder(MeterRegistry meterRegistry) { return new JettyServerThreadPoolMetricsBinder(meterRegistry); } @Bean - @ConditionalOnBean(MeterRegistry.class) @ConditionalOnMissingBean({ JettyConnectionMetrics.class, JettyConnectionMetricsBinder.class }) public JettyConnectionMetricsBinder jettyConnectionMetricsBinder(MeterRegistry meterRegistry) { return new JettyConnectionMetricsBinder(meterRegistry); } @Bean - @ConditionalOnBean(MeterRegistry.class) @ConditionalOnMissingBean({ JettySslHandshakeMetrics.class, JettySslHandshakeMetricsBinder.class }) @ConditionalOnProperty(name = "server.ssl.enabled", havingValue = "true") public JettySslHandshakeMetricsBinder jettySslHandshakeMetricsBinder(MeterRegistry meterRegistry) { diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/client/MetricsRestTemplateCustomizerTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/client/MetricsRestTemplateCustomizerTests.java index 00c88bbe8a..697f2a133a 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/client/MetricsRestTemplateCustomizerTests.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/client/MetricsRestTemplateCustomizerTests.java @@ -185,7 +185,6 @@ class MetricsRestTemplateCustomizerTests { assertThat(restTemplate.getForObject(URI.create("/second/456"), String.class)).isEqualTo("OK"); this.registry.get("http.client.requests").tags("uri", "/second/456").timer(); this.mockServer.verify(); - } private static final class TestInterceptor implements ClientHttpRequestInterceptor { diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/reactive/server/MetricsWebFilterTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/reactive/server/MetricsWebFilterTests.java index 9ce605634b..c67954be72 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/reactive/server/MetricsWebFilterTests.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/reactive/server/MetricsWebFilterTests.java @@ -260,7 +260,7 @@ class MetricsWebFilterTests { class FaultyWebFluxTagsProvider extends DefaultWebFluxTagsProvider { - private volatile AtomicBoolean fail = new AtomicBoolean(false); + private final AtomicBoolean fail = new AtomicBoolean(false); FaultyWebFluxTagsProvider() { super(true); diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/servlet/FaultyWebMvcTagsProvider.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/servlet/FaultyWebMvcTagsProvider.java index 111082fdf1..57701d2713 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/servlet/FaultyWebMvcTagsProvider.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/metrics/web/servlet/FaultyWebMvcTagsProvider.java @@ -31,7 +31,7 @@ import io.micrometer.core.instrument.Tag; */ class FaultyWebMvcTagsProvider extends DefaultWebMvcTagsProvider { - private volatile AtomicBoolean fail = new AtomicBoolean(false); + private final AtomicBoolean fail = new AtomicBoolean(false); FaultyWebMvcTagsProvider() { super(true); diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationLettuceWithoutCommonsPool2Tests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationLettuceWithoutCommonsPool2Tests.java index 54491ee294..0471a72dde 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationLettuceWithoutCommonsPool2Tests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisAutoConfigurationLettuceWithoutCommonsPool2Tests.java @@ -32,7 +32,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Stephane Nicoll */ @ClassPathExclusions("commons-pool2-*.jar") -public class RedisAutoConfigurationLettuceWithoutCommonsPool2Tests { +class RedisAutoConfigurationLettuceWithoutCommonsPool2Tests { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of(RedisAutoConfiguration.class)); diff --git a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/actuator/metrics.adoc b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/actuator/metrics.adoc index c46ce82bd4..a9e6da0e3a 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/actuator/metrics.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/actuator/metrics.adoc @@ -1024,7 +1024,7 @@ To disable the auto-configured connection pool metrics, set the following proper [[actuator.metrics.supported.jetty]] ==== Jetty Metrics Auto-configuration will bind metrics for Jetty's `ThreadPool` using Micrometer's `JettyServerThreadPoolMetrics`. -Metrics for Jetty's `Connector`s are bound using Micrometer's `JettyConnectionMetrics` and, in addition when configprop:server.ssl.enabled[] is set to `true`, Micrometer's `JettySslHandshakeMetrics`. +Metrics for Jetty's ``Connector``s are bound using Micrometer's `JettyConnectionMetrics` and, in addition when configprop:server.ssl.enabled[] is set to `true`, Micrometer's `JettySslHandshakeMetrics`. diff --git a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/deployment/cloud.adoc b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/deployment/cloud.adoc index aa4af2b91e..8949bb3b27 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/deployment/cloud.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/deployment/cloud.adoc @@ -359,7 +359,7 @@ See the blog post on https://boxfuse.com/blog/spring-boot-ec2.html[deploying Spr [[deployment.cloud.azure]] === Azure -This https://spring.io/guides/gs/spring-boot-for-azure/[Getting Started guide] walks you through deploying your Spring Boot application to either https://azure.microsoft.com/en-ca/services/spring-cloud/[Azure Spring Cloud] or https://docs.microsoft.com/en-ca/azure/app-service/overview[Azure App Service]. +This https://spring.io/guides/gs/spring-boot-for-azure/[Getting Started guide] walks you through deploying your Spring Boot application to either https://azure.microsoft.com/en-us/services/spring-cloud/[Azure Spring Cloud] or https://docs.microsoft.com/en-us/azure/app-service/overview[Azure App Service]. diff --git a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/messaging/rsocket.adoc b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/messaging/rsocket.adoc index 238d1bc114..1c3f06f150 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/asciidoc/messaging/rsocket.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/asciidoc/messaging/rsocket.adoc @@ -73,7 +73,7 @@ Once the `RSocket` channel is established between server and client, any party c As a server, you can get injected with an `RSocketRequester` instance on any handler method of an RSocket `@Controller`. As a client, you need to configure and establish an RSocket connection first. -Spring Boot auto-configures an `RSocketRequester.Builder` for such cases with the expected codecs and apply any `RSocketConnectorConfigurer` bean. +Spring Boot auto-configures an `RSocketRequester.Builder` for such cases with the expected codecs and applies any `RSocketConnectorConfigurer` bean. The `RSocketRequester.Builder` instance is a prototype bean, meaning each injection point will provide you with a new instance . This is done on purpose since this builder is stateful and you shouldn't create requesters with different setups using the same instance. diff --git a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/lombok/LombokSimpleValueProperties.java b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/lombok/LombokSimpleValueProperties.java index 1907c53a3f..022e5b413e 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/lombok/LombokSimpleValueProperties.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationsample/lombok/LombokSimpleValueProperties.java @@ -24,7 +24,7 @@ import lombok.Value; import org.springframework.boot.configurationsample.ConfigurationProperties; /** - * Configuration properties using lombok @Value. + * Configuration properties using Lombok {@code @Value}. * * @author Mark Jeffrey */ diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/builder/SpringApplicationBuilder.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/builder/SpringApplicationBuilder.java index a9d281438b..684c19d118 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/builder/SpringApplicationBuilder.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/builder/SpringApplicationBuilder.java @@ -103,7 +103,7 @@ public class SpringApplicationBuilder { /** * Creates a new {@link SpringApplication} instance from the given sources. Subclasses - * may override in order to provide a custom subclass of {@link SpringApplication} + * may override in order to provide a custom subclass of {@link SpringApplication}. * @param sources the sources * @return the {@link SpringApplication} instance * @since 1.1.0 @@ -116,9 +116,9 @@ public class SpringApplicationBuilder { } /** - * Creates a new {@link SpringApplication} instances from the given sources using the + * Creates a new {@link SpringApplication} instance from the given sources using the * given {@link ResourceLoader}. Subclasses may override in order to provide a custom - * subclass of {@link SpringApplication} + * subclass of {@link SpringApplication}. * @param resourceLoader the resource loader (can be null) * @param sources the sources * @return the {@link SpringApplication} instance diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DataSourceBuilder.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DataSourceBuilder.java index c5dbe32033..5b7aaa7a91 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DataSourceBuilder.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DataSourceBuilder.java @@ -174,7 +174,7 @@ public final class DataSourceBuilder { Set applied = new HashSet<>(); for (DataSourceProperty property : DataSourceProperty.values()) { String value = this.values.get(property); - if (!this.values.containsKey(property) && deriveFromProperties != null && properties.canSet(property)) { + if (value == null && deriveFromProperties != null && properties.canSet(property)) { value = deriveFromProperties.get(this.deriveFrom, property); } if (value != null) { @@ -262,7 +262,7 @@ public final class DataSourceBuilder { PASSWORD(false, "password"); - private boolean optional; + private final boolean optional; private final String[] names; diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/env/RandomValuePropertySourceTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/env/RandomValuePropertySourceTests.java index eedec91d7b..9df913875c 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/env/RandomValuePropertySourceTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/env/RandomValuePropertySourceTests.java @@ -123,7 +123,7 @@ class RandomValuePropertySourceTests { } @Test - void longRangeWhenLowerBoundNegativeShouldFailWithIllegalArgumentException() { + void longRangeWhenLowerBoundNegative() { Long value = (Long) this.source.getProperty("random.long[-4,4]"); assertThat(value >= -4).isTrue(); assertThat(value < 4).isTrue(); diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-jetty10/src/test/java/smoketest/jetty10/Jetty10Http2OverTlsTests.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-jetty10/src/test/java/smoketest/jetty10/Jetty10Http2OverTlsTests.java index d5f39c5f93..54a152c462 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-jetty10/src/test/java/smoketest/jetty10/Jetty10Http2OverTlsTests.java +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-jetty10/src/test/java/smoketest/jetty10/Jetty10Http2OverTlsTests.java @@ -48,8 +48,8 @@ import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = { "server.http2.enabled=true", "server.ssl.enabled=true", "server.ssl.keystore=classpath:sample.jks", "server.ssl.key-store-password=secret", - "server.ssl.key-password=password", "logging.level.org.eclipse.jetty=debug" }) -public class Jetty10Http2OverTlsTests { + "server.ssl.key-password=password" }) +class Jetty10Http2OverTlsTests { @LocalServerPort private int port; diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-secure-webflux/src/test/java/smoketest/secure/webflux/CorsSampleActuatorApplicationTests.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-secure-webflux/src/test/java/smoketest/secure/webflux/CorsSampleActuatorApplicationTests.java index cddc4b53e4..880413cd52 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-secure-webflux/src/test/java/smoketest/secure/webflux/CorsSampleActuatorApplicationTests.java +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-secure-webflux/src/test/java/smoketest/secure/webflux/CorsSampleActuatorApplicationTests.java @@ -20,7 +20,6 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.ApplicationContext; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.web.reactive.server.WebTestClient; @@ -36,9 +35,6 @@ class CorsSampleActuatorApplicationTests { @Autowired private WebTestClient webClient; - @Autowired - private ApplicationContext applicationContext; - @Test void endpointShouldReturnUnauthorized() { this.webClient.get().uri("/actuator/env").exchange().expectStatus().isUnauthorized();