From a44d15000993f186da70acdd5241c9c7417ff03d Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Tue, 20 Dec 2011 10:08:27 -0500 Subject: [PATCH] INT-2323 made changes based on Sonar suggestions added optional rome dependency to HTTP module --- build.gradle | 5 +++++ .../integration/dispatcher/UnicastingDispatcher.java | 8 ++++++-- .../integration/gateway/MessagingGatewaySupport.java | 4 ++-- .../integration/store/MessageGroupStoreReaper.java | 10 ++++++---- .../integration/util/MessagingMethodInvokerHelper.java | 6 ++---- .../ftp/session/AbstractFtpSessionFactory.java | 6 +----- .../inbound/HttpRequestHandlingEndpointSupport.java | 9 +++++---- .../integration/monitor/IntegrationMBeanExporter.java | 4 ++-- .../integration/mail/AbstractMailReceiver.java | 2 +- 9 files changed, 30 insertions(+), 24 deletions(-) diff --git a/build.gradle b/build.gradle index 18cea80d60..233957762c 100644 --- a/build.gradle +++ b/build.gradle @@ -289,6 +289,11 @@ project('spring-integration-http') { optional = true exclude group: 'junit', module: 'junit' } + compile("net.java.dev.rome:rome-fetcher:1.0.0") { + optional = true + exclude group: 'junit', module: 'junit' + } + compile ("net.java.dev.rome:rome:1.0.0") { optional = true } testCompile project(":spring-integration-test") } } diff --git a/spring-integration-core/src/main/java/org/springframework/integration/dispatcher/UnicastingDispatcher.java b/spring-integration-core/src/main/java/org/springframework/integration/dispatcher/UnicastingDispatcher.java index dd1e5a3c17..b716984723 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/dispatcher/UnicastingDispatcher.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/dispatcher/UnicastingDispatcher.java @@ -81,8 +81,12 @@ public class UnicastingDispatcher extends AbstractDispatcher { public void setLoadBalancingStrategy(LoadBalancingStrategy loadBalancingStrategy) { Lock lock = rwLock.writeLock(); lock.lock(); - this.loadBalancingStrategy = loadBalancingStrategy; - lock.unlock(); + try { + this.loadBalancingStrategy = loadBalancingStrategy; + } + finally { + lock.unlock(); + } } public final boolean dispatch(final Message message) { diff --git a/spring-integration-core/src/main/java/org/springframework/integration/gateway/MessagingGatewaySupport.java b/spring-integration-core/src/main/java/org/springframework/integration/gateway/MessagingGatewaySupport.java index 07af8f8e5b..809770fa1d 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/gateway/MessagingGatewaySupport.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/gateway/MessagingGatewaySupport.java @@ -243,10 +243,10 @@ public abstract class MessagingGatewaySupport extends AbstractEndpoint implement if (error != null) { if (this.errorChannel != null) { - Message errorMessage = null; + Message errorMessage = new ErrorMessage(error); Message errorFlowReply = null; try { - errorFlowReply = this.messagingTemplate.sendAndReceive(this.errorChannel, new ErrorMessage(error)); + errorFlowReply = this.messagingTemplate.sendAndReceive(this.errorChannel, errorMessage); } catch (Exception errorFlowFailure) { throw new MessagingException(errorMessage, "failure occurred in error-handling flow", errorFlowFailure); diff --git a/spring-integration-core/src/main/java/org/springframework/integration/store/MessageGroupStoreReaper.java b/spring-integration-core/src/main/java/org/springframework/integration/store/MessageGroupStoreReaper.java index 850085c0ab..fe111c1b98 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/store/MessageGroupStoreReaper.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/store/MessageGroupStoreReaper.java @@ -132,11 +132,13 @@ public class MessageGroupStoreReaper implements Runnable, DisposableBean, Initia destroy(); if (logger.isInfoEnabled()){ logger.info("stopped " + this); - }; - } catch (Exception e) { - logger.error("failed to stop bean",e); - } finally { + } running = false; + } + catch (Exception e) { + logger.error("failed to stop bean",e); + } + finally { this.lifecycleLock.unlock(); } } diff --git a/spring-integration-core/src/main/java/org/springframework/integration/util/MessagingMethodInvokerHelper.java b/spring-integration-core/src/main/java/org/springframework/integration/util/MessagingMethodInvokerHelper.java index d0f3fdd330..77d6b0edcb 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/util/MessagingMethodInvokerHelper.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/util/MessagingMethodInvokerHelper.java @@ -497,13 +497,11 @@ public class MessagingMethodInvokerHelper extends AbstractExpressionEvaluator sb.append(this.determineHeaderExpression(headerAnnotation, new MethodParameter(method, i))); } } - else if (parameterTypeDescriptor != null - && parameterTypeDescriptor.isAssignableTo(messageTypeDescriptor)) { + else if (parameterTypeDescriptor.isAssignableTo(messageTypeDescriptor)) { sb.append("message"); this.setExclusiveTargetParameterType(parameterTypeDescriptor); } - else if (parameterTypeDescriptor != null - && (parameterTypeDescriptor.isAssignableTo(messageListTypeDescriptor) || parameterTypeDescriptor + else if ((parameterTypeDescriptor.isAssignableTo(messageListTypeDescriptor) || parameterTypeDescriptor .isAssignableTo(messageArrayTypeDescriptor))) { sb.append("messages"); this.setExclusiveTargetParameterType(parameterTypeDescriptor); diff --git a/spring-integration-ftp/src/main/java/org/springframework/integration/ftp/session/AbstractFtpSessionFactory.java b/spring-integration-ftp/src/main/java/org/springframework/integration/ftp/session/AbstractFtpSessionFactory.java index 68e2bbc406..11caead404 100644 --- a/spring-integration-ftp/src/main/java/org/springframework/integration/ftp/session/AbstractFtpSessionFactory.java +++ b/spring-integration-ftp/src/main/java/org/springframework/integration/ftp/session/AbstractFtpSessionFactory.java @@ -126,11 +126,7 @@ public abstract class AbstractFtpSessionFactory implements public Session getSession() { try { - T client = this.createClient(); - if (client == null) { - return null; - } - return new FtpSession(client); + return new FtpSession(this.createClient()); } catch (Exception e) { throw new IllegalStateException("failed to create FTPClient", e); diff --git a/spring-integration-http/src/main/java/org/springframework/integration/http/inbound/HttpRequestHandlingEndpointSupport.java b/spring-integration-http/src/main/java/org/springframework/integration/http/inbound/HttpRequestHandlingEndpointSupport.java index 844429fb08..4f76e53823 100644 --- a/spring-integration-http/src/main/java/org/springframework/integration/http/inbound/HttpRequestHandlingEndpointSupport.java +++ b/spring-integration-http/src/main/java/org/springframework/integration/http/inbound/HttpRequestHandlingEndpointSupport.java @@ -42,6 +42,8 @@ import org.springframework.http.converter.ByteArrayHttpMessageConverter; import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.ResourceHttpMessageConverter; import org.springframework.http.converter.StringHttpMessageConverter; +import org.springframework.http.converter.feed.AtomFeedHttpMessageConverter; +import org.springframework.http.converter.feed.RssChannelHttpMessageConverter; import org.springframework.http.converter.json.MappingJacksonHttpMessageConverter; import org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter; import org.springframework.http.converter.xml.SourceHttpMessageConverter; @@ -103,7 +105,7 @@ abstract class HttpRequestHandlingEndpointSupport extends MessagingGatewaySuppor HttpRequestHandlingEndpointSupport.class.getClassLoader()) && ClassUtils.isPresent("org.codehaus.jackson.JsonGenerator", HttpRequestHandlingEndpointSupport.class .getClassLoader()); - + private static boolean romePresent = ClassUtils.isPresent("com.sun.syndication.feed.WireFeed", HttpRequestHandlingEndpointSupport.class.getClassLoader()); @@ -151,9 +153,8 @@ abstract class HttpRequestHandlingEndpointSupport extends MessagingGatewaySuppor this.messageConverters.add(new MappingJacksonHttpMessageConverter()); } if (romePresent) { - // TODO add deps for: - // this.messageConverters.add(new AtomFeedHttpMessageConverter()); - // this.messageConverters.add(new RssChannelHttpMessageConverter()); + this.messageConverters.add(new AtomFeedHttpMessageConverter()); + this.messageConverters.add(new RssChannelHttpMessageConverter()); } } diff --git a/spring-integration-jmx/src/main/java/org/springframework/integration/monitor/IntegrationMBeanExporter.java b/spring-integration-jmx/src/main/java/org/springframework/integration/monitor/IntegrationMBeanExporter.java index f2621dda66..0bfc524837 100644 --- a/spring-integration-jmx/src/main/java/org/springframework/integration/monitor/IntegrationMBeanExporter.java +++ b/spring-integration-jmx/src/main/java/org/springframework/integration/monitor/IntegrationMBeanExporter.java @@ -421,7 +421,7 @@ public class IntegrationMBeanExporter extends MBeanExporter implements BeanPostP @ManagedAttribute public String[] getHandlerNames() { - return handlersByName.keySet().toArray(new String[0]); + return handlersByName.keySet().toArray(new String[handlersByName.size()]); } @ManagedMetric(metricType = MetricType.GAUGE, displayName = "Active Handler Count") @@ -446,7 +446,7 @@ public class IntegrationMBeanExporter extends MBeanExporter implements BeanPostP @ManagedAttribute public String[] getChannelNames() { - return channelsByName.keySet().toArray(new String[0]); + return channelsByName.keySet().toArray(new String[channelsByName.size()]); } public Statistics getHandlerDuration(String name) { diff --git a/spring-integration-mail/src/main/java/org/springframework/integration/mail/AbstractMailReceiver.java b/spring-integration-mail/src/main/java/org/springframework/integration/mail/AbstractMailReceiver.java index ed3fae4bd0..52d4c297df 100755 --- a/spring-integration-mail/src/main/java/org/springframework/integration/mail/AbstractMailReceiver.java +++ b/spring-integration-mail/src/main/java/org/springframework/integration/mail/AbstractMailReceiver.java @@ -289,7 +289,7 @@ public abstract class AbstractMailReceiver extends IntegrationObjectSupport impl if (this.shouldDeleteMessages()) { this.deleteMessages(messages); } - return copiedMessages.toArray(new Message[]{}); + return copiedMessages.toArray(new Message[copiedMessages.size()]); } finally { MailTransportUtils.closeFolder(this.folder, this.shouldDeleteMessages);