Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
Commons Compiler 1.0.0
-
None
Description
The current interface of the commons compiler is unnecessary complicated and does not use all of the features of the commons classloading infrastructure.
We can:
- remove the CompilerEnvironment interface - this can be handled internally
- remove the ClassWriter interface - we have the ClassLoaderWriter interface in the commons classloader
- change the options interface to extend a map - this allows us to add new options without changing interfaces/api
- the compile unit interface can be changed to
CompileUnit {
InputStream getSource();
String getMainTypeName();
}
This simplifies the integration with the rest of sling which is resource based.
The JavaCompiler interface then just takes an array of compile units, an error handler and the options