Example usage for org.apache.maven.project MavenProject getFile

List of usage examples for org.apache.maven.project MavenProject getFile

Introduction

In this page you can find the example usage for org.apache.maven.project MavenProject getFile.

Prototype

public File getFile() 

Source Link

Usage

From source file:org.jboss.maven.plugins.qstools.AbstractProjectWalker.java

License:Apache License

@SuppressWarnings("unchecked")
public void walk(WalkType walkType, MavenProject project, MavenSession mavenSession,
        List<MavenProject> reactorProjects, Log log, Map<String, List<Violation>> results)
        throws QSToolsException {
    this.mavenSession = mavenSession;
    this.log = log;
    try {/*w w w. j a v  a2s. c  o m*/
        List<String> ignoredQuickstarts = (List<String>) context.get(Constants.IGNORED_QUICKSTARTS_CONTEXT);
        if (configurationProvider.getQuickstartsRules(project.getGroupId()).isCheckerIgnored(this.getClass())) {
            setCheckerMessage("This checker is ignored for this groupId in config file.");
        } else {
            for (MavenProject mavenProject : reactorProjects) {
                if (!ignoredQuickstarts.contains(mavenProject.getBasedir().getName())) {
                    Document doc = PositionalXMLReader.readXML(new FileInputStream(mavenProject.getFile()));
                    switch (walkType) {
                    case CHECK:
                        checkProject(mavenProject, doc, results);
                        break;
                    case FIX:
                        fixProject(mavenProject, doc);
                        break;
                    default:
                        break;
                    }
                } else {
                    log.warn("Ignoring " + mavenProject.getBasedir().getName()
                            + ". It is listed on .quickstarts_ignore file");
                }
            }
        }
    } catch (Exception e) {
        // Any other exception is a problem.
        throw new QSToolsException(e);
    }
}

From source file:org.jboss.maven.plugins.qstools.BomUpdaterMojo.java

License:Apache License

/**
 * @param project//  w ww . j  a  v a2s  . co  m
 * @throws Exception
 */
private void processProject(MavenProject project) throws Exception {
    pomModified = false;
    Rules rules = configurationProvider.getQuickstartsRules(project.getGroupId());
    getLog().debug("Processing " + project.getArtifactId());
    Document doc = PositionalXMLReader.readXML(new FileInputStream(project.getFile()));
    NodeList dependencies = (NodeList) xPath.evaluate("/project/dependencyManagement/dependencies/dependency",
            doc, XPathConstants.NODESET);
    replaceBOMsIfNeeded(project, dependencies, rules);
    updateBomsVersionIfNeeded(project, dependencies, rules, doc);
    if (pomModified) {
        getLog().info("*** Saving changes to " + project.getFile() + "\n");
        updatedProjects++;
        XMLUtil.writeXML(doc, project.getFile());
    }
}

From source file:org.jboss.maven.plugins.qstools.checkers.AbstractProjectChecker.java

License:Apache License

@Override
@SuppressWarnings("unchecked")
public Map<String, List<Violation>> check(MavenProject project, MavenSession mavenSession,
        List<MavenProject> reactorProjects, Log log) throws QSCheckerException {
    this.mavenSession = mavenSession;
    this.log = log;
    Map<String, List<Violation>> results = new TreeMap<String, List<Violation>>();
    try {/*from  w  ww  . ja v a 2 s . c  om*/
        List<String> ignoredQuickstarts = (List<String>) context.get(Constants.IGNORED_QUICKSTARTS_CONTEXT);
        for (MavenProject mavenProject : reactorProjects) {
            if (!ignoredQuickstarts.contains(mavenProject.getBasedir().getName())) {
                Document doc = PositionalXMLReader.readXML(new FileInputStream(mavenProject.getFile()));
                if (configurationProvider.getQuickstartsRules(project.getGroupId()).isCheckerIgnored(this)) {
                    String msg = "Skiping %s for %s:%s";
                    log.warn(String.format(msg, this.getClass().getSimpleName(), project.getGroupId(),
                            project.getArtifactId()));
                } else {
                    processProject(mavenProject, doc, results);
                }
            } else {
                log.debug("Ignoring " + mavenProject.getBasedir().getName()
                        + ". It is listed on .quickstarts_ignore file");
            }
        }
        if (violationsQtd > 0) {
            log.info("There are " + violationsQtd + " checkers errors");
        }
    } catch (Exception e) {
        // Any other exception is a problem.
        throw new QSCheckerException(e);
    }
    return results;
}

From source file:org.jboss.maven.plugins.qstools.checkers.ArtifactIdPrefixChecker.java

License:Apache License

