A mechanism by which we can figure out if a JAR contains a classfile.
Compile some java code using the current configured compiler.
The sources to compile
The options for the Java compiler
The output configuration for this compiler
A callback to report discovered source/binary dependencies on.
A reporter where semantic compiler failures can be reported.
A place where we can log debugging/error messages.
An optional compilation progress reporter. Where we can report back what files we're currently compiling.
Differes from classpath in that we look up binary dependencies via this classpath.