From 6560444c168d2b6da268a3e931834094314a83a4 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Wed, 10 Nov 2010 17:36:42 -0500 Subject: [PATCH] INT-1562 renamed SftpSessionFactory to SftpSessionFactoryBean since it implements FactoryBean, and refactored it to extend AbstractFactoryBean as well --- ...SftpMessageSendingConsumerFactoryBean.java | 4 +- ...SynchronizingMessageSourceFactoryBean.java | 4 +- .../sftp/session/QueuedSftpSessionPool.java | 6 +- ...ctory.java => SftpSessionFactoryBean.java} | 65 +++++++++---------- .../sftp/session/SftpSessionUtils.java | 4 +- 5 files changed, 41 insertions(+), 42 deletions(-) rename spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/{SftpSessionFactory.java => SftpSessionFactoryBean.java} (78%) diff --git a/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/config/SftpMessageSendingConsumerFactoryBean.java b/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/config/SftpMessageSendingConsumerFactoryBean.java index d74e774ed6..6b95ffb049 100644 --- a/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/config/SftpMessageSendingConsumerFactoryBean.java +++ b/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/config/SftpMessageSendingConsumerFactoryBean.java @@ -21,7 +21,7 @@ import org.springframework.expression.Expression; import org.springframework.expression.common.LiteralExpression; import org.springframework.integration.sftp.outbound.SftpSendingMessageHandler; import org.springframework.integration.sftp.session.QueuedSftpSessionPool; -import org.springframework.integration.sftp.session.SftpSessionFactory; +import org.springframework.integration.sftp.session.SftpSessionFactoryBean; import org.springframework.integration.sftp.session.SftpSessionUtils; /** @@ -87,7 +87,7 @@ public class SftpMessageSendingConsumerFactoryBean implements FactoryBean queue; - private final SftpSessionFactory sftpSessionFactory; + private final SftpSessionFactoryBean sftpSessionFactory; private final int maxPoolSize; - public QueuedSftpSessionPool(SftpSessionFactory factory) { + public QueuedSftpSessionPool(SftpSessionFactoryBean factory) { this(DEFAULT_POOL_SIZE, factory); } - public QueuedSftpSessionPool(int maxPoolSize, SftpSessionFactory sessionFactory) { + public QueuedSftpSessionPool(int maxPoolSize, SftpSessionFactoryBean sessionFactory) { this.sftpSessionFactory = sessionFactory; this.maxPoolSize = maxPoolSize; } diff --git a/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/SftpSessionFactory.java b/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/SftpSessionFactoryBean.java similarity index 78% rename from spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/SftpSessionFactory.java rename to spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/SftpSessionFactoryBean.java index f4c7769dc2..308b0324a6 100644 --- a/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/SftpSessionFactory.java +++ b/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/SftpSessionFactoryBean.java @@ -16,8 +16,7 @@ package org.springframework.integration.sftp.session; -import org.springframework.beans.factory.FactoryBean; -import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.config.AbstractFactoryBean; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -28,34 +27,41 @@ import org.springframework.util.StringUtils; * @author Josh Long * @author Mario Gray */ -public class SftpSessionFactory implements FactoryBean, InitializingBean { +public class SftpSessionFactoryBean extends AbstractFactoryBean { - private volatile String knownHosts; + private volatile String remoteHost; + + private volatile int port = 22; // the default + + private volatile String user; private volatile String password; + private volatile String knownHosts; + private volatile String privateKey; private volatile String privateKeyPassphrase; - private volatile String remoteHost; - private volatile String user; + public void setRemoteHost(String remoteHost) { + this.remoteHost = remoteHost; + } - private volatile int port = 22; // the default + public void setPort(int port) { + this.port = port; + } - - - public void setKnownHosts(String knownHosts) { - this.knownHosts = knownHosts; + public void setUser(String user) { + this.user = user; } public void setPassword(String password) { this.password = password; } - public void setPort(int port) { - this.port = port; + public void setKnownHosts(String knownHosts) { + this.knownHosts = knownHosts; } public void setPrivateKey(String privateKey) { @@ -66,32 +72,25 @@ public class SftpSessionFactory implements FactoryBean, Initializin this.privateKeyPassphrase = privateKeyPassphrase; } - public void setRemoteHost(String remoteHost) { - this.remoteHost = remoteHost; - } - public void setUser(String user) { - this.user = user; - } - - public void afterPropertiesSet() throws Exception { - Assert.hasText(this.remoteHost, "remoteHost must not be empty"); - Assert.hasText(this.user, "user mut not be empty"); - Assert.state(StringUtils.hasText(this.password) || StringUtils.hasText(this.privateKey) || StringUtils.hasText(this.privateKeyPassphrase), - "either a password or a private key and/or a private key passphrase is required"); - Assert.state(this.port >= 0, "port must be a positive number"); - } - - public SftpSession getObject() throws Exception { - return new SftpSession(this.user, this.remoteHost, this.password, this.port, this.knownHosts, null, this.privateKey, this.privateKeyPassphrase); - } - - public Class getObjectType() { + @Override + public Class getObjectType() { return SftpSession.class; } + @Override public boolean isSingleton() { return false; } + @Override + protected SftpSession createInstance() throws Exception { + Assert.hasText(this.remoteHost, "remoteHost must not be empty"); + Assert.hasText(this.user, "user must not be empty"); + Assert.isTrue(this.port >= 0, "port must be a positive number"); + Assert.isTrue(StringUtils.hasText(this.password) || StringUtils.hasText(this.privateKey) || StringUtils.hasText(this.privateKeyPassphrase), + "either a password or a private key and/or a private key passphrase is required"); + return new SftpSession(this.user, this.remoteHost, this.password, this.port, this.knownHosts, null, this.privateKey, this.privateKeyPassphrase); + } + } diff --git a/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/SftpSessionUtils.java b/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/SftpSessionUtils.java index 2a241da1a0..4dc2e3dfc6 100644 --- a/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/SftpSessionUtils.java +++ b/spring-integration-sftp/src/main/java/org/springframework/integration/sftp/session/SftpSessionUtils.java @@ -39,8 +39,8 @@ public abstract class SftpSessionUtils { * commands against a remote SFTP/SSH filesystem * @throws Exception thrown in case of darned near anything */ - public static SftpSessionFactory buildSftpSessionFactory(String host, String pw, String usr, String pvKey, String pvKeyPass, int port) throws Exception { - SftpSessionFactory sftpSessionFactory = new SftpSessionFactory(); + public static SftpSessionFactoryBean buildSftpSessionFactory(String host, String pw, String usr, String pvKey, String pvKeyPass, int port) throws Exception { + SftpSessionFactoryBean sftpSessionFactory = new SftpSessionFactoryBean(); sftpSessionFactory.setPassword(pw); sftpSessionFactory.setPort(port); sftpSessionFactory.setRemoteHost(host);