@Override
public void processProject(MavenProject project, Document doc, Map<String, List<Violation>> results)
        throws Exception {
    Rules rules = getConfigurationProvider().getQuickstartsRules(project.getGroupId());
    String artifarIdPrefix = rules.getArtifactIdPrefix();
    if (!project.getArtifactId().startsWith(artifarIdPrefix)) {
        Node artifacId = (Node) getxPath().evaluate("/project/artifactId", doc, XPathConstants.NODE);
        int lineNumber = artifacId == null ? 0 : getLineNumberFromNode(artifacId);
        String msg = "Project with the following artifactId [%s] isn't doesn't start with [%s]";
        addViolation(project.getFile(), results, lineNumber,
                String.format(msg, project.getArtifactId(), artifarIdPrefix));
    }//from   w  w w.  j  a  v  a 2  s. c o m

}

From source file:org.jboss.maven.plugins.qstools.checkers.BomVersionChecker.java

License:Apache License

@Override
public void checkProject(MavenProject project, Document doc, Map<String, List<Violation>> results)
        throws Exception {
    Properties expectedBomVersions = getConfigurationProvider().getQuickstartsRules(project.getGroupId())
            .getExpectedBomVersion();/*w w  w.  j av  a  2 s  . c  o  m*/
    NodeList dependencies = (NodeList) getxPath()
            .evaluate("/project/dependencyManagement/dependencies/dependency", doc, XPathConstants.NODESET);
    // Iterate over all Declared Managed Dependencies
    for (int x = 0; x < dependencies.getLength(); x++) {
        Node dependency = dependencies.item(x);
        MavenDependency mavenDependency = getDependencyProvider().getDependencyFromNode(project, dependency);
        // use stacks to find if the project is using a jboss-developer bom
        Bom bomUsed = null;
        Stacks stacks = (Stacks) getContext().get(Constants.STACKS_CONTEXT);
        for (Bom bom : stacks.getAvailableBoms()) {
            if (bom.getGroupId().equals(mavenDependency.getGroupId())
                    && bom.getArtifactId().equals(mavenDependency.getArtifactId())) {
                bomUsed = bom;
            }
        }
        int lineNumber = XMLUtil.getLineNumberFromNode(dependency);
        if (bomUsed == null // No JDF Bom used
                && !mavenDependency.getGroupId().startsWith("org.jboss") // Escape jboss boms
                && !mavenDependency.getGroupId().startsWith(project.getGroupId()) // Escape projects with same groupId (subprojects)
                && "pom".equals(mavenDependency.getType()) && "import".equals(mavenDependency.getScope()) // Only consider BOMs

        ) {
            addViolation(project.getFile(), results, lineNumber,
                    mavenDependency + " isn't a JBoss Developer BOM");
        } else if (bomUsed != null) {
            String expectedBomVersion = expectedBomVersions.getProperty(bomUsed.getGroupId());
            if (expectedBomVersion != null
                    && !mavenDependency.getInterpoledVersion().equals(expectedBomVersion)) {
                String violationMsg = String.format("BOM %s isn't using the expected version %s",
                        mavenDependency, expectedBomVersion);
                addViolation(project.getFile(), results, lineNumber, violationMsg);
            }
        }
    }
}

From source file:org.jboss.maven.plugins.qstools.checkers.DependencyChecker.java

License:Apache License

@Override
public void checkProject(MavenProject project, Document doc, Map<String, List<Violation>> results)
        throws Exception {
    if (managedDependencies == null) {
        setupManagedDependencies(project);
    }/*w  ww  .  j a  v  a  2s.  c om*/
    NodeList dependencies = (NodeList) getxPath().evaluate("/project/dependencies/dependency", doc,
            XPathConstants.NODESET);
    for (int x = 0; x < dependencies.getLength(); x++) {
        Node dependency = dependencies.item(x);
        MavenDependency mavenDependency = getDependencyProvider().getDependencyFromNode(project, dependency);
        int lineNumber = XMLUtil.getLineNumberFromNode(dependency);
        MavenGA ga = new MavenGA(mavenDependency.getGroupId(), mavenDependency.getArtifactId());
        // IF declares a version
        if (mavenDependency.getDeclaredVersion() != null &&
        // skip multi modules projects (ejb, ear, war)
                !mavenDependency.getDeclaredVersion().equals("${project.version}")) {
            StringBuilder sb = new StringBuilder(String.format(
                    "You should NOT declare a version for %s:%s:%s. Consider using <dependencyManagement/>",
                    mavenDependency.getGroupId(), mavenDependency.getArtifactId(),
                    mavenDependency.getDeclaredVersion()));
            // If has a BOM for it
            if (managedDependencies.get(ga) != null) {
                sb.append("Recommended BOMs with this dependency: ");
                for (Bom bom : managedDependencies.get(ga)) {
                    sb.append(String.format("%s:%s:%s / ", bom.getGroupId(), bom.getArtifactId(),
                            bom.getRecommendedVersion()));
                }
            }
            addViolation(project.getFile(), results, lineNumber, sb.toString());
        }
    }
}

