You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by "Jack J. Woehr" <ja...@purematrix.com> on 2004/01/12 06:53:44 UTC
Re: DIFF attached, Should Solve It
koji_sekiguchi@excite.co.jp wrote:
> Can you look for the above properties file from ant.jar
> by using <whichresource> task?
> It seems same bug for me..
> I think "adding leading slash" is ant user's option.
Ok, I *THINK* I have it all solved and figured out:
1. A class in a jar can't have the leading slash.
2. A resource in a jar can't have the leading slash.
So, here is a diff that removes both leading slash concatenations, along with a test
case that succeeds all ways. The test case:
1. Finds a class from the file system
2. Finds a class from a jar
3. Finds a resource from the file system
4. Finds a resource from a jar
Its output is:
dotest:
[echo] Class search in filesystem yields: file:/usr/local/src/apache/apache_src/ant-antidote/build/classes/org/apache/tools/ant/gui/Antidote.class
[echo] Class search in jar yields: jar:file:/usr/local/src/apache/apache_src/ant-antidote/build/lib/antidote.jar!/org/apache/tools/ant/gui/Antidote.class
[echo] Resource search in filesystem yields: file:/usr/local/src/apache/apache_src/ant-antidote/build/classes/org/apache/tools/ant/gui/resources/About.gif
[echo] Resource search in jar yields: jar:file:/usr/local/src/apache/apache_src/ant-antidote/build/lib/antidote.jar!/org/apache/tools/ant/gui/resources/About.gif
Here's the test case:
<?xml version="1.0" standalone="yes"?>
<project name="test-whichresource" default="dotest">
<target name="dotest">
<whichresource property="testresult.antidote.class.filesystem"
class="org.apache.tools.ant.gui.Antidote" classpath="/usr/local/src/apache/apache_src/ant-antidote/build/classes"/>
<echo message="Class search in filesystem yields: ${testresult.antidote.class.filesystem}"/>
<whichresource property="testresult.antidote.class.jar"
class="org.apache.tools.ant.gui.Antidote" classpath="/usr/local/src/apache/apache_src/ant-antidote/build/lib/antidote.jar"/>
<echo message="Class search in jar yields: ${testresult.antidote.class.jar}"/>
<whichresource property="testresult.antidote.resource.filesystem"
resource="org/apache/tools/ant/gui/resources/About.gif" classpath="/usr/local/src/apache/apache_src/ant-antidote/build/classes"/>
<echo message="Resource search in filesystem yields: ${testresult.antidote.resource.filesystem}"/>
<whichresource property="testresult.antidote.resource.jar"
resource="org/apache/tools/ant/gui/resources/About.gif" classpath="/usr/local/src/apache/apache_src/ant-antidote/build/lib/antidote.jar"/>
<echo message="Resource search in jar yields: ${testresult.antidote.resource.jar}"/>
</target>
</project>
The diff that makes this work is attached.
NOW have we got it right? :-)
--
Jack J. Woehr # We have gone from the horse and buggy
Senior Consultant # to the moon rocket in one lifetime, but
Purematrix, Inc. # there has not been a corresponding moral
www.purematrix.com # growth in mankind. - Dwight D. Eisenhower