From 0fd72d2d18586fe5076ec20fee1b77c505c1d09a Mon Sep 17 00:00:00 2001 From: Gary Russell Date: Fri, 25 Mar 2016 11:22:59 -0400 Subject: [PATCH] TCP Connection Factory FactoryBean Improvements Add ctor argument so that early `getObjectType()` calls can return a narrower type (server Vs. client CF). --- .../TcpConnectionFactoryFactoryBean.java | 37 +++++++++++++++---- .../ip/config/TcpConnectionFactoryParser.java | 2 +- .../connection/ConnectionFactoryTests.java | 11 ++++++ 3 files changed, 42 insertions(+), 8 deletions(-) diff --git a/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/TcpConnectionFactoryFactoryBean.java b/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/TcpConnectionFactoryFactoryBean.java index af898448c5..c5c251eae5 100644 --- a/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/TcpConnectionFactoryFactoryBean.java +++ b/spring-integration-ip/src/main/java/org/springframework/integration/ip/config/TcpConnectionFactoryFactoryBean.java @@ -27,6 +27,7 @@ import org.springframework.context.ApplicationEventPublisherAware; import org.springframework.context.SmartLifecycle; import org.springframework.core.serializer.Deserializer; import org.springframework.core.serializer.Serializer; +import org.springframework.integration.ip.tcp.connection.AbstractClientConnectionFactory; import org.springframework.integration.ip.tcp.connection.AbstractConnectionFactory; import org.springframework.integration.ip.tcp.connection.AbstractServerConnectionFactory; import org.springframework.integration.ip.tcp.connection.DefaultTcpNetSSLSocketFactorySupport; @@ -121,6 +122,14 @@ public class TcpConnectionFactoryFactoryBean extends AbstractFactoryBean getObjectType() { - return this.connectionFactory != null ? this.connectionFactory.getClass() - : AbstractConnectionFactory.class; + return this.connectionFactory != null ? this.connectionFactory.getClass() : + this.type == null ? AbstractConnectionFactory.class : + isServer() ? AbstractServerConnectionFactory.class : + isClient() ? AbstractClientConnectionFactory.class : + AbstractConnectionFactory.class; } @Override @@ -138,14 +150,15 @@ public class TcpConnectionFactoryFactoryBean extends AbstractFactoryBean