From 2b750926c36496f6f478a5e4b3ff13cec63ef8ba Mon Sep 17 00:00:00 2001 From: Johnny Lim Date: Mon, 30 Oct 2023 22:04:29 +0900 Subject: [PATCH] Polishing Closes gh-31522 --- .../modules/ROOT/pages/integration/observability.adoc | 4 ++-- .../pages/languages/kotlin/spring-projects-in.adoc | 2 +- .../BeanDefinitionPropertiesCodeGeneratorTests.java | 10 +++++----- .../annotation/ConfigurationClassPostProcessor.java | 2 +- .../beanvalidation/MethodValidationInterceptor.java | 2 +- .../datetime/standard/InstantFormatterTests.java | 2 +- .../FormattingConversionServiceRuntimeHintsTests.java | 2 +- .../MethodValidationProxyReactorTests.java | 4 +++- .../core/env/CompositePropertySourceBenchmark.java | 4 ++-- .../core/io/buffer/OutputStreamPublisher.java | 4 ++-- .../task/support/ContextPropagatingTaskDecorator.java | 2 +- .../util/function/SingletonSupplier.java | 2 +- .../support/ContextPropagatingTaskDecoratorTests.java | 8 ++++---- .../persistenceunit/DefaultPersistenceUnitManager.java | 2 +- .../filter/reactive/ServerHttpObservationFilter.java | 2 +- .../web/server/adapter/HttpWebHandlerAdapter.java | 2 +- .../reactive/ReactorClientHttpConnectorTests.java | 2 +- .../web/reactive/DispatchExceptionHandler.java | 2 +- .../reactive/function/server/CoRouterFunctionDsl.kt | 2 +- .../annotation/RequestMappingHandlerAdapter.java | 2 +- 20 files changed, 32 insertions(+), 30 deletions(-) diff --git a/framework-docs/modules/ROOT/pages/integration/observability.adoc b/framework-docs/modules/ROOT/pages/integration/observability.adoc index 8b35f1b4ef..43a04e4f1b 100644 --- a/framework-docs/modules/ROOT/pages/integration/observability.adoc +++ b/framework-docs/modules/ROOT/pages/integration/observability.adoc @@ -358,14 +358,14 @@ By default, event publication and processing is done synchronously and on the sa This means that during the execution of that task, the ThreadLocals and logging context will be the same as the event publisher. If the application configures globally a custom `ApplicationEventMulticaster` with a strategy that schedules event processing on different threads, this is no longer true. -All `@EventListener` methods will be processed on a different thread, outstide of the main event publication thread. +All `@EventListener` methods will be processed on a different thread, outside of the main event publication thread. In these cases, the https://micrometer.io/docs/contextPropagation[Micrometer Context Propagation library] can help propagating such values and better correlate the processing of the events. The application can configure the chosen `TaskExecutor` to use a `ContextPropagatingTaskDecorator` that decorates tasks and propagates context. For this to work, the `io.micrometer:context-propagation` library must be present on the classpath: include-code::./ApplicationEventsConfiguration[] -Similarly, if that asynchronous choice is made locally for each `@EventListener` annotated method, by adding an `@Async` method to it, +Similarly, if that asynchronous choice is made locally for each `@EventListener` annotated method, by adding an `@Async` to it, you can choose a `TaskExecutor` that propagates context by referring to it by its qualifier. Given the following `TaskExecutor` bean definition, configured with the dedicated task decorator: diff --git a/framework-docs/modules/ROOT/pages/languages/kotlin/spring-projects-in.adoc b/framework-docs/modules/ROOT/pages/languages/kotlin/spring-projects-in.adoc index 944eb9d979..4118859a15 100644 --- a/framework-docs/modules/ROOT/pages/languages/kotlin/spring-projects-in.adoc +++ b/framework-docs/modules/ROOT/pages/languages/kotlin/spring-projects-in.adoc @@ -248,7 +248,7 @@ For example, declaring `List` in Kotlin is conceptually equivalent to `java `kotlin.collections.List` is declared as https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-list/[`interface List : kotlin.collections.Collection`]. -This needs to be taken in account by using the `out` Kotlin keyword on generic types when using Java classes, +This needs to be taken into account by using the `out` Kotlin keyword on generic types when using Java classes, for example when writing a `org.springframework.core.convert.converter.Converter` from a Kotlin type to a Java type. [source,kotlin,indent=0] diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionPropertiesCodeGeneratorTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionPropertiesCodeGeneratorTests.java index bd58567226..2210306173 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionPropertiesCodeGeneratorTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/aot/BeanDefinitionPropertiesCodeGeneratorTests.java @@ -287,7 +287,7 @@ class BeanDefinitionPropertiesCodeGeneratorTests { assertThat(actual.getPropertyValues().get("spring")).isEqualTo("framework"); }); assertHasMethodInvokeHints(PropertyValuesBean.class, "setTest", "setSpring"); - assertHasDecalredFieldsHint(PropertyValuesBean.class); + assertHasDeclaredFieldsHint(PropertyValuesBean.class); } @Test @@ -300,8 +300,8 @@ class BeanDefinitionPropertiesCodeGeneratorTests { assertThat(actual.getPropertyValues().get("spring")).isEqualTo("framework"); }); assertHasMethodInvokeHints(PropertyValuesBean.class, "setTest", "setSpring"); - assertHasDecalredFieldsHint(ExtendedPropertyValuesBean.class); - assertHasDecalredFieldsHint(PropertyValuesBean.class); + assertHasDeclaredFieldsHint(ExtendedPropertyValuesBean.class); + assertHasDeclaredFieldsHint(PropertyValuesBean.class); } @Test @@ -362,7 +362,7 @@ class BeanDefinitionPropertiesCodeGeneratorTests { assertThat(actual.getPropertyValues().get("name")).isEqualTo("World"); }); assertHasMethodInvokeHints(PropertyValuesFactoryBean.class, "setPrefix", "setName" ); - assertHasDecalredFieldsHint(PropertyValuesFactoryBean.class); + assertHasDeclaredFieldsHint(PropertyValuesFactoryBean.class); } @Test @@ -516,7 +516,7 @@ class BeanDefinitionPropertiesCodeGeneratorTests { .test(this.generationContext.getRuntimeHints())); } - private void assertHasDecalredFieldsHint(Class beanType) { + private void assertHasDeclaredFieldsHint(Class beanType) { assertThat(RuntimeHintsPredicates.reflection() .onType(beanType).withMemberCategory(MemberCategory.DECLARED_FIELDS)) .accepts(this.generationContext.getRuntimeHints()); diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java index 1e5be5523b..c150656cac 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java @@ -511,7 +511,7 @@ public class ConfigurationClassPostProcessor implements BeanDefinitionRegistryPo logger.warn("Cannot enhance @Configuration bean definition '" + beanName + "' since its singleton instance has been created too early. The typical cause " + "is a non-static @Bean method with a BeanDefinitionRegistryPostProcessor " + - "return type: Consider declaring such methods as 'static' and/or mark the " + + "return type: Consider declaring such methods as 'static' and/or marking the " + "containing configuration class as 'proxyBeanMethods=false'."); } configBeanDefs.put(beanName, abd); diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationInterceptor.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationInterceptor.java index 5662ca5130..16b87a1d46 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationInterceptor.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationInterceptor.java @@ -240,7 +240,7 @@ public class MethodValidationInterceptor implements MethodInterceptor { ReactiveAdapterRegistry.getSharedInstance(); - public static Object[] insertAsyncValidation( + static Object[] insertAsyncValidation( Supplier validatorAdapterSupplier, boolean adaptViolations, Object target, Method method, Object[] arguments) { diff --git a/spring-context/src/test/java/org/springframework/format/datetime/standard/InstantFormatterTests.java b/spring-context/src/test/java/org/springframework/format/datetime/standard/InstantFormatterTests.java index 32d9341e03..614cd2d97c 100644 --- a/spring-context/src/test/java/org/springframework/format/datetime/standard/InstantFormatterTests.java +++ b/spring-context/src/test/java/org/springframework/format/datetime/standard/InstantFormatterTests.java @@ -82,7 +82,7 @@ class InstantFormatterTests { @ParameterizedTest @ArgumentsSource(RandomEpochMillisProvider.class) - void should_parse_into_an_Instant_from_epoch_mili(Instant input) throws ParseException { + void should_parse_into_an_Instant_from_epoch_milli(Instant input) throws ParseException { Instant expected = input; Instant actual = instantFormatter.parse(Long.toString(input.toEpochMilli()), null); diff --git a/spring-context/src/test/java/org/springframework/format/support/FormattingConversionServiceRuntimeHintsTests.java b/spring-context/src/test/java/org/springframework/format/support/FormattingConversionServiceRuntimeHintsTests.java index 21a87feb3f..50b201414d 100644 --- a/spring-context/src/test/java/org/springframework/format/support/FormattingConversionServiceRuntimeHintsTests.java +++ b/spring-context/src/test/java/org/springframework/format/support/FormattingConversionServiceRuntimeHintsTests.java @@ -44,7 +44,7 @@ class FormattingConversionServiceRuntimeHintsTests { } @Test - void montearyAmountHasHints() { + void monetaryAmountHasHints() { assertThat(RuntimeHintsPredicates.reflection().onType(javax.money.MonetaryAmount.class)).accepts(this.hints); } diff --git a/spring-context/src/test/java/org/springframework/validation/beanvalidation/MethodValidationProxyReactorTests.java b/spring-context/src/test/java/org/springframework/validation/beanvalidation/MethodValidationProxyReactorTests.java index 92d1b2e81e..f29b7296a1 100644 --- a/spring-context/src/test/java/org/springframework/validation/beanvalidation/MethodValidationProxyReactorTests.java +++ b/spring-context/src/test/java/org/springframework/validation/beanvalidation/MethodValidationProxyReactorTests.java @@ -36,9 +36,11 @@ import org.springframework.validation.method.ParameterErrors; import static org.assertj.core.api.Assertions.assertThat; /** + * Tests for method validation proxy with reactor. * + * @author Rossen Stoyanchev */ -public class MethodValidationProxyReactorTests { +class MethodValidationProxyReactorTests { @Test void validMonoArgument() { diff --git a/spring-core/src/jmh/java/org/springframework/core/env/CompositePropertySourceBenchmark.java b/spring-core/src/jmh/java/org/springframework/core/env/CompositePropertySourceBenchmark.java index 3d5eae2bdf..593403516d 100644 --- a/spring-core/src/jmh/java/org/springframework/core/env/CompositePropertySourceBenchmark.java +++ b/spring-core/src/jmh/java/org/springframework/core/env/CompositePropertySourceBenchmark.java @@ -62,7 +62,7 @@ public class CompositePropertySourceBenchmark { CompositePropertySource composite; @Param({ "2", "5", "10" }) - int numberOfPropertySource; + int numberOfPropertySources; @Param({ "10", "100", "1000" }) int numberOfPropertyNamesPerSource; @@ -70,7 +70,7 @@ public class CompositePropertySourceBenchmark { @Setup(Level.Trial) public void setUp() { this.composite = new CompositePropertySource("benchmark"); - for (int i = 0; i < this.numberOfPropertySource; i++) { + for (int i = 0; i < this.numberOfPropertySources; i++) { Map map = new HashMap<>(this.numberOfPropertyNamesPerSource); for (int j = 0; j < this.numberOfPropertyNamesPerSource; j++) { map.put(ID_GENERATOR.generateId().toString(), VALUE); diff --git a/spring-core/src/main/java/org/springframework/core/io/buffer/OutputStreamPublisher.java b/spring-core/src/main/java/org/springframework/core/io/buffer/OutputStreamPublisher.java index b5e1abd6af..52daecb88e 100644 --- a/spring-core/src/main/java/org/springframework/core/io/buffer/OutputStreamPublisher.java +++ b/spring-core/src/main/java/org/springframework/core/io/buffer/OutputStreamPublisher.java @@ -54,7 +54,7 @@ final class OutputStreamPublisher implements Publisher { private final int chunkSize; - public OutputStreamPublisher(Consumer outputStreamConsumer, DataBufferFactory bufferFactory, + OutputStreamPublisher(Consumer outputStreamConsumer, DataBufferFactory bufferFactory, Executor executor, int chunkSize) { this.outputStreamConsumer = outputStreamConsumer; @@ -99,7 +99,7 @@ final class OutputStreamPublisher implements Publisher { private long produced; - public OutputStreamSubscription(Subscriber actual, + OutputStreamSubscription(Subscriber actual, Consumer outputStreamConsumer, DataBufferFactory bufferFactory, int chunkSize) { this.actual = actual; diff --git a/spring-core/src/main/java/org/springframework/core/task/support/ContextPropagatingTaskDecorator.java b/spring-core/src/main/java/org/springframework/core/task/support/ContextPropagatingTaskDecorator.java index d942cc9094..4e2d337ee3 100644 --- a/spring-core/src/main/java/org/springframework/core/task/support/ContextPropagatingTaskDecorator.java +++ b/spring-core/src/main/java/org/springframework/core/task/support/ContextPropagatingTaskDecorator.java @@ -22,7 +22,7 @@ import io.micrometer.context.ContextSnapshotFactory; import org.springframework.core.task.TaskDecorator; /** - * {@link TaskDecorator} that {@link ContextSnapshot#wrap(Runnable) wrap the execution} of + * {@link TaskDecorator} that {@link ContextSnapshot#wrap(Runnable) wraps the execution} of * tasks, assisting with context propagation. *

