You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by be...@apache.org on 2011/10/06 18:49:17 UTC

svn commit: r1179704 [1/3] - in /maven/release/trunk/maven-release-manager/src: main/java/org/apache/maven/shared/release/phase/ test/java/org/apache/maven/shared/release/phase/ test/remote-repository/groupId/subproject1/ test/remote-repository/groupId...

Author: bentmann
Date: Thu Oct  6 16:49:14 2011
New Revision: 1179704

URL: http://svn.apache.org/viewvc?rev=1179704&view=rev
Log:
[MRELEASE-354] Versions defined in profiles are not updated
[MRELEASE-454] The Release-Plugin does not rewrite dependencies in the DependencyManagement with scope "import"
  Tests submitted by: Pedro Rodriguez
[MRELEASE-467] Release preparation should update version of plugin dependencies

Added:
    maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/   (with props)
    maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/1.0-SNAPSHOT/   (with props)
    maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/1.0-SNAPSHOT/subproject1-1.0-SNAPSHOT.jar
    maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/1.0-SNAPSHOT/subproject1-1.0-SNAPSHOT.pom
    maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/2.0/   (with props)
    maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/2.0/subproject1-2.0.jar
    maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/2.0/subproject1-2.0.pom
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/subproject1/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/subproject1/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/subproject2/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/subproject2/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/subproject3/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/subproject3/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/subproject3/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management-import/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management-import/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management-import/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management-import/subproject1/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management-import/subproject1/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management-import/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management-import/subproject2/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management-import/subproject2/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management-import/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management/subproject1/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management/subproject1/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management/subproject2/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management/subproject2/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/pom-with-parent-and-properties-in-dependency-management/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/imported-dependency-management-in-reactor/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/imported-dependency-management-in-reactor/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/imported-dependency-management-in-reactor/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/imported-dependency-management-in-reactor/subproject1/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/imported-dependency-management-in-reactor/subproject1/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/imported-dependency-management-in-reactor/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/imported-dependency-management-in-reactor/subproject2/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/imported-dependency-management-in-reactor/subproject2/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/imported-dependency-management-in-reactor/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-plugin-deps/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-plugin-deps/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-plugin-deps/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-plugin-deps/subproject1/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-plugin-deps/subproject1/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-plugin-deps/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-plugin-deps/subproject2/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-plugin-deps/subproject2/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-plugin-deps/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-plugin-deps/subproject3/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-plugin-deps/subproject3/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-plugin-deps/subproject3/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-profile/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-profile/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-profile/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-profile/subproject1/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-profile/subproject1/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-profile/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-profile/subproject2/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-profile/subproject2/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-profile/subproject2/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-profile/subproject3/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-profile/subproject3/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/internal-snapshot-profile/subproject3/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/modules-with-different-versions/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/modules-with-different-versions/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/modules-with-different-versions/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/modules-with-different-versions/subproject1/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/modules-with-different-versions/subproject1/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/modules-with-different-versions/subproject1/pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/modules-with-different-versions/subproject2/   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/modules-with-different-versions/subproject2/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/modules-with-different-versions/subproject2/pom.xml   (with props)
Modified:
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractEditModeRewritingReleasePhaseTestCase.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java?rev=1179704&r1=1179703&r2=1179704&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java Thu Oct  6 16:49:14 2011
@@ -25,6 +25,9 @@ import java.io.StringReader;
 import java.io.StringWriter;
 import java.io.Writer;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -32,10 +35,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.maven.artifact.ArtifactUtils;
-import org.apache.maven.model.Dependency;
-import org.apache.maven.model.Extension;
-import org.apache.maven.model.Plugin;
-import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.model.Model;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
@@ -53,8 +53,13 @@ import org.apache.maven.shared.release.s
 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
 import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
 import org.apache.maven.shared.release.util.ReleaseUtil;
+import org.codehaus.plexus.interpolation.InterpolationException;
+import org.codehaus.plexus.interpolation.MapBasedValueSource;
+import org.codehaus.plexus.interpolation.ObjectBasedValueSource;
+import org.codehaus.plexus.interpolation.PrefixAwareRecursionInterceptor;
+import org.codehaus.plexus.interpolation.PrefixedObjectValueSource;
+import org.codehaus.plexus.interpolation.StringSearchInterpolator;
 import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.WriterFactory;
 import org.jdom.CDATA;
 import org.jdom.Comment;
@@ -68,7 +73,6 @@ import org.jdom.filter.ElementFilter;
 import org.jdom.input.SAXBuilder;
 import org.jdom.output.Format;
 import org.jdom.output.XMLOutputter;
