Browse Source

convert serverLanguageCodeConfig attribute to use EnumeratedAttribute pattern

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@278373 13f79535-47bb-0310-9956-ffa450edef68
master
Steven M. Cohen 20 years ago
parent
commit
536a84c211
3 changed files with 89 additions and 12 deletions
  1. +26
    -0
      src/etc/testcases/taskdefs/optional/net/ftp.xml
  2. +42
    -7
      src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
  3. +21
    -5
      src/testcases/org/apache/tools/ant/taskdefs/optional/net/FTPTest.java

+ 26
- 0
src/etc/testcases/taskdefs/optional/net/ftp.xml View File

@@ -234,6 +234,32 @@
<fileset dir="${tmp.local}"/>
</ftp>
</target>
<target name="configuration.lang.good">
<ftp action="list"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.remote}"
serverLanguageCodeConfig="de"
listing="${ftp.listing.file}"
>
<fileset dir="${tmp.local}"/>
</ftp>
</target>
<target name="configuration.lang.bad">
<ftp action="list"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.remote}"
serverLanguageCodeConfig="QQ"
listing="${ftp.listing.file}"
>
<fileset dir="${tmp.local}"/>
</ftp>
</target>
<target name="configuration.none">
<ftp action="list"
server="${ftp.host}"


+ 42
- 7
src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java View File

@@ -16,9 +16,6 @@
*/
package org.apache.tools.ant.taskdefs.optional.net;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
@@ -29,16 +26,22 @@ import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Collection;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.Vector;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.Project;
@@ -118,7 +121,7 @@ public class FTP
private FTPSystemType systemTypeKey = FTPSystemType.getDefault();
private String defaultDateFormatConfig = null;
private String recentDateFormatConfig = null;
private String serverLanguageCodeConfig = null;
private LanguageCode serverLanguageCodeConfig = LanguageCode.getDefault();
private String serverTimeZoneConfig = null;
private String shortMonthNamesConfig = null;
private Granularity timestampGranularity = Granularity.getDefault();
@@ -1316,7 +1319,7 @@ public class FTP
* null or empty string, in which case ignored.
* @see org.apache.commons.net.ftp.FTPClientConfig
*/
public void setServerLanguageCodeConfig(String serverLanguageCode) {
public void setServerLanguageCodeConfig(LanguageCode serverLanguageCode) {
if (serverLanguageCode != null && !serverLanguageCode.equals(""))
{
this.serverLanguageCodeConfig = serverLanguageCode;
@@ -1379,7 +1382,7 @@ public class FTP
* @return Returns the serverLanguageCodeConfig.
*/
String getServerLanguageCodeConfig() {
return serverLanguageCodeConfig;
return serverLanguageCodeConfig.getValue();
}
/**
* @return Returns the serverTimeZoneConfig.
@@ -2358,5 +2361,37 @@ public class FTP
return ftpst;
}
}
public static class LanguageCode extends EnumeratedAttribute {

private static final String[] VALID_LANGUAGE_CODES =
getValidLanguageCodes();
private static final String[] getValidLanguageCodes() {
Collection c = FTPClientConfig.getSupportedLanguageCodes();
String[] ret = new String[c.size() + 1];
int i = 0;
ret[i++] = "";
for (Iterator it = c.iterator(); it.hasNext(); i++) {
ret[i] = (String) it.next();
}
return ret;
}
/*
* @return the list of valid system types.
*/
public String[] getValues() {
return VALID_LANGUAGE_CODES;
}
static final LanguageCode getDefault() {
LanguageCode lc = new LanguageCode();
lc.setValue("");
return lc;
}
}

}


+ 21
- 5
src/testcases/org/apache/tools/ant/taskdefs/optional/net/FTPTest.java View File

@@ -25,6 +25,7 @@ import java.util.Vector;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.BuildFileTest;
import org.apache.tools.ant.DefaultLogger;
import org.apache.tools.ant.DirectoryScanner;
@@ -661,7 +662,7 @@ public class FTPTest extends BuildFileTest{
*/
public void testConfiguration1() {
int[] expectedCounts = {
1,1,0,1,0,0
1,1,0,1,0,0,0
};
performConfigTest("configuration.1", expectedCounts);
@@ -672,7 +673,7 @@ public class FTPTest extends BuildFileTest{
*/
public void testConfiguration2() {
int[] expectedCounts = {
1,0,0,1,1,0
1,0,0,1,1,0,0
};
performConfigTest("configuration.2", expectedCounts);
@@ -683,17 +684,31 @@ public class FTPTest extends BuildFileTest{
*/
public void testConfiguration3() {
int[] expectedCounts = {
1,0,1,0,0,1
1,0,1,0,0,1,0
};
performConfigTest("configuration.3", expectedCounts);
}
public void testConfigurationLang() {
int[] expectedCounts = {
1,1,0,0,0,0,1
};
performConfigTest("configuration.lang.good", expectedCounts);
try {
performConfigTest("configuration.lang.bad", expectedCounts);
fail("BuildException Expected");
} catch (Exception bx) {
assertTrue(bx instanceof BuildException);
}
}
/**
* Tests the systemTypeKey attribute.
*/
public void testConfigurationNone() {
int[] expectedCounts = {
0,0,0,0,0,0
0,0,0,0,0,0,0
};
performConfigTest("configuration.none", expectedCounts);
@@ -706,7 +721,8 @@ public class FTPTest extends BuildFileTest{
"custom config: system key = UNIX",
"custom config: server time zone ID = " + getProject().getProperty("ftp.server.timezone"),
"custom config: system key = WINDOWS",
"custom config: default date format = yyyy/MM/dd HH:mm"
"custom config: default date format = yyyy/MM/dd HH:mm",
"custom config: server language code = de"

};
LogCounter counter = new LogCounter();


Loading…
Cancel
Save