ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Berin Loritsch <blorit...@apache.org>
Subject Re: Possible TaskDef donation
Date Thu, 13 Mar 2003 15:57:19 GMT
Dominique Devienne wrote:
> This is indeed interesting. I do something quite similar for another purpose
> (scans a JAR for all classes having a give static method signature, executes
> all these methods, gathering the meta-info required, generate a XML file
> then stuck into the JAR's META-INF directory).
> 
> Something I do is to restrict scanning classes to only those that match a
> given patternset to speed things up (you often know which part of your
> package tree to look things, or could use a naming convention to find things
> faster). This makes the scanning quite a bit faster (we have big JARs).
> 
> All this to say that you specific use case if very useful, but the more
> generic action all scanning the classes of a JAR and doing something that
> ultimately updated the JAR somehow would be even more useful. Allowing to
> plug over 'actions' rather than the default 'looking for services' would be
> very very useful IMHO.

Easy change to make--I can make it a protected action (the actual
check).

> What are your dependencies? BCEL? Do you load the actual classes (so need
> dependent classes on the classpath)?

Standard JVM.  I use JarFile to read the JAR contents, and
JarOutputStream to write the new JAR.

I construct a new URLClassLoader that uses the current classloader as
the parent, and loads the input JAR in as well.  I then scan the
contents of the JAR only looking at the ".class" entries.  I load the
class, and perform my checks on the class itself.

> Thanks for sharing this with us. --DD
> 
> PS: BTW, I don't think you can edit the JAR in place...


Would be nice though.  I guess we could make it something where you can
use a directory instead of the JAR.  It would alter the scanning code
though.

Do you want me to post what I have?



Mime
View raw message