This operation is only useful when the task execution is scheduled on a different * thread than the original call stack; this depends on the choice of diff --git a/spring-core/src/main/java/org/springframework/util/function/SingletonSupplier.java b/spring-core/src/main/java/org/springframework/util/function/SingletonSupplier.java index b4f71954d8..9cd7f7b33f 100644 --- a/spring-core/src/main/java/org/springframework/util/function/SingletonSupplier.java +++ b/spring-core/src/main/java/org/springframework/util/function/SingletonSupplier.java @@ -49,7 +49,7 @@ public class SingletonSupplier implements Supplier { private volatile T singletonInstance; /** - * Guards access to write operations on the response. + * Guards access to write operations on the {@code singletonInstance} field. */ private final Lock writeLock = new ReentrantLock(); diff --git a/spring-core/src/test/java/org/springframework/core/task/support/ContextPropagatingTaskDecoratorTests.java b/spring-core/src/test/java/org/springframework/core/task/support/ContextPropagatingTaskDecoratorTests.java index f68ebcf98e..397f97297f 100644 --- a/spring-core/src/test/java/org/springframework/core/task/support/ContextPropagatingTaskDecoratorTests.java +++ b/spring-core/src/test/java/org/springframework/core/task/support/ContextPropagatingTaskDecoratorTests.java @@ -52,15 +52,15 @@ class ContextPropagatingTaskDecoratorTests { private static final ThreadLocal holder = new ThreadLocal<>(); - public static void setValue(String value) { + static void setValue(String value) { holder.set(value); } - public static String getValue() { + static String getValue() { return holder.get(); } - public static void reset() { + static void reset() { holder.remove(); } @@ -68,7 +68,7 @@ class ContextPropagatingTaskDecoratorTests { static class TestThreadLocalAccessor implements ThreadLocalAccessor { - public static final String KEY = "test.threadlocal"; + static final String KEY = "test.threadlocal"; @Override public Object key() { diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java index 0819f428ef..e85b783bf6 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java @@ -716,7 +716,7 @@ public class DefaultPersistenceUnitManager */ private static class BeanValidationDelegate { - public static boolean isValidationProviderPresent() { + static boolean isValidationProviderPresent() { try { Validation.byDefaultProvider().configure(); return true; diff --git a/spring-web/src/main/java/org/springframework/web/filter/reactive/ServerHttpObservationFilter.java b/spring-web/src/main/java/org/springframework/web/filter/reactive/ServerHttpObservationFilter.java index 897aedf068..174cde705a 100644 --- a/spring-web/src/main/java/org/springframework/web/filter/reactive/ServerHttpObservationFilter.java +++ b/spring-web/src/main/java/org/springframework/web/filter/reactive/ServerHttpObservationFilter.java @@ -115,7 +115,7 @@ public class ServerHttpObservationFilter implements WebFilter { private final AtomicBoolean observationRecorded = new AtomicBoolean(); - public ObservationSignalListener(ServerRequestObservationContext observationContext) { + ObservationSignalListener(ServerRequestObservationContext observationContext) { this.observationContext = observationContext; this.observation = ServerHttpObservationDocumentation.HTTP_REACTIVE_SERVER_REQUESTS.observation(observationConvention, DEFAULT_OBSERVATION_CONVENTION, () -> observationContext, observationRegistry); diff --git a/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java b/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java index cc593df745..0eacc76fdf 100644 --- a/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java +++ b/spring-web/src/main/java/org/springframework/web/server/adapter/HttpWebHandlerAdapter.java @@ -367,7 +367,7 @@ public class HttpWebHandlerAdapter extends WebHandlerDecorator implements HttpHa private final AtomicBoolean observationRecorded = new AtomicBoolean(); - public ObservationSignalListener(ServerRequestObservationContext observationContext) { + ObservationSignalListener(ServerRequestObservationContext observationContext) { this.observationContext = observationContext; this.observation = ServerHttpObservationDocumentation.HTTP_REACTIVE_SERVER_REQUESTS.observation(observationConvention, DEFAULT_OBSERVATION_CONVENTION, () -> observationContext, observationRegistry); diff --git a/spring-web/src/test/java/org/springframework/http/client/reactive/ReactorClientHttpConnectorTests.java b/spring-web/src/test/java/org/springframework/http/client/reactive/ReactorClientHttpConnectorTests.java index 8f56f0dd85..01ef6a1d9f 100644 --- a/spring-web/src/test/java/org/springframework/http/client/reactive/ReactorClientHttpConnectorTests.java +++ b/spring-web/src/test/java/org/springframework/http/client/reactive/ReactorClientHttpConnectorTests.java @@ -28,7 +28,7 @@ import static org.assertj.core.api.Assertions.assertThat; /** * @author Sebastien Deleuze */ -public class ReactorClientHttpConnectorTests { +class ReactorClientHttpConnectorTests { @Test void restartWithDefaultConstructor() { diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/DispatchExceptionHandler.java b/spring-webflux/src/main/java/org/springframework/web/reactive/DispatchExceptionHandler.java index 91b30df8f5..afac6653b6 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/DispatchExceptionHandler.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/DispatchExceptionHandler.java @@ -30,7 +30,7 @@ import org.springframework.web.server.ServerWebExchange; * from asynchronous return values, and to response rendering. *

  • Implemented by a {@link HandlerAdapter} in order to handle exceptions that * occur before a request is mapped to a handler, or for unhandled errors from a - * handler.. + * handler. * * * @author Rossen Stoyanchev diff --git a/spring-webflux/src/main/kotlin/org/springframework/web/reactive/function/server/CoRouterFunctionDsl.kt b/spring-webflux/src/main/kotlin/org/springframework/web/reactive/function/server/CoRouterFunctionDsl.kt index 8d82056282..17151948a6 100644 --- a/spring-webflux/src/main/kotlin/org/springframework/web/reactive/function/server/CoRouterFunctionDsl.kt +++ b/spring-webflux/src/main/kotlin/org/springframework/web/reactive/function/server/CoRouterFunctionDsl.kt @@ -628,7 +628,7 @@ class CoRouterFunctionDsl internal constructor (private val init: (CoRouterFunct */ fun context(provider: suspend (ServerRequest) -> CoroutineContext) { if (this.contextProvider != null) { - throw IllegalStateException("The Coroutine context provider should be defined not more than once") + throw IllegalStateException("The Coroutine context provider should not be defined more than once") } this.contextProvider = provider } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java index 0d1e3fa451..36c8013c4c 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerAdapter.java @@ -1049,7 +1049,7 @@ public class RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter private static boolean taskExecutorWarning = true; - public MvcSimpleAsyncTaskExecutor() { + MvcSimpleAsyncTaskExecutor() { super("MvcAsync"); }