-import org.jdom.xpath.XPath;
 
 /**
  * Base class for rewriting phases.
@@ -247,9 +251,10 @@ public abstract class AbstractRewritePom
         throws ReleaseExecutionException, ReleaseFailureException
     {
         Namespace namespace = rootElement.getNamespace();
-        Map mappedVersions = getNextVersionMap( releaseDescriptor );
-        Map originalVersions = getOriginalVersionMap( releaseDescriptor, reactorProjects, simulate );
+        Map<String, String> mappedVersions = getNextVersionMap( releaseDescriptor );
+        Map<String, String> originalVersions = getOriginalVersionMap( releaseDescriptor, reactorProjects, simulate );
         Map resolvedSnapshotDependencies = releaseDescriptor.getResolvedSnapshotDependencies();
+        Model model = project.getModel();
         Element properties = rootElement.getChild( "properties", namespace );
 
         String parentVersion = rewriteParent( project, rootElement, namespace, mappedVersions, 
@@ -259,52 +264,41 @@ public abstract class AbstractRewritePom
 
         rewriteVersion( rootElement, namespace, mappedVersions, projectId, project, parentVersion );
 
-        rewriteDependencies( project.getDependencies(), rootElement, mappedVersions, resolvedSnapshotDependencies,
-                             originalVersions, projectId, properties, result, releaseDescriptor );
+        List<Element> roots = new ArrayList<Element>();
+        roots.add( rootElement );
+        roots.addAll( getChildren( rootElement, "profiles", "profile" ) );
 
-        if ( project.getDependencyManagement() != null )
+        for ( Element root : roots )
         {
-            Element dependencyRoot = rootElement.getChild( "dependencyManagement", namespace );
-            if ( dependencyRoot != null )
-            {
-                rewriteDependencies( project.getDependencyManagement().getDependencies(), dependencyRoot,
-                                     mappedVersions, resolvedSnapshotDependencies, originalVersions, projectId,
-                                     properties, result, releaseDescriptor );
-            }
-        }
+            rewriteArtifactVersions( getChildren( root, "dependencies", "dependency" ), mappedVersions,
+                                    resolvedSnapshotDependencies, originalVersions, model, properties, result,
+                                    releaseDescriptor );
 
-        if ( project.getBuild() != null )
-        {
-            Element buildRoot = rootElement.getChild( "build", namespace );
-            if ( buildRoot != null )
+            rewriteArtifactVersions( getChildren( root, "dependencyManagement", "dependencies", "dependency" ),
+                                    mappedVersions, resolvedSnapshotDependencies, originalVersions, model, properties,
+                                    result, releaseDescriptor );
+
+            rewriteArtifactVersions( getChildren( root, "build", "extensions", "extension" ), mappedVersions,
+                                    resolvedSnapshotDependencies, originalVersions, model, properties, result,
+                                    releaseDescriptor );
+
+            List<Element> pluginElements = new ArrayList<Element>();
+            pluginElements.addAll( getChildren( root, "build", "plugins", "plugin" ) );
+            pluginElements.addAll( getChildren( root, "build", "pluginManagement", "plugins", "plugin" ) );
+
+            rewriteArtifactVersions( pluginElements, mappedVersions, resolvedSnapshotDependencies, originalVersions,
+                                    model, properties, result, releaseDescriptor );
+
+            for ( Element pluginElement : pluginElements )
             {
-                rewritePlugins( project.getBuildPlugins(), buildRoot, mappedVersions, resolvedSnapshotDependencies,
-                                originalVersions, projectId, properties, result, releaseDescriptor );
-                if ( project.getPluginManagement() != null )
-                {
-                    Element pluginsRoot = buildRoot.getChild( "pluginManagement", namespace );
-                    if ( pluginsRoot != null )
-                    {
-                        rewritePlugins( project.getPluginManagement().getPlugins(), pluginsRoot, mappedVersions,
-                                        resolvedSnapshotDependencies, originalVersions, projectId, properties, result,
+                rewriteArtifactVersions( getChildren( pluginElement, "dependencies", "dependency" ), mappedVersions,
+                                        resolvedSnapshotDependencies, originalVersions, model, properties, result,
                                         releaseDescriptor );
-                    }
-                }
-                rewriteExtensions( project.getBuildExtensions(), buildRoot, mappedVersions,
-                                   resolvedSnapshotDependencies, originalVersions, projectId, properties, result,
-                                   releaseDescriptor );
             }
-        }
 
-        if ( project.getReporting() != null )
-        {
-            Element pluginsRoot = rootElement.getChild( "reporting", namespace );
-            if ( pluginsRoot != null )
-            {
-                rewriteReportPlugins( project.getReportPlugins(), pluginsRoot, mappedVersions,
-                                      resolvedSnapshotDependencies, originalVersions, projectId, properties, result,
-                                      releaseDescriptor );
-            }
+            rewriteArtifactVersions( getChildren( root, "reporting", "plugins", "plugin" ), mappedVersions,
+                                    resolvedSnapshotDependencies, originalVersions, model, properties, result,
+                                    releaseDescriptor );
         }
 
         String commonBasedir;
@@ -321,6 +315,21 @@ public abstract class AbstractRewritePom
                       commonBasedir );
     }
 
+    @SuppressWarnings( "unchecked" )
+    private List<Element> getChildren( Element root, String... names )
+    {
+        Element parent = root;
+        for ( int i = 0; i < names.length - 1 && parent != null; i++ )
+        {
+            parent = parent.getChild( names[i], parent.getNamespace() );
+        }
+        if ( parent == null )
+        {
+            return Collections.emptyList();
+        }
+        return parent.getChildren( names[names.length - 1], parent.getNamespace() );
+    }
+
     /**
      * Updates the text value of the given element. The primary purpose of this method is to preserve any whitespace and
      * comments around the original text value.
@@ -434,280 +443,178 @@ public abstract class AbstractRewritePom
         return parentVersion;
     }
 
-    private void rewriteDependencies( List<Dependency> dependencies, Element dependencyRoot, Map mappedVersions,
-                                      Map resolvedSnapshotDependencies, Map originalVersions, String projectId,
-                                      Element properties, ReleaseResult result, ReleaseDescriptor releaseDescriptor )
+    private void rewriteArtifactVersions( Collection<Element> elements, Map<String, String> mappedVersions,
+                                          Map resolvedSnapshotDependencies, Map<String, String> originalVersions,
+                                          Model projectModel, Element properties, ReleaseResult result,
+                                          ReleaseDescriptor releaseDescriptor )
         throws ReleaseExecutionException, ReleaseFailureException
     {
-        if ( dependencies != null )
+        if ( elements == null )
         {
-            List<String> dependenciesAlreadyChanged = new ArrayList<String>();
-            for ( Iterator<Dependency> i = dependencies.iterator(); i.hasNext(); )
-            {
-                Dependency dep = (Dependency) i.next();
-                String depId = ArtifactUtils.versionlessKey( dep.getGroupId(), dep.getArtifactId() );
-                if ( !dependenciesAlreadyChanged.contains( depId ) )
-                {
-                    //This check is required because updateDomVersion update all dependencies with the current groupId/artifactId
-                    //(standard dependencies and sub-dependencies like ejb-client) so we don't need to re-update them
-
-                    dependenciesAlreadyChanged.add( depId );
-
-                    updateDomVersion( dep.getGroupId(), dep.getArtifactId(), mappedVersions,
-                                      resolvedSnapshotDependencies, dep.getVersion(), originalVersions, "dependencies",
-                                      "dependency", dependencyRoot, projectId, properties, result, releaseDescriptor );
-                }
-            }
+            return;
         }
-    }
-
-    private void rewritePlugins( List<Plugin> plugins, Element pluginRoot, Map mappedVersions, Map resolvedSnapshotDependencies,
-                                 Map originalVersions, String projectId, Element properties, ReleaseResult result,
-                                 ReleaseDescriptor releaseDescriptor )
-        throws ReleaseExecutionException, ReleaseFailureException
-    {
-        if ( plugins != null )
+        String projectId = ArtifactUtils.versionlessKey( projectModel.getGroupId(), projectModel.getArtifactId() );
+        for ( Element element : elements )
         {
-            for ( Iterator<Plugin> i = plugins.iterator(); i.hasNext(); )
+            Element versionElement = element.getChild( "version", element.getNamespace() );
+            if ( versionElement == null )
             {
-                Plugin plugin = i.next();
-
-                // We can ignore plugins whose version is assumed, they are only written into the release pom
-                if ( plugin.getVersion() != null )
-                {
-                    updateDomVersion( plugin.getGroupId(), plugin.getArtifactId(), mappedVersions,
-                                      resolvedSnapshotDependencies, plugin.getVersion(), originalVersions, "plugins",
-                                      "plugin", pluginRoot, projectId, properties, result, releaseDescriptor );
-                }
+                // managed dependency or unversioned plugin
+                continue;
             }
-        }
-    }
+            String rawVersion = versionElement.getTextTrim();
 
-    private void rewriteExtensions( List<Extension> extensions, Element extensionRoot, Map mappedVersions,
-                                    Map resolvedSnapshotDependencies, Map originalVersions, String projectId,
-                                    Element properties, ReleaseResult result, ReleaseDescriptor releaseDescriptor )
-        throws ReleaseExecutionException, ReleaseFailureException
-    {
-        if ( extensions != null )
-        {
-            for ( Iterator<Extension> i = extensions.iterator(); i.hasNext(); )
+            Element groupIdElement = element.getChild( "groupId", element.getNamespace() );
+            if ( groupIdElement == null )
             {
-                Extension extension = i.next();
-
-                if ( extension.getVersion() != null )
+                if ( "plugin".equals( element.getName() ) )
                 {
-                    updateDomVersion( extension.getGroupId(), extension.getArtifactId(), mappedVersions,
-                                      resolvedSnapshotDependencies, extension.getVersion(), originalVersions,
-                                      "extensions", "extension", extensionRoot, projectId, properties, result,
-                                      releaseDescriptor );
+                    groupIdElement = new Element( "groupId", element.getNamespace() );
+                    groupIdElement.setText( "org.apache.maven.plugins" );
                 }
-            }
-        }
-    }
-
-    private void rewriteReportPlugins( List<ReportPlugin> plugins, Element pluginRoot, Map mappedVersions,
-                                       Map resolvedSnapshotDependencies, Map originalVersions, String projectId,
-                                       Element properties, ReleaseResult result, ReleaseDescriptor releaseDescriptor )
-        throws ReleaseExecutionException, ReleaseFailureException
-    {
-        if ( plugins != null )
-        {
-            for ( Iterator<ReportPlugin> i = plugins.iterator(); i.hasNext(); )
-            {
-                ReportPlugin plugin = i.next();
-
-                // We can ignore plugins whose version is assumed, they are only written into the release pom
-                if ( plugin.getVersion() != null )
+                else
                 {
-                    updateDomVersion( plugin.getGroupId(), plugin.getArtifactId(), mappedVersions,
-                                      resolvedSnapshotDependencies, plugin.getVersion(), originalVersions, "plugins",
-                                      "plugin", pluginRoot, projectId, properties, result, releaseDescriptor );
+                    // incomplete dependency
+                    continue;
                 }
             }
-        }
-    }
-
-    private List<Element> getDependencies( String groupId, String artifactId, String groupTagName, String tagName,
-                                  Element dependencyRoot )
-        throws JDOMException
-    {
-        XPath xpath;
-        if ( !StringUtils.isEmpty( dependencyRoot.getNamespaceURI() ) )
-        {
-            xpath =
-                XPath.newInstance( "./pom:" + groupTagName + "/pom:" + tagName + "[normalize-space(pom:groupId)='"
-                    + groupId + "' and normalize-space(pom:artifactId)='" + artifactId + "']" );
-            xpath.addNamespace( "pom", dependencyRoot.getNamespaceURI() );
-        }
-        else
-        {
-            xpath =
-                XPath.newInstance( "./" + groupTagName + "/" + tagName + "[normalize-space(groupId)='" + groupId
-                    + "' and normalize-space(artifactId)='" + artifactId + "']" );
-        }
+            String groupId = interpolate( groupIdElement.getTextTrim(), projectModel );
 
-        List<Element> dependencies = xpath.selectNodes( dependencyRoot );
-
-        //MRELEASE-147
-        if ( ( dependencies == null || dependencies.isEmpty() ) && groupId.indexOf( "${" ) == -1 )
-        {
-            dependencies = getDependencies( "${project.groupId}", artifactId, groupTagName, tagName, dependencyRoot );
-
-            if ( dependencies == null || dependencies.isEmpty() )
+            Element artifactIdElement = element.getChild( "artifactId", element.getNamespace() );
+            if ( artifactIdElement == null )
             {
-                dependencies = getDependencies( "${pom.groupId}", artifactId, groupTagName, tagName, dependencyRoot );
+                // incomplete element
+                continue;
             }
-        }
+            String artifactId = interpolate( artifactIdElement.getTextTrim(), projectModel);
 
-        return dependencies;
-    }
-
-    private void updateDomVersion( String groupId, String artifactId, Map mappedVersions,
-                                   Map resolvedSnapshotDependencies, String version, Map originalVersions,
-                                   String groupTagName, String tagName, Element dependencyRoot, String projectId,
-                                   Element properties, ReleaseResult result, ReleaseDescriptor releaseDescriptor )
-        throws ReleaseExecutionException, ReleaseFailureException
-    {
-        String key = ArtifactUtils.versionlessKey( groupId, artifactId );
-        String mappedVersion = (String) mappedVersions.get( key );
-        String resolvedSnapshotVersion = getResolvedSnapshotVersion( key, resolvedSnapshotDependencies );
-        Object originalVersion = originalVersions.get( key );
-
-        // workaround
-        if ( originalVersion == null )
-        {
-            originalVersion = getOriginalResolvedSnapshotVersion( key, resolvedSnapshotDependencies );
-        }
-
-        try
-        {
-            List<Element> dependencies = getDependencies( groupId, artifactId, groupTagName, tagName, dependencyRoot );
+            String key = ArtifactUtils.versionlessKey( groupId, artifactId );
+            String resolvedSnapshotVersion = getResolvedSnapshotVersion( key, resolvedSnapshotDependencies );
+            String mappedVersion = mappedVersions.get( key );
+            String originalVersion = originalVersions.get( key );
+            if ( originalVersion == null )
+            {
+                originalVersion = getOriginalResolvedSnapshotVersion( key, resolvedSnapshotDependencies );
+            }
 
-            for ( Element dependency : dependencies )
+            // MRELEASE-220
+            if ( mappedVersion != null && mappedVersion.endsWith( "SNAPSHOT" ) && !rawVersion.endsWith( "SNAPSHOT" )
+                && !releaseDescriptor.isUpdateDependencies() )
             {
-                String dependencyVersion = "";
-                Element versionElement = null;
+                continue;
+            }
 
-                if ( dependency != null )
+            if ( mappedVersion != null )
+            {
+                if ( rawVersion.equals( originalVersion ) )
                 {
-                    versionElement = dependency.getChild( "version", dependencyRoot.getNamespace() );
-                    if ( versionElement != null )
-                    {
-                        dependencyVersion = versionElement.getTextTrim();
-                    }
+                    logInfo( result, "  Updating " + artifactId + " to " + mappedVersion );
+                    rewriteValue( versionElement, mappedVersion );
                 }
-
-                //MRELEASE-220
-                if ( mappedVersion != null && mappedVersion.endsWith( "SNAPSHOT" )
-                    && !dependencyVersion.endsWith( "SNAPSHOT" ) && !releaseDescriptor.isUpdateDependencies() )
+                else if ( rawVersion.matches( "\\$\\{.+\\}" ) )
                 {
-                    return;
-                }
+                    String expression = rawVersion.substring( 2, rawVersion.length() - 1 );
 
-                if ( version.equals( originalVersion ) || dependencyVersion.equals( originalVersion ) )
-                {
-                    if ( ( mappedVersion != null ) || ( resolvedSnapshotVersion != null ) )
+                    if ( expression.startsWith( "project." ) || expression.startsWith( "pom." )
+                        || "version".equals( expression ) )
                     {
-                        logInfo( result, "Updating " + artifactId + " to "
-                            + ( ( mappedVersion != null ) ? mappedVersion : resolvedSnapshotVersion ) );
-
-                        // If it was inherited, nothing to do
-                        if ( dependency != null )
+                        if ( !mappedVersion.equals( mappedVersions.get( projectId ) ) )
                         {
-                            // avoid if in management
-                            if ( versionElement != null )
-                            {
-                                if ( mappedVersion == null )
-                                {
-                                    rewriteValue( versionElement, resolvedSnapshotVersion );
-                                    return;
-                                }
-
-                                String versionText = versionElement.getTextTrim();
+                            logInfo( result, "  Updating " + artifactId + " to " + mappedVersion );
+                            rewriteValue( versionElement, mappedVersion );
+                        }
+                        else
+                        {
+                            logInfo( result, "  Ignoring artifact version update for expression " + rawVersion );
+                        }
+                    }
+                    else if ( properties != null )
+                    {
+                        // version is an expression, check for properties to update instead
+                        Element property = properties.getChild( expression, properties.getNamespace() );
+                        if ( property != null )
+                        {
+                            String propertyValue = property.getTextTrim();
 
-                                // avoid if it was not originally set to the original value (it may be an expression), unless mapped version differs
-                                if ( originalVersion.equals( versionText )
-                                    || !mappedVersion.equals( mappedVersions.get( projectId ) ) )
-                                {
-                                    rewriteValue( versionElement, mappedVersion );
-                                }
-                                else if ( versionText.matches( "\\$\\{project.+\\}" )
-                                    || versionText.matches( "\\$\\{pom.+\\}" ) || "${version}".equals( versionText ) )
-                                {
-                                    logInfo( result,
-                                             "Ignoring artifact version update for expression: " + versionText );
-                                    //ignore... we cannot update this expression
-                                }
-                                else if ( versionText.matches( "\\$\\{.+\\}" ) && properties != null )
+                            if ( propertyValue.equals( originalVersion ) )
+                            {
+                                logInfo( result, "  Updating " + rawVersion + " to " + mappedVersion );
+                                // change the property only if the property is the same as what's in the reactor
+                                rewriteValue( property, mappedVersion );
+                            }
+                            else if ( mappedVersion.equals( propertyValue ) )
+                            {
+                                // this property may have been updated during processing a sibling.
+                                logInfo( result, "  Ignoring artifact version update for expression " + rawVersion
+                                    + " because it is already updated" );
+                            }
+                            else if ( !mappedVersion.equals( rawVersion ) )
+                            {
+                                if ( mappedVersion.matches( "\\$\\{project.+\\}" )
+                                    || mappedVersion.matches( "\\$\\{pom.+\\}" ) || "${version}".equals( mappedVersion ) )
                                 {
-                                    //version is an expression, check for properties to update instead
-                                    String expression = versionText.substring( 2, versionText.length() - 1 );
-                                    Element property = properties.getChild( expression, properties.getNamespace() );
-                                    if ( property != null )
-                                    {
-                                        String propertyValue = property.getTextTrim();
-
-                                        if ( originalVersion.equals( propertyValue ) )
-                                        {
-                                            // change the property only if the property is the same as what's in the reactor
-                                            rewriteValue( property, mappedVersion );
-                                        }
-                                        else if ( mappedVersion.equals( propertyValue ) )
-                                        {
-                                            //this property may have been updated during processing a sibling.
-                                            logInfo( result, "Ignoring artifact version update for expression: "
-                                                + mappedVersion + " because it is already updated." );
-                                        }
-                                        else if ( !mappedVersion.equals( versionText ) )
-                                        {
-                                            if ( mappedVersion.matches( "\\$\\{project.+\\}" )
-                                                || mappedVersion.matches( "\\$\\{pom.+\\}" )
-                                                || "${version}".equals( mappedVersion ) )
-                                            {
-                                                logInfo( result, "Ignoring artifact version update for expression: "
-                                                    + mappedVersion );
-                                                //ignore... we cannot update this expression
-                                            }
-                                            else
-                                            {
-                                                // the value of the expression conflicts with what the user wanted to release
-                                                throw new ReleaseFailureException( "The artifact (" + key
-                                                    + ") requires a " + "different version (" + mappedVersion
-                                                    + ") than what is found (" + propertyValue
-                                                    + ") for the expression (" + expression + ") in the " + "project ("
-                                                    + projectId + ")." );
-                                            }
-                                        }
-                                    }
-                                    else
-                                    {
-                                        // the expression used to define the version of this artifact may be inherited
-                                        // TODO needs a better error message, what pom? what dependency?
-                                        throw new ReleaseFailureException(
-                                            "The version could not be updated: " + versionText );
-                                    }
+                                    logInfo( result, "  Ignoring artifact version update for expression "
+                                        + mappedVersion );
+                                    // ignore... we cannot update this expression
                                 }
                                 else
                                 {
-                                    // the version for this artifact could not be updated.
-                                    throw new ReleaseFailureException(
-                                        "The version could not be updated: " + versionText );
+                                    // the value of the expression conflicts with what the user wanted to release
+                                    throw new ReleaseFailureException( "The artifact (" + key + ") requires a "
+                                        + "different version (" + mappedVersion + ") than what is found ("
+                                        + propertyValue + ") for the expression (" + expression + ") in the "
+                                        + "project (" + projectId + ")." );
                                 }
                             }
                         }
+                        else
+                        {
+                            // the expression used to define the version of this artifact may be inherited
+                            // TODO needs a better error message, what pom? what dependency?
+                            throw new ReleaseFailureException( "The version could not be updated: " + rawVersion );
+                        }
                     }
-                    else
-                    {
-                        throw new ReleaseFailureException(
-                            "Version '" + version + "' for " + tagName + " '" + key + "' was not mapped" );
-                    }
+                }
+                else
+                {
+                    // different/previous version not related to current release
                 }
             }
+            else if ( resolvedSnapshotVersion != null )
+            {
+                logInfo( result, "  Updating " + artifactId + " to " + resolvedSnapshotVersion );
+
+                rewriteValue( versionElement, resolvedSnapshotVersion );
+            }
+            else
+            {
+                // artifact not related to current release
+            }
         }
-        catch ( JDOMException e )
+    }
+
+    private String interpolate( String value, Model model )
+        throws ReleaseExecutionException
+    {
+        if ( value != null && value.contains( "${" ) )
         {
-            throw new ReleaseExecutionException( "Unable to locate " + tagName + " to process in document", e );
+            StringSearchInterpolator interpolator = new StringSearchInterpolator();
+            List<String> pomPrefixes = Arrays.asList( "pom.", "project." );
+            interpolator.addValueSource( new PrefixedObjectValueSource( pomPrefixes, model, false ) );
+            interpolator.addValueSource( new MapBasedValueSource( model.getProperties() ) );
+            interpolator.addValueSource( new ObjectBasedValueSource( model ) );
+            try
+            {
+                value = interpolator.interpolate( value, new PrefixAwareRecursionInterceptor( pomPrefixes ) );
+            }
+            catch ( InterpolationException e )
+            {
+                throw new ReleaseExecutionException(
+                                                     "Failed to interpolate " + value + " for project " + model.getId(),
+                                                     e );
+            }
         }
+        return value;
     }
 
     private void writePom( File pomFile, Document document, ReleaseDescriptor releaseDescriptor, String modelVersion,

Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractEditModeRewritingReleasePhaseTestCase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractEditModeRewritingReleasePhaseTestCase.java?rev=1179704&r1=1179703&r2=1179704&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractEditModeRewritingReleasePhaseTestCase.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractEditModeRewritingReleasePhaseTestCase.java Thu Oct  6 16:49:14 2011
@@ -26,6 +26,7 @@ import org.apache.maven.scm.manager.ScmM
 import org.apache.maven.scm.provider.ScmProvider;
 import org.apache.maven.scm.provider.ScmProviderStub;
 import org.apache.maven.shared.release.ReleaseExecutionException;
+import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
 import org.apache.maven.shared.release.scm.DefaultScmRepositoryConfigurator;
@@ -115,4 +116,63 @@ public abstract class AbstractEditModeRe
             assertEquals( "Check cause", ScmException.class, e.getCause().getClass() );
         }
     }
+
+    public void testRewritePomPluginDependencies()
+        throws Exception
+    {
+        List<MavenProject> reactorProjects = createReactorProjects( "internal-snapshot-plugin-deps" );
+        ReleaseDescriptor config = createDefaultConfiguration( reactorProjects );
+
+        phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+
+        assertTrue( comparePomFiles( reactorProjects ) );
+    }
+
+    public void testRewritePomUnmappedPluginDependencies()
+        throws Exception
+    {
+        List<MavenProject> reactorProjects = createReactorProjects( "internal-snapshot-plugin-deps" );
+        ReleaseDescriptor config = createUnmappedConfiguration( reactorProjects );
+
+        try
+        {
+            phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+
+            fail( "Should have thrown an exception" );
+        }
+        catch ( ReleaseFailureException e )
+        {
+            assertTrue( true );
+        }
+    }
+
+    public void testRewritePomProfile()
+        throws Exception
+    {
+        List<MavenProject> reactorProjects = createReactorProjects( "internal-snapshot-profile" );
+        ReleaseDescriptor config = createDefaultConfiguration( reactorProjects );
+
+        phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+
+        assertTrue( comparePomFiles( reactorProjects ) );
+    }
+
+    public void testRewritePomUnmappedProfile()
+        throws Exception
+    {
+        List<MavenProject> reactorProjects = createReactorProjects( "internal-snapshot-profile" );
+        ReleaseDescriptor config = createUnmappedConfiguration( reactorProjects );
+
+        try
+        {
+            phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+
+            fail( "Should have thrown an exception" );
+        }
+        catch ( ReleaseFailureException e )
+        {
+            assertTrue( true );
+        }
+    }
+
 }

Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java?rev=1179704&r1=1179703&r2=1179704&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java Thu Oct  6 16:49:14 2011
@@ -314,7 +314,7 @@ public abstract class AbstractReleaseTes
         String actual = read( actualFile, normalizeLineEndings );
         String expected = read( expectedFile, normalizeLineEndings );
         expected = expected.replaceAll( "\\$\\{remoterepo\\}", getRemoteRepositoryURL() );
-        StringBuilder sb = new StringBuilder( "Check the transformed POM" );
+        StringBuilder sb = new StringBuilder( "Check the transformed POM " + actualFile );
         sb.append( SystemUtils.LINE_SEPARATOR );
         sb.append( "expected : "  ).append( SystemUtils.LINE_SEPARATOR );
         sb.append( expected ).append( SystemUtils.LINE_SEPARATOR );

Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java?rev=1179704&r1=1179703&r2=1179704&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java Thu Oct  6 16:49:14 2011
@@ -573,7 +573,7 @@ public abstract class AbstractRewritingR
         assertTrue( true );
     }
 
-    private ReleaseDescriptor createUnmappedConfiguration( List<MavenProject> reactorProjects )
+    protected ReleaseDescriptor createUnmappedConfiguration( List<MavenProject> reactorProjects )
         throws Exception
     {
         ReleaseDescriptor config = createDescriptorFromProjects( reactorProjects );

Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java?rev=1179704&r1=1179703&r2=1179704&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java Thu Oct  6 16:49:14 2011
@@ -316,8 +316,28 @@ public class RewritePomsForDevelopmentPh
     public void testRewritePomWithParentAndProperties()
         throws Exception
     {
-        List<MavenProject> reactorProjects = createReactorProjects( "pom-with-parent-and-properties" );
+        performTestRewritePomWithParentAndProperties( "pom-with-parent-and-properties" );
+    }
+
+    //MRELEASE-454
+    public void testRewritePomWithParentAndPropertiesInDependencyManagement()
+        throws Exception
+    {
+        performTestRewritePomWithParentAndProperties( "pom-with-parent-and-properties-in-dependency-management" );
+    }
 
+    //MRELEASE-454
+    public void testRewritePomWithParentAndPropertiesInDependencyManagementImport()
+        throws Exception
+    {
+        performTestRewritePomWithParentAndProperties( "pom-with-parent-and-properties-in-dependency-management-import" );
+    }
+
+    private void performTestRewritePomWithParentAndProperties( String path )
+        throws Exception
+    {
+        List<MavenProject> reactorProjects = createReactorProjects( path );
+  
         ReleaseDescriptor config = createDescriptorFromProjects( reactorProjects );
         config.mapReleaseVersion( "groupId:artifactId", RELEASE_VERSION );
         config.mapDevelopmentVersion( "groupId:artifactId", NEXT_VERSION );

Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java?rev=1179704&r1=1179703&r2=1179704&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java Thu Oct  6 16:49:14 2011
@@ -274,7 +274,6 @@ public class RewritePomsForReleasePhaseT
     public void testRewriteInterpolatedVersionsDifferentVersion()
         throws Exception
     {
-
         List<MavenProject> reactorProjects = createReactorProjects( "interpolated-versions" );
         ReleaseDescriptor config = createDescriptorFromProjects( reactorProjects );
 
@@ -417,4 +416,29 @@ public class RewritePomsForReleasePhaseT
     
         assertTrue( comparePomFiles( reactorProjects ) );
     }
+
+    // MRELEASE-454
+    public void testRewritePomWithImportedDependencyManagementInReactor()
+        throws Exception
+    {
+        List<MavenProject> reactorProjects = createReactorProjects( "imported-dependency-management-in-reactor" );
+        ReleaseDescriptor config = createMappedConfiguration( reactorProjects );
+
+        phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+
+        assertTrue( comparePomFiles( reactorProjects ) );
+    }
+
+    public void testRewritePomWithDifferentVersionsAcrossModules()
+        throws Exception
+    {
+        List<MavenProject> reactorProjects = createReactorProjects( "modules-with-different-versions" );
+        ReleaseDescriptor config = createMappedConfiguration( reactorProjects );
+        config.mapReleaseVersion( "groupId:subproject2", ALTERNATIVE_NEXT_VERSION );
+
+        phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+
+        assertTrue( comparePomFiles( reactorProjects ) );
+    }
+
 }

Propchange: maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/
------------------------------------------------------------------------------
    bugtraq:number = true

Propchange: maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/1.0-SNAPSHOT/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/1.0-SNAPSHOT/subproject1-1.0-SNAPSHOT.jar
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/1.0-SNAPSHOT/subproject1-1.0-SNAPSHOT.jar?rev=1179704&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/1.0-SNAPSHOT/subproject1-1.0-SNAPSHOT.jar (added)
+++ maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/1.0-SNAPSHOT/subproject1-1.0-SNAPSHOT.jar Thu Oct  6 16:49:14 2011
@@ -0,0 +1 @@
+dummy

Added: maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/1.0-SNAPSHOT/subproject1-1.0-SNAPSHOT.pom
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/1.0-SNAPSHOT/subproject1-1.0-SNAPSHOT.pom?rev=1179704&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/1.0-SNAPSHOT/subproject1-1.0-SNAPSHOT.pom (added)
+++ maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/1.0-SNAPSHOT/subproject1-1.0-SNAPSHOT.pom Thu Oct  6 16:49:14 2011
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  ~ Copyright 2005-2006 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.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>groupId</groupId>
+  <artifactId>subproject1</artifactId>
+  <version>1.0-SNAPSHOT</version>
+
+  <dependencyManagement>
+    <dependencies>
+        <dependency>
+            <groupId>external</groupId>
+            <artifactId>artifactId</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+</project>

Propchange: maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/2.0/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/2.0/subproject1-2.0.jar
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/2.0/subproject1-2.0.jar?rev=1179704&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/2.0/subproject1-2.0.jar (added)
+++ maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/2.0/subproject1-2.0.jar Thu Oct  6 16:49:14 2011
@@ -0,0 +1 @@
+dummy

Added: maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/2.0/subproject1-2.0.pom
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/2.0/subproject1-2.0.pom?rev=1179704&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/2.0/subproject1-2.0.pom (added)
+++ maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/subproject1/2.0/subproject1-2.0.pom Thu Oct  6 16:49:14 2011
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  ~ Copyright 2005-2006 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.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>groupId</groupId>
+  <artifactId>subproject1</artifactId>
+  <version>2.0</version>
+
+  <dependencyManagement>
+    <dependencies>
+        <dependency>
+            <groupId>external</groupId>
+            <artifactId>artifactId</artifactId>
+            <version>1.0</version>
+        </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+</project>

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/expected-pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/expected-pom.xml?rev=1179704&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/expected-pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/expected-pom.xml Thu Oct  6 16:49:14 2011
@@ -0,0 +1,29 @@
+<!--
+  ~ Copyright 2005-2006 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.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>groupId</groupId>
+  <artifactId>artifactId</artifactId>
+  <version>1.1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <modules>
+    <module>subproject1</module>
+    <module>subproject2</module>
+    <module>subproject3</module>
+  </modules>
+</project>

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/expected-pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/expected-pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/pom.xml?rev=1179704&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/pom.xml Thu Oct  6 16:49:14 2011
@@ -0,0 +1,29 @@
+<!--
+  ~ Copyright 2005-2006 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.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>groupId</groupId>
+  <artifactId>artifactId</artifactId>
+  <version>1.0</version>
+  <packaging>pom</packaging>
+
+  <modules>
+    <module>subproject1</module>
+    <module>subproject2</module>
+    <module>subproject3</module>
+  </modules>
+</project>

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/expected-pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/expected-pom.xml?rev=1179704&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/expected-pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/expected-pom.xml Thu Oct  6 16:49:14 2011
@@ -0,0 +1,43 @@
+<!--
+  ~ Copyright 2005-2006 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.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>groupId</groupId>
+    <artifactId>artifactId</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>subproject1</artifactId>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>external</groupId>
+        <artifactId>plugin-artifactId</artifactId>
+        <version>1.0</version>
+        <dependencies>
+          <dependency>
+            <groupId>external</groupId>
+            <artifactId>artifactId</artifactId>
+            <version>1.0</version>
+          </dependency>
+        </dependencies>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/expected-pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/expected-pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/pom.xml?rev=1179704&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/pom.xml Thu Oct  6 16:49:14 2011
@@ -0,0 +1,43 @@
+<!--
+  ~ Copyright 2005-2006 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.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>groupId</groupId>
+    <artifactId>artifactId</artifactId>
+    <version>1.0</version>
+  </parent>
+
+  <artifactId>subproject1</artifactId>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>external</groupId>
+        <artifactId>plugin-artifactId</artifactId>
+        <version>1.0</version>
+        <dependencies>
+          <dependency>
+            <groupId>external</groupId>
+            <artifactId>artifactId</artifactId>
+            <version>1.0</version>
+          </dependency>
+        </dependencies>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject1/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/expected-pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/expected-pom.xml?rev=1179704&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/expected-pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/expected-pom.xml Thu Oct  6 16:49:14 2011
@@ -0,0 +1,43 @@
+<!--
+  ~ Copyright 2005-2006 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.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>groupId</groupId>
+    <artifactId>artifactId</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>subproject2</artifactId>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>external</groupId>
+        <artifactId>plugin-artifactId</artifactId>
+        <version>1.0</version>
+        <dependencies>
+          <dependency>
+            <groupId>groupId</groupId>
+            <artifactId>subproject1</artifactId>
+            <version>1.1-SNAPSHOT</version>
+          </dependency>
+        </dependencies>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/expected-pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/expected-pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/pom.xml?rev=1179704&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/pom.xml Thu Oct  6 16:49:14 2011
@@ -0,0 +1,43 @@
+<!--
+  ~ Copyright 2005-2006 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.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>groupId</groupId>
+    <artifactId>artifactId</artifactId>
+    <version>1.0</version>
+  </parent>
+
+  <artifactId>subproject2</artifactId>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>external</groupId>
+        <artifactId>plugin-artifactId</artifactId>
+        <version>1.0</version>
+        <dependencies>
+          <dependency>
+            <groupId>groupId</groupId>
+            <artifactId>subproject1</artifactId>
+            <version>1.0</version>
+          </dependency>
+        </dependencies>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject2/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/expected-pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/expected-pom.xml?rev=1179704&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/expected-pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/expected-pom.xml Thu Oct  6 16:49:14 2011
@@ -0,0 +1,49 @@
+<!--
+  ~ Copyright 2005-2006 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.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>groupId</groupId>
+    <artifactId>artifactId</artifactId>
+    <version>1.1-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>subproject3</artifactId>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>external</groupId>
+        <artifactId>plugin-artifactId</artifactId>
+        <version>1.0</version>
+        <dependencies>
+          <dependency>
+            <!-- Test different release version remains the same -->
+            <groupId>groupId</groupId>
+            <artifactId>subproject1</artifactId>
+            <version>0.5</version>
+          </dependency>
+          <dependency>
+            <groupId>groupId</groupId>
+            <artifactId>subproject2</artifactId>
+            <version>1.1-SNAPSHOT</version>
+          </dependency>
+        </dependencies>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/expected-pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/expected-pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/pom.xml?rev=1179704&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/pom.xml Thu Oct  6 16:49:14 2011
@@ -0,0 +1,49 @@
+<!--
+  ~ Copyright 2005-2006 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.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>groupId</groupId>
+    <artifactId>artifactId</artifactId>
+    <version>1.0</version>
+  </parent>
+
+  <artifactId>subproject3</artifactId>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>external</groupId>
+        <artifactId>plugin-artifactId</artifactId>
+        <version>1.0</version>
+        <dependencies>
+          <dependency>
+            <!-- Test different release version remains the same -->
+            <groupId>groupId</groupId>
+            <artifactId>subproject1</artifactId>
+            <version>0.5</version>
+          </dependency>
+          <dependency>
+            <groupId>groupId</groupId>
+            <artifactId>subproject2</artifactId>
+            <version>1.0</version>
+          </dependency>
+        </dependencies>
+      </plugin>
+    </plugins>
+  </build>
+</project>

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-plugin-deps/subproject3/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/
------------------------------------------------------------------------------
    bugtraq:number = true

Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/expected-pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/expected-pom.xml?rev=1179704&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/expected-pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/expected-pom.xml Thu Oct  6 16:49:14 2011
@@ -0,0 +1,49 @@
+<!--
+  ~ Copyright 2005-2006 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.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>groupId</groupId>
+  <artifactId>artifactId</artifactId>
+  <version>1.1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <modules>
+    <module>subproject1</module>
+    <module>subproject2</module>
+    <module>subproject3</module>
+  </modules>
+
+  <profiles>
+    <profile>
+      <id>it</id>
+      <dependencyManagement>
+        <dependencies>
+          <dependency>
+            <groupId>groupId</groupId>
+            <artifactId>subproject1</artifactId>
+            <version>1.1-SNAPSHOT</version>
+          </dependency>
+          <dependency>
+            <groupId>groupId</groupId>
+            <artifactId>subproject2</artifactId>
+            <version>0.5</version>
+          </dependency>
+        </dependencies>
+      </dependencyManagement>
+    </profile>
+  </profiles>
+</project>

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/expected-pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-development/internal-snapshot-profile/expected-pom.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision