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

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

Introduction

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

Prototype

int VALIDATION_LEVEL_MAVEN_2_0

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

Click Source Link

Document

Denotes validation as performed by Maven 2.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);
        }//www .j  av a2 s . co  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 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  w  w w. j a va  2  s.  c o m*/
            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 validateEffectiveDependency(ModelProblemCollector problems, Dependency d, boolean management,
        String prefix, ModelBuildingRequest request) {
    this.validateId(prefix + "artifactId", problems, Severity.ERROR, d.getArtifactId(), d.getManagementKey(),
            d);//from www  .  j  a  v a2 s.c  o m
    this.validateId(prefix + "groupId", problems, Severity.ERROR, d.getGroupId(), d.getManagementKey(), d);
    if (!management) {
        this.validateStringNotEmpty(prefix + "type", problems, Severity.ERROR, d.getType(),
                d.getManagementKey(), d);
        this.validateStringNotEmpty(prefix + "version", problems, Severity.ERROR, d.getVersion(),
                d.getManagementKey(), d);
    }

    if ("system".equals(d.getScope())) {
        String systemPath = d.getSystemPath();
        if (StringUtils.isEmpty(systemPath)) {
            addViolation(problems, Severity.ERROR, prefix + "systemPath", d.getManagementKey(), "is missing.",
                    d);
        } else {
            File exclusion = new File(systemPath);
            if (!exclusion.isAbsolute()) {
                addViolation(problems, Severity.ERROR, prefix + "systemPath", d.getManagementKey(),
                        "must specify an absolute path but is " + systemPath, d);
            } else if (!exclusion.isFile()) {
                String msg = "refers to a non-existing file " + exclusion.getAbsolutePath();
                systemPath = systemPath.replace('/', File.separatorChar).replace('\\', File.separatorChar);
                String jdkHome = request.getSystemProperties().getProperty("java.home", "") + File.separator
                        + "..";
                if (systemPath.startsWith(jdkHome)) {
                    msg = msg + ". Please verify that you run Maven using a JDK and not just a JRE.";
                }

                addViolation(problems, Severity.WARNING, prefix + "systemPath", d.getManagementKey(), msg, d);
            }
        }
    } else if (StringUtils.isNotEmpty(d.getSystemPath())) {
        addViolation(problems, Severity.ERROR, prefix + "systemPath", d.getManagementKey(),
                "must be omitted. This field may only be specified for a dependency with system scope.", d);
    }

    if (request.getValidationLevel() >= ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0) {

        for (Exclusion exclusion1 : d.getExclusions()) {
            this.validateId(prefix + "exclusions.exclusion.groupId", problems, Severity.WARNING,
                    exclusion1.getGroupId(), d.getManagementKey(), exclusion1);
            this.validateId(prefix + "exclusions.exclusion.artifactId", problems, Severity.WARNING,
                    exclusion1.getArtifactId(), d.getManagementKey(), exclusion1);
        }
    }

}

From source file:org.jvnet.hudson.test.MavenUtil.java

License:Open Source License

/**
 * Create MavenRequest given only a TaskListener. Used by HudsonTestCase.
 * /*from   w  w w. j a  v a  2s.  com*/
 * @param listener
 * @return MavenRequest
 * @throws MavenEmbedderException
 * @throws IOException 
 */
public static MavenRequest createMavenRequest(TaskListener listener)
        throws MavenEmbedderException, IOException {
    Properties systemProperties = new Properties();

    MavenRequest mavenRequest = new MavenRequest();

    // make sure ~/.m2 exists to avoid http://www.nabble.com/BUG-Report-tf3401736.html
    File m2Home = new File(MavenEmbedder.userHome, ".m2");
    m2Home.mkdirs();
    if (!m2Home.exists())
        throw new AbortException("Failed to create " + m2Home);

    mavenRequest.setUserSettingsFile(new File(m2Home, "settings.xml").getAbsolutePath());

    mavenRequest.setGlobalSettingsFile(new File("conf/settings.xml").getAbsolutePath());

    mavenRequest.setUpdateSnapshots(false);

    // TODO olamy check this sould be userProperties 
    mavenRequest.setSystemProperties(systemProperties);

    EmbedderLoggerImpl logger = new EmbedderLoggerImpl(listener,
            debugMavenEmbedder ? org.codehaus.plexus.logging.Logger.LEVEL_DEBUG
                    : org.codehaus.plexus.logging.Logger.LEVEL_INFO);
    mavenRequest.setMavenLoggerManager(logger);

    ClassLoader mavenEmbedderClassLoader = new MaskingClassLoader(MavenUtil.class.getClassLoader());

    {// are we loading the right components.xml? (and not from Maven that's running Jetty, if we are running in "mvn hudson-dev:run" or "mvn hpi:run"?
        Enumeration<URL> e = mavenEmbedderClassLoader.getResources("META-INF/plexus/components.xml");
        while (e.hasMoreElements()) {
            URL url = e.nextElement();
            LOGGER.fine("components.xml from " + url);
        }
    }

    mavenRequest.setProcessPlugins(false);
    mavenRequest.setResolveDependencies(false);
    mavenRequest.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MAVEN_2_0);

    return mavenRequest;
}