From source file:org.jboss.maven.plugins.qstools.checkers.DuplicateDependencyChecker.java

License:Apache License

@Override
public void checkProject(MavenProject project, Document doc, Map<String, List<Violation>> results)
        throws Exception {
    // Check Managed Dependencies
    Set<MavenDependency> declaredManagedDependencies = new HashSet<MavenDependency>();
    NodeList managedDependency = (NodeList) getxPath()
            .evaluate("/project/dependencyManagement/dependencies/dependency", doc, XPathConstants.NODESET);
    for (int x = 0; x < managedDependency.getLength(); x++) {
        Node dependency = managedDependency.item(x);
        MavenDependency mavenDependency = getDependencyProvider().getDependencyFromNode(project, dependency);
        int lineNumber = XMLUtil.getLineNumberFromNode(dependency);
        if (!declaredManagedDependencies.add(mavenDependency)) { // return false if already exists
            String msg = "Managed Dependency [%s] is declared more than once";
            addViolation(project.getFile(), results, lineNumber,
                    String.format(msg, mavenDependency.getArtifactId()));
        }//from   w ww.  ja v a 2 s . co  m
    }
    // Check Dependencies
    Set<MavenDependency> declaredDependencies = new HashSet<MavenDependency>();
    NodeList dependencies = (NodeList) getxPath().evaluate("/project/dependencies/dependency", doc,
            XPathConstants.NODESET);
    for (int x = 0; x < dependencies.getLength(); x++) {
        Node dependency = dependencies.item(x);
        MavenDependency mavenDependency = getDependencyProvider().getDependencyFromNode(project, dependency);
        int lineNumber = XMLUtil.getLineNumberFromNode(dependency);
        if (!declaredDependencies.add(mavenDependency)) { // return false if already exists
            String msg = "Dependency [%s] is declared more than once";
            addViolation(project.getFile(), results, lineNumber,
                    String.format(msg, mavenDependency.getArtifactId()));
        }
    }

}

From source file:org.jboss.maven.plugins.qstools.checkers.DuplicatePropertiesChecker.java

License:Apache License

@Override
public void checkProject(MavenProject project, Document doc, Map<String, List<Violation>> results)
        throws Exception {
    NodeList properties = (NodeList) getxPath().evaluate("/project/properties/*", doc, XPathConstants.NODESET);
    Set<String> declaredProperties = new HashSet<String>();
    for (int x = 0; x < properties.getLength(); x++) {
        Node property = properties.item(x);
        String propertyName = property.getNodeName();
        int lineNumber = XMLUtil.getLineNumberFromNode(property);
        if (!declaredProperties.add(propertyName)) { // return false if already exists
            String msg = "Property [%s] is declared more than once";
            addViolation(project.getFile(), results, lineNumber, String.format(msg, propertyName));
        }/*from www . j  a v  a  2s  .c  o m*/
    }
}

From source file:org.jboss.maven.plugins.qstools.checkers.FinalNameChecker.java

License:Apache License

@Override
public void checkProject(MavenProject project, Document doc, Map<String, List<Violation>> results)
        throws Exception {
    String packaging = project.getPackaging();
    String expectedFinalName = getConfigurationProvider().getQuickstartsRules(project.getGroupId())
            .getFinalNamePatterns().get(packaging);
    Node finalNameNode = (Node) getxPath().evaluate("//finalName", doc, XPathConstants.NODE);
    String declaredFinalName = finalNameNode == null ? project.getBuild().getFinalName()
            : finalNameNode.getTextContent();
    if (expectedFinalName != null && !expectedFinalName.equals(declaredFinalName)) {
        int lineNumber = finalNameNode == null ? 0 : XMLUtil.getLineNumberFromNode(finalNameNode);
        addViolation(project.getFile(), results, lineNumber,
                ("File doesn't contain <finalName>" + expectedFinalName + "</finalName>"));
    }/*from   w  w w .  j a va 2  s.co  m*/
}

From source file:org.jboss.maven.plugins.qstools.checkers.GroupIdChecker.java

License:Apache License

@Override
public void checkProject(MavenProject project, Document doc, Map<String, List<Violation>> results)
        throws Exception {
    groupId = getConfigurationProvider().getQuickstartsRules(project.getGroupId()).getGroupId();

    Node node = (Node) getxPath().evaluate("/project/groupId", doc, XPathConstants.NODE);
    if (node != null && !project.getGroupId().equals(groupId)) {
        int lineNumber = XMLUtil.getLineNumberFromNode(node);
        addViolation(project.getFile(), results, lineNumber,
                "The project doesn't use groupId '" + groupId + "'");
    }/*from w w w  . j  a va2 s .c  o m*/

}