private void validateConfiguration() throws MojoExecutionException {
        // Validate aliases.
        for (final Map.Entry<String, String> alias : aliases.entrySet()) {
            if (StringUtils.isBlank(alias.getValue())) {
                throw new MojoExecutionException("Illegal alias found. Alias is not allowed to by empty");
            }
        }

        // Validate sources.
        if (sourceDirectories.isEmpty()) {
            if (!defaultSourceDirectory.isDirectory()) {
                throw new MojoExecutionException(MessageFormat.format(
                        "Illegal default source directory found. Source '{0}' is not a valid directory",
                        defaultSourceDirectory));
            }
        } else {
            for (final File sourceDirectory : sourceDirectories) {
                if (!sourceDirectory.isDirectory()) {
                    throw new MojoExecutionException(MessageFormat.format(
                            "Illegal source found. Source {0} is not a valid directory", sourceDirectory));
                }
            }
        }

        // Validate includes.
        for (final String include : includes) {
            if (StringUtils.isBlank(include)) {
                throw new MojoExecutionException("Illegal include found. Include is not allowed to be empty");
            }
        }

        // Validate rootClassName.
        if (StringUtils.isBlank(fullyQualifiedGeneratedRootClassName)) {
            throw new MojoExecutionException("Illegal rootClassName found. Root class name is not allowed to be empty");
        }
    }