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");
+ }
+
}