public ExitCode build()

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);
    }
  }