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

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

Introduction

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

Prototype

int VALIDATION_LEVEL_MAVEN_3_1

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

Click Source Link

Document

Denotes validation as performed by Maven 3.1.

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);
        }//w  w w.ja va2s.  c  o  m

        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 validateRepository(ModelProblemCollector problems, Repository repository, String prefix,
        ModelBuildingRequest request) {/*  w w w.  jav  a 2 s . c  o  m*/
    if (repository != null) {
        Severity errOn31 = getSeverity(request, ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_3_1);
        this.validateBannedCharacters(prefix + ".id", problems, errOn31, repository.getId(), null, repository,
                ILLEGAL_REPO_ID_CHARS);
        if ("local".equals(repository.getId())) {
            addViolation(problems, errOn31, prefix + ".id", null,
                    "must not be \'local\', this identifier is reserved for the local repository, using it for other repositories will corrupt your repository metadata.",
                    repository);
        }

        if ("legacy".equals(repository.getLayout())) {
            addViolation(problems, Severity.WARNING, prefix + ".layout", repository.getId(),
                    "uses the unsupported value \'legacy\', artifact resolution might fail.", repository);
        }
    }

}