public static Properties convertToProperties(ProcessManagerConfig processConfig) {
Properties p = new Properties();
addIfSet(p, PATH_TO_EXECUTABLE_PROPERTY, processConfig.getPathToExecutable());
addIfSet(p, JRE_PROPERTY, processConfig.getJre());
addIfSet(p, CLASSPATH_PROPERTY, processConfig.getClasspath());
addIfSet(p, ARGS_PROPERTY, processConfig.getArgs());
addIfSet(p, JVMARGS_PROPERTY, processConfig.getJvmargs());
addIfSet(p, MAINCLASS_PROPERTY, processConfig.getMainclass());
p.setProperty(REMOTING_PORT_PROPERTY, String.valueOf(processConfig.getRemotingPort()));
p.setProperty(DEBUG_PORT_PROPERTY, String.valueOf(processConfig.getDebugPort()));
p.setProperty(TERMINATE_WAIT_TIME_PROPERTY, String.valueOf(processConfig.getTerminateWaitTime()));
addIfSet(p, LOG_DIRECTORY_PROPERTY, processConfig.getLogDirectory());
p.setProperty(APPEND_TO_LOGS_PROPERTY, String.valueOf(processConfig.isAppendToLogs()));
p.setProperty(CREATE_LOG_DIR_PROPERTY, String.valueOf(processConfig.isCreateLogDir()));
p.setProperty(PROCESS_CHECK_DELAY_PROPERTY, String.valueOf(processConfig.getProcessCheckDelay()));
p.setProperty(STD_ERR_MODE_PROPERTY, processConfig.getStdErrMode().name());
p.setProperty(STD_OUT_MODE_PROPERTY, processConfig.getStdOutMode().name());
p.setProperty(READ_TIMEOUT_SECONDS_PROPERTY, String.valueOf(processConfig.getReadTimeoutSeconds()));
p.setProperty(SCOPE_PROPERTY, processConfig.getProcessScope().name());
return p;
}