ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Gainty <mgai...@hotmail.com>
Subject RE: Parse jar:file prefix to Resource
Date Thu, 18 Dec 2014 18:11:26 GMT
Matt

At the Directory Level: You can grab all the filtered jars you need with <archives>
and <zips> and <restrict> tags e.g.
    <copy todir="${target}">
      <archives>
        <zips>
          <restrict>
            <path path="${java.class.path}"/>
            <name name="*.jar"/>
          </restrict>
        </zips>
      </archives>
    </copy>looking inside a jar ...i think it might be best to leverage JarFileIterator

javap JarFileIterator.class produces:

public class org.apache.tools.ant.taskdefs.optional.depend.JarFileIterator implements org.apache.tools.ant.taskdefs.optional.depend.ClassFileIterator
{
 public org.apache.tools.ant.taskdefs.optional.depend.JarFileIterator(java.io.InputStream)
throws java.io.IOException;
  public org.apache.tools.ant.taskdefs.optional.depend.ClassFile getNextClassFile();
}

so as you can see if you already have one file and get an InputStream you can pass InputStream
to JarFileIterator(InputStream)
then setup an iterator and continously get the next Class File using ClassFile getNextClassFile()
method

this is clumsy and assumes you have a InputStream ready to go the alternate strategy might
be to grab the source:
put test input jar in a "known location" e.g. /temp folder
modify the source constructor so that ctor will always read the jar file located in /temp
(instead of InputStream)
create some sort of exportable Collection (ArrayList?)
toss in a while loop which reads the Jar file contents and populates a public static ArrayList
in the end reference the ArrayList that was exported... to get the list of Class Files

Does anyone have  any ideas to help Matt?

Buona Fortuna
Martin 
______________________________________________ 



> Date: Wed, 17 Dec 2014 23:18:21 -0500
> Subject: Parse jar:file prefix to Resource
> From: viper2843@gmail.com
> To: user@ant.apache.org
> 
> Hi,
> 
> I am writing some custom ant tasks and I want to support files inside of
> zip/jar files. I have noticed that some ant tasks use the
> jar:file:/path/to/a.jar!/path/in/jar/file.xml syntax but I can't seem to
> get it work. How do I use this pattern in my tasks and map them to a
> Resource object like FileResource, URLResource, etc. Thanks.
> 
> Matt Bertolini
 		 	   		  
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message