public void execute() throws MojoExecutionException {

		getLog().debug("inputFile: " + inputFile);
		getLog().debug("outputFile: " + outputDirectory);
		getLog().debug("dirVarFiles: " + dirVarFiles);

		File fileInput = new File(inputFile);
		File directoryOutput = new File(outputDirectory);
		File fileOut = new File(directoryOutput, fileInput.getName());
		File dirParamValues = new File(dirVarFiles);

		getLog().debug("inputFile: " + inputFile);
		getLog().debug("outputFile: " + outputDirectory);
		getLog().debug("dirVarFiles: " + dirVarFiles);

		if (paramStartTag.equals("")) {
			throw new InvalidParameterException(
					"Cannot set the parameter start tag to empty!");
		}

		if (paramEndTag.equals("")) {
			throw new InvalidParameterException(
					"Cannot set the parameter end tag to empty!");
		}

		try {
			if (!directoryOutput.exists()) {
				directoryOutput.mkdirs();
			}

			if (fileInput.exists()) {
				if (directoryOutput.canWrite()) {
					InputFileReplacer replacer = new InputFileReplacer(
							fileInput, fileOut, paramStartTag, paramEndTag,
							getLog());
					
					InjectController controller = new InjectController(
							dirParamValues, mavenProject,directoryOutput, getLog());
					

					for (String key : controller.getKeySet()) {
						getLog().debug("GOT KEY: " + key);
					}

					replacer.runReplace(controller);

				} else {
					getLog().debug(
							"Error cannot write to the specified file:"
									+ fileOut.getAbsolutePath());
				}
			} else {
				getLog().debug(
						"Error input file does not exist: "
								+ fileInput.getAbsolutePath());
			}

		} catch (NameNotFoundException e) {
			throw new MojoExecutionException("Could not find name", e);
		} catch (IOException e) {
			throw new MojoExecutionException("Issue writing to file", e);
		}
	}