Author: davsclaus
Date: Sun Jul 27 22:06:06 2008
New Revision: 680254

URL: http://svn.apache.org/viewvc?rev=680254&view=rev
Log:
Refactored camel-ftp so the producer and consumer share more code between the 
FTP and SFTP parts in their common super class.

Modified:
    
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java
    
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpProducer.java
    
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java
    
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileProducer.java
    
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java
    
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpProducer.java

Modified: 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java?rev=680254&r1=680253&r2=680254&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java
 (original)
+++ 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConsumer.java
 Sun Jul 27 22:06:06 2008
@@ -22,24 +22,14 @@
 
 import org.apache.camel.Processor;
 import org.apache.camel.component.file.FileComponent;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.commons.net.ftp.FTPClient;
 import org.apache.commons.net.ftp.FTPFile;
 
 public class FtpConsumer extends RemoteFileConsumer<RemoteFileExchange> {
-    private static final transient Log LOG = 
LogFactory.getLog(FtpConsumer.class);
 
     private FtpEndpoint endpoint;
-    private long lastPollTime;
     private FTPClient client;
 
-    private boolean recursive = true;
-    private String regexPattern;
-    private boolean setNames = true;
-    private boolean exclusiveRead = true;
-    private boolean deleteFile;
-
     public FtpConsumer(FtpEndpoint endpoint, Processor processor, FTPClient 
client) {
         super(endpoint, processor);
         this.endpoint = endpoint;
@@ -235,66 +225,9 @@
         }
     }
 
-    private String remoteServer() {
-        return endpoint.getConfiguration().remoteServerInformation();
-    }
-
-    protected boolean isMatched(FTPFile file) {
-        boolean result = true;
-        if (regexPattern != null && regexPattern.length() > 0) {
-            result = file.getName().matches(regexPattern);
-        }
-        if (LOG.isTraceEnabled()) {
-            LOG.trace("Matching file: " + file.getName() + " is " + result);
-        }
-        return result;
-    }
-
-    public boolean isRecursive() {
-        return recursive;
+    protected String getFileName(Object file) {
+        FTPFile ftpFile = (FTPFile) file;
+        return ftpFile.getName();
     }
 
-    public void setRecursive(boolean recursive) {
-        this.recursive = recursive;
-    }
-
-    public long getLastPollTime() {
-        return lastPollTime;
-    }
-
-    public void setLastPollTime(long lastPollTime) {
-        this.lastPollTime = lastPollTime;
-    }
-
-    public String getRegexPattern() {
-        return regexPattern;
-    }
-
-    public void setRegexPattern(String regexPattern) {
-        this.regexPattern = regexPattern;
-    }
-
-    public boolean isSetNames() {
-        return setNames;
-    }
-
-    public void setSetNames(boolean setNames) {
-        this.setNames = setNames;
-    }
-
-    public boolean isExclusiveRead() {
-        return exclusiveRead;
-    }
-
-    public void setExclusiveRead(boolean exclusiveRead) {
-        this.exclusiveRead = exclusiveRead;
-    }
-
-    public boolean isDeleteFile() {
-        return deleteFile;
-    }
-
-    public void setDeleteFile(boolean deleteFile) {
-        this.deleteFile = deleteFile;
-    }
 }

Modified: 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpProducer.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpProducer.java?rev=680254&r1=680253&r2=680254&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpProducer.java
 (original)
+++ 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpProducer.java
 Sun Jul 27 22:06:06 2008
@@ -21,12 +21,9 @@
 
 import org.apache.camel.Exchange;
 import org.apache.camel.RuntimeCamelException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.commons.net.ftp.FTPClient;
 
 public class FtpProducer extends RemoteFileProducer<RemoteFileExchange> {
-    private static final transient Log LOG = 
LogFactory.getLog(FtpProducer.class);
 
     private FtpEndpoint endpoint;
     private FTPClient client;
@@ -104,29 +101,7 @@
         }
     }
 
