List of usage examples for org.apache.maven.project MavenProject getFile
public File getFile()
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*/ }