void checkBuildProduct(File productDir, File baseDir, File distDir, File jarDir) {
    if (!shouldBuild(productDir.getPath())) {
      return;
    }
    assertTrue(null != productDir);
    assertTrue(productDir.canRead());

    checkJavac();

    BuildModule task = new BuildModule();
    Project project = new Project();
    task.setProject(project);
    assertTrue(jarDir.canWrite() || jarDir.mkdirs());
    tempFiles.add(jarDir);
    task.setJardir(new Path(project, jarDir.getAbsolutePath()));
    task.setProductdir(new Path(project, productDir.getAbsolutePath()));
    task.setBasedir(new Path(project, baseDir.getAbsolutePath()));
    task.setDistdir(new Path(project, distDir.getAbsolutePath()));
    task.setFailonerror(true);
    if (null != BUILD_CONFIG) {
      task.setBuildConfig(BUILD_CONFIG);
    }
    // task.setVerbose(true);
    task.setCreateinstaller(true);
    task.execute();
    // now run installer and do product tests?
  }
 BuildModule getTask(String module) {
   BuildModule task = new BuildModule();
   Project project = new Project();
   task.setProject(project);
   File jarDir = getJarDir();
   assertTrue(jarDir.canWrite() || jarDir.mkdirs());
   tempFiles.add(jarDir);
   File moduleDir = new File(Util.path("..", module));
   assertTrue(moduleDir.canRead());
   task.setModuledir(new Path(project, moduleDir.getAbsolutePath()));
   task.setJardir(new Path(project, jarDir.getAbsolutePath()));
   task.setFailonerror(true);
   if (null != BUILD_CONFIG) {
     task.setBuildConfig(BUILD_CONFIG);
   }
   return task;
 }