diff --git a/release/src/main/org/apache/maven/release/VersionTransformer.java b/release/src/main/org/apache/maven/release/VersionTransformer.java index e021c26d..8a26e0ba 100644 --- a/release/src/main/org/apache/maven/release/VersionTransformer.java +++ b/release/src/main/org/apache/maven/release/VersionTransformer.java @@ -71,7 +71,7 @@ import java.util.Iterator; * * @author Brett Porter * - * @version $Id: VersionTransformer.java,v 1.1 2004/02/25 22:34:46 brett Exp $ + * @version $Id: VersionTransformer.java,v 1.2 2004/02/26 13:48:25 brett Exp $ */ public class VersionTransformer extends AbstractPomTransformer @@ -97,20 +97,44 @@ public class VersionTransformer public void transformNode( Node node ) throws Exception { - Node currentVersion = node.selectSingleNode( "currentVersion" ); - currentVersion.setText( version ); + Element project = ( Element ) node; - Node version = node.selectSingleNode( "versions/version[tag='" + tag + "']" ); + Node currentVersion = node.selectSingleNode( "currentVersion" ); + if ( currentVersion != null ) + { + currentVersion.setText( version ); + } + else + { + project.addElement( "currentVersion" ).addText( version ); + } + + Element version = ( Element ) node.selectSingleNode( "versions/version[tag='" + tag + "']" ); if ( version != null ) { // tag exists - overwrite - version.selectSingleNode( "id" ).setText( this.version ); - version.selectSingleNode( "name" ).setText( this.version ); + Node id = version.selectSingleNode( "id" ); + if ( id != null ) + { + id.setText( this.version ); + } + else + { + version.addElement( "id" ).addText( this.version ); + } + Node name = version.selectSingleNode( "name" ); + if ( name != null ) + { + name.setText( this.version ); + } + else + { + version.addElement( "name" ).addText( this.version ); + } } else { // tag doesn't exist - add - Element project = ( Element ) node; Element versions = ( Element ) project.selectSingleNode( "versions" ); if ( versions == null ) { @@ -132,8 +156,13 @@ public class VersionTransformer public boolean transformRequired() { Node node = ( Node ) getSelectedNodes().get( 0 ); + if ( node == null ) + { + return true; + } + Node currentVersion = node.selectSingleNode( "currentVersion" ); - if ( !currentVersion.getText().equals( version )) + if ( currentVersion == null || !currentVersion.getText().equals( version )) { return true; } @@ -143,3 +172,4 @@ public class VersionTransformer return ( v == null ); } } +