@Override
	public void runApplication(String commandString) {
		BufferedReader inputInfoStream = null;
		BufferedReader inputErrorsStream = null;
		try {
			Runtime runtime = Runtime.getRuntime();
			Process process = runtime.exec(commandString);
			inputInfoStream = new BufferedReader(new InputStreamReader(
					process.getInputStream()));
			inputErrorsStream = new BufferedReader(new InputStreamReader(
					process.getErrorStream()));
			String lineWithError = null;
			String lineWithInfo = null;
			while ((lineWithError = inputErrorsStream.readLine()) != null) {
				LOGGER.error(lineWithError);
			}
			while ((lineWithInfo = inputInfoStream.readLine()) != null) {
				LOGGER.info(lineWithInfo);
			}
			int exitVal = process.waitFor();
			LOGGER.info(PROCESS_EXIT_MESSAGE, exitVal);
		} catch (IOException e) {
			LOGGER.debug(ApplicationConstants.EXCEPTION_LOGGER_TEMPLATE, e);
		} catch (IllegalThreadStateException e) {
			LOGGER.debug(ApplicationConstants.EXCEPTION_LOGGER_TEMPLATE, e);
		} catch (InterruptedException e) {
			LOGGER.debug(ApplicationConstants.EXCEPTION_LOGGER_TEMPLATE, e);
		} finally {
			if (inputInfoStream != null) {
				try {
					inputInfoStream.close();
				} catch (Exception e) {
					LOGGER.debug(
							ApplicationConstants.EXCEPTION_LOGGER_TEMPLATE, e);
				}
			}
			if (inputErrorsStream != null) {
				try {
					inputErrorsStream.close();
				} catch (Exception e) {
					LOGGER.debug(
							ApplicationConstants.EXCEPTION_LOGGER_TEMPLATE, e);
				}
			}
		}

	}