Example usage for org.apache.maven.model.building ModelBuildingRequest VALIDATION_LEVEL_MAVEN_3_0

List of usage examples for org.apache.maven.model.building ModelBuildingRequest VALIDATION_LEVEL_MAVEN_3_0

Introduction

In this page you can find the example usage for org.apache.maven.model.building ModelBuildingRequest VALIDATION_LEVEL_MAVEN_3_0.

Prototype

int VALIDATION_LEVEL_MAVEN_3_0

To view the source code for org.apache.maven.model.building ModelBuildingRequest VALIDATION_LEVEL_MAVEN_3_0.

Click Source Link

Document

Denotes validation as performed by Maven 3.0.

Usage

From source file:com.doublefx.maven.utils.flexmojos.mavenValidator.FlexMojosCompatibleModelValidator.java

License:Apache License

@Override
public void validateEffectiveModel(Model model, ModelBuildingRequest request, ModelProblemCollector problems) {
    validateStringNotEmpty("modelVersion", problems, Severity.ERROR, model.getModelVersion(), model);

    validateId("groupId", problems, model.getGroupId(), model);

    validateId("artifactId", problems, model.getArtifactId(), model);

    validateStringNotEmpty("packaging", problems, Severity.ERROR, model.getPackaging(), model);

    if (!model.getModules().isEmpty()) {
        if (!"pom".equals(model.getPackaging())) {
            addViolation(problems, Severity.ERROR, "packaging", null, "with value '" + model.getPackaging()
                    + "' is invalid. Aggregator projects " + "require 'pom' as packaging.", model);
        }/*ww w .j  av  a2s.  c om*/

        for (int i = 0, n = model.getModules().size(); i < n; i++) {
            String module = model.getModules().get(i);
            if (StringUtils.isBlank(module)) {
                addViolation(problems, Severity.WARNING, "modules.module[" + i + "]", null,
                        "has been specified without a path to the project directory.",
                        model.getLocation("modules"));
            }
        }
    }

    validateStringNotEmpty("version", problems, Severity.ERROR, model.getVersion(), model);

    Severity errOn30 = getSeverity(request, ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0);

    validateEffectiveDependencies(problems, model.getDependencies(), false, request);

    DependencyManagement mgmt = model.getDependencyManagement();
    if (mgmt != null) {
        validateEffectiveDependencies(problems, mgmt.getDependencies(), true, request);
    }

    if (request.getValidationLevel() >= ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0) {
        Set<String> modules = new HashSet<String>();
        for (int i = 0, n = model.getModules().size(); i < n; i++) {
            String module = model.getModules().get(i);
            if (!modules.add(module)) {
                addViolation(problems, Severity.ERROR, "modules.module[" + i + "]", null,
                        "specifies duplicate child module " + module, model.getLocation("modules"));
            }
        }

        Severity errOn31 = getSeverity(request, ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_1);

        validateBannedCharacters("version", problems, errOn31, model.getVersion(), null, model,
                ILLEGAL_VERSION_CHARS);

        Build build = model.getBuild();
        if (build != null) {
            for (Plugin p : build.getPlugins()) {
                validateStringNotEmpty("build.plugins.plugin.artifactId", problems, Severity.ERROR,
                        p.getArtifactId(), p);

                validateStringNotEmpty("build.plugins.plugin.groupId", problems, Severity.ERROR, p.getGroupId(),
                        p);

                validatePluginVersion("build.plugins.plugin.version", problems, p.getVersion(), p.getKey(), p,
                        request);

                validateBoolean("build.plugins.plugin.inherited", problems, errOn30, p.getInherited(),
                        p.getKey(), p);

                validateBoolean("build.plugins.plugin.extensions", problems, errOn30, p.getExtensions(),
                        p.getKey(), p);

                validateEffectivePluginDependencies(problems, p, request);
            }

            validateResources(problems, build.getResources(), "build.resources.resource", request);

            validateResources(problems, build.getTestResources(), "build.testResources.testResource", request);
        }

        Reporting reporting = model.getReporting();
        if (reporting != null) {
            for (ReportPlugin p : reporting.getPlugins()) {
                validateStringNotEmpty("reporting.plugins.plugin.artifactId", problems, Severity.ERROR,
                        p.getArtifactId(), p);

                validateStringNotEmpty("reporting.plugins.plugin.groupId", problems, Severity.ERROR,
                        p.getGroupId(), p);

                validateStringNotEmpty("reporting.plugins.plugin.version", problems, errOn31, p.getVersion(),
                        p.getKey(), p);
            }
        }

        for (Repository repository : model.getRepositories()) {
            validateRepository(problems, repository, "repositories.repository", request);
        }

        for (Repository repository : model.getPluginRepositories()) {
            validateRepository(problems, repository, "pluginRepositories.pluginRepository", request);
        }

        DistributionManagement distMgmt = model.getDistributionManagement();
        if (distMgmt != null) {
            if (distMgmt.getStatus() != null) {
                addViolation(problems, Severity.ERROR, "distributionManagement.status", null,
                        "must not be specified.", distMgmt);
            }

            validateRepository(problems, distMgmt.getRepository(), "distributionManagement.repository",
                    request);
            validateRepository(problems, distMgmt.getSnapshotRepository(),
                    "distributionManagement.snapshotRepository", request);
        }
    }
}

