public File getWorkingDirectory(final String key, final boolean createIfNeeded) {
   final File keyedDirectory = new File(getWorkingDirectory(), key);
   if (createIfNeeded) {
     forceMkdir(keyedDirectory);
   }
   return canonicalize(keyedDirectory);
 }
  @Override
  public void initialize() throws InitializationException {
    workingDirectory = canonicalize(workingDirectory);
    if (!workingDirectory.isDirectory()) {
      forceMkdir(workingDirectory);
    }

    temporaryDirectory = canonicalize(new File(System.getProperty("java.io.tmpdir")));
    if (!temporaryDirectory.isDirectory()) {
      forceMkdir(temporaryDirectory);
    }

    configurationDirectory = canonicalize(new File(getWorkingDirectory(), "conf"));
    if (!configurationDirectory.isDirectory()) {
      forceMkdir(configurationDirectory);
    }
  }