in serverFacade/src/org/jetbrains/jps/incremental/resourses/ResourcesBuilder.java [27:71]
public ExitCode build(final CompileContext context, ModuleChunk chunk) throws ProjectBuildException {
CompilerConfiguration config = null;
for (Module module : chunk.getModules()) {
config = module.getProject().getCompilerConfiguration();
break;
}
if (config == null) {
return ExitCode.OK;
}
ResourcePatterns patterns = ResourcePatterns.KEY.get(context);
if (patterns == null) {
ResourcePatterns.KEY.set(context, patterns = new ResourcePatterns(context.getProject()));
}
try {
final TimestampStorage tsStorage = context.getBuildDataManager().getTimestampStorage(BUILDER_NAME);
final ResourcePatterns finalPatterns = patterns;
context.processFiles(chunk, new FileProcessor() {
public boolean apply(final Module module, final File file, final String sourceRoot) throws Exception {
if (finalPatterns.isResourceFile(file, sourceRoot)) {
if (isFileDirty(file, context, tsStorage)) {
try {
context.processMessage(new ProgressMessage("Copying " + file.getPath()));
copyResource(context, module, file, sourceRoot);
}
catch (IOException e) {
context.processMessage(new CompilerMessage("Resource Compiler", BuildMessage.Kind.ERROR, e.getMessage(), FileUtil.toSystemIndependentName(file.getPath())));
return false;
}
tsStorage.saveStamp(file);
}
}
return true;
}
});
//context.processMessage(new ProgressMessage("Done copying resources for " + chunk.getName()));
return ExitCode.OK;
}
catch (Exception e) {
throw new ProjectBuildException(e.getMessage(), e);
}
}