From source file:com.doublefx.maven.utils.flexmojos.mavenValidator.FlexMojosCompatibleModelValidator.java

License:Apache License

private void validateEffectiveDependencies(ModelProblemCollector problems, List<Dependency> dependencies,
        boolean management, ModelBuildingRequest request) {
    Severity errOn30 = getSeverity(request, ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0);
    String prefix = management ? "dependencyManagement.dependencies.dependency." : "dependencies.dependency.";

    for (Dependency d : dependencies) {
        this.validateEffectiveDependency(problems, d, management, prefix, request);
        if (request.getValidationLevel() >= ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0) {
            this.validateBoolean(prefix + "optional", problems, errOn30, d.getOptional(), d.getManagementKey(),
                    d);/*from   ww  w . ja v a  2  s .c om*/
            if (!management) {
                this.validateVersion(prefix + "version", problems, errOn30, d.getVersion(),
                        d.getManagementKey(), d);
                this.validateEnum(prefix + "scope", problems, Severity.WARNING, d.getScope(),
                        d.getManagementKey(), d, "merged", "external", "internal", "caching", "rsl", "theme",
                        "provided", "compile", "runtime", "test", "system");
            }
        }
    }

}

From source file:com.doublefx.maven.utils.flexmojos.mavenValidator.FlexMojosCompatibleModelValidator.java

License:Apache License

private void validateEffectivePluginDependencies(ModelProblemCollector problems, Plugin plugin,
        ModelBuildingRequest request) {/*  w  w w  . j a va 2s .com*/
    List<Dependency> dependencies = plugin.getDependencies();
    if (!dependencies.isEmpty()) {
        String prefix = "build.plugins.plugin[" + plugin.getKey() + "].dependencies.dependency.";
        Severity errOn30 = getSeverity(request, ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0);

        for (Dependency d : dependencies) {
            this.validateEffectiveDependency(problems, d, false, prefix, request);
            this.validateVersion(prefix + "version", problems, errOn30, d.getVersion(), d.getManagementKey(),
                    d);
            this.validateEnum(prefix + "scope", problems, errOn30, d.getScope(), d.getManagementKey(), d,
                    "compile", "runtime", "system");
        }
    }

}

From source file:com.doublefx.maven.utils.flexmojos.mavenValidator.FlexMojosCompatibleModelValidator.java

License:Apache License

private void validateResources(ModelProblemCollector problems, List<Resource> resources, String prefix,
        ModelBuildingRequest request) {// w  w  w  .j av  a2s .com
    Severity errOn30 = getSeverity(request, ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0);

    for (Resource resource : resources) {
        this.validateStringNotEmpty(prefix + ".directory", problems, Severity.ERROR, resource.getDirectory(),
                resource);
        this.validateBoolean(prefix + ".filtering", problems, errOn30, resource.getFiltering(),
                resource.getDirectory(), resource);
    }

}

From source file:com.doublefx.maven.utils.flexmojos.mavenValidator.FlexMojosCompatibleModelValidator.java

License:Apache License

private boolean validatePluginVersion(String fieldName, ModelProblemCollector problems, String string,
        String sourceHint, InputLocationTracker tracker, ModelBuildingRequest request) {
    Severity errOn30 = getSeverity(request, ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0);
    if (string == null) {
        return true;
    } else if (string.length() > 0 && !this.hasExpression(string) && !"RELEASE".equals(string)
            && !"LATEST".equals(string)) {
        return true;
    } else {//from   w w  w.j a v  a2 s .  c  om
        addViolation(problems, errOn30, fieldName, sourceHint,
                "must be a valid version but is \'" + string + "\'.", tracker);
        return false;
    }
}

From source file:org.bigtester.ate.experimentals.POMInterpolator.java

License:Apache License

public POMInterpolator() {
    repositorySystem = Booter.newRepositorySystem();

    repositorySystemSession = Booter.newRepositorySystemSession(repositorySystem);

    PlexusContainer plexusContainer;/*from w ww  .ja  va 2  s.c om*/
    try {
        plexusContainer = new DefaultPlexusContainer();
    } catch (PlexusContainerException e) {
        throw new IllegalStateException(e);
    }
    try {
        projectBuilder = plexusContainer.lookup(ProjectBuilder.class);
    } catch (ComponentLookupException e) {
        throw new IllegalStateException(e);
    }

    request = new DefaultProjectBuildingRequest();

    request.setRepositorySession(repositorySystemSession);
    request.setProcessPlugins(false);
    request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0);

    initRepositories();

}

From source file:org.jboss.maven.extension.dependency.resolver.EffectiveModelBuilder.java

License:Apache License

/**
 * Build the effective model for the given pom file
 *
 * @param pomFile/*from   w w  w .  j  ava  2s. c  o  m*/
 * @return effective pom model
 * @throws ModelBuildingException
 */
private Model buildModel(File pomFile, ModelResolver modelResolver) throws ModelBuildingException {
    ModelBuildingRequest request = new DefaultModelBuildingRequest();
    request.setPomFile(pomFile);
    request.setModelResolver(modelResolver);
    request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_0);
    request.setTwoPhaseBuilding(false); // Resolve the complete model in one step
    request.setSystemProperties(System.getProperties());
    ModelBuildingResult result = modelBuilder.build(request);
    return result.getEffectiveModel();
}