in extscript-core-root/extscript-core/src/main/java/org/apache/myfaces/extensions/scripting/core/engine/compiler/JSR199Compiler.java [78:127]
public CompilationResult compile(File sourceRoot, File destination, ClassLoader loader) {
WeavingContext context = WeavingContext.getInstance();
Configuration configuration = context.getConfiguration();
destination.mkdirs();
fileManager = javaCompiler.getStandardFileManager(new
DiagnosticCollector<JavaFileObject>(), Locale.getDefault(), null);
DiagnosticCollector<JavaFileObject> diagnosticCollector = new DiagnosticCollector<JavaFileObject>();
getLog().info("[EXT-SCRIPTING] Doing a full recompile");
List<File> sourceFiles = FileUtils.fetchSourceFiles(configuration.getWhitelistedSourceDirs
(ENGINE_TYPE_JSF_JAVA), JAVA_WILDCARD);
HashSet<String> alreadyProcessed = new HashSet<String>();
Iterator<File> sourceIt = sourceFiles.iterator();
while(sourceIt.hasNext()) {
File currentProcessed = sourceIt.next();
if(alreadyProcessed.contains(currentProcessed.getAbsolutePath())) {
sourceIt.remove();
} else {
alreadyProcessed.add(currentProcessed.getAbsolutePath());
}
}
for (File sourceFile : sourceFiles)
{
if (!sourceFile.exists())
{
getLog().log(Level.WARNING, "[EXT-SCRIPTING] Source file with path {0} does not exist it might cause an error in the compilation process", sourceFile.getAbsolutePath());
}
}
Iterable<? extends JavaFileObject> fileObjects = fileManager.getJavaFileObjects(sourceFiles.toArray(new File[sourceFiles.size()]));
String[] options = new String[]{JC_CLASSPATH, /*fileManager.getClassPath()*/
ClassLoaderUtils.buildClasspath(ClassLoaderUtils.getDefaultClassLoader())
, JC_TARGET_PATH,
destination.getAbsolutePath(), JC_SOURCEPATH,
sourceRoot.getAbsolutePath(), JC_DEBUG};
javaCompiler.getTask(null, fileManager, diagnosticCollector, Arrays.asList(options), null, fileObjects).call();
CompilationResult result = handleDiagnostics(diagnosticCollector);
return result;
}