-    @Override
-    protected void doStart() throws Exception {
-        LOG.info("Starting");
-        // do not connect when componet starts, just wait until we process as 
we will
-        // connect at that time if needed
-        super.doStart();
-    }
-
-    @Override
-    protected void doStop() throws Exception {
-        LOG.info("Stopping");
-        // disconnect when stopping
-        try {
-            disconnect();
-        } catch (Exception e) {
-            // ignore just log a warning
-            LOG.warn("Exception occured during disconecting from " + 
remoteServer() + ". "
-                     + e.getClass().getCanonicalName() + " message: " + 
e.getMessage());
-        }
-        super.doStop();
-    }
-
-    protected static boolean buildDirectory(FTPClient ftpClient, String 
dirName) throws IOException {
+    protected boolean buildDirectory(FTPClient ftpClient, String dirName) 
throws IOException {
         String originalDirectory = ftpClient.printWorkingDirectory();
 
         boolean success = false;
@@ -138,7 +113,7 @@
                     LOG.debug("Trying to build remote directory: " + dirName);
                 }
                 success = ftpClient.makeDirectory(dirName);
-                if (! success) {
+                if (!success) {
                     // we are here if the server side doesn't create 
intermediate folders
                     // so create the folder one by one
                     buildDirectoryChunks(ftpClient, dirName);
@@ -152,7 +127,7 @@
         return success;
     }
 
-    private static boolean buildDirectoryChunks(FTPClient ftpClient, String 
dirName) throws IOException {
+    private boolean buildDirectoryChunks(FTPClient ftpClient, String dirName) 
throws IOException {
         final StringBuilder sb = new StringBuilder(dirName.length());
         final String[] dirs = dirName.split("\\/");
 
@@ -170,8 +145,4 @@
         return success;
     }
 
-    private String remoteServer() {
-        return endpoint.getConfiguration().remoteServerInformation();
-    }
-
 }

Modified: 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java?rev=680254&r1=680253&r2=680254&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java
 (original)
+++ 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileConsumer.java
 Sun Jul 27 22:06:06 2008
@@ -20,9 +20,19 @@
 
 import org.apache.camel.Processor;
 import org.apache.camel.impl.ScheduledPollConsumer;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 public abstract class RemoteFileConsumer<T extends RemoteFileExchange> extends 
ScheduledPollConsumer<T> {
-    RemoteFileEndpoint<T> endpoint;
+    protected final transient Log LOG = LogFactory.getLog(getClass());
+    protected RemoteFileEndpoint<T> endpoint;
+    protected long lastPollTime;
+
+    protected boolean recursive = true;
+    protected String regexPattern;
+    protected boolean setNames = true;
+    protected boolean exclusiveRead = true;
+    protected boolean deleteFile;
 
     public RemoteFileConsumer(RemoteFileEndpoint<T> endpoint, Processor 
processor) {
         super(endpoint, processor);
@@ -32,4 +42,83 @@
     public RemoteFileConsumer(RemoteFileEndpoint<T> endpoint, Processor 
processor, ScheduledExecutorService executor) {
         super(endpoint, processor, executor);
     }
+
+    /**
+     * Gets the filename.
+     *
+     * @param file the file object for the given consumer implementation.
+     * @return the filename as String.
+     */
+    protected abstract String getFileName(Object file);
+
+    /**
+     * Is the given file matched to be consumed (will consider regexp if 
provided as an option).
+     * <p/>
+     * Note: Returns true if no reg exp is used.
+     */
+    protected boolean isMatched(Object file) {
+        String fileName = getFileName(file);
+
+        boolean result = true;
+        if (regexPattern != null && regexPattern.length() > 0) {
+            result = fileName.matches(regexPattern);
+        }
+        if (LOG.isTraceEnabled()) {
+            LOG.trace("Matching file: " + fileName + " is " + result);
+        }
+        return result;
+    }
+
+    protected String remoteServer() {
+        return endpoint.getConfiguration().remoteServerInformation();
+    }
+
+    public boolean isRecursive() {
+        return recursive;
+    }
+
+    public void setRecursive(boolean recursive) {
+        this.recursive = recursive;
+    }
+
+    public long getLastPollTime() {
+        return lastPollTime;
+    }
+
+    public void setLastPollTime(long lastPollTime) {
+        this.lastPollTime = lastPollTime;
+    }
+
+    public String getRegexPattern() {
+        return regexPattern;
+    }
+
+    public void setRegexPattern(String regexPattern) {
+        this.regexPattern = regexPattern;
+    }
+
+    public boolean isSetNames() {
+        return setNames;
+    }
+
+    public void setSetNames(boolean setNames) {
+        this.setNames = setNames;
+    }
+
+    public boolean isExclusiveRead() {
+        return exclusiveRead;
+    }
+
+    public void setExclusiveRead(boolean exclusiveRead) {
+        this.exclusiveRead = exclusiveRead;
+    }
+
+    public boolean isDeleteFile() {
+        return deleteFile;
+    }
+
+    public void setDeleteFile(boolean deleteFile) {
+        this.deleteFile = deleteFile;
+    }
+
 }

Modified: 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileProducer.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileProducer.java?rev=680254&r1=680253&r2=680254&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileProducer.java
 (original)
+++ 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/RemoteFileProducer.java
 Sun Jul 27 22:06:06 2008
@@ -19,11 +19,16 @@
 import org.apache.camel.Message;
 import org.apache.camel.component.file.FileComponent;
 import org.apache.camel.impl.DefaultProducer;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 public abstract class RemoteFileProducer<T extends RemoteFileExchange> extends 
DefaultProducer<T> {
+    protected final transient Log LOG = LogFactory.getLog(getClass());
+    protected RemoteFileEndpoint<T> endpoint;
 
     protected RemoteFileProducer(RemoteFileEndpoint<T> endpoint) {
         super(endpoint);
+        this.endpoint = endpoint;
     }
 
     protected String createFileName(Message message, RemoteFileConfiguration 
fileConfig) {
@@ -44,6 +49,32 @@
         return answer;
     }
 
+    protected String remoteServer() {
+        return endpoint.getConfiguration().remoteServerInformation();
+    }
+
+    @Override
+    protected void doStart() throws Exception {
+        LOG.info("Starting");
+        // do not connect when componet starts, just wait until we process as 
we will
+        // connect at that time if needed
+        super.doStart();
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        LOG.info("Stopping");
+        // disconnect when stopping
+        try {
+            disconnect();
+        } catch (Exception e) {
+            // ignore just log a warning
+            LOG.warn("Exception occured during disconecting from " + 
remoteServer() + ". "
+                     + e.getClass().getCanonicalName() + " message: " + 
e.getMessage());
+        }
+        super.doStop();
+    }
+
     protected abstract void connectIfNecessary() throws Exception;
 
     protected abstract void disconnect() throws Exception;

Modified: 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java?rev=680254&r1=680253&r2=680254&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java
 (original)
+++ 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpConsumer.java
 Sun Jul 27 22:06:06 2008
@@ -32,17 +32,10 @@
 import org.apache.commons.logging.LogFactory;
 
 public class SftpConsumer extends RemoteFileConsumer<RemoteFileExchange> {
-    private static final transient Log LOG = 
LogFactory.getLog(SftpConsumer.class);
     private final SftpEndpoint endpoint;
-    private boolean recursive = true;
-    private String regexPattern = "";
-    private long lastPollTime;
 
     private ChannelSftp channel;
     private Session session;
-    private boolean setNames;
-    private boolean exclusiveRead = true;
-    private boolean deleteFile;
 
     public SftpConsumer(SftpEndpoint endpoint, Processor processor, Session 
session) {
         super(endpoint, processor);
@@ -254,66 +247,9 @@
         }
     }
 
-    private String remoteServer() {
-        return endpoint.getConfiguration().remoteServerInformation();
+    protected String getFileName(Object file) {
+        ChannelSftp.LsEntry sftpFile = (ChannelSftp.LsEntry) file;
+        return sftpFile.getFilename();
     }
 
-    protected boolean isMatched(ChannelSftp.LsEntry sftpFile) {
-        boolean result = true;
-        if (regexPattern != null && regexPattern.length() > 0) {
-            result = sftpFile.getFilename().matches(regexPattern);
-        }
-        if (LOG.isTraceEnabled()) {
-            LOG.trace("Matching file: " + sftpFile.getFilename() + " is " + 
result);
-        }
-        return result;
-    }
-
-    public boolean isRecursive() {
-        return recursive;
-    }
-
-    public void setRecursive(boolean recursive) {
-        this.recursive = recursive;
-    }
-
-    public long getLastPollTime() {
-        return lastPollTime;
-    }
-
-    public void setLastPollTime(long lastPollTime) {
-        this.lastPollTime = lastPollTime;
-    }
-
-    public String getRegexPattern() {
-        return regexPattern;
-    }
-
-    public void setRegexPattern(String regexPattern) {
-        this.regexPattern = regexPattern;
-    }
-
-    public boolean isSetNames() {
-        return setNames;
-    }
-
-    public void setSetNames(boolean setNames) {
-        this.setNames = setNames;
-    }
-
-    public boolean isExclusiveRead() {
-        return exclusiveRead;
-    }
-
-    public void setExclusiveRead(boolean exclusiveRead) {
-        this.exclusiveRead = exclusiveRead;
-    }
-
-    public boolean isDeleteFile() {
-        return deleteFile;
-    }
-
-    public void setDeleteFile(boolean deleteFile) {
-        this.deleteFile = deleteFile;
-    }
 }

Modified: 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpProducer.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpProducer.java?rev=680254&r1=680253&r2=680254&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpProducer.java
 (original)
+++ 
activemq/camel/trunk/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpProducer.java
 Sun Jul 27 22:06:06 2008
@@ -25,12 +25,8 @@
 import com.jcraft.jsch.SftpException;
 
 import org.apache.camel.Exchange;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 
 public class SftpProducer extends RemoteFileProducer<RemoteFileExchange> {
-    private static final transient Log LOG = 
LogFactory.getLog(SftpProducer.class);
-
     private SftpEndpoint endpoint;
     private ChannelSftp channel;
     private Session session;
@@ -116,29 +112,7 @@
         }
     }
 
-    @Override
-    protected void doStart() throws Exception {
-        LOG.info("Starting");
-        // do not connect when componet starts, just wait until we process as 
we will
-        // connect at that time if needed
-        super.doStart();
-    }
-
-    @Override
-    protected void doStop() throws Exception {
-        LOG.info("Stopping");
-        // disconnect when stopping
-        try {
-            disconnect();
-        } catch (Exception e) {
-            // ignore just log a warning
-            LOG.warn("Exception occured during disconecting from " + 
remoteServer() + ". "
-                     + e.getClass().getCanonicalName() + " message: " + 
e.getMessage());
-        }
-        super.doStop();
-    }
-
-    protected static boolean buildDirectory(ChannelSftp sftpClient, String 
dirName)
+    protected boolean buildDirectory(ChannelSftp sftpClient, String dirName)
         throws IOException, SftpException {
         String originalDirectory = sftpClient.pwd();
 
@@ -174,7 +148,7 @@
         return success;
     }
 
-    private static boolean buildDirectoryChunks(ChannelSftp sftpClient, String 
dirName) 
+    private boolean buildDirectoryChunks(ChannelSftp sftpClient, String 
dirName)
        throws IOException, SftpException {
         final StringBuilder sb = new StringBuilder(dirName.length());
         final String[] dirs = dirName.split("\\/");
@@ -198,8 +172,4 @@
         return success;
     }
     
-    private String remoteServer() {
-        return endpoint.getConfiguration().remoteServerInformation();
-    }
-
 }


Reply via email to