From 4bd1485ce4227800711da8090e69c1850238e1e8 Mon Sep 17 00:00:00 2001 From: Sam Brannen <104798+sbrannen@users.noreply.github.com> Date: Fri, 23 Feb 2024 11:53:15 +0100 Subject: [PATCH] Spring cleaning: use method references --- .../AbstractBeanFactoryBasedTargetSourceCreator.java | 3 +-- .../support/ScriptFactoryPostProcessor.java | 3 +-- .../validation/method/MethodValidationResult.java | 2 +- .../org/springframework/util/PlaceholderParser.java | 2 +- .../test/web/reactive/server/JsonEncoderDecoder.java | 4 ++-- .../server/samples/ExchangeMutatorTests.java | 2 +- .../codec/multipart/PartEventHttpMessageReader.java | 3 ++- .../http/codec/support/CodecConfigurerTests.java | 12 ++++++------ .../reactive/socket/WebSocketIntegrationTests.java | 2 +- .../annotation/WebMvcConfigurationSupportTests.java | 2 +- 10 files changed, 17 insertions(+), 18 deletions(-) diff --git a/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/target/AbstractBeanFactoryBasedTargetSourceCreator.java b/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/target/AbstractBeanFactoryBasedTargetSourceCreator.java index 650b40736cd..2336ccfa0aa 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/target/AbstractBeanFactoryBasedTargetSourceCreator.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/target/AbstractBeanFactoryBasedTargetSourceCreator.java @@ -151,8 +151,7 @@ public abstract class AbstractBeanFactoryBasedTargetSourceCreator // Filter out BeanPostProcessors that are part of the AOP infrastructure, // since those are only meant to apply to beans defined in the original factory. - internalBeanFactory.getBeanPostProcessors().removeIf(beanPostProcessor -> - beanPostProcessor instanceof AopInfrastructureBean); + internalBeanFactory.getBeanPostProcessors().removeIf(AopInfrastructureBean.class::isInstance); return internalBeanFactory; } diff --git a/spring-context/src/main/java/org/springframework/scripting/support/ScriptFactoryPostProcessor.java b/spring-context/src/main/java/org/springframework/scripting/support/ScriptFactoryPostProcessor.java index e181bc00205..f48af3df75a 100644 --- a/spring-context/src/main/java/org/springframework/scripting/support/ScriptFactoryPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/scripting/support/ScriptFactoryPostProcessor.java @@ -233,8 +233,7 @@ public class ScriptFactoryPostProcessor implements SmartInstantiationAwareBeanPo // Filter out BeanPostProcessors that are part of the AOP infrastructure, // since those are only meant to apply to beans defined in the original factory. - this.scriptBeanFactory.getBeanPostProcessors().removeIf(beanPostProcessor -> - beanPostProcessor instanceof AopInfrastructureBean); + this.scriptBeanFactory.getBeanPostProcessors().removeIf(AopInfrastructureBean.class::isInstance); } @Override diff --git a/spring-context/src/main/java/org/springframework/validation/method/MethodValidationResult.java b/spring-context/src/main/java/org/springframework/validation/method/MethodValidationResult.java index 015ecd14ba5..6eada76e20f 100644 --- a/spring-context/src/main/java/org/springframework/validation/method/MethodValidationResult.java +++ b/spring-context/src/main/java/org/springframework/validation/method/MethodValidationResult.java @@ -98,7 +98,7 @@ public interface MethodValidationResult { */ default List getBeanResults() { return getAllValidationResults().stream() - .filter(result -> result instanceof ParameterErrors) + .filter(ParameterErrors.class::isInstance) .map(result -> (ParameterErrors) result) .toList(); } diff --git a/spring-core/src/main/java/org/springframework/util/PlaceholderParser.java b/spring-core/src/main/java/org/springframework/util/PlaceholderParser.java index edc6938fc38..4d3c3929dfd 100644 --- a/spring-core/src/main/java/org/springframework/util/PlaceholderParser.java +++ b/spring-core/src/main/java/org/springframework/util/PlaceholderParser.java @@ -469,7 +469,7 @@ final class PlaceholderParser { } private boolean isTextOnly(List parts) { - return parts.stream().allMatch(part -> part instanceof TextPart); + return parts.stream().allMatch(TextPart.class::isInstance); } private String toText(List parts) { diff --git a/spring-test/src/main/java/org/springframework/test/web/reactive/server/JsonEncoderDecoder.java b/spring-test/src/main/java/org/springframework/test/web/reactive/server/JsonEncoderDecoder.java index cc3907097d4..50af8b5edd9 100644 --- a/spring-test/src/main/java/org/springframework/test/web/reactive/server/JsonEncoderDecoder.java +++ b/spring-test/src/main/java/org/springframework/test/web/reactive/server/JsonEncoderDecoder.java @@ -76,7 +76,7 @@ record JsonEncoderDecoder(Encoder encoder, Decoder decoder) { @Nullable private static Encoder findJsonEncoder(Collection> writers) { return findJsonEncoder(writers.stream() - .filter(writer -> writer instanceof EncoderHttpMessageWriter) + .filter(EncoderHttpMessageWriter.class::isInstance) .map(writer -> ((EncoderHttpMessageWriter) writer).getEncoder())); } @@ -97,7 +97,7 @@ record JsonEncoderDecoder(Encoder encoder, Decoder decoder) { @Nullable private static Decoder findJsonDecoder(Collection> readers) { return findJsonDecoder(readers.stream() - .filter(reader -> reader instanceof DecoderHttpMessageReader) + .filter(DecoderHttpMessageReader.class::isInstance) .map(reader -> ((DecoderHttpMessageReader) reader).getDecoder())); } diff --git a/spring-test/src/test/java/org/springframework/test/web/reactive/server/samples/ExchangeMutatorTests.java b/spring-test/src/test/java/org/springframework/test/web/reactive/server/samples/ExchangeMutatorTests.java index 759770bf652..581b349484f 100644 --- a/spring-test/src/test/java/org/springframework/test/web/reactive/server/samples/ExchangeMutatorTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/reactive/server/samples/ExchangeMutatorTests.java @@ -114,7 +114,7 @@ class ExchangeMutatorTests { Assert.notNull(httpHandlerBuilder, "Not a mock server"); httpHandlerBuilder.filters(filters -> { - filters.removeIf(filter -> filter instanceof IdentityFilter); + filters.removeIf(IdentityFilter.class::isInstance); filters.add(0, this.filter); }); } diff --git a/spring-web/src/main/java/org/springframework/http/codec/multipart/PartEventHttpMessageReader.java b/spring-web/src/main/java/org/springframework/http/codec/multipart/PartEventHttpMessageReader.java index 9f54c4727d9..68dc17e57fb 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/multipart/PartEventHttpMessageReader.java +++ b/spring-web/src/main/java/org/springframework/http/codec/multipart/PartEventHttpMessageReader.java @@ -38,6 +38,7 @@ import org.springframework.http.MediaType; import org.springframework.http.ReactiveHttpInputMessage; import org.springframework.http.codec.HttpMessageReader; import org.springframework.http.codec.LoggingCodecSupport; +import org.springframework.http.codec.multipart.MultipartParser.HeadersToken; import org.springframework.lang.Nullable; import org.springframework.util.Assert; @@ -154,7 +155,7 @@ public class PartEventHttpMessageReader extends LoggingCodecSupport implements H AtomicInteger partCount = new AtomicInteger(); return allPartsTokens - .windowUntil(t -> t instanceof MultipartParser.HeadersToken, true) + .windowUntil(HeadersToken.class::isInstance, true) .concatMap(partTokens -> partTokens .switchOnFirst((signal, flux) -> { if (!signal.hasValue()) { diff --git a/spring-web/src/test/java/org/springframework/http/codec/support/CodecConfigurerTests.java b/spring-web/src/test/java/org/springframework/http/codec/support/CodecConfigurerTests.java index 3f5ec01f390..1b3b9ee5368 100644 --- a/spring-web/src/test/java/org/springframework/http/codec/support/CodecConfigurerTests.java +++ b/spring-web/src/test/java/org/springframework/http/codec/support/CodecConfigurerTests.java @@ -385,12 +385,12 @@ class CodecConfigurerTests { // Clone has the customized the customizations List> decoders = clone.getReaders().stream() - .filter(reader -> reader instanceof DecoderHttpMessageReader) + .filter(DecoderHttpMessageReader.class::isInstance) .map(reader -> ((DecoderHttpMessageReader) reader).getDecoder()) .collect(Collectors.toList()); List> encoders = clone.getWriters().stream() - .filter(writer -> writer instanceof EncoderHttpMessageWriter) + .filter(EncoderHttpMessageWriter.class::isInstance) .map(reader -> ((EncoderHttpMessageWriter) reader).getEncoder()) .collect(Collectors.toList()); @@ -400,12 +400,12 @@ class CodecConfigurerTests { // Original does not have the customizations decoders = this.configurer.getReaders().stream() - .filter(reader -> reader instanceof DecoderHttpMessageReader) + .filter(DecoderHttpMessageReader.class::isInstance) .map(reader -> ((DecoderHttpMessageReader) reader).getDecoder()) .collect(Collectors.toList()); encoders = this.configurer.getWriters().stream() - .filter(writer -> writer instanceof EncoderHttpMessageWriter) + .filter(EncoderHttpMessageWriter.class::isInstance) .map(reader -> ((EncoderHttpMessageWriter) reader).getEncoder()) .collect(Collectors.toList()); @@ -454,7 +454,7 @@ class CodecConfigurerTests { private void assertDecoderInstance(Decoder decoder) { assertThat(this.configurer.getReaders().stream() - .filter(writer -> writer instanceof DecoderHttpMessageReader) + .filter(DecoderHttpMessageReader.class::isInstance) .map(writer -> ((DecoderHttpMessageReader) writer).getDecoder()) .filter(e -> decoder.getClass().equals(e.getClass())) .findFirst() @@ -463,7 +463,7 @@ class CodecConfigurerTests { private void assertEncoderInstance(Encoder encoder) { assertThat(this.configurer.getWriters().stream() - .filter(writer -> writer instanceof EncoderHttpMessageWriter) + .filter(EncoderHttpMessageWriter.class::isInstance) .map(writer -> ((EncoderHttpMessageWriter) writer).getEncoder()) .filter(e -> encoder.getClass().equals(e.getClass())) .findFirst() diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/socket/WebSocketIntegrationTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/socket/WebSocketIntegrationTests.java index 5f4a9fc1f1b..14a1c9b0eac 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/socket/WebSocketIntegrationTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/socket/WebSocketIntegrationTests.java @@ -69,7 +69,7 @@ class WebSocketIntegrationTests extends AbstractReactiveWebSocketIntegrationTest if (server instanceof TomcatHttpServer) { Mono.fromRunnable(this::testEcho) - .retryWhen(Retry.max(3).filter(ex -> ex instanceof IllegalStateException)) + .retryWhen(Retry.max(3).filter(IllegalStateException.class::isInstance)) .block(); } else { diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupportTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupportTests.java index 899ad38ea28..2af7f07c687 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupportTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/WebMvcConfigurationSupportTests.java @@ -175,7 +175,7 @@ class WebMvcConfigurationSupportTests { List> converters = adapter.getMessageConverters(); assertThat(converters).hasSizeGreaterThanOrEqualTo(14); converters.stream() - .filter(converter -> converter instanceof AbstractJackson2HttpMessageConverter) + .filter(AbstractJackson2HttpMessageConverter.class::isInstance) .forEach(converter -> { ObjectMapper mapper = ((AbstractJackson2HttpMessageConverter) converter).getObjectMapper(); assertThat(mapper.getDeserializationConfig().isEnabled(DEFAULT_VIEW_INCLUSION)).isFalse();