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>