Return-Path: Delivered-To: apmail-ant-dev-archive@www.apache.org Received: (qmail 45872 invoked from network); 13 May 2005 10:26:25 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 13 May 2005 10:26:25 -0000 Received: (qmail 18475 invoked by uid 500); 13 May 2005 10:30:39 -0000 Delivered-To: apmail-ant-dev-archive@ant.apache.org Received: (qmail 18428 invoked by uid 500); 13 May 2005 10:30:39 -0000 Mailing-List: contact dev-help@ant.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Help: List-Post: List-Id: "Ant Developers List" Reply-To: "Ant Developers List" Delivered-To: mailing list dev@ant.apache.org Received: (qmail 18415 invoked by uid 500); 13 May 2005 10:30:38 -0000 Received: (qmail 18411 invoked by uid 99); 13 May 2005 10:30:38 -0000 X-ASF-Spam-Status: No, hits=0.2 required=10.0 tests=NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Fri, 13 May 2005 03:30:38 -0700 Received: (qmail 45852 invoked by uid 1632); 13 May 2005 10:26:20 -0000 Date: 13 May 2005 10:26:20 -0000 Message-ID: <20050513102620.45851.qmail@minotaur.apache.org> From: scohen@apache.org To: ant-cvs@apache.org Subject: cvs commit: ant/docs/manual install.html X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N scohen 2005/05/13 03:26:20 Modified: src/main/org/apache/tools/ant/taskdefs/optional/net FTP.java docs/manual install.html Added: src/main/org/apache/tools/ant/taskdefs/optional/net FTPConfigurator.java Log: Add FTPConfigurator class so as to avoid forcing users to upgrade to version 1.4.0 of commons-net. As long as users use the ftp task as they have previously, they do not need 1.4.0. Revision Changes Path 1.69 +48 -37 ant/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java Index: FTP.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java,v retrieving revision 1.68 retrieving revision 1.69 diff -u -r1.68 -r1.69 --- FTP.java 12 May 2005 04:04:59 -0000 1.68 +++ FTP.java 13 May 2005 10:26:20 -0000 1.69 @@ -17,7 +17,6 @@ package org.apache.tools.ant.taskdefs.optional.net; 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 java.io.BufferedInputStream; @@ -1323,11 +1322,47 @@ /** + * @return Returns the systemKeyConfig. + */ + String getSystemKeyConfig() { + return systemKeyConfig; + } + /** + * @return Returns the defaultDateFormatConfig. + */ + String getDefaultDateFormatConfig() { + return defaultDateFormatConfig; + } + /** + * @return Returns the recentDateFormatConfig. + */ + String getRecentDateFormatConfig() { + return recentDateFormatConfig; + } + /** + * @return Returns the serverLanguageCodeConfig. + */ + String getServerLanguageCodeConfig() { + return serverLanguageCodeConfig; + } + /** + * @return Returns the serverTimeZoneConfig. + */ + String getServerTimeZoneConfig() { + return serverTimeZoneConfig; + } + /** + * @return Returns the shortMonthNamesConfig. + */ + String getShortMonthNamesConfig() { + return shortMonthNamesConfig; + } + /** * Checks to see that all required parameters are set. * * @throws BuildException if the configuration is not valid. */ - protected void checkConfiguration() throws BuildException { + protected void checkAttributes() throws BuildException { if (server == null) { throw new BuildException("server attribute must be set!"); } @@ -1352,6 +1387,15 @@ throw new BuildException("chmod attribute must be set for chmod " + "action!"); } + + if (this.isConfigurationSet) { + try { + Class.forName("org.apache.commons.net.ftp.FTPClientConfig"); + } catch (ClassNotFoundException e) { + throw new BuildException( + "commons-net.jar >= 1.4.0 is required for at least one of the attributes specified."); + } + } } @@ -2025,40 +2069,7 @@ private void configure(FTPClient ftp) { if (this.isConfigurationSet) { - FTPClientConfig config; - if (this.systemKeyConfig != null) { - config = new FTPClientConfig(this.systemKeyConfig); - log("custom config: system key = " - + this.systemKeyConfig, Project.MSG_VERBOSE); - } else { - config = new FTPClientConfig(); - } - if (this.defaultDateFormatConfig != null) { - config.setDefaultDateFormatStr(this.defaultDateFormatConfig); - log("custom config: default date format = " - + this.defaultDateFormatConfig, Project.MSG_VERBOSE); - } - if (this.recentDateFormatConfig != null) { - config.setRecentDateFormatStr(this.recentDateFormatConfig); - log("custom config: recent date format = " - + this.recentDateFormatConfig, Project.MSG_VERBOSE); - } - if (this.serverLanguageCodeConfig != null) { - config.setServerLanguageCode(this.serverLanguageCodeConfig); - log("custom config: server language code = " - + this.serverLanguageCodeConfig, Project.MSG_VERBOSE); - } - if (this.serverTimeZoneConfig != null) { - config.setServerTimeZoneId(this.serverTimeZoneConfig); - log("custom config: server time zone ID = " - + this.serverTimeZoneConfig, Project.MSG_VERBOSE); - } - if (this.shortMonthNamesConfig != null) { - config.setShortMonthNames(this.shortMonthNamesConfig); - log("custom config: short month names = " - + this.shortMonthNamesConfig, Project.MSG_VERBOSE); - } - ftp.configure(config); + FTPConfigurator.configure(ftp, this); } } @@ -2069,7 +2080,7 @@ * correctly. */ public void execute() throws BuildException { - checkConfiguration(); + checkAttributes(); FTPClient ftp = null; 1.1 ant/src/main/org/apache/tools/ant/taskdefs/optional/net/FTPConfigurator.java Index: FTPConfigurator.java =================================================================== /* * Copyright 2005 The Apache Software Foundation * * Licensed 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.tools.ant.taskdefs.optional.net; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPClientConfig; import org.apache.tools.ant.Project; /** * The sole purpose of this class is (note that it is package-private * is to serve as a separate, static compilation unit for importing * FTPClientConfig, to enable users who wish to use the FTP task * without using its new features to avoid the need to * upgrade to jakarta-commons-net 1.4.0, where FTPClientConfig was * introduced. */ class FTPConfigurator { /** * configures the supplied FTPClient with the various * attributes set in the supplied FTP task. * @param client the FTPClient to be configured * @param task the FTP task whose attributes are used to * configure the client * @return the client as configured. */ static FTPClient configure(FTPClient client, FTP task) { FTPClientConfig config; String systemKeyConfig = task.getSystemKeyConfig(); if (systemKeyConfig != null) { config = new FTPClientConfig(systemKeyConfig); task.log("custom config: system key = " + systemKeyConfig, Project.MSG_VERBOSE); } else { config = new FTPClientConfig(); } String defaultDateFormatConfig = task.getDefaultDateFormatConfig(); if (defaultDateFormatConfig != null) { config.setDefaultDateFormatStr(defaultDateFormatConfig); task.log("custom config: default date format = " + defaultDateFormatConfig, Project.MSG_VERBOSE); } String recentDateFormatConfig = task.getRecentDateFormatConfig(); if (recentDateFormatConfig != null) { config.setRecentDateFormatStr(recentDateFormatConfig); task.log("custom config: recent date format = " + recentDateFormatConfig, Project.MSG_VERBOSE); } String serverLanguageCodeConfig = task.getServerLanguageCodeConfig(); if (serverLanguageCodeConfig != null) { config.setServerLanguageCode(serverLanguageCodeConfig); task.log("custom config: server language code = " + serverLanguageCodeConfig, Project.MSG_VERBOSE); } String serverTimeZoneConfig = task.getServerTimeZoneConfig(); if (serverTimeZoneConfig != null) { config.setServerTimeZoneId(serverTimeZoneConfig); task.log("custom config: server time zone ID = " + serverTimeZoneConfig, Project.MSG_VERBOSE); } String shortMonthNamesConfig = task.getShortMonthNamesConfig(); if (shortMonthNamesConfig != null) { config.setShortMonthNames(shortMonthNamesConfig); task.log("custom config: short month names = " + shortMonthNamesConfig, Project.MSG_VERBOSE); } client.configure(config); return client; } } 1.83 +3 -1 ant/docs/manual/install.html Index: install.html =================================================================== RCS file: /home/cvs/ant/docs/manual/install.html,v retrieving revision 1.82 retrieving revision 1.83 diff -u -r1.82 -r1.83 --- install.html 12 May 2005 04:04:59 -0000 1.82 +++ install.html 13 May 2005 10:26:20 -0000 1.83 @@ -425,7 +425,9 @@ commons-net.jar ftp, rexec and telnet tasks
jakarta-oro 2.0.1 or later is required in any case together with commons-net.
- For all users, a minimum version of commons-net of 1.4.0 is now required. + For all users, a minimum version of commons-net of 1.4.0 is recommended. Earlier + versions did not support the full range of configuration options, and 1.4.0 is needed + to compile Ant.
http://jakarta.apache.org/commons/net/index.html --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org For additional commands, e-mail: dev-help@ant.apache.org