diff --git a/src/etc/testcases/taskdefs/libraries.xml b/src/etc/testcases/taskdefs/libraries.xml index e2f7c1502..2cfed3383 100644 --- a/src/etc/testcases/taskdefs/libraries.xml +++ b/src/etc/testcases/taskdefs/libraries.xml @@ -9,8 +9,9 @@ - + + @@ -19,7 +20,8 @@ - + @@ -112,7 +114,7 @@ - @@ -135,8 +137,7 @@ - + @@ -144,7 +145,7 @@ - @@ -256,5 +257,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/org/apache/tools/ant/taskdefs/repository/Library.java b/src/main/org/apache/tools/ant/taskdefs/repository/Library.java index 445d21bb5..62366e797 100644 --- a/src/main/org/apache/tools/ant/taskdefs/repository/Library.java +++ b/src/main/org/apache/tools/ant/taskdefs/repository/Library.java @@ -80,18 +80,20 @@ public class Library implements EnabledLibraryElement { */ private boolean toFetch = true; + /** + * flag set after fetching + */ private boolean fetched = false; public static final String ERROR_NO_ARCHIVE = "No archive defined"; public static final String ERROR_NO_PROJECT = "No project defined"; public static final String ERROR_NO_VERSION = "No version defined"; - public static final String ERROR_NO_SUFFIX = "No version defined"; + public static final String ERROR_FILE_IS_A_DIR = "Library file is a directory:"; /** * suffix */ - private String suffix = "jar"; - public static final String ERROR_FILE_IS_A_DIR = "Library file is a directory:"; + private String suffix = ".jar"; /** @@ -169,7 +171,7 @@ public class Library implements EnabledLibraryElement { } /** - * set the suffix for this file; default is "jar" + * set the suffix for this file; default is ".jar" * @param suffix */ public void setSuffix(String suffix) { @@ -213,10 +215,16 @@ public class Library implements EnabledLibraryElement { * @throws BuildException if invalid */ public void validate() { - faultIfEmpty(archive, ERROR_NO_ARCHIVE); faultIfEmpty(project, ERROR_NO_PROJECT); + if(archive==null) { + //adopt the name of the project if no archive is specced + archive=project; + } + faultIfEmpty(archive, ERROR_NO_ARCHIVE); faultIfEmpty(version, ERROR_NO_VERSION); - faultIfEmpty(version, ERROR_NO_SUFFIX); + if(suffix==null) { + suffix=""; + } } /** @@ -278,7 +286,7 @@ public class Library implements EnabledLibraryElement { * source */ public String getNormalFilename() { - return archive + "-" + version + "." + suffix; + return archive + "-" + version + suffix; } /** diff --git a/src/testcases/org/apache/tools/ant/taskdefs/LibrariesTest.java b/src/testcases/org/apache/tools/ant/taskdefs/LibrariesTest.java index 588bbc42f..046c6d25c 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/LibrariesTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/LibrariesTest.java @@ -19,6 +19,7 @@ package org.apache.tools.ant.taskdefs; import org.apache.tools.ant.BuildFileTest; import org.apache.tools.ant.taskdefs.repository.AssertDownloaded; import org.apache.tools.ant.taskdefs.repository.Libraries; +import org.apache.tools.ant.taskdefs.repository.Library; /** * test the test libraries stuff. @@ -179,4 +180,28 @@ public class LibrariesTest extends BuildFileTest { "Wrong count in assertdownloaded", AssertDownloaded.ERROR_DOWNLOAD_FAILURE); } + + public void testNoVersion() { + expectBuildException("testNoVersion", + Library.ERROR_NO_PROJECT); + } + + public void testNoProject() { + expectBuildException("testNoProject", + Library.ERROR_NO_PROJECT); + } + + public void testNoArchiveName() { + execIfOnline("testNoArchiveName"); + } + + public void testEmptyArchive() { + expectBuildException("testEmptyArchive", + Library.ERROR_NO_ARCHIVE); + } + + public void testNoSuffix() { + execIfOnline("testNoSuffix"); + } + }