Skip to content

Commit cc698f5

Browse files
committed
GH-1352: Fix more Sonar issues
1 parent 32d3a2f commit cc698f5

File tree

6 files changed

+40
-30
lines changed

6 files changed

+40
-30
lines changed

spring-rabbit-stream/src/main/java/org/springframework/rabbit/stream/listener/StreamListenerContainer.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,12 @@
2525
import org.springframework.amqp.rabbit.listener.api.ChannelAwareMessageListener;
2626
import org.springframework.beans.factory.BeanNameAware;
2727
import org.springframework.lang.Nullable;
28+
import org.springframework.rabbit.stream.support.StreamMessageProperties;
2829
import org.springframework.rabbit.stream.support.converter.DefaultStreamMessageConverter;
2930
import org.springframework.rabbit.stream.support.converter.StreamMessageConverter;
3031
import org.springframework.util.Assert;
3132

33+
import com.rabbitmq.stream.Codec;
3234
import com.rabbitmq.stream.Consumer;
3335
import com.rabbitmq.stream.ConsumerBuilder;
3436
import com.rabbitmq.stream.Environment;
@@ -42,18 +44,14 @@
4244
*/
4345
public class StreamListenerContainer implements MessageListenerContainer, BeanNameAware {
4446

45-
protected Log logger = LogFactory.getLog(getClass());
46-
47-
private final Environment environment;
47+
protected Log logger = LogFactory.getLog(getClass()); // NOSONAR
4848

4949
private final ConsumerBuilder builder;
5050

5151
private StreamMessageConverter messageConverter;
5252

5353
private java.util.function.Consumer<ConsumerBuilder> consumerCustomizer = c -> { };
5454

55-
private String stream;
56-
5755
private Consumer consumer;
5856

5957
private String listenerId;
@@ -69,17 +67,24 @@ public class StreamListenerContainer implements MessageListenerContainer, BeanNa
6967
* @param environment the environment.
7068
*/
7169
public StreamListenerContainer(Environment environment) {
70+
this(environment, null);
71+
}
72+
73+
/**
74+
* Construct an instance using the provided environment and codec.
75+
* @param environment the environment.
76+
* @param codec the codec used to create reply messages.
77+
*/
78+
public StreamListenerContainer(Environment environment, @Nullable Codec codec) {
7279
Assert.notNull(environment, "'environment' cannot be null");
73-
this.environment = environment;
7480
this.builder = environment.consumerBuilder();
75-
this.messageConverter = new DefaultStreamMessageConverter(environment);
81+
this.messageConverter = new DefaultStreamMessageConverter(codec);
7682
}
7783

7884
@Override
7985
public void setQueueNames(String... queueNames) {
8086
Assert.isTrue(queueNames != null && queueNames.length == 1, "Only one stream is supported");
81-
this.stream = queueNames[0];
82-
this.builder.stream(this.stream);
87+
this.builder.stream(queueNames[0]);
8388
}
8489

8590
/**
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.rabbit.stream.listener;
17+
package org.springframework.rabbit.stream.support;
1818

1919
import org.springframework.amqp.core.MessageProperties;
20+
import org.springframework.lang.Nullable;
2021

2122
import com.rabbitmq.stream.MessageHandler.Context;
2223

@@ -31,23 +32,23 @@ public class StreamMessageProperties extends MessageProperties {
3132

3233
private static final long serialVersionUID = 1L;
3334

34-
private final Context context;
35+
private transient Context context;
3536

3637
/**
3738
* Create a new instance with the provided context.
3839
* @param context the context.
3940
*/
40-
public StreamMessageProperties(Context context) {
41+
public StreamMessageProperties(@Nullable Context context) {
4142
this.context = context;
4243
}
4344

4445
/**
4546
* Return the stream {@link Context} for the message.
4647
* @return the context.
4748
*/
49+
@Nullable
4850
public Context getContext() {
4951
return this.context;
5052
}
5153

52-
5354
}

spring-rabbit-stream/src/main/java/org/springframework/rabbit/stream/support/converter/DefaultStreamMessageConverter.java

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,17 @@
1717
package org.springframework.rabbit.stream.support.converter;
1818

1919
import java.util.Map;
20+
import java.util.function.Supplier;
2021

2122
import org.springframework.amqp.core.Message;
22-
import org.springframework.amqp.core.MessageBuilder;
2323
import org.springframework.amqp.core.MessageProperties;
2424
import org.springframework.amqp.support.converter.MessageConversionException;
2525
import org.springframework.amqp.utils.JavaUtils;
26+
import org.springframework.lang.Nullable;
2627
import org.springframework.util.Assert;
2728

28-
import com.rabbitmq.stream.Environment;
29+
import com.rabbitmq.stream.Codec;
30+
import com.rabbitmq.stream.MessageBuilder;
2931
import com.rabbitmq.stream.MessageBuilder.PropertiesBuilder;
3032
import com.rabbitmq.stream.Properties;
3133
import com.rabbitmq.stream.codec.WrapperMessageBuilder;
@@ -39,29 +41,33 @@
3941
*/
4042
public class DefaultStreamMessageConverter implements StreamMessageConverter {
4143

42-
private final Environment environment;
44+
private final Supplier<MessageBuilder> builder;
45+
46+
public DefaultStreamMessageConverter() {
47+
this.builder = () -> new WrapperMessageBuilder();
48+
}
4349

4450
/**
45-
* Construct an instance using the provided environment.
46-
* @param environment the environment.
51+
* Construct an instance using the provided codec.
52+
* @param codec the codec.
4753
*/
48-
public DefaultStreamMessageConverter(Environment environment) {
49-
Assert.notNull(environment, "'environment' cannot be null");
50-
this.environment = environment;
54+
public DefaultStreamMessageConverter(@Nullable Codec codec) {
55+
this.builder = () -> codec.messageBuilder();
5156
}
5257

5358
@Override
5459
public Message toMessage(Object object, MessageProperties messageProperties) throws MessageConversionException {
5560
Assert.isInstanceOf(com.rabbitmq.stream.Message.class, object);
5661
com.rabbitmq.stream.Message streamMessage = (com.rabbitmq.stream.Message) object;
5762
toMessageProperties(streamMessage, messageProperties);
58-
return MessageBuilder.withBody(streamMessage.getBodyAsBinary()).andProperties(messageProperties).build();
63+
return org.springframework.amqp.core.MessageBuilder.withBody(streamMessage.getBodyAsBinary())
64+
.andProperties(messageProperties)
65+
.build();
5966
}
6067

6168
@Override
6269
public com.rabbitmq.stream.Message fromMessage(Message message) throws MessageConversionException {
63-
// TODO get the builder from the environment's codec
64-
WrapperMessageBuilder builder = new WrapperMessageBuilder();
70+
MessageBuilder builder = this.builder.get();
6571
PropertiesBuilder propsBuilder = builder.properties();
6672
MessageProperties mProps = message.getMessageProperties();
6773
JavaUtils.INSTANCE

spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/AbstractRabbitListenerContainerFactory.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,6 @@ public C createListenerContainer(RabbitListenerEndpoint endpoint) {
362362
.acceptIfNotNull(this.transactionManager, instance::setTransactionManager)
363363
.acceptIfNotNull(this.prefetchCount, instance::setPrefetchCount)
364364
.acceptIfNotNull(this.globalQos, instance::setGlobalQos)
365-
.acceptIfNotNull(this.defaultRequeueRejected, instance::setDefaultRequeueRejected)
366365
.acceptIfNotNull(this.adviceChain, instance::setAdviceChain)
367366
.acceptIfNotNull(this.recoveryBackOff, instance::setRecoveryBackOff)
368367
.acceptIfNotNull(this.mismatchedQueuesFatal, instance::setMismatchedQueuesFatal)

spring-rabbit/src/main/java/org/springframework/amqp/rabbit/config/BaseRabbitListenerContainerFactory.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import java.util.Arrays;
2020

2121
import org.springframework.amqp.core.MessagePostProcessor;
22-
import org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer;
2322
import org.springframework.amqp.rabbit.listener.MessageListenerContainer;
2423
import org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory;
2524
import org.springframework.amqp.rabbit.listener.RabbitListenerEndpoint;
@@ -42,7 +41,7 @@
4241
public abstract class BaseRabbitListenerContainerFactory<C extends MessageListenerContainer>
4342
implements RabbitListenerContainerFactory<C> {
4443

45-
protected Boolean defaultRequeueRejected;
44+
private Boolean defaultRequeueRejected;
4645

4746
private MessagePostProcessor[] beforeSendReplyPostProcessors;
4847

@@ -55,7 +54,7 @@ public abstract class BaseRabbitListenerContainerFactory<C extends MessageListen
5554

5655
/**
5756
* @param requeueRejected true to reject by default.
58-
* @see AbstractMessageListenerContainer#setDefaultRequeueRejected
57+
* @see org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer#setDefaultRequeueRejected
5958
*/
6059
public void setDefaultRequeueRejected(Boolean requeueRejected) {
6160
this.defaultRequeueRejected = requeueRejected;
@@ -109,7 +108,7 @@ protected void applyCommonOverrides(@Nullable RabbitListenerEndpoint endpoint, C
109108
if (instance.getMessageListener() instanceof AbstractAdaptableMessageListener) {
110109
AbstractAdaptableMessageListener messageListener = (AbstractAdaptableMessageListener) instance
111110
.getMessageListener();
112-
JavaUtils.INSTANCE
111+
JavaUtils.INSTANCE // NOSONAR
113112
.acceptIfNotNull(this.beforeSendReplyPostProcessors,
114113
messageListener::setBeforeSendReplyPostProcessors)
115114
.acceptIfNotNull(this.retryTemplate, messageListener::setRetryTemplate)

spring-rabbit/src/main/java/org/springframework/amqp/rabbit/listener/adapter/HandlerAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public HandlerAdapter(DelegatingInvocableHandler delegatingHandler) {
6464
* @throws Exception if one occurs.
6565
*/
6666
public InvocationResult invoke(@Nullable Message<?> message, Object... providedArgs) throws Exception { // NOSONAR
67-
if (this.invokerHandlerMethod != null) {
67+
if (this.invokerHandlerMethod != null) { // NOSONAR (nullable message)
6868
return new InvocationResult(this.invokerHandlerMethod.invoke(message, providedArgs),
6969
null, this.invokerHandlerMethod.getMethod().getGenericReturnType(),
7070
this.invokerHandlerMethod.getBean(),

0 commit comments

Comments
 (0)