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.