From eeb951b0da785d984416beb31a8f6bad8fe8c9cb Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Sun, 29 Sep 2019 10:28:09 -0400 Subject: [PATCH] Fix new Sonar Smells * Change `whats-new.adoc#x5.2-behavior` to point for the whole `5.1-to-5.2-Migration-Guide` --- .../integration/channel/NullChannel.java | 3 +- ...ngTransactionSynchronizationProcessor.java | 51 +++++++++++-------- src/reference/asciidoc/whats-new.adoc | 2 +- 3 files changed, 31 insertions(+), 25 deletions(-) diff --git a/spring-integration-core/src/main/java/org/springframework/integration/channel/NullChannel.java b/spring-integration-core/src/main/java/org/springframework/integration/channel/NullChannel.java index 5cdd677c58..63594de511 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/channel/NullChannel.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/channel/NullChannel.java @@ -290,7 +290,7 @@ public class NullChannel implements PollableChannel, } private CounterFacade buildReceiveCounter() { - CounterFacade counterFacade = this.metricsCaptor + return this.metricsCaptor .counterBuilder(RECEIVE_COUNTER_NAME) .tag("name", getComponentName() == null ? "unknown" : getComponentName()) .tag("type", "channel") @@ -298,7 +298,6 @@ public class NullChannel implements PollableChannel, .tag("exception", "none") .description("Messages received") .build(); - return counterFacade; } @Override diff --git a/spring-integration-core/src/main/java/org/springframework/integration/transaction/ExpressionEvaluatingTransactionSynchronizationProcessor.java b/spring-integration-core/src/main/java/org/springframework/integration/transaction/ExpressionEvaluatingTransactionSynchronizationProcessor.java index de65fa6c80..f0d73c0c0e 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/transaction/ExpressionEvaluatingTransactionSynchronizationProcessor.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/transaction/ExpressionEvaluatingTransactionSynchronizationProcessor.java @@ -16,6 +16,7 @@ package org.springframework.integration.transaction; +import java.util.Map; import java.util.Map.Entry; import org.springframework.expression.EvaluationContext; @@ -142,28 +143,7 @@ public class ExpressionEvaluatingTransactionSynchronizationProcessor extends Int EvaluationContext evaluationContextToUse = prepareEvaluationContextToUse(holder); Object value = expression.getValue(evaluationContextToUse, message); if (value != null && messageChannel != null) { - if (logger.isDebugEnabled()) { - logger.debug("Sending expression result message to " + messageChannel + " " + - "as part of '" + expressionType + "' transaction synchronization"); - } - Message spelResultMessage = null; - try { - if (value instanceof Message) { - spelResultMessage = (Message) value; - } - else { - spelResultMessage = - getMessageBuilderFactory() - .withPayload(value) - .copyHeaders(message.getHeaders()) - .build(); - } - - sendMessage(messageChannel, spelResultMessage); - } - catch (Exception e) { - logger.error("Failed to send " + expressionType + " evaluation result " + spelResultMessage, e); - } + sendMessageForExpressionResult(value, message.getHeaders(), messageChannel, expressionType); } else { if (logger.isTraceEnabled()) { @@ -189,6 +169,33 @@ public class ExpressionEvaluatingTransactionSynchronizationProcessor extends Int } } + private void sendMessageForExpressionResult(Object value, Map headers, + MessageChannel messageChannel, String expressionType) { + + if (logger.isDebugEnabled()) { + logger.debug("Sending expression result message to " + messageChannel + " " + + "as part of '" + expressionType + "' transaction synchronization"); + } + Message spelResultMessage = null; + try { + if (value instanceof Message) { + spelResultMessage = (Message) value; + } + else { + spelResultMessage = + getMessageBuilderFactory() + .withPayload(value) + .copyHeaders(headers) + .build(); + } + + sendMessage(messageChannel, spelResultMessage); + } + catch (Exception e) { + logger.error("Failed to send " + expressionType + " evaluation result " + spelResultMessage, e); + } + } + private void sendMessage(MessageChannel channel, Message message) { channel.send(message, 0); } diff --git a/src/reference/asciidoc/whats-new.adoc b/src/reference/asciidoc/whats-new.adoc index fe9cf64aa9..76133d53b5 100644 --- a/src/reference/asciidoc/whats-new.adoc +++ b/src/reference/asciidoc/whats-new.adoc @@ -20,7 +20,7 @@ If you are interested in more details, see the Issue Tracker tickets that were r [[x5.2-behavior]] === Behavior Changes -See the https://github.com/spring-projects/spring-integration/wiki/Spring-Integration-5.1-to-5.2-Migration-Guide#dsl-publishsubscribechannel-behavior-change[Migration Guide] about a behavior change when using `publishSubscribeChannel` within a dynamically registered DSL integration flow. +See the https://github.com/spring-projects/spring-integration/wiki/Spring-Integration-5.1-to-5.2-Migration-Guide[Migration Guide] about behavior changes in this version. [[x5.2-new-components]] === New Components