You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ec...@apache.org on 2014/05/01 23:53:45 UTC

svn commit: r1591789 - in /commons/proper/vfs/trunk: core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpClientFactory.java core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileSystemConfigBuilder.java src/changes/changes.xml

Author: ecki
Date: Thu May  1 21:53:45 2014
New Revision: 1591789

URL: http://svn.apache.org/r1591789
Log:
[VFS-167][FTP] Add proxy support.

Modified:
    commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpClientFactory.java
    commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileSystemConfigBuilder.java
    commons/proper/vfs/trunk/src/changes/changes.xml

Modified: commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpClientFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpClientFactory.java?rev=1591789&r1=1591788&r2=1591789&view=diff
==============================================================================
--- commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpClientFactory.java (original)
+++ commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpClientFactory.java Thu May  1 21:53:45 2014
@@ -20,6 +20,7 @@ import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.io.Writer;
+import java.net.Proxy;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -151,6 +152,12 @@ public final class FtpClientFactory
                         client.setControlEncoding(controlEncoding);
                     }
 
+                    final Proxy proxy = builder.getProxy(fileSystemOptions);
+                    if (proxy != null)
+                    {
+                        client.setProxy(proxy);
+                    }
+
                     client.connect(hostname, port);
 
                     final int reply = client.getReplyCode();

Modified: commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileSystemConfigBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileSystemConfigBuilder.java?rev=1591789&r1=1591788&r2=1591789&view=diff
==============================================================================
--- commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileSystemConfigBuilder.java (original)
+++ commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileSystemConfigBuilder.java Thu May  1 21:53:45 2014
@@ -16,6 +16,8 @@
  */
 package org.apache.commons.vfs2.provider.ftp;
 
+import java.net.Proxy;
+
 import org.apache.commons.net.ftp.parser.FTPFileEntryParserFactory;
 import org.apache.commons.vfs2.FileSystem;
 import org.apache.commons.vfs2.FileSystemConfigBuilder;
@@ -37,7 +39,7 @@ public class FtpFileSystemConfigBuilder 
     private static final String FACTORY_KEY = FTPFileEntryParserFactory.class.getName() + ".KEY";
     private static final String FILE_TYPE = _PREFIX + ".FILE_TYPE";
     private static final String PASSIVE_MODE = _PREFIX + ".PASSIVE";
-
+    private static final String PROXY = _PREFIX + ".PROXY";
     private static final String RECENT_DATE_FORMAT = _PREFIX + ".RECENT_DATE_FORMAT";
     private static final String SERVER_LANGUAGE_CODE = _PREFIX + ".SERVER_LANGUAGE_CODE";
     private static final String SERVER_TIME_ZONE_ID = _PREFIX + ".SERVER_TIME_ZONE_ID";
@@ -158,6 +160,18 @@ public class FtpFileSystemConfigBuilder 
     }
 
     /**
+     * Gets the Proxy.
+     *
+     * @param opts The FileSystemOptions.
+     * @return the Proxy
+     * @since 2.1
+     */
+    public Proxy getProxy(final FileSystemOptions opts)
+    {
+        return (Proxy) this.getParam(opts, PROXY);
+    }
+
+    /**
      * See {@link org.apache.commons.net.ftp.FTPClientConfig} for details and examples.
      *
      * @param opts The FileSystemOptions.
@@ -330,6 +344,18 @@ public class FtpFileSystemConfigBuilder 
     }
 
     /**
+     * Sets the Proxy.
+     *
+     * @param opts the FileSystem options.
+     * @param proxy the Proxy
+     * @since 2.1
+     */
+    public void setProxy(final FileSystemOptions opts, Proxy proxy)
+    {
+        setParam(opts, PROXY, proxy);
+    }
+
+    /**
      * See {@link org.apache.commons.net.ftp.FTPClientConfig} for details and examples.
      *
      * @param opts The FileSystemOptions.

Modified: commons/proper/vfs/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/src/changes/changes.xml?rev=1591789&r1=1591788&r2=1591789&view=diff
==============================================================================
--- commons/proper/vfs/trunk/src/changes/changes.xml (original)
+++ commons/proper/vfs/trunk/src/changes/changes.xml Thu May  1 21:53:45 2014
@@ -26,6 +26,9 @@
 <!--       <action issue="VFS-443" dev="ggregory" type="update" due-to="nickallen"> -->
 <!--     	[Local] Need an easy way to convert from a FileObject to a File. -->
 <!--       </action> -->
+      <action issue="VFS-167" dev="ecki" type="update" due-to="Jimmy Praet">
+       [FTP] Allow Proxy support to file system options.
+      </action>
       <action issue="VFS-520" dev="ecki" type="update">
        Make JavaDoc compatible with Java 8 tool.
       </action>