The interface for a javac plug-in.
The javac plug-in mechanism allows a user to specify one or more plug-ins
on the javac command line, to be started soon after the compilation
has begun. Plug-ins are identified by a user-friendly name. Each plug-in that
is started will be passed an array of strings, which may be used to
provide the plug-in with values for any desired options or other arguments.
Plug-ins are located via a
ServiceLoader,
using the same class path as annotation processors (i.e.
StandardLocation#ANNOTATION_PROCESSOR_PATH or
-processorpath).
It is expected that a typical plug-in will simply register a
TaskListener to be informed of events during the execution
of the compilation, and that the rest of the work will be done
by the task listener.