Browse Source

Tuning

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-ffa450edef68
master
Steve Loughran 20 years ago
parent
commit
dea3b5a66a
3 changed files with 98 additions and 14 deletions
  1. +58
    -7
      src/etc/testcases/taskdefs/libraries.xml
  2. +15
    -7
      src/main/org/apache/tools/ant/taskdefs/repository/Library.java
  3. +25
    -0
      src/testcases/org/apache/tools/ant/taskdefs/LibrariesTest.java

+ 58
- 7
src/etc/testcases/taskdefs/libraries.xml View File

@@ -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>



+ 15
- 7
src/main/org/apache/tools/ant/taskdefs/repository/Library.java View File

@@ -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;
} }


/** /**


+ 25
- 0
src/testcases/org/apache/tools/ant/taskdefs/LibrariesTest.java View File

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

} }

Loading…
Cancel
Save