From 1580d2a1421d74490a5f47f8c93252ce70ead1ab Mon Sep 17 00:00:00 2001 From: fgiust Date: Sat, 3 Dec 2005 22:09:35 +0000 Subject: [PATCH] make version transformer work with poms with a declared namespace git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@352029 13f79535-47bb-0310-9956-ffa450edef68 --- release/project.xml | 63 ++++++++++++------- .../maven/release/AbstractPomTransformer.java | 39 +++++++++--- release/src/test-data/test-pom-versions.xml | 3 +- .../maven/release/SnapshotResolverTest.java | 15 ++--- .../maven/release/VersionTransformerTest.java | 63 ++++++++++--------- release/xdocs/changes.xml | 3 +- 6 files changed, 115 insertions(+), 71 deletions(-) diff --git a/release/project.xml b/release/project.xml index af89138c..b9d53bba 100644 --- a/release/project.xml +++ b/release/project.xml @@ -1,35 +1,38 @@ - + /* + * Copyright 2001-2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +--> + ../plugin-parent/project.xml 3 maven-release-plugin Maven Release Plug-in 1.5-SNAPSHOT - + Produce project release Produce project release http://maven.apache.org/maven-1.x/reference/plugins/release/ http://jira.codehaus.org/browse/MPRELEASE /www/maven.apache.org/maven-1.x/reference/plugins/release/ scm:svn:http://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk/release/ - scm:svn:https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk/release/ + + scm:svn:https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk/release/ + http://svn.apache.org/viewcvs.cgi/maven/maven-1/plugins/trunk/release/ @@ -55,7 +58,9 @@ commons-io 1.0 - This library is already loaded by maven's core. Be careful to use the same version number as in the core. + + This library is already loaded by maven's core. Be careful to use the same version number as in the core. + @@ -64,7 +69,9 @@ 1.4 http://www.dom4j.org/ - This library is already loaded by maven's core. Be careful to use the same version number as in the core. + + This library is already loaded by maven's core. Be careful to use the same version number as in the core. + @@ -77,7 +84,9 @@ commons-jelly 1.0 - This library is already loaded by maven's core. Be careful to use the same version number as in the core. + + This library is already loaded by maven's core. Be careful to use the same version number as in the core. + @@ -97,6 +106,16 @@ 1.0 + + + + + src/test-data + false + + + + 1.2 diff --git a/release/src/main/org/apache/maven/release/AbstractPomTransformer.java b/release/src/main/org/apache/maven/release/AbstractPomTransformer.java index 5f0c918e..e8c398d8 100644 --- a/release/src/main/org/apache/maven/release/AbstractPomTransformer.java +++ b/release/src/main/org/apache/maven/release/AbstractPomTransformer.java @@ -17,15 +17,6 @@ package org.apache.maven.release; * ==================================================================== */ -import org.apache.commons.io.FileUtils; -import org.dom4j.Document; -import org.dom4j.Node; -import org.dom4j.io.OutputFormat; -import org.dom4j.io.SAXReader; -import org.dom4j.io.XMLWriter; -import org.jaxen.XPath; -import org.jaxen.dom4j.Dom4jXPath; - import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; @@ -35,6 +26,18 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import org.apache.commons.io.FileUtils; +import org.dom4j.Document; +import org.dom4j.Node; +import org.dom4j.io.OutputFormat; +import org.dom4j.io.SAXReader; +import org.dom4j.io.XMLWriter; +import org.jaxen.XPath; +import org.jaxen.dom4j.Dom4jXPath; +import org.xml.sax.Attributes; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.XMLFilterImpl; + /** * This is the base class for any tool that attempts to transform fields * in the POM. Currently we are using the XML form of the POM and using Jaxen @@ -263,6 +266,24 @@ public abstract class AbstractPomTransformer throws Exception { SAXReader reader = new SAXReader(); + + // make xpath expressions worh with poms with or without namespace + reader.setXMLFilter( new XMLFilterImpl() + { + + public void endElement( String uri, String localName, String qName ) + throws SAXException + { + super.endElement( "", localName, "" ); + } + + public void startElement( String uri, String localName, String qName, Attributes atts ) + throws SAXException + { + super.startElement( "", localName, "", atts ); + } + + } ); setDocument( reader.read( getProject() ) ); // The selecting nodes with the xpath expression will give us a list diff --git a/release/src/test-data/test-pom-versions.xml b/release/src/test-data/test-pom-versions.xml index 54cdb296..d79818f9 100644 --- a/release/src/test-data/test-pom-versions.xml +++ b/release/src/test-data/test-pom-versions.xml @@ -15,7 +15,8 @@ * limitations under the License. */ --> - + 1.2-SNAPSHOT diff --git a/release/src/test/org/apache/maven/release/SnapshotResolverTest.java b/release/src/test/org/apache/maven/release/SnapshotResolverTest.java index 2eea54f9..bd963e29 100644 --- a/release/src/test/org/apache/maven/release/SnapshotResolverTest.java +++ b/release/src/test/org/apache/maven/release/SnapshotResolverTest.java @@ -17,12 +17,11 @@ package org.apache.maven.release; * ==================================================================== */ -import junit.framework.TestCase; - import java.io.File; - import java.util.List; +import junit.framework.TestCase; + import org.dom4j.Node; /** @@ -30,8 +29,6 @@ import org.dom4j.Node; public class SnapshotResolverTest extends TestCase { - private static String TEST_CONF = System.getProperty( "basedir" ) - + "/src/test-data/test-pom.xml"; /** * Constructor. @@ -47,7 +44,7 @@ public class SnapshotResolverTest throws Exception { DummySnapshotResolver sr = new DummySnapshotResolver(); - sr.setProject( new File( TEST_CONF ) ); + sr.setProject( new File( getClass().getResource( "/test-pom.xml" ).getFile() ) ); sr.transformNodes(); sr.write(); @@ -55,8 +52,8 @@ public class SnapshotResolverTest assertEquals( 3, nodes.size() ); - assertEquals( "NON-SNAPSHOT", ((Node)nodes.get(0)).selectSingleNode( "version" ).getText() ); - assertEquals( "NON-SNAPSHOT", ((Node)nodes.get(1)).selectSingleNode( "version" ).getText() ); - assertEquals( "NON-SNAPSHOT", ((Node)nodes.get(2)).selectSingleNode( "version" ).getText() ); + assertEquals( "NON-SNAPSHOT", ( (Node) nodes.get( 0 ) ).selectSingleNode( "version" ).getText() ); + assertEquals( "NON-SNAPSHOT", ( (Node) nodes.get( 1 ) ).selectSingleNode( "version" ).getText() ); + assertEquals( "NON-SNAPSHOT", ( (Node) nodes.get( 2 ) ).selectSingleNode( "version" ).getText() ); } } diff --git a/release/src/test/org/apache/maven/release/VersionTransformerTest.java b/release/src/test/org/apache/maven/release/VersionTransformerTest.java index 1efacd53..fc089dd3 100644 --- a/release/src/test/org/apache/maven/release/VersionTransformerTest.java +++ b/release/src/test/org/apache/maven/release/VersionTransformerTest.java @@ -44,7 +44,7 @@ public class VersionTransformerTest throws Exception { VersionTransformer vt = new VersionTransformer( "1.2", "TEST_1_2" ); - vt.setProject( new File( System.getProperty( "basedir" ), "/src/test-data/test-pom-no-versions.xml" ) ); + vt.setProject( getTestFile( "test-pom-no-versions.xml" ) ); assertTrue( "check transform required", vt.transformRequired() ); @@ -55,7 +55,7 @@ public class VersionTransformerTest assertEquals( 1, nodes.size() ); - Node project = ( Node ) nodes.get( 0 ); + Node project = (Node) nodes.get( 0 ); assertEquals( "Check currentVersion is 1.2", "1.2", project.selectSingleNode( "currentVersion" ).getText() ); @@ -63,7 +63,7 @@ public class VersionTransformerTest assertEquals( "Check # versions is 1", 1, versionNodes.size() ); - Node version = ( Node ) versionNodes.get( 0 ); + Node version = (Node) versionNodes.get( 0 ); assertEquals( "Check version id is 1.2", "1.2", version.selectSingleNode( "id" ).getText() ); assertEquals( "Check version name is 1.2", "1.2", version.selectSingleNode( "name" ).getText() ); @@ -74,7 +74,7 @@ public class VersionTransformerTest throws Exception { VersionTransformer vt = new VersionTransformer( "1.2", "TEST_1_2" ); - vt.setProject( new File( System.getProperty( "basedir" ), "/src/test-data/test-pom-versions.xml" ) ); + vt.setProject( getTestFile( "test-pom-versions.xml" ) ); assertTrue( "check transform required", vt.transformRequired() ); @@ -85,7 +85,7 @@ public class VersionTransformerTest assertEquals( 1, nodes.size() ); - Node project = ( Node ) nodes.get( 0 ); + Node project = (Node) nodes.get( 0 ); assertEquals( "Check currentVersion is 1.2", "1.2", project.selectSingleNode( "currentVersion" ).getText() ); @@ -93,13 +93,13 @@ public class VersionTransformerTest assertEquals( "Check # versions is 2", 2, versionNodes.size() ); - Node version = ( Node ) versionNodes.get( 0 ); + Node version = (Node) versionNodes.get( 0 ); assertEquals( "Check version id is 1.1", "1.1", version.selectSingleNode( "id" ).getText() ); assertEquals( "Check version name is 1.1", "1.1", version.selectSingleNode( "name" ).getText() ); assertEquals( "Check version tag is TEST_1_1", "TEST_1_1", version.selectSingleNode( "tag" ).getText() ); - version = ( Node ) versionNodes.get( 1 ); + version = (Node) versionNodes.get( 1 ); assertEquals( "Check version id is 1.2", "1.2", version.selectSingleNode( "id" ).getText() ); assertEquals( "Check version name is 1.2", "1.2", version.selectSingleNode( "name" ).getText() ); @@ -110,7 +110,7 @@ public class VersionTransformerTest throws Exception { VersionTransformer vt = new VersionTransformer( "1.2", "TEST_1_2" ); - vt.setProject( new File( System.getProperty( "basedir" ), "/src/test-data/test-pom-versions-multiple.xml" ) ); + vt.setProject( getTestFile( "test-pom-versions-multiple.xml" ) ); assertTrue( "check transform required", vt.transformRequired() ); @@ -121,7 +121,7 @@ public class VersionTransformerTest assertEquals( 1, nodes.size() ); - Node project = ( Node ) nodes.get( 0 ); + Node project = (Node) nodes.get( 0 ); assertEquals( "Check currentVersion is 1.2", "1.2", project.selectSingleNode( "currentVersion" ).getText() ); @@ -129,19 +129,19 @@ public class VersionTransformerTest assertEquals( "Check # versions is 3", 3, versionNodes.size() ); - Node version = ( Node ) versionNodes.get( 0 ); + Node version = (Node) versionNodes.get( 0 ); assertEquals( "Check version id is 1.0", "1.0", version.selectSingleNode( "id" ).getText() ); assertEquals( "Check version name is 1.0", "1.0", version.selectSingleNode( "name" ).getText() ); assertEquals( "Check version tag is TEST_1_0", "TEST_1_0", version.selectSingleNode( "tag" ).getText() ); - version = ( Node ) versionNodes.get( 1 ); + version = (Node) versionNodes.get( 1 ); assertEquals( "Check version id is 1.1", "1.1", version.selectSingleNode( "id" ).getText() ); assertEquals( "Check version name is 1.1", "1.1", version.selectSingleNode( "name" ).getText() ); assertEquals( "Check version tag is TEST_1_1", "TEST_1_1", version.selectSingleNode( "tag" ).getText() ); - version = ( Node ) versionNodes.get( 2 ); + version = (Node) versionNodes.get( 2 ); assertEquals( "Check version id is 1.2", "1.2", version.selectSingleNode( "id" ).getText() ); assertEquals( "Check version name is 1.2", "1.2", version.selectSingleNode( "name" ).getText() ); @@ -152,7 +152,7 @@ public class VersionTransformerTest throws Exception { VersionTransformer vt = new VersionTransformer( "1.2", "TEST_1_2" ); - vt.setProject( new File( System.getProperty( "basedir" ), "/src/test-data/test-pom-versions-wrong-order.xml" ) ); + vt.setProject( getTestFile( "test-pom-versions-wrong-order.xml" ) ); assertTrue( "check transform required", vt.transformRequired() ); @@ -163,7 +163,7 @@ public class VersionTransformerTest assertEquals( 1, nodes.size() ); - Node project = ( Node ) nodes.get( 0 ); + Node project = (Node) nodes.get( 0 ); assertEquals( "Check currentVersion is 1.2", "1.2", project.selectSingleNode( "currentVersion" ).getText() ); @@ -171,19 +171,19 @@ public class VersionTransformerTest assertEquals( "Check # versions is 3", 3, versionNodes.size() ); - Node version = ( Node ) versionNodes.get( 0 ); + Node version = (Node) versionNodes.get( 0 ); assertEquals( "Check version id is 1.1", "1.1", version.selectSingleNode( "id" ).getText() ); assertEquals( "Check version name is 1.1", "1.1", version.selectSingleNode( "name" ).getText() ); assertEquals( "Check version tag is TEST_1_1", "TEST_1_1", version.selectSingleNode( "tag" ).getText() ); - version = ( Node ) versionNodes.get( 1 ); + version = (Node) versionNodes.get( 1 ); assertEquals( "Check version id is 1.0", "1.0", version.selectSingleNode( "id" ).getText() ); assertEquals( "Check version name is 1.0", "1.0", version.selectSingleNode( "name" ).getText() ); assertEquals( "Check version tag is TEST_1_0", "TEST_1_0", version.selectSingleNode( "tag" ).getText() ); - version = ( Node ) versionNodes.get( 2 ); + version = (Node) versionNodes.get( 2 ); assertEquals( "Check version id is 1.2", "1.2", version.selectSingleNode( "id" ).getText() ); assertEquals( "Check version name is 1.2", "1.2", version.selectSingleNode( "name" ).getText() ); @@ -194,7 +194,7 @@ public class VersionTransformerTest throws Exception { VersionTransformer vt = new VersionTransformer( "1.2", "TEST_1_2" ); - vt.setProject( new File( System.getProperty( "basedir" ), "/src/test-data/test-pom-versions-overwrite.xml" ) ); + vt.setProject( getTestFile( "test-pom-versions-overwrite.xml" ) ); assertTrue( "check transform required", vt.transformRequired() ); @@ -205,7 +205,7 @@ public class VersionTransformerTest assertEquals( 1, nodes.size() ); - Node project = ( Node ) nodes.get( 0 ); + Node project = (Node) nodes.get( 0 ); assertEquals( "Check currentVersion is 1.2", "1.2", project.selectSingleNode( "currentVersion" ).getText() ); @@ -213,13 +213,13 @@ public class VersionTransformerTest assertEquals( "Check # versions is 2", 2, versionNodes.size() ); - Node version = ( Node ) versionNodes.get( 0 ); + Node version = (Node) versionNodes.get( 0 ); assertEquals( "Check version id is 1.0", "1.0", version.selectSingleNode( "id" ).getText() ); assertEquals( "Check version name is 1.0", "1.0", version.selectSingleNode( "name" ).getText() ); assertEquals( "Check version tag is TEST_1_0", "TEST_1_0", version.selectSingleNode( "tag" ).getText() ); - version = ( Node ) versionNodes.get( 1 ); + version = (Node) versionNodes.get( 1 ); assertEquals( "Check version id is 1.2", "1.2", version.selectSingleNode( "id" ).getText() ); assertEquals( "Check version name is 1.2", "1.2", version.selectSingleNode( "name" ).getText() ); @@ -230,7 +230,7 @@ public class VersionTransformerTest throws Exception { VersionTransformer vt = new VersionTransformer( "1.2", "TEST_1_2" ); - vt.setProject( new File( System.getProperty( "basedir" ), "/src/test-data/test-pom-versions-correct.xml" ) ); + vt.setProject( getTestFile( "test-pom-versions-correct.xml" ) ); assertFalse( "check transform not required", vt.transformRequired() ); @@ -241,7 +241,7 @@ public class VersionTransformerTest assertEquals( 1, nodes.size() ); - Node project = ( Node ) nodes.get( 0 ); + Node project = (Node) nodes.get( 0 ); assertEquals( "Check currentVersion is 1.2", "1.2", project.selectSingleNode( "currentVersion" ).getText() ); @@ -249,13 +249,13 @@ public class VersionTransformerTest assertEquals( "Check # versions is 2", 2, versionNodes.size() ); - Node version = ( Node ) versionNodes.get( 0 ); + Node version = (Node) versionNodes.get( 0 ); assertEquals( "Check version id is 1.0", "1.0", version.selectSingleNode( "id" ).getText() ); assertEquals( "Check version name is 1.0", "1.0", version.selectSingleNode( "name" ).getText() ); assertEquals( "Check version tag is TEST_1_0", "TEST_1_0", version.selectSingleNode( "tag" ).getText() ); - version = ( Node ) versionNodes.get( 1 ); + version = (Node) versionNodes.get( 1 ); assertEquals( "Check version id is 1.2", "1.2", version.selectSingleNode( "id" ).getText() ); assertEquals( "Check version name is 1.2", "1.2", version.selectSingleNode( "name" ).getText() ); @@ -266,7 +266,7 @@ public class VersionTransformerTest throws Exception { VersionTransformer vt = new VersionTransformer( "1.2", "TEST_1_2" ); - vt.setProject( new File( System.getProperty( "basedir" ), "/src/test-data/test-pom-versions-tag-match-only.xml" ) ); + vt.setProject( getTestFile( "test-pom-versions-tag-match-only.xml" ) ); assertTrue( "check transform required", vt.transformRequired() ); @@ -277,7 +277,7 @@ public class VersionTransformerTest assertEquals( 1, nodes.size() ); - Node project = ( Node ) nodes.get( 0 ); + Node project = (Node) nodes.get( 0 ); assertEquals( "Check currentVersion is 1.2", "1.2", project.selectSingleNode( "currentVersion" ).getText() ); @@ -285,11 +285,16 @@ public class VersionTransformerTest assertEquals( "Check # versions is 1", 1, versionNodes.size() ); - Node version = ( Node ) versionNodes.get( 0 ); + Node version = (Node) versionNodes.get( 0 ); assertEquals( "Check version id is 1.2", "1.2", version.selectSingleNode( "id" ).getText() ); assertEquals( "Check version name is 1.2", "1.2", version.selectSingleNode( "name" ).getText() ); assertEquals( "Check version tag is TEST_1_2", "TEST_1_2", version.selectSingleNode( "tag" ).getText() ); } -} + private File getTestFile( String filename ) + { + return new File( getClass().getResource( "/" + filename ).getFile() ); + } + +} diff --git a/release/xdocs/changes.xml b/release/xdocs/changes.xml index dea92945..c603038e 100644 --- a/release/xdocs/changes.xml +++ b/release/xdocs/changes.xml @@ -26,7 +26,7 @@ - handle non-jar dependnecies + handle non-jar dependencies Update dependencies to match ones in maven 1.1 core and to unify them between plugins. The following dependencies are updated :
  • maven v1.0-rc2 -> v1.0.2
  • @@ -35,6 +35,7 @@
  • xml-apis v 1.0.b2 -> xmlParserAPIs v2.6.2
+ Handle poms with a namespace
Close output file in AbstractPomTransformer.write()