Return-Path: Delivered-To: apmail-ant-dev-archive@www.apache.org Received: (qmail 68609 invoked from network); 1 Dec 2004 22:48:41 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 1 Dec 2004 22:48:41 -0000 Received: (qmail 16945 invoked by uid 500); 1 Dec 2004 22:48:40 -0000 Delivered-To: apmail-ant-dev-archive@ant.apache.org Received: (qmail 16887 invoked by uid 500); 1 Dec 2004 22:48:39 -0000 Mailing-List: contact dev-help@ant.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Ant Developers List" Reply-To: "Ant Developers List" Delivered-To: mailing list dev@ant.apache.org Received: (qmail 16874 invoked by uid 500); 1 Dec 2004 22:48:39 -0000 Received: (qmail 16871 invoked by uid 99); 1 Dec 2004 22:48:39 -0000 X-ASF-Spam-Status: No, hits=-10.0 required=10.0 tests=ALL_TRUSTED,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; Wed, 01 Dec 2004 14:48:39 -0800 Received: (qmail 68568 invoked by uid 1365); 1 Dec 2004 22:48:37 -0000 Date: 1 Dec 2004 22:48:37 -0000 Message-ID: <20041201224837.68567.qmail@minotaur.apache.org> From: stevel@apache.org To: ant-cvs@apache.org Subject: cvs commit: ant/src/testcases/org/apache/tools/ant/taskdefs LibrariesTest.java X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N stevel 2004/12/01 14:48:37 Modified: src/main/org/apache/tools/ant/taskdefs/repository HttpRepository.java Libraries.java Library.java MavenRepository.java src/testcases/org/apache/tools/ant/taskdefs LibrariesTest.java Log: Library flattens files Revision Changes Path 1.4 +19 -19 ant/src/main/org/apache/tools/ant/taskdefs/repository/HttpRepository.java Index: HttpRepository.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/repository/HttpRepository.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- HttpRepository.java 22 Nov 2004 09:23:35 -0000 1.3 +++ HttpRepository.java 1 Dec 2004 22:48:37 -0000 1.4 @@ -31,6 +31,10 @@ * can share this datatype, it is *not* thread safe; you can only use it in one * thread at at time * + * Although it is biased towards HTTP, because the underlying <get> task + * supports different protocols, one is actually able to use other protocols + * such as ftp: or file: to retrieve content. + * * @since Ant1.7 */ public abstract class HttpRepository extends Repository { @@ -87,6 +91,21 @@ this.url = url; } + /** + * set the base directory of the repository + * This creates a URL of the file:// type + * and binds the URL of the repository to it. + * @param basedir + */ + public void setBaseDir(File basedir) { + try { + URL url=basedir.toURL(); + setUrl(url.toExternalForm()); + } catch (MalformedURLException e) { + throw new BuildException(e); + } + } + public String getUsername() { return username; } @@ -112,26 +131,7 @@ public void setPassword(String password) { this.password = password; } -/* - - public String getRealm() { - return realm; - } -*/ - /** - * set the realm for authentication; empty string is equivalent to "any - * realm" (the default) - * - * @param realm - */ -/* public void setRealm(String realm) { - if (realm != null) { - this.realm = realm; - } else { - this.realm = null; - } - }*/ public Libraries getOwner() { return owner; 1.3 +31 -8 ant/src/main/org/apache/tools/ant/taskdefs/repository/Libraries.java Index: Libraries.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/repository/Libraries.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- Libraries.java 22 Nov 2004 09:23:35 -0000 1.2 +++ Libraries.java 1 Dec 2004 22:48:37 -0000 1.3 @@ -78,6 +78,12 @@ */ private boolean useTimestamp = false; + /** + * flag to indicate if the libraries should be stored + * flat or in maven-style ($(project)/jars/) subdirectories. + */ + private boolean flatten = false; + public static final String ERROR_ONE_REPOSITORY_ONLY = "Only one repository is allowed"; public static final String ERROR_NO_DEST_DIR = "No destination directory"; public static final String ERROR_NO_REPOSITORY = "No repository defined"; @@ -290,6 +296,21 @@ this.useTimestamp = useTimestamp; } + public boolean isFlatten() { + return flatten; + } + + /** + * Flatten flag. + * Store downloaded libraries into a single directory if true, + * store in project/jar subdirectores if false. + * default: false + * @param flatten + */ + public void setFlatten(boolean flatten) { + this.flatten = flatten; + } + /** * get the current policy list * @return @@ -326,11 +347,8 @@ */ public void execute() throws BuildException { validate(); - if (isOffline()) { - log("No retrieval, task is \"offline\""); - } else { - doExecute(); - } + //execute + doExecute(); //validate the state verifyAllLibrariesPresent(); @@ -378,6 +396,11 @@ } } + if (isOffline()) { + log("No retrieval, task is \"offline\""); + retrieve=false; + } + //see if we need to do a download if (!retrieve) { //if not, log it @@ -393,7 +416,7 @@ } } - //now reverse iterate through all processed properties. + //now reverse iterate through all processed policies. for (int i = processedPolicies.size() - 1; i >= 0; i--) { LibraryPolicy libraryPolicy = (LibraryPolicy) processedPolicies.get(i); //and call their post-processor @@ -408,7 +431,7 @@ * @return number of failed retrievals. */ private int connectAndRetrieve(Repository repo, boolean useTimestamp) { - //connect the repository + //connect to the repository int failures = 0; repo.connect(this); try { @@ -470,7 +493,7 @@ Iterator it = libraries.iterator(); while (it.hasNext()) { Library library = (Library) it.next(); - library.bind(destDir); + library.bind(destDir, flatten); } } 1.4 +11 -6 ant/src/main/org/apache/tools/ant/taskdefs/repository/Library.java Index: Library.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/repository/Library.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Library.java 24 Nov 2004 23:10:47 -0000 1.3 +++ Library.java 1 Dec 2004 22:48:37 -0000 1.4 @@ -35,6 +35,8 @@ */ private boolean enabled = true; + private static FileUtils FILE_UTILS = FileUtils.newFileUtils(); + /** * turn policy on/off * @@ -241,18 +243,21 @@ * calculate the destination file of a library; set {@link #libraryFile} * to the File thereof. * - * @param baseDir dir that + * @param baseDir dir that is used as the base for the operations * + * @param flatten flag to indicate whether the directory path is 'flat' or not. * @throws BuildException if invalid */ - public void bind(File baseDir) { + public void bind(File baseDir, boolean flatten) { validate(); - FileUtils fileUtils = FileUtils.newFileUtils(); - if (destinationName == null) { - destinationName = getMavenPath('/'); + if(flatten) { + destinationName = getNormalFilename(); + } else { + destinationName = getMavenPath('/'); + } } - libraryFile = fileUtils.resolveFile(baseDir, destinationName); + libraryFile = FILE_UTILS.resolveFile(baseDir, destinationName); if (libraryFile.isDirectory()) { throw new BuildException(ERROR_FILE_IS_A_DIR + libraryFile); 1.3 +1 -0 ant/src/main/org/apache/tools/ant/taskdefs/repository/MavenRepository.java Index: MavenRepository.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/repository/MavenRepository.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- MavenRepository.java 22 Nov 2004 09:23:35 -0000 1.2 +++ MavenRepository.java 1 Dec 2004 22:48:37 -0000 1.3 @@ -56,6 +56,7 @@ setUrl(MAVEN_URL); } + /** * set this to check the MD5 signatures. SECURITY IS NOT YET FUNCTIONAL * @param checkMD5 1.3 +3 -0 ant/src/testcases/org/apache/tools/ant/taskdefs/LibrariesTest.java Index: LibrariesTest.java =================================================================== RCS file: /home/cvs/ant/src/testcases/org/apache/tools/ant/taskdefs/LibrariesTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- LibrariesTest.java 24 Nov 2004 23:10:47 -0000 1.2 +++ LibrariesTest.java 1 Dec 2004 22:48:37 -0000 1.3 @@ -204,4 +204,7 @@ execIfOnline("testNoSuffix"); } + public void testFlatten() { + execIfOnline("testFlatten"); + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@ant.apache.org For additional commands, e-mail: dev-help@ant.apache.org