You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by jo...@apache.org on 2013/02/21 15:47:37 UTC
svn commit: r1448668 - in /commons/proper/vfs/trunk:
core/src/main/java/org/apache/commons/vfs2/provider/ftp/
core/src/main/java/org/apache/commons/vfs2/provider/ftps/
core/src/test/java/org/apache/commons/vfs2/provider/ftps/test/ src/changes/
Author: joehni
Date: Thu Feb 21 14:47:37 2013
New Revision: 1448668
URL: http://svn.apache.org/r1448668
Log:
Deprecate FtpsFileSystemConfigBuilder.setFtpsType and FtpsFileSystemConfigBuilder.getFtpsType in favor of FtpsFileSystemConfigBuilder.setFtpsMode and FtpsFileSystemConfigBuilder.getFtpsMode which use new enum FtpsMode instead (VFS-462).
Added:
commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsMode.java (with props)
Modified:
commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftp/FtpFileSystemConfigBuilder.java
commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsClientFactory.java
commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsFileSystemConfigBuilder.java
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/ftps/test/FtpsProviderExplicitTestCase.java
commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/ftps/test/FtpsProviderImplicitTestCase_Disabled.java
commons/proper/vfs/trunk/src/changes/changes.xml
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=1448668&r1=1448667&r2=1448668&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 Feb 21 14:47:37 2013
@@ -95,7 +95,7 @@ public class FtpFileSystemConfigBuilder
/**
* @param opts The FileSystemOptions.
- * @return The timeout as an Integer.
+ * @return The timeout for opening the data channel as an Integer.
* @see #setDataTimeout
*/
public Integer getDataTimeout(final FileSystemOptions opts)
Modified: commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsClientFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsClientFactory.java?rev=1448668&r1=1448667&r2=1448668&view=diff
==============================================================================
--- commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsClientFactory.java (original)
+++ commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsClientFactory.java Thu Feb 21 14:47:37 2013
@@ -68,19 +68,13 @@ public final class FtpsClientFactory
protected FTPSClient createClient(final FileSystemOptions fileSystemOptions) throws FileSystemException
{
final FTPSClient client;
- if (builder.getFtpsType(fileSystemOptions).equals(FtpsFileSystemConfigBuilder.FTPS_TYPE_EXPLICIT))
- {
- client = new FTPSClient();
- }
- else if (builder.getFtpsType(fileSystemOptions).equals(FtpsFileSystemConfigBuilder.FTPS_TYPE_IMPLICIT))
+ if (builder.getFtpsMode(fileSystemOptions) == FtpsMode.IMPLICIT)
{
client = new FTPSClient(true);
}
- else
+ else
{
- throw new FileSystemException("Invalid FTPS type of "
- + FtpsFileSystemConfigBuilder.getInstance().getFtpsType(fileSystemOptions)
- + " specified. Must be 'implicit' or 'explicit'");
+ client = new FTPSClient();
}
final TrustManager trustManager = TrustManagerUtils.getValidateServerCertificateTrustManager();
Modified: commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsFileSystemConfigBuilder.java
URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsFileSystemConfigBuilder.java?rev=1448668&r1=1448667&r2=1448668&view=diff
==============================================================================
--- commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsFileSystemConfigBuilder.java (original)
+++ commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsFileSystemConfigBuilder.java Thu Feb 21 14:47:37 2013
@@ -28,22 +28,11 @@ public final class FtpsFileSystemConfigB
{
private static final String _PREFIX = FtpsFileSystemConfigBuilder.class.getName();
- private static final FtpsFileSystemConfigBuilder BUILDER =
- new FtpsFileSystemConfigBuilder();
+ private static final FtpsFileSystemConfigBuilder BUILDER = new FtpsFileSystemConfigBuilder();
- private static final String FTPS_TYPE = _PREFIX + ".FTPS_TYPE";
+ private static final String FTPS_MODE = _PREFIX + ".FTPS_MODE";
private static final String PROT = _PREFIX + ".PROT";
- /**
- * FTPS implicit file type.
- */
- public static final String FTPS_TYPE_IMPLICIT = "implicit";
-
- /**
- * FTPS explicit file type.
- */
- public static final String FTPS_TYPE_EXPLICIT = "explicit";
-
private FtpsFileSystemConfigBuilder()
{
super("ftps.");
@@ -60,31 +49,79 @@ public final class FtpsFileSystemConfigB
}
/**
- * Set FTPS security mode, either "implicit" or "explicit".
+ * Set FTPS mode, either "implicit" or "explicit".
*
* <p>Note, that implicit mode is not standardized and considered as deprecated. Some unit tests for VFS fail with
* implicit mode and it is not yet clear if its a problem with Commons VFS/Commons Net or our test server Apache
* FTP/SSHD.</p>
*
* @param opts The FileSystemOptions.
- * @param ftpsType The file type.
+ * @param ftpsMode The mode to establish a FTPS connection.
* @see <a href="http://en.wikipedia.org/wiki/FTPS#Implicit">Wikipedia: FTPS/Implicit</a>
+ * @since 2.1
+ */
+ public void setFtpsMode(final FileSystemOptions opts, final FtpsMode ftpsMode)
+ {
+ setParam(opts, FTPS_MODE, ftpsMode);
+ }
+
+ /**
+ * Return the FTPS mode. Defaults to "explicit" if not defined.
+ *
+ * @param opts The FileSystemOptions.
+ * @return The file type.
+ * @see #setFtpsType
*/
- public void setFtpsType(final FileSystemOptions opts, final String ftpsType)
+ public FtpsMode getFtpsMode(final FileSystemOptions opts)
{
- setParam(opts, FTPS_TYPE, ftpsType);
+ final FtpsMode mode = (FtpsMode)getParam(opts, FTPS_MODE);
+ return mode == null ? FtpsMode.EXPLICIT : mode;
}
+ /**
+ * Set FTPS type, either "implicit" or "explicit".
+ * <p>
+ * Note, that implicit mode is not standardized and considered as deprecated. Some unit tests for VFS fail with
+ * implicit mode and it is not yet clear if its a problem with Commons VFS/Commons Net or our test server Apache
+ * FTP/SSHD.
+ * </p>
+ *
+ * @param opts The FileSystemOptions.
+ * @param ftpsType The file type.
+ * @see <a href="http://en.wikipedia.org/wiki/FTPS#Implicit">Wikipedia: FTPS/Implicit</a>
+ * @deprecated As of 2.1, use {@link #setFtpsMode(FileSystemOptions, FtpsMode)}
+ */
+ @Deprecated
+ public void setFtpsType(final FileSystemOptions opts, final String ftpsType)
+ {
+ final FtpsMode mode;
+ if (ftpsType != null)
+ {
+ mode = FtpsMode.valueOf(ftpsType.toUpperCase());
+ if (mode == null)
+ {
+ throw new IllegalArgumentException("Not a proper FTPS mode: " + ftpsType);
+ }
+ }
+ else
+ {
+ mode = null;
+ }
+ setFtpsMode(opts, mode);
+ }
+
/**
- * Return the FTPS security mode. Defaults to "explicit" if not defined.
+ * Return the FTPS type. Defaults to "explicit" if not defined.
*
* @param opts The FileSystemOptions.
* @return The file type.
* @see #setFtpsType
+ * @deprecated As of 2.1, use {@link #getFtpsType(FileSystemOptions)}
*/
+ @Deprecated
public String getFtpsType(final FileSystemOptions opts)
{
- return getString(opts, FTPS_TYPE, FtpsFileSystemConfigBuilder.FTPS_TYPE_EXPLICIT);
+ return getFtpsMode(opts).name().toLowerCase();
}
/**
Added: commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsMode.java
URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsMode.java?rev=1448668&view=auto
==============================================================================
--- commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsMode.java (added)
+++ commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsMode.java Thu Feb 21 14:47:37 2013
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.vfs2.provider.ftps;
+
+/**
+ * Mode of the FTPS connection.
+ *
+ * <p>Note, that 'implicit' mode is not standardized and considered as deprecated. Some unit tests for VFS fail with
+ * 'implicit' mode and it is not yet clear if its a problem with Commons VFS/Commons Net or our test server Apache
+ * FTP/SSHD.</p>
+ *
+ * @see <a href="http://en.wikipedia.org/wiki/FTPS#Implicit">Wikipedia: FTPS/Implicit</a>
+ * @since 2.1
+ */
+public enum FtpsMode
+{
+ IMPLICIT, EXPLICIT
+}
Propchange: commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsMode.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: commons/proper/vfs/trunk/core/src/main/java/org/apache/commons/vfs2/provider/ftps/FtpsMode.java
------------------------------------------------------------------------------
svn:keywords = Author Id HeadURL Revision
Modified: commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/ftps/test/FtpsProviderExplicitTestCase.java
URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/ftps/test/FtpsProviderExplicitTestCase.java?rev=1448668&r1=1448667&r2=1448668&view=diff
==============================================================================
--- commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/ftps/test/FtpsProviderExplicitTestCase.java (original)
+++ commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/ftps/test/FtpsProviderExplicitTestCase.java Thu Feb 21 14:47:37 2013
@@ -18,6 +18,7 @@ package org.apache.commons.vfs2.provider
import org.apache.commons.vfs2.provider.ftps.FtpsDataChannelProtectionLevel;
import org.apache.commons.vfs2.provider.ftps.FtpsFileSystemConfigBuilder;
+import org.apache.commons.vfs2.provider.ftps.FtpsMode;
import junit.framework.Test;
@@ -37,7 +38,7 @@ public class FtpsProviderExplicitTestCas
{
super.setupOptions(builder);
builder.setDataChannelProtectionLevel(fileSystemOptions, FtpsDataChannelProtectionLevel.P);
- builder.setFtpsType(fileSystemOptions, FtpsFileSystemConfigBuilder.FTPS_TYPE_EXPLICIT);
+ builder.setFtpsMode(fileSystemOptions, FtpsMode.EXPLICIT);
}
/**
Modified: commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/ftps/test/FtpsProviderImplicitTestCase_Disabled.java
URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/ftps/test/FtpsProviderImplicitTestCase_Disabled.java?rev=1448668&r1=1448667&r2=1448668&view=diff
==============================================================================
--- commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/ftps/test/FtpsProviderImplicitTestCase_Disabled.java (original)
+++ commons/proper/vfs/trunk/core/src/test/java/org/apache/commons/vfs2/provider/ftps/test/FtpsProviderImplicitTestCase_Disabled.java Thu Feb 21 14:47:37 2013
@@ -17,6 +17,7 @@
package org.apache.commons.vfs2.provider.ftps.test;
import org.apache.commons.vfs2.provider.ftps.FtpsFileSystemConfigBuilder;
+import org.apache.commons.vfs2.provider.ftps.FtpsMode;
import junit.framework.Test;
@@ -39,7 +40,7 @@ public class FtpsProviderImplicitTestCas
protected void setupOptions(final FtpsFileSystemConfigBuilder builder)
{
super.setupOptions(builder);
- builder.setFtpsType(fileSystemOptions, FtpsFileSystemConfigBuilder.FTPS_TYPE_IMPLICIT);
+ builder.setFtpsMode(fileSystemOptions, FtpsMode.IMPLICIT);
}
/**
Modified: commons/proper/vfs/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/vfs/trunk/src/changes/changes.xml?rev=1448668&r1=1448667&r2=1448668&view=diff
==============================================================================
--- commons/proper/vfs/trunk/src/changes/changes.xml (original)
+++ commons/proper/vfs/trunk/src/changes/changes.xml Thu Feb 21 14:47:37 2013
@@ -26,6 +26,11 @@
<!-- <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-462" dev="joehni" type="update">
+ [FTPS] Deprecate FtpsFileSystemConfigBuilder.setFtpsType and FtpsFileSystemConfigBuilder.getFtpsType
+ in favor of FtpsFileSystemConfigBuilder.setFtpsMode and FtpsFileSystemConfigBuilder.getFtpsMode which
+ use new enum FtpsMode instead.
+ </action>
<action issue="VFS-461" dev="joehni" type="fix">
[FTP/FTPS] ConfigBuilder does not consider system properties for the value of SoTimeout and Encoding.
</action>