From d40f87ea68a62da866feb008a68f4302b0d5dbd2 Mon Sep 17 00:00:00 2001 From: jvanzyl Date: Sun, 9 Feb 2003 17:04:45 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@112868 13f79535-47bb-0310-9956-ffa450edef68 --- release/.cvsignore | 1 + release/plugin.jelly | 160 ++++++++---------- release/project.xml | 9 + ...yManipulator.java => PomNodeSelector.java} | 103 ++++++++--- release/src/test-data/test-pom.xml | 18 ++ 5 files changed, 179 insertions(+), 112 deletions(-) rename release/src/main/org/apache/maven/release/{PomDependencyManipulator.java => PomNodeSelector.java} (62%) create mode 100644 release/src/test-data/test-pom.xml diff --git a/release/.cvsignore b/release/.cvsignore index e5e33942..badc0e7f 100644 --- a/release/.cvsignore +++ b/release/.cvsignore @@ -1,3 +1,4 @@ target velocity.log maven.log +*~ diff --git a/release/plugin.jelly b/release/plugin.jelly index a5a9dde8..91417eb3 100644 --- a/release/plugin.jelly +++ b/release/plugin.jelly @@ -2,12 +2,8 @@ + xmlns:i="jelly:interaction" + xmlns:r="jelly:org.apache.maven.release.jelly.ReleaseTagLibrary"> @@ -38,86 +34,78 @@ | of the latest snapshot. --> - - - - - - - - - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - The following dependencies have SNAPSHOT identifiers: - - - ${dependency.artifactId} - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + The following dependencies have SNAPSHOT identifiers: + + + ${dependency.artifactId} + + + + + + + + + + + + + + + + + diff --git a/release/project.xml b/release/project.xml index 98133bf3..c871b132 100644 --- a/release/project.xml +++ b/release/project.xml @@ -41,6 +41,10 @@ jaxen 1.0-FCS-full + + commons-jelly + SNAPSHOT + saxpath 1.0-FCS @@ -50,6 +54,11 @@ 1.0.b2 http://xml.apache.org/xerces2-j/ + + commons-jelly + commons-jelly-tags-interaction + SNAPSHOT + diff --git a/release/src/main/org/apache/maven/release/PomDependencyManipulator.java b/release/src/main/org/apache/maven/release/PomNodeSelector.java similarity index 62% rename from release/src/main/org/apache/maven/release/PomDependencyManipulator.java rename to release/src/main/org/apache/maven/release/PomNodeSelector.java index 6e6d9dc1..c686a0f2 100644 --- a/release/src/main/org/apache/maven/release/PomDependencyManipulator.java +++ b/release/src/main/org/apache/maven/release/PomNodeSelector.java @@ -55,7 +55,6 @@ package org.apache.maven.release; * * ==================================================================== */ - import org.dom4j.Document; import org.dom4j.Node; import org.dom4j.io.SAXReader; @@ -67,26 +66,84 @@ import org.jaxen.JaxenException; import org.jaxen.dom4j.Dom4jXPath; import java.io.File; + +import java.util.ArrayList; import java.util.List; import java.util.Iterator; /** - * This is a simple POM manipulator that doesn't take into - * account any sort of POM inheritance. When the interpolation - * and inheritance is cleaned up in the Maven we will be able - * to serialize a POM directly with greater ease. But we may stick - * with this Jaxen solution anyway because it's so easy. Just turn - * the POM in memory into a Dom4j document and perform the same - * operation as we are here. + * This is a simple POM manipulator that doesn't take into account any sort of + * POM inheritance. When the interpolation and inheritance is cleaned up in the + * Maven we will be able to serialize a POM directly with greater ease. But we + * may stick with this Jaxen solution anyway because it's so easy. Just turn the + * POM in memory into a Dom4j document and perform the same operation as we are + * here. */ -public class PomDependencyManipulator +public class PomNodeSelector { - /** POM document */ + /** + * POM document + */ private File pom; + + /** + * Xpath expression. + */ + private String xpathExpression; + + /** + * Snapshot dependencies found. + */ + private List nodes; + + /** + * Constructor. + */ + public PomNodeSelector() + { + nodes = new ArrayList(); + } + + // ------------------------------------------------------------------------- + // Accessors + // ------------------------------------------------------------------------- + + public void setXpathExpression( String xpathExpression ) + { + this.xpathExpression = xpathExpression; + } - /** Xpath expression to extract dependencies with SNAPSHOT version identifiers */ - private String snapshotXPath = "/project/dependencies/dependency[version='SNAPSHOT']"; - + public String getXpathExpression() + { + return xpathExpression; + } + + /** + * Sets the nodes attribute of the PomManipulator object + */ + public void setNodes(List nodes) + { + this.nodes = nodes; + } + + /** + * Gets the nodes attribute of the PomManipulator object + */ + public List getNodes() + { + return nodes; + } + + public void setPom( File pom ) + { + this.pom = pom; + } + + public File getPom() + { + return pom; + } + /** * Update the snapshot version identifiers with actual timestamp versions * and write out the POM in its updated form. @@ -97,19 +154,13 @@ public class PomDependencyManipulator throws Exception { SAXReader reader = new SAXReader(); - Document doc = reader.read( pom ); - XPath xpath = new Dom4jXPath( snapshotXPath ); - List results = xpath.selectNodes( doc ); + Document doc = reader.read( getPom() ); - for ( Iterator i = results.iterator(); i.hasNext(); ) - { - Object object = i.next(); - - if (object instanceof Node) - { - Node version = (Node) object; - version.setText("non-snapshot-version"); - } - } + // The selecting nodes with the xpath expression will give us a list + // of dependencies elements where the version element is equal to 'SNAPSHOT'. + // So we can get any information we need, and alter anything we need to before writing + // the dom4j document back out. + XPath xpath = new Dom4jXPath( getXpathExpression() ); + setNodes(xpath.selectNodes(doc)); } } diff --git a/release/src/test-data/test-pom.xml b/release/src/test-data/test-pom.xml new file mode 100644 index 00000000..ea8c5d74 --- /dev/null +++ b/release/src/test-data/test-pom.xml @@ -0,0 +1,18 @@ + + + + + A + SNAPSHOT + + + B + SNAPSHOT + + + C + SNAPSHOT + + + +