Currently, if you want to support the JAR Services standard set forth
by Sun, you have to create a file with an interface name in
META-INF/services and list all the implementations.

This can get to become a problem if we are adding and removing classes,
and we forget to update this hand maintained file.

I wrote an ANT task that will scan an existing JAR, and find all the
classes that implement the specified interfaces.  The task verifies
that the supplied service name *is* in fact an interface, and then
it checks every class in the JAR to see if it implements that interface.

After it collects all this information it adds a new entry for each
interface, with the list of implementations for each service.

For now it needs to use an input jar and an output jar because I could
not figure out how to modify the jar in place.

As more project adopt this standard, it would be nice to include in
ANT proper.

If you are interested, I can post the source code.




Reply via email to