Details
Description
Extend the AptTask to allow a user to define apt specific options for the name of an annotation processor (AP) factory to use or the factory path for finding the AP factories. This allows apt to bypass the default discovery process or specify where to find AP factories.
This can help resolve build issues users may experience when multiple annotation processors conflict. For example,...
A project may contain Beehive annotations as well as JAX-RPC 1.1 Web Services annotations.
However, starting with JDK1.6, JDK bundles the JAX-WS 2.0 AP in its tool jar. JAX-RPC and JAX-WS use the same JSR 181 annotations but the JAX-WS 2.0 AP doesn't support the earlier JAX-RPC use of the RPC/ENCODED soapbinding annotation on an endpoint. A user running the build through the Beehive AptTask and using Java 6, would see APT fail on JAX-RPC 1.1 services thinking they are invalid JAX-WS services.
This improvement would allow a user to define the AP factory to use.
Note that for the above scenario, unfortunately, using the -factorypath option would not disable the built-in annotation processor because tools.jar is always in APT's class path. In this case, exposing the option to use a specific factory
solves the problem. There can only be one factory name when invoking APT, so a user of this task and the factory name option may need to pass a wrapper factory that is an aggregated annotation processor factory.