public void execute()

in enforcer-rules/src/main/java/org/apache/maven/enforcer/rules/RequirePrerequisite.java [78:117]


    public void execute() throws EnforcerRuleException {
        try {

            if ("pom".equals(project.getPackaging())) {
                getLog().debug("Packaging is pom, skipping requirePrerequisite rule");
                return;
            }

            if (packagings != null && !packagings.contains(project.getPackaging())) {
                getLog().debug("Packaging is " + project.getPackaging() + ", skipping requirePrerequisite rule");
                return;
            }

            Prerequisites prerequisites = project.getPrerequisites();

            if (prerequisites == null) {
                throw new EnforcerRuleException("Requires prerequisite not set");
            }

            if (mavenVersion != null) {

                VersionRange requiredVersionRange = VersionRange.createFromVersionSpec(mavenVersion);

                if (!requiredVersionRange.hasRestrictions()) {
                    requiredVersionRange = VersionRange.createFromVersionSpec("[" + mavenVersion + ",)");
                }

                VersionRange specifiedVersion = VersionRange.createFromVersionSpec(prerequisites.getMaven());

                VersionRange restrictedVersionRange = requiredVersionRange.restrict(specifiedVersion);

                if (restrictedVersionRange.getRecommendedVersion() == null) {
                    throw new EnforcerRuleException("The specified Maven prerequisite( " + specifiedVersion
                            + " ) doesn't match the required version: " + mavenVersion);
                }
            }
        } catch (InvalidVersionSpecificationException e) {
            throw new EnforcerRuleException(e.getMessage(), e);
        }
    }