1-if you dont specify an archive name, use that of the project 2-its OK to specify suffix="" 3-you do need the "." in the suffix; this was not needed. (3) will break anything which set the suffix. I assumed the user base was small enough to avoid a compatibility hack. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277078 13f79535-47bb-0310-9956-ffa450edef68master
@@ -9,8 +9,9 @@ | |||||
<property name="lib.dir" value="getlib"/> | <property name="lib.dir" value="getlib"/> | ||||
<property name="commons.logging.project" value="commons-logging"/> | <property name="commons.logging.project" value="commons-logging"/> | ||||
<property name="commons.logging" | |||||
value="${commons.logging.project}/jars/${commons.logging.project}-1.0.1.jar"/> | |||||
<property name="version" value="1.0.4"/> | |||||
<property name="commons.logging" | |||||
value="${commons.logging.project}/jars/${commons.logging.project}-${version}.jar"/> | |||||
<presetdef name="gl1"> | <presetdef name="gl1"> | ||||
<libraries destDir="${lib.dir}"> | <libraries destDir="${lib.dir}"> | ||||
@@ -19,7 +20,8 @@ | |||||
<presetdef name="getlib"> | <presetdef name="getlib"> | ||||
<gl1 destDir="${lib.dir}"> | <gl1 destDir="${lib.dir}"> | ||||
<library archive="commons-logging" project="commons-logging" version="1.0.1"/> | |||||
<library archive="commons-logging" project="commons-logging" | |||||
version="${version}"/> | |||||
</gl1> | </gl1> | ||||
</presetdef> | </presetdef> | ||||
@@ -112,7 +114,7 @@ | |||||
<target name="testRenaming" depends="init"> | <target name="testRenaming" depends="init"> | ||||
<getlib> | <getlib> | ||||
<mavenrepository/> | <mavenrepository/> | ||||
<library archive="commons-logging" project="commons-logging" version="1.0.1" | |||||
<library archive="commons-logging" project="commons-logging" version="${version}" | |||||
destinationName="renamed.jar" | destinationName="renamed.jar" | ||||
/> | /> | ||||
</getlib> | </getlib> | ||||
@@ -135,8 +137,7 @@ | |||||
<target name="testIf" depends="init"> | <target name="testIf" depends="init"> | ||||
<gl1> | <gl1> | ||||
<mavenrepository/> | <mavenrepository/> | ||||
<library archive="commons-logging" project="commons-logging" version="1.0.1" | |||||
enabled="true"/> | |||||
<library archive="commons-logging" project="commons-logging" version="${version}" enabled="true"/> | |||||
</gl1> | </gl1> | ||||
<assert-downloaded/> | <assert-downloaded/> | ||||
</target> | </target> | ||||
@@ -144,7 +145,7 @@ | |||||
<target name="testUnless" depends="init"> | <target name="testUnless" depends="init"> | ||||
<gl1> | <gl1> | ||||
<mavenrepository/> | <mavenrepository/> | ||||
<library archive="commons-logging" project="commons-logging" version="1.0.1" | |||||
<library archive="commons-logging" project="commons-logging" version="${version}" | |||||
enabled="false"/> | enabled="false"/> | ||||
</gl1> | </gl1> | ||||
<assert-not-downloaded/> | <assert-not-downloaded/> | ||||
@@ -256,5 +257,55 @@ | |||||
<assertdownloaded count="152" /> | <assertdownloaded count="152" /> | ||||
</getlib> | </getlib> | ||||
</target> | </target> | ||||
<target name="testNoArchiveName" depends="init"> | |||||
<gl1 destDir="${lib.dir}" > | |||||
<library project="commons-logging" version="${version}"/> | |||||
<mavenrepository/> | |||||
<assertdownloaded count="1"/> | |||||
</gl1> | |||||
</target> | |||||
<target name="testNoVersion" depends="init"> | |||||
<gl1 destDir="${lib.dir}" offline="true"> | |||||
<library project="commons-logging" /> | |||||
<mavenrepository/> | |||||
</gl1> | |||||
</target> | |||||
<target name="testNoProject" depends="init"> | |||||
<gl1 destDir="${lib.dir}" offline="true"> | |||||
<library archive="commons-logging" version="${version}"/> | |||||
<mavenrepository/> | |||||
</gl1> | |||||
</target> | |||||
<target name="testNewSuffix" depends="init"> | |||||
<gl1 destDir="${lib.dir}"> | |||||
<library project="commons-logging" version="${version}" | |||||
suffix=".jar.asc"/> | |||||
<mavenrepository checkMD5="false"/> | |||||
<assertdownloaded count="1"/> | |||||
</gl1> | |||||
</target> | |||||
<target name="testNoSuffix" depends="init"> | |||||
<gl1 destDir="${lib.dir}"> | |||||
<library project="commons-logging" version="snapshot-version" suffix=""/> | |||||
<assertdownloaded count="1"/> | |||||
<mavenrepository checkMD5="false"/> | |||||
</gl1> | |||||
</target> | |||||
<target name="testEmptyArchive" depends="init"> | |||||
<gl1 destDir="${lib.dir}"> | |||||
<library project="commons-logging" version="${version}" | |||||
archive=""/> | |||||
<assertdownloaded count="1"/> | |||||
<mavenrepository/> | |||||
</gl1> | |||||
</target> | |||||
</project> | </project> | ||||
@@ -80,18 +80,20 @@ public class Library implements EnabledLibraryElement { | |||||
*/ | */ | ||||
private boolean toFetch = true; | private boolean toFetch = true; | ||||
/** | |||||
* flag set after fetching | |||||
*/ | |||||
private boolean fetched = false; | private boolean fetched = false; | ||||
public static final String ERROR_NO_ARCHIVE = "No archive defined"; | 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_PROJECT = "No project defined"; | ||||
public static final String ERROR_NO_VERSION = "No version 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 | * 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 | * @param suffix | ||||
*/ | */ | ||||
public void setSuffix(String suffix) { | public void setSuffix(String suffix) { | ||||
@@ -213,10 +215,16 @@ public class Library implements EnabledLibraryElement { | |||||
* @throws BuildException if invalid | * @throws BuildException if invalid | ||||
*/ | */ | ||||
public void validate() { | public void validate() { | ||||
faultIfEmpty(archive, ERROR_NO_ARCHIVE); | |||||
faultIfEmpty(project, ERROR_NO_PROJECT); | 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_VERSION); | ||||
faultIfEmpty(version, ERROR_NO_SUFFIX); | |||||
if(suffix==null) { | |||||
suffix=""; | |||||
} | |||||
} | } | ||||
/** | /** | ||||
@@ -278,7 +286,7 @@ public class Library implements EnabledLibraryElement { | |||||
* source | * source | ||||
*/ | */ | ||||
public String getNormalFilename() { | public String getNormalFilename() { | ||||
return archive + "-" + version + "." + suffix; | |||||
return archive + "-" + version + suffix; | |||||
} | } | ||||
/** | /** | ||||
@@ -19,6 +19,7 @@ package org.apache.tools.ant.taskdefs; | |||||
import org.apache.tools.ant.BuildFileTest; | import org.apache.tools.ant.BuildFileTest; | ||||
import org.apache.tools.ant.taskdefs.repository.AssertDownloaded; | import org.apache.tools.ant.taskdefs.repository.AssertDownloaded; | ||||
import org.apache.tools.ant.taskdefs.repository.Libraries; | import org.apache.tools.ant.taskdefs.repository.Libraries; | ||||
import org.apache.tools.ant.taskdefs.repository.Library; | |||||
/** | /** | ||||
* test the test libraries stuff. | * test the test libraries stuff. | ||||
@@ -179,4 +180,28 @@ public class LibrariesTest extends BuildFileTest { | |||||
"Wrong count in assertdownloaded", | "Wrong count in assertdownloaded", | ||||
AssertDownloaded.ERROR_DOWNLOAD_FAILURE); | 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"); | |||||
} | |||||
} | } |