From d70a610a0d2794d53110064b76c749ed45d3059a Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Thu, 14 Oct 2021 19:58:22 +0200 Subject: [PATCH] Apply "instanceof pattern matching" in spring-jms This commit also applies additional clean-up tasks such as the following. - final fields This has only been applied to `src/main/java`. --- .../jms/connection/CachingConnectionFactory.java | 3 +-- .../UserCredentialsConnectionFactoryAdapter.java | 8 +++----- .../listener/AbstractPollingMessageListenerContainer.java | 4 ++-- .../adapter/AbstractAdaptableMessageListener.java | 5 ++--- .../springframework/jms/listener/adapter/JmsResponse.java | 5 ++--- .../java/org/springframework/jms/support/QosSettings.java | 5 ++--- .../converter/MappingJackson2MessageConverter.java | 5 ++--- .../support/converter/MarshallingMessageConverter.java | 8 +++----- .../jms/support/converter/MessagingMessageConverter.java | 6 +++--- 9 files changed, 20 insertions(+), 29 deletions(-) diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java b/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java index 109762e088..3ad92bf33c 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java @@ -598,10 +598,9 @@ public class CachingConnectionFactory extends SingleConnectionFactory { if (this == other) { return true; } - if (!(other instanceof ConsumerCacheKey)) { + if (!(other instanceof ConsumerCacheKey otherKey)) { return false; } - ConsumerCacheKey otherKey = (ConsumerCacheKey) other; return (destinationEquals(otherKey) && ObjectUtils.nullSafeEquals(this.selector, otherKey.selector) && ObjectUtils.nullSafeEquals(this.noLocal, otherKey.noLocal) && diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/UserCredentialsConnectionFactoryAdapter.java b/spring-jms/src/main/java/org/springframework/jms/connection/UserCredentialsConnectionFactoryAdapter.java index d781e30997..657c0862f8 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/UserCredentialsConnectionFactoryAdapter.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/UserCredentialsConnectionFactoryAdapter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-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. @@ -232,10 +232,9 @@ public class UserCredentialsConnectionFactoryAdapter @Nullable String username, @Nullable String password) throws JMSException { ConnectionFactory target = obtainTargetConnectionFactory(); - if (!(target instanceof QueueConnectionFactory)) { + if (!(target instanceof QueueConnectionFactory queueFactory)) { throw new jakarta.jms.IllegalStateException("'targetConnectionFactory' is not a QueueConnectionFactory"); } - QueueConnectionFactory queueFactory = (QueueConnectionFactory) target; if (StringUtils.hasLength(username)) { return queueFactory.createQueueConnection(username, password); } @@ -284,10 +283,9 @@ public class UserCredentialsConnectionFactoryAdapter @Nullable String username, @Nullable String password) throws JMSException { ConnectionFactory target = obtainTargetConnectionFactory(); - if (!(target instanceof TopicConnectionFactory)) { + if (!(target instanceof TopicConnectionFactory queueFactory)) { throw new jakarta.jms.IllegalStateException("'targetConnectionFactory' is not a TopicConnectionFactory"); } - TopicConnectionFactory queueFactory = (TopicConnectionFactory) target; if (StringUtils.hasLength(username)) { return queueFactory.createTopicConnection(username, password); } diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/AbstractPollingMessageListenerContainer.java b/spring-jms/src/main/java/org/springframework/jms/listener/AbstractPollingMessageListenerContainer.java index e681aaef1b..7d5de80078 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/AbstractPollingMessageListenerContainer.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/AbstractPollingMessageListenerContainer.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-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. @@ -90,7 +90,7 @@ public abstract class AbstractPollingMessageListenerContainer extends AbstractMe @Nullable private PlatformTransactionManager transactionManager; - private DefaultTransactionDefinition transactionDefinition = new DefaultTransactionDefinition(); + private final DefaultTransactionDefinition transactionDefinition = new DefaultTransactionDefinition(); private long receiveTimeout = DEFAULT_RECEIVE_TIMEOUT; diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/adapter/AbstractAdaptableMessageListener.java b/spring-jms/src/main/java/org/springframework/jms/listener/adapter/AbstractAdaptableMessageListener.java index 0bfec38726..0cd9bf2bd8 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/adapter/AbstractAdaptableMessageListener.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/adapter/AbstractAdaptableMessageListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2020 the original author or authors. + * Copyright 2002-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. @@ -411,8 +411,7 @@ public abstract class AbstractAdaptableMessageListener if (this.defaultResponseDestination instanceof Destination) { return (Destination) this.defaultResponseDestination; } - if (this.defaultResponseDestination instanceof DestinationNameHolder) { - DestinationNameHolder nameHolder = (DestinationNameHolder) this.defaultResponseDestination; + if (this.defaultResponseDestination instanceof DestinationNameHolder nameHolder) { return getDestinationResolver().resolveDestinationName(session, nameHolder.name, nameHolder.isTopic); } return null; diff --git a/spring-jms/src/main/java/org/springframework/jms/listener/adapter/JmsResponse.java b/spring-jms/src/main/java/org/springframework/jms/listener/adapter/JmsResponse.java index 16564a3b6c..2fdaca1384 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/adapter/JmsResponse.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/adapter/JmsResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-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. @@ -94,8 +94,7 @@ public class JmsResponse { if (this.destination instanceof Destination) { return (Destination) this.destination; } - if (this.destination instanceof DestinationNameHolder) { - DestinationNameHolder nameHolder = (DestinationNameHolder) this.destination; + if (this.destination instanceof DestinationNameHolder nameHolder) { return destinationResolver.resolveDestinationName(session, nameHolder.destinationName, nameHolder.pubSubDomain); } diff --git a/spring-jms/src/main/java/org/springframework/jms/support/QosSettings.java b/spring-jms/src/main/java/org/springframework/jms/support/QosSettings.java index 2cd329fff7..9f627cf089 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/QosSettings.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/QosSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-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. @@ -114,11 +114,10 @@ public class QosSettings { if (this == other) { return true; } - if (!(other instanceof QosSettings)) { + if (!(other instanceof QosSettings otherSettings)) { return false; } - QosSettings otherSettings = (QosSettings) other; return (this.deliveryMode == otherSettings.deliveryMode && this.priority == otherSettings.priority && this.timeToLive == otherSettings.timeToLive); diff --git a/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java index 7b6c3370ae..429343f6b2 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java @@ -85,7 +85,7 @@ public class MappingJackson2MessageConverter implements SmartMessageConverter, B private Map> idClassMappings = new HashMap<>(); - private Map, String> classIdMappings = new HashMap<>(); + private final Map, String> classIdMappings = new HashMap<>(); @Nullable private ClassLoader beanClassLoader; @@ -476,8 +476,7 @@ public class MappingJackson2MessageConverter implements SmartMessageConverter, B */ @Nullable protected Class getSerializationView(@Nullable Object conversionHint) { - if (conversionHint instanceof MethodParameter) { - MethodParameter methodParam = (MethodParameter) conversionHint; + if (conversionHint instanceof MethodParameter methodParam) { JsonView annotation = methodParam.getParameterAnnotation(JsonView.class); if (annotation == null) { annotation = methodParam.getMethodAnnotation(JsonView.class); diff --git a/spring-jms/src/main/java/org/springframework/jms/support/converter/MarshallingMessageConverter.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/MarshallingMessageConverter.java index b420ec92c6..e8524239e9 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/converter/MarshallingMessageConverter.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/converter/MarshallingMessageConverter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2020 the original author or authors. + * Copyright 2002-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. @@ -178,12 +178,10 @@ public class MarshallingMessageConverter implements MessageConverter, Initializi public Object fromMessage(Message message) throws JMSException, MessageConversionException { Assert.state(this.unmarshaller != null, "No Unmarshaller set"); try { - if (message instanceof TextMessage) { - TextMessage textMessage = (TextMessage) message; + if (message instanceof TextMessage textMessage) { return unmarshalFromTextMessage(textMessage, this.unmarshaller); } - else if (message instanceof BytesMessage) { - BytesMessage bytesMessage = (BytesMessage) message; + else if (message instanceof BytesMessage bytesMessage) { return unmarshalFromBytesMessage(bytesMessage, this.unmarshaller); } else { diff --git a/spring-jms/src/main/java/org/springframework/jms/support/converter/MessagingMessageConverter.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/MessagingMessageConverter.java index 98e8ad0263..70daf59e49 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/converter/MessagingMessageConverter.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/converter/MessagingMessageConverter.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-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. @@ -27,7 +27,7 @@ import org.springframework.jms.support.SimpleJmsHeaderMapper; import org.springframework.lang.Nullable; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; -import org.springframework.messaging.core.AbstractMessagingTemplate; +import org.springframework.messaging.core.AbstractMessageSendingTemplate; import org.springframework.messaging.support.MessageBuilder; import org.springframework.util.Assert; @@ -107,7 +107,7 @@ public class MessagingMessageConverter implements MessageConverter, Initializing } Message input = (Message) object; MessageHeaders headers = input.getHeaders(); - Object conversionHint = headers.get(AbstractMessagingTemplate.CONVERSION_HINT_HEADER); + Object conversionHint = headers.get(AbstractMessageSendingTemplate.CONVERSION_HINT_HEADER); jakarta.jms.Message reply = createMessageForPayload(input.getPayload(), session, conversionHint); this.headerMapper.fromHeaders(headers, reply); return reply;