class CopyCommitter extends FileOutputCommitter {

  @Override
  public void commitJob(JobContext jobContext) throws IOException {
    Configuration conf = HadoopCompat.getConfiguration(jobContext);
    super.commitJob(jobContext);

    cleanupTempFiles(jobContext);

    String attributes = conf.get(DistCpConstants.CONF_LABEL_PRESERVE_STATUS);
    if (attributes != null && !attributes.isEmpty()) {
      preserveFileAttributes(conf);
    }

    if (conf.getBoolean(DistCpConstants.CONF_LABEL_DELETE_MISSING, false)) {
      deleteMissing(conf);
    } else if (conf.getBoolean(DistCpConstants.CONF_LABEL_ATOMIC_COPY, false)) {
      commitData(conf);
    }
    HadoopCompat.setStatus(taskAttemptContext, "Commit Successful");
    cleanup(conf);
  }

  public  CopyCommitter(Path outputPath, TaskAttemptContext context);

}