|
|||||||||
| Home >> All >> org >> apache >> commons >> net >> [ ftp overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
org.apache.commons.net.ftp
Class FTPClientConfig

java.lang.Objectorg.apache.commons.net.ftp.FTPClientConfig
- public class FTPClientConfig
- extends java.lang.Object
This class implements an alternate means of configuring the FTPClient object and also subordinate objects which it uses. Any class implementing the Configurable interface can be configured by this object.
In particular this class was designed primarily to support configuration of FTP servers which express file timestamps in formats and languages other than those for the US locale, which although it is the most common is not universal. Unfortunately, nothing in the FTP spec allows this to be determined in an automated way, so manual configuration such as this is necessary.
This functionality was designed to allow existing clients to work exactly as before without requiring use of this component. This component should only need to be explicitly invoked by the user of this package for problem cases that previous implementations could not solve.
Examples of use of FTPClientConfig
Use cases: You are trying to access a server that- lists files with timestamps that use month names in languages other than English
- lists files with timestamps that use date formats other
than the American English "standard"
MM dd yyyy - is in different timezone and you need accurate timestamps for dependency checking as in Ant
Unpaged (whole list) access on a UNIX server that uses French month names
but uses the "standard" MMM d yyyy date formatting
FTPClient f=FTPClient();
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
conf.setServerLanguageCode("fr");
f.configure(conf);
f.connect(server);
f.login(username, password);
FTPFile[] files = listFiles(directory);
Paged access on a UNIX server that uses Danish month names and "European" date formatting in Denmark's time zone, when you are in some other time zone.
FTPClient f=FTPClient();
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
conf.setServerLanguageCode("da");
conf.setDefaultDateFormat("d MMM yyyy");
conf.setRecentDateFormat("d MMM HH:mm");
conf.setTimeZoneId("Europe/Copenhagen");
f.configure(conf);
f.connect(server);
f.login(username, password);
FTPListParseEngine engine =
f.initiateListParsing("com.whatever.YourOwnParser", directory);
while (engine.hasNext()) {
FTPFile[] files = engine.getNext(25); // "page size" you want
//do whatever you want with these files, display them, etc.
//expensive FTPFile objects not created until needed.
}
Unpaged (whole list) access on a VMS server that uses month names
in a language not supported 55 by the system.
but uses the "standard" MMM d yyyy date formatting
FTPClient f=FTPClient();
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_VMS);
conf.setShortMonthNames(
"jan|feb|mar|apr|maí|jún|júl|ágú|sep|okt|nóv|des");
f.configure(conf);
f.connect(server);
f.login(username, password);
FTPFile[] files = listFiles(directory);
Unpaged (whole list) access on a Windows-NT server in a different time zone. (Note, since the NT Format uses numeric date formatting, language issues are irrelevant here).
FTPClient f=FTPClient();
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
conf.setTimeZoneId("America/Denver");
f.configure(conf);
f.connect(server);
f.login(username, password);
FTPFile[] files = listFiles(directory);
Unpaged (whole list) access on a Windows-NT server in a different time zone
but which has been configured to use a unix-style listing format.
FTPClient f=FTPClient();
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
conf.setTimeZoneId("America/Denver");
f.configure(conf);
f.connect(server);
f.login(username, password);
FTPFile[] files = listFiles(directory);
- Since:
- 1.4
| Field Summary | |
private java.lang.String |
defaultDateFormatStr
|
private static java.util.Map |
LANGUAGE_CODE_MAP
|
private java.lang.String |
recentDateFormatStr
|
private java.lang.String |
serverLanguageCode
|
private java.lang.String |
serverSystemKey
|
private java.lang.String |
serverTimeZoneId
|
private java.lang.String |
shortMonthNames
|
static java.lang.String |
SYST_MVS
Identifier by which an MVS-based ftp server is known throughout the commons-net ftp system. |
static java.lang.String |
SYST_NT
Identifier by which a WindowsNT-based ftp server is known throughout the commons-net ftp system. |
static java.lang.String |
SYST_OS2
Identifier by which an OS/2-based ftp server is known throughout the commons-net ftp system. |
static java.lang.String |
SYST_OS400
Identifier by which an OS/400-based ftp server is known throughout the commons-net ftp system. |
static java.lang.String |
SYST_UNIX
Identifier by which a unix-based ftp server is known throughout the commons-net ftp system. |
static java.lang.String |
SYST_VMS
Identifier by which a vms-based ftp server is known throughout the commons-net ftp system. |
| Constructor Summary | |
FTPClientConfig()
Convenience constructor mainly for use in testing. |
|
FTPClientConfig(java.lang.String systemKey)
The main constructor for an FTPClientConfig object |
|
FTPClientConfig(java.lang.String systemKey,
java.lang.String defaultDateFormatStr,
java.lang.String recentDateFormatStr,
java.lang.String serverLanguageCode,
java.lang.String shortMonthNames,
java.lang.String serverTimeZoneId)
Constructor which allows setting of all member fields |
|
| Method Summary | |
static java.text.DateFormatSymbols |
getDateFormatSymbols(java.lang.String shortmonths)
Returns a DateFormatSymbols object configured with short month names as in the supplied string |
java.lang.String |
getDefaultDateFormatStr()
getter for the defaultDateFormatStr 55 property. |
java.lang.String |
getRecentDateFormatStr()
getter for the recentDateFormatStr 55 property. |
java.lang.String |
getServerLanguageCode()
getter for the serverLanguageCode 55 property. |
java.lang.String |
getServerSystemKey()
Getter for the serverSystemKey property. |
java.lang.String |
getServerTimeZoneId()
getter for the serverTimeZoneId 55 property. |
java.lang.String |
getShortMonthNames()
getter for the shortMonthNames 55 property. |
static java.util.Collection |
getSupportedLanguageCodes()
Returns a Collection of all the language codes currently supported by this class. |
static java.text.DateFormatSymbols |
lookupDateFormatSymbols(java.lang.String languageCode)
Looks up the supplied language code in the internally maintained table of language codes. |
void |
setDefaultDateFormatStr(java.lang.String defaultDateFormatStr)
setter for the defaultDateFormatStr property. |
void |
setRecentDateFormatStr(java.lang.String recentDateFormatStr)
setter for the recentDateFormatStr property. |
void |
setServerLanguageCode(java.lang.String serverLanguageCode)
setter for the serverLanguageCode property. |
void |
setServerTimeZoneId(java.lang.String serverTimeZoneId)
setter for the serverTimeZoneId property. |
void |
setShortMonthNames(java.lang.String shortMonthNames)
setter for the shortMonthNames property. |
private static java.lang.String[] |
splitShortMonthString(java.lang.String shortmonths)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
SYST_UNIX
public static final java.lang.String SYST_UNIX
- Identifier by which a unix-based ftp server is known throughout
the commons-net ftp system.
- See Also:
- Constant Field Values
SYST_VMS
public static final java.lang.String SYST_VMS
- Identifier by which a vms-based ftp server is known throughout
the commons-net ftp system.
- See Also:
- Constant Field Values
SYST_NT
public static final java.lang.String SYST_NT
- Identifier by which a WindowsNT-based ftp server is known throughout
the commons-net ftp system.
- See Also:
- Constant Field Values
SYST_OS2
public static final java.lang.String SYST_OS2
- Identifier by which an OS/2-based ftp server is known throughout
the commons-net ftp system.
- See Also:
- Constant Field Values
SYST_OS400
public static final java.lang.String SYST_OS400
- Identifier by which an OS/400-based ftp server is known throughout
the commons-net ftp system.
- See Also:
- Constant Field Values
SYST_MVS
public static final java.lang.String SYST_MVS
- Identifier by which an MVS-based ftp server is known throughout
the commons-net ftp system.
- See Also:
- Constant Field Values
serverSystemKey
private final java.lang.String serverSystemKey
defaultDateFormatStr
private java.lang.String defaultDateFormatStr
recentDateFormatStr
private java.lang.String recentDateFormatStr
serverLanguageCode
private java.lang.String serverLanguageCode
shortMonthNames
private java.lang.String shortMonthNames
serverTimeZoneId
private java.lang.String serverTimeZoneId
LANGUAGE_CODE_MAP
private static java.util.Map LANGUAGE_CODE_MAP
| Constructor Detail |
FTPClientConfig
public FTPClientConfig(java.lang.String systemKey)
- The main constructor for an FTPClientConfig object
FTPClientConfig
public FTPClientConfig()
- Convenience constructor mainly for use in testing.
Constructs a UNIX configuration.
FTPClientConfig
public FTPClientConfig(java.lang.String systemKey, java.lang.String defaultDateFormatStr, java.lang.String recentDateFormatStr, java.lang.String serverLanguageCode, java.lang.String shortMonthNames, java.lang.String serverTimeZoneId)
- Constructor which allows setting of all member fields
| Method Detail |
getServerSystemKey
public java.lang.String getServerSystemKey()
- Getter for the serverSystemKey property. This property
specifies the general type of server to which the client connects.
Should be either one of the
FTPClientConfig.SYST_*codes or else the fully qualified class name of a parser implementing both theFTPFileEntryParserandConfigurableinterfaces.
getDefaultDateFormatStr
public java.lang.String getDefaultDateFormatStr()
- getter for the defaultDateFormatStr 55
property.
getRecentDateFormatStr
public java.lang.String getRecentDateFormatStr()
- getter for the recentDateFormatStr 55 property.
getServerTimeZoneId
public java.lang.String getServerTimeZoneId()
- getter for the serverTimeZoneId 55 property.
getShortMonthNames
public java.lang.String getShortMonthNames()
getter for the shortMonthNames 55 property.
getServerLanguageCode
public java.lang.String getServerLanguageCode()
getter for the serverLanguageCode 55 property.
* @return Returns the serverLanguageCode property.
setDefaultDateFormatStr
public void setDefaultDateFormatStr(java.lang.String defaultDateFormatStr)
setter for the defaultDateFormatStr property. This property specifies the main date format that will be used by a parser configured by this configuration to parse file timestamps. If this is not specified, such a parser will use as a default value, the most commonly used format which will be in as used in
en_USlocales.This should be in the format described for
java.text.SimpleDateFormat. property.
setRecentDateFormatStr
public void setRecentDateFormatStr(java.lang.String recentDateFormatStr)
setter for the recentDateFormatStr property. This property specifies a secondary date format that will be used by a parser configured by this configuration to parse file timestamps, typically those less than a year old. If this is not specified, such a parser will not attempt to parse using an alternate format.
This is used primarily in unix-based systems. This should be in the format described forjava.text.SimpleDateFormat.
setServerTimeZoneId
public void setServerTimeZoneId(java.lang.String serverTimeZoneId)
setter for the serverTimeZoneId property. This property allows a time zone to be specified corresponding to that known to be used by an FTP server in file listings. This might be particularly useful to clients such as Ant that try to use these timestamps for dependency checking.
This should be one of the identifiers used by
java.util.TimeZoneto refer to time zones, for example,America/ChicagoorAsia/Rangoon.
setShortMonthNames
public void setShortMonthNames(java.lang.String shortMonthNames)
setter for the shortMonthNames property. This property allows the user to specify a set of month names used by the server that is different from those that may be specified using the serverLanguageCode 55 property.
This should be a string containing twelve strings each composed of three characters, delimited by pipe (|) characters. Currently, only 8-bit ASCII characters are known to be supported. For example, a set of month names used by a hypothetical Icelandic FTP server might conceivably be specified as
"jan|feb|mar|apr|maí|jún|júl|ágú|sep|okt|nóv|des".
setServerLanguageCode
public void setServerLanguageCode(java.lang.String serverLanguageCode)
setter for the serverLanguageCode property. This property allows user to specify a two-letter ISO-639 language code that will be used to configure the set of month names used by the file timestamp parser. If neither this nor the shortMonthNames 55 is specified, parsing will assume English month names, which may or may not be significant, depending on whether the date format(s) specified via defaultDateFormatStr 55 and/or recentDateFormatStr 55 are using numeric or alphabetic month names.
If the code supplied is not supported here,
en_USmonth names will be used. We are supporting here those language codes which, when ajava.util.Localeis constucted using it, and ajava.text.SimpleDateFormatis constructed using that Locale, the array returned by the SimpleDateFormat'sgetShortMonths()method consists solely of three 8-bit ASCII character strings. Additionally, languages which do not meet this requirement are included if a common alternative set of short month names is known to be used. This means that users who can tell us of additional such encodings may get them added to the list of supported languages by contacting the jakarta-commons-net team.Please note that this attribute will NOT be used to determine a locale-based date format for the language. Experience has shown that many if not most FTP servers outside the United States employ the standard
en_USdate format orderings ofMMM d yyyyandMMM d HH:mmand attempting to deduce this automatically here would cause more problems than it would solve. The date format must be changed via the defaultDateFormatStr 55 and/or recentDateFormatStr 55 parameters.
lookupDateFormatSymbols
public static java.text.DateFormatSymbols lookupDateFormatSymbols(java.lang.String languageCode)
- Looks up the supplied language code in the internally maintained table of
language codes. Returns a DateFormatSymbols object configured with
short month names corresponding to the code. If there is no corresponding
entry in the table, the object returned will be that for
Locale.US
getDateFormatSymbols
public static java.text.DateFormatSymbols getDateFormatSymbols(java.lang.String shortmonths)
- Returns a DateFormatSymbols object configured with short month names
as in the supplied string
splitShortMonthString
private static java.lang.String[] splitShortMonthString(java.lang.String shortmonths)
getSupportedLanguageCodes
public static java.util.Collection getSupportedLanguageCodes()
- Returns a Collection of all the language codes currently supported
by this class. See serverLanguageCode 55
for a functional descrption of language codes within this system.
|
|||||||||
| Home >> All >> org >> apache >> commons >> net >> [ ftp overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC
org.apache.commons.net.ftp.FTPClientConfig