You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2006/04/24 13:47:17 UTC

svn commit: r396523 [1/3] - in /maven/plugins/trunk/maven-release-plugin/src: main/java/org/apache/maven/plugins/release/ main/java/org/apache/maven/plugins/release/config/ main/java/org/apache/maven/plugins/release/phase/ test/java/org/apache/maven/pl...

Author: brett
Date: Mon Apr 24 04:47:04 2006
New Revision: 396523

URL: http://svn.apache.org/viewcvs?rev=396523&view=rev
Log:
[MRELEASE-98] tests and implementation for checking the dependency snapshots

Added:
    maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhaseTest.java   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar.md5
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar.sha1
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom.md5
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom.sha1
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml.md5
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml.sha1
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar.md5
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar.sha1
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom.md5
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom.sha1
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml.md5
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml.sha1
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml.md5
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml.sha1
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar.md5
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar.sha1
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom.md5
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom.sha1
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar.md5
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar.sha1
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom.md5
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom.sha1
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/maven-metadata.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/maven-metadata.xml.md5
    maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/maven-metadata.xml.sha1
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-extension/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-extension/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-managed-snapshot-dependency/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-managed-snapshot-dependency/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-managed-snapshot-dependency/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-managed-snapshot-dependency/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-managed-snapshot-plugin/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-managed-snapshot-plugin/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-managed-snapshot-plugin/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-managed-snapshot-plugin/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-parent/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-parent/child/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-parent/child/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-parent/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-dependencies/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-dependencies/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-dependencies/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-dependencies/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-dependencies/subproject2/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-dependencies/subproject2/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-extension/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-extension/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-parent/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-parent/child/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-parent/child/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-parent/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-plugins/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-plugins/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-plugins/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-plugins/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-plugins/subproject2/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-plugins/subproject2/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-report-plugins/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-report-plugins/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-report-plugins/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-report-plugins/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-report-plugins/subproject2/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/external-snapshot-report-plugins/subproject2/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-dependencies/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-dependencies/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-dependencies/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-dependencies/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-dependencies/subproject2/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-dependencies/subproject2/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-plugins/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-plugins/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-plugins/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-plugins/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-plugins/subproject2/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-plugins/subproject2/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-report-plugins/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-report-plugins/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-report-plugins/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-report-plugins/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-report-plugins/subproject2/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-and-external-snapshot-report-plugins/subproject2/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-managed-snapshot-dependency/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-managed-snapshot-dependency/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-managed-snapshot-dependency/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-managed-snapshot-dependency/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-managed-snapshot-dependency/subproject2/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-managed-snapshot-dependency/subproject2/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-managed-snapshot-plugin/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-managed-snapshot-plugin/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-managed-snapshot-plugin/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-managed-snapshot-plugin/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-managed-snapshot-plugin/subproject2/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-managed-snapshot-plugin/subproject2/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-dependencies/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-dependencies/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-dependencies/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-dependencies/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-dependencies/subproject2/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-dependencies/subproject2/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-extension/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-extension/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-extension/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-extension/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-extension/subproject2/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-extension/subproject2/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-plugins/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-plugins/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-plugins/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-plugins/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-plugins/subproject2/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-plugins/subproject2/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-report-plugins/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-report-plugins/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-report-plugins/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-report-plugins/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-report-plugins/subproject2/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/internal-snapshot-report-plugins/subproject2/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/no-snapshot-dependencies/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/no-snapshot-dependencies/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/no-snapshot-plugins/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/no-snapshot-plugins/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/no-snapshot-report-plugins/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/no-snapshot-report-plugins/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-external-managed-snapshot-dependency/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-external-managed-snapshot-dependency/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-external-managed-snapshot-dependency/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-external-managed-snapshot-dependency/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-external-managed-snapshot-plugin/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-external-managed-snapshot-plugin/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-external-managed-snapshot-plugin/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-external-managed-snapshot-plugin/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-internal-managed-snapshot-dependency/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-internal-managed-snapshot-dependency/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-internal-managed-snapshot-dependency/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-internal-managed-snapshot-dependency/subproject1/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-internal-managed-snapshot-plugin/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-internal-managed-snapshot-plugin/pom.xml   (with props)
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-internal-managed-snapshot-plugin/subproject1/
    maven/plugins/trunk/maven-release-plugin/src/test/resources/projects/unused-internal-managed-snapshot-plugin/subproject1/pom.xml   (with props)
Modified:
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfiguration.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java
    maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java?rev=396523&r1=396522&r2=396523&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/DefaultReleaseManager.java Mon Apr 24 04:47:04 2006
@@ -78,8 +78,11 @@
         }
 
         // TODO: move these to phases? Into the rewriting, or as a separate phase? Separate phase sounds best to be able to rearrange
-        // TODO: walk through modules, map out values, prompt as necessary - for development versions
-        // TODO: walk through modules, map out values, prompt as necessary - for release versions
+        // - walk through modules, map out values, prompt as necessary - for development versions
+        // - walk through modules, map out values, prompt as necessary - for release versions
+
+        // Later, it would be a good idea to introduce a proper workflow tool so that the release can be made up of a
+        // more flexible set of steps.
 
         String completedPhase = config.getCompletedPhase();
         int index = phases.indexOf( completedPhase );

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfiguration.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfiguration.java?rev=396523&r1=396522&r2=396523&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfiguration.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/config/ReleaseConfiguration.java Mon Apr 24 04:47:04 2006
@@ -19,6 +19,7 @@
 import org.apache.maven.settings.Settings;
 
 import java.io.File;
+import java.util.List;
 
 /**
  * Configuration used for the release.
@@ -72,6 +73,11 @@
      */
     private File workingDirectory;
 
+    /**
+     * The projects being operated on.
+     */
+    private List reactorProjects;
+
     public String getCompletedPhase()
     {
         return completedPhase;
@@ -162,6 +168,16 @@
         this.workingDirectory = workingDirectory;
     }
 
+    public List getReactorProjects()
+    {
+        return reactorProjects;
+    }
+
+    public void setReactorProjects( List reactorProjects )
+    {
+        this.reactorProjects = reactorProjects;
+    }
+
     /**
      * Merge two configurations together. All SCM settings are overridden by the merge configuration, as are the
      * <code>settings</code> and <code>workingDirectory</code> fields. The <code>completedPhase</code> field is used as
@@ -180,14 +196,20 @@
         this.privateKey = mergeOverride( this.privateKey, mergeConfiguration.privateKey );
         this.passphrase = mergeOverride( this.passphrase, mergeConfiguration.passphrase );
 
-        // These must be overridden, as they are generally not stored
+        // These must be overridden, as they are not stored
         this.settings = mergeOverride( this.settings, mergeConfiguration.settings );
         this.workingDirectory = mergeOverride( this.workingDirectory, mergeConfiguration.workingDirectory );
+        this.reactorProjects = mergeOverride( this.reactorProjects, mergeConfiguration.reactorProjects );
 
         // Not overridden - not configured from caller
         this.completedPhase = mergeDefault( this.completedPhase, mergeConfiguration.completedPhase );
     }
 
+    private List mergeOverride( List thisValue, List mergeValue )
+    {
+        return mergeValue != null ? mergeValue : thisValue;
+    }
+
     private static File mergeOverride( File thisValue, File mergeValue )
     {
         return mergeValue != null ? mergeValue : thisValue;
@@ -219,6 +241,7 @@
         result = 29 * result + ( privateKey != null ? privateKey.hashCode() : 0 );
         result = 29 * result + ( passphrase != null ? passphrase.hashCode() : 0 );
         result = 29 * result + ( workingDirectory != null ? workingDirectory.hashCode() : 0 );
+        result = 29 * result + ( reactorProjects != null ? reactorProjects.hashCode() : 0 );
         return result;
     }
 
@@ -264,6 +287,10 @@
             return false;
         }
         if ( username != null ? !username.equals( that.username ) : that.username != null )
+        {
+            return false;
+        }
+        if ( reactorProjects != null ? !reactorProjects.equals( that.reactorProjects ) : that.reactorProjects != null )
         {
             return false;
         }

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java?rev=396523&r1=396522&r2=396523&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhase.java Mon Apr 24 04:47:04 2006
@@ -16,10 +16,21 @@
  * limitations under the License.
  */
 
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.ArtifactUtils;
+import org.apache.maven.plugins.release.ReleaseExecutionException;
 import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.project.MavenProject;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
 
 /**
- * TODO: Description.
+ * Check the dependencies of all projects being released to see if there are any unreleased snapshots.
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  */
@@ -27,14 +38,131 @@
     implements ReleasePhase
 {
     public void execute( ReleaseConfiguration releaseConfiguration )
+        throws ReleaseExecutionException
     {
-        // TODO: implement
+        List reactorProjects = releaseConfiguration.getReactorProjects();
+        Set reactorProjectKeys = createReactorProjectSet( reactorProjects );
+
+        for ( Iterator i = reactorProjects.iterator(); i.hasNext(); )
+        {
+            MavenProject project = (MavenProject) i.next();
 
+            checkProject( project, reactorProjectKeys );
+        }
+    }
+
+    private void checkProject( MavenProject project, Set reactorProjectKeys )
+        throws ReleaseExecutionException
+    {
+        Set snapshotDependencies = new HashSet();
+
+        if ( project.getParentArtifact() != null )
+        {
+            if ( checkArtifact( project.getParentArtifact(), reactorProjectKeys ) )
+            {
+                snapshotDependencies.add( project.getParentArtifact() );
+            }
+        }
+
+        for ( Iterator i = project.getArtifacts().iterator(); i.hasNext(); )
+        {
+            Artifact artifact = (Artifact) i.next();
+
+            if ( checkArtifact( artifact, reactorProjectKeys ) )
+            {
+                snapshotDependencies.add( artifact );
+            }
+        }
+
+        for ( Iterator i = project.getPluginArtifacts().iterator(); i.hasNext(); )
+        {
+            Artifact artifact = (Artifact) i.next();
+
+            // TODO: make sure to test what happens if no version was given, but the release version is resolved to a snapshot
+            if ( checkArtifact( artifact, reactorProjectKeys ) )
+            {
+                snapshotDependencies.add( artifact );
+            }
+        }
+
+        for ( Iterator i = project.getReportArtifacts().iterator(); i.hasNext(); )
+        {
+            Artifact artifact = (Artifact) i.next();
+
+            // TODO: make sure to test what happens if no version was given, but the release version is resolved to a snapshot
+            if ( checkArtifact( artifact, reactorProjectKeys ) )
+            {
+                snapshotDependencies.add( artifact );
+            }
+        }
+
+        for ( Iterator i = project.getExtensionArtifacts().iterator(); i.hasNext(); )
+        {
+            Artifact artifact = (Artifact) i.next();
+
+            if ( checkArtifact( artifact, reactorProjectKeys ) )
+            {
+                snapshotDependencies.add( artifact );
+            }
+        }
+
+        if ( !snapshotDependencies.isEmpty() )
+        {
+            List snapshotsList = new ArrayList( snapshotDependencies );
+
+            Collections.sort( snapshotsList );
+
+            StringBuffer message = new StringBuffer();
+
+            for ( Iterator i = snapshotsList.iterator(); i.hasNext(); )
+            {
+                Artifact artifact = (Artifact) i.next();
+
+                message.append( "    " );
+
+                message.append( artifact );
+
+                message.append( "\n" );
+            }
+
+            throw new ReleaseExecutionException(
+                "Can't release project due to non released dependencies :\n" + message );
+        }
+    }
+
+    private static boolean checkArtifact( Artifact artifact, Set reactorProjectKeys )
+    {
+        String versionlessArtifactKey = ArtifactUtils.versionlessKey( artifact.getGroupId(), artifact.getArtifactId() );
+
+        // We are only looking at dependencies external to the project - ignore anything found in the reactor as
+        // it's version will be updated
+        // TODO: will it? what if it is a different snapshot version to the one being updated in the reactor?
+        return !reactorProjectKeys.contains( versionlessArtifactKey ) &&
+            ArtifactUtils.isSnapshot( artifact.getVersion() );
     }
 
     public void simulate( ReleaseConfiguration releaseConfiguration )
+        throws ReleaseExecutionException
+    {
+        // It makes no modifications, so simulate is the same as execute
+        execute( releaseConfiguration );
+    }
+
+    private static Set createReactorProjectSet( List reactorProjects )
     {
-        // TODO: implement
+        Set reactorProjectSet = new HashSet();
 
+        for ( Iterator it = reactorProjects.iterator(); it.hasNext(); )
+        {
+            MavenProject project = (MavenProject) it.next();
+
+            String versionlessArtifactKey =
+                ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
+
+            reactorProjectSet.add( versionlessArtifactKey );
+        }
+
+        return reactorProjectSet;
     }
+
 }

Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java?rev=396523&r1=396522&r2=396523&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhase.java Mon Apr 24 04:47:04 2006
@@ -134,6 +134,7 @@
     public void simulate( ReleaseConfiguration releaseConfiguration )
         throws ReleaseExecutionException
     {
+        // It makes no modifications, so simulate is the same as execute
         execute( releaseConfiguration );
     }
 }

Added: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhaseTest.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhaseTest.java?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhaseTest.java (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhaseTest.java Mon Apr 24 04:47:04 2006
@@ -0,0 +1,666 @@
+package org.apache.maven.plugins.release.phase;
+
+/*
+ * 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.
+ */
+
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.ArtifactUtils;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
+import org.apache.maven.artifact.repository.ArtifactRepository;
+import org.apache.maven.artifact.repository.DefaultArtifactRepository;
+import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
+import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
+import org.apache.maven.artifact.resolver.ArtifactCollector;
+import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
+import org.apache.maven.artifact.versioning.InvalidVersionSpecificationException;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.model.DependencyManagement;
+import org.apache.maven.plugins.release.ReleaseExecutionException;
+import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectBuilder;
+import org.apache.maven.project.ProjectBuildingException;
+import org.apache.maven.project.ProjectSorter;
+import org.codehaus.plexus.PlexusTestCase;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Stack;
+
+/**
+ * Test the dependency snapshot check phase.
+ *
+ * @author <a href="mailto:brett@apache.org">Brett Porter</a>
+ * @todo should plugins, etc be split into separate phases as originally anticipated?
+ */
+public class CheckDependencySnapshotsPhaseTest
+    extends PlexusTestCase
+{
+    private ReleasePhase phase;
+
+    private MavenProjectBuilder projectBuilder;
+
+    private ArtifactRepository localRepository;
+
+    protected void setUp()
+        throws Exception
+    {
+        super.setUp();
+
+        phase = (ReleasePhase) lookup( ReleasePhase.ROLE, "check-dependency-snapshots" );
+
+        projectBuilder = (MavenProjectBuilder) lookup( MavenProjectBuilder.ROLE );
+
+        ArtifactRepositoryLayout layout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, "default" );
+        String localRepoPath = getTestFile( "target/local-repository" ).getAbsolutePath().replace( '\\', '/' );
+        localRepository = new DefaultArtifactRepository( "local", "file://" + localRepoPath, layout );
+    }
+
+    public void testNoSnapshotDependencies()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration = createConfigurationFromProjects( "no-snapshot-dependencies" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    public void testSnapshotDependenciesInProjectOnly()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration = createConfigurationFromProjects( "internal-snapshot-dependencies" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    public void testSnapshotManagedDependenciesInProjectOnly()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration =
+            createConfigurationFromProjects( "internal-managed-snapshot-dependency" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    public void testSnapshotUnusedInternalManagedDependency()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration =
+            createConfigurationFromProjects( "unused-internal-managed-snapshot-dependency" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    public void testSnapshotUnusedExternalManagedDependency()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration =
+            createConfigurationFromProjects( "unused-external-managed-snapshot-dependency" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    public void testSnapshotExternalManagedDependency()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration =
+            createConfigurationFromProjects( "external-managed-snapshot-dependency" );
+
+        try
+        {
+            phase.execute( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+
+        try
+        {
+            phase.simulate( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+    }
+
+    public void testSnapshotDependenciesOutsideProjectOnly()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration = createConfigurationFromProjects( "external-snapshot-dependencies" );
+
+        try
+        {
+            phase.execute( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+
+        try
+        {
+            phase.simulate( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+    }
+
+    public void testSnapshotDependenciesInsideAndOutsideProject()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration =
+            createConfigurationFromProjects( "internal-and-external-snapshot-dependencies" );
+
+        try
+        {
+            phase.execute( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+
+        try
+        {
+            phase.simulate( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+    }
+
+    public void testNoSnapshotReportPlugins()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration = createConfigurationFromProjects( "no-snapshot-report-plugins" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    public void testSnapshotReportPluginsInProjectOnly()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration =
+            createConfigurationFromProjects( "internal-snapshot-report-plugins" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    public void testSnapshotReportPluginsOutsideProjectOnly()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration =
+            createConfigurationFromProjects( "external-snapshot-report-plugins" );
+
+        try
+        {
+            phase.execute( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+
+        try
+        {
+            phase.simulate( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+    }
+
+    public void testSnapshotReportPluginsInsideAndOutsideProject()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration =
+            createConfigurationFromProjects( "internal-and-external-snapshot-report-plugins" );
+
+        try
+        {
+            phase.execute( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+
+        try
+        {
+            phase.simulate( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+    }
+
+    public void testNoSnapshotPlugins()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration = createConfigurationFromProjects( "no-snapshot-plugins" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    public void testSnapshotPluginsInProjectOnly()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration = createConfigurationFromProjects( "internal-snapshot-plugins" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    public void testSnapshotManagedPluginInProjectOnly()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration =
+            createConfigurationFromProjects( "internal-managed-snapshot-plugin" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    public void testSnapshotUnusedInternalManagedPlugin()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration =
+            createConfigurationFromProjects( "unused-internal-managed-snapshot-plugin" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    public void testSnapshotUnusedExternalManagedPlugin()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration =
+            createConfigurationFromProjects( "unused-external-managed-snapshot-plugin" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    public void testSnapshotExternalManagedPlugin()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration =
+            createConfigurationFromProjects( "external-managed-snapshot-plugin" );
+
+        try
+        {
+            phase.execute( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+
+        try
+        {
+            phase.simulate( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+    }
+
+    public void testSnapshotPluginsOutsideProjectOnly()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration = createConfigurationFromProjects( "external-snapshot-plugins" );
+
+        try
+        {
+            phase.execute( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+
+        try
+        {
+            phase.simulate( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+    }
+
+    public void testSnapshotPluginsInsideAndOutsideProject()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration =
+            createConfigurationFromProjects( "internal-and-external-snapshot-plugins" );
+
+        try
+        {
+            phase.execute( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+
+        try
+        {
+            phase.simulate( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+    }
+
+    public void testSnapshotExternalParent()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration = createConfigurationFromProjects( "external-snapshot-parent/child" );
+
+        try
+        {
+            phase.execute( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+
+        try
+        {
+            phase.simulate( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+    }
+
+    public void testReleaseExternalParent()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration = createConfigurationFromProjects( "external-parent/child" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    public void testSnapshotExternalExtension()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration = createConfigurationFromProjects( "external-snapshot-extension" );
+
+        try
+        {
+            phase.execute( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+
+        try
+        {
+            phase.simulate( releaseConfiguration );
+
+            fail( "Should have failed execution" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertNull( "Check no other cause", e.getCause() );
+        }
+    }
+
+    public void testSnapshotInternalExtension()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration = createConfigurationFromProjects( "internal-snapshot-extension" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    public void testReleaseExternalExtension()
+        throws Exception
+    {
+        ReleaseConfiguration releaseConfiguration = createConfigurationFromProjects( "external-extension" );
+
+        phase.execute( releaseConfiguration );
+
+        phase.simulate( releaseConfiguration );
+
+        // successful execution is verification enough
+        assertTrue( true );
+    }
+
+    // TODO: test implicit plugins (eg jar)
+
+    private Map createManagedVersionMap( String projectId, DependencyManagement dependencyManagement,
+                                         ArtifactFactory artifactFactory )
+        throws ProjectBuildingException
+    {
+        Map map;
+        if ( dependencyManagement != null && dependencyManagement.getDependencies() != null )
+        {
+            map = new HashMap();
+            for ( Iterator i = dependencyManagement.getDependencies().iterator(); i.hasNext(); )
+            {
+                Dependency d = (Dependency) i.next();
+
+                try
+                {
+                    VersionRange versionRange = VersionRange.createFromVersionSpec( d.getVersion() );
+                    Artifact artifact = artifactFactory.createDependencyArtifact( d.getGroupId(), d.getArtifactId(),
+                                                                                  versionRange, d.getType(),
+                                                                                  d.getClassifier(), d.getScope() );
+                    map.put( d.getManagementKey(), artifact );
+                }
+                catch ( InvalidVersionSpecificationException e )
+                {
+                    throw new ProjectBuildingException( projectId, "Unable to parse version '" + d.getVersion() +
+                        "' for dependency '" + d.getManagementKey() + "': " + e.getMessage(), e );
+                }
+            }
+        }
+        else
+        {
+            map = Collections.EMPTY_MAP;
+        }
+        return map;
+    }
+
+    private ReleaseConfiguration createConfigurationFromProjects( String path )
+        throws Exception
+    {
+        Stack projectFiles = new Stack();
+        projectFiles.push( getTestFile( "target/test-classes/projects/" + path + "/pom.xml" ) );
+
+        List projects = new ArrayList();
+        while ( !projectFiles.isEmpty() )
+        {
+            File file = (File) projectFiles.pop();
+
+            MavenProject project = projectBuilder.build( file, localRepository, null );
+
+            for ( Iterator i = project.getModules().iterator(); i.hasNext(); )
+            {
+                String module = (String) i.next();
+
+                projectFiles.push( new File( file.getParentFile(), module + "/pom.xml" ) );
+            }
+
+            projects.add( project );
+        }
+
+        List repos = Collections.singletonList( new DefaultArtifactRepository( "central", getTestFile(
+            "src/test/remote-repository" ).toURL().toExternalForm(), new DefaultRepositoryLayout() ) );
+
+        ProjectSorter sorter = new ProjectSorter( projects );
+
+        projects = sorter.getSortedProjects();
+
+        ArtifactFactory artifactFactory = (ArtifactFactory) lookup( ArtifactFactory.ROLE );
+        ArtifactCollector artifactCollector = (ArtifactCollector) lookup( ArtifactCollector.class.getName() );
+        ArtifactMetadataSource artifactMetadataSource = (ArtifactMetadataSource) lookup( ArtifactMetadataSource.ROLE );
+
+        // pass back over and resolve dependencies - can't be done earlier as the order may not be correct
+        for ( Iterator i = projects.iterator(); i.hasNext(); )
+        {
+            MavenProject project = (MavenProject) i.next();
+
+            project.setRemoteArtifactRepositories( repos );
+
+            Artifact projectArtifact = project.getArtifact();
+
+            Map managedVersions = createManagedVersionMap(
+                ArtifactUtils.versionlessKey( projectArtifact.getGroupId(), projectArtifact.getArtifactId() ),
+                project.getDependencyManagement(), artifactFactory );
+
+            project.setDependencyArtifacts( project.createArtifacts( artifactFactory, null, null ) );
+
+            ArtifactResolutionResult result = artifactCollector.collect( project.getDependencyArtifacts(),
+                                                                         projectArtifact, managedVersions,
+                                                                         localRepository, repos, artifactMetadataSource,
+                                                                         null, Collections.EMPTY_LIST );
+
+            project.setArtifacts( result.getArtifacts() );
+        }
+
+        ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
+        releaseConfiguration.setReactorProjects( projects );
+
+        return releaseConfiguration;
+    }
+
+}

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhaseTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/CheckDependencySnapshotsPhaseTest.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+dummy

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar.md5
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar.md5?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar.md5 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar.md5 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+f02e326f800ee26f04df7961adbf7c0a
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar.sha1
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar.sha1?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar.sha1 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.jar.sha1 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+f161ebd29699d93411cec0915c5133c0f3229a28
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom Mon Apr 24 04:47:04 2006
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>external</groupId>
+  <artifactId>artifactId</artifactId>
+  <version>1.0-20060424.060453-1</version>
+  <description>POM was created from deploy:deploy-file</description>
+  <distributionManagement>
+    <status>deployed</status>
+  </distributionManagement>
+</project>
\ No newline at end of file

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom.md5
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom.md5?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom.md5 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom.md5 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+a2f33fc18a3a0dbe9c145568384f8954
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom.sha1
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom.sha1?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom.sha1 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/artifactId-1.0-20060424.060453-1.pom.sha1 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+6648ebbb087c881346fe555e7e6ba6ac06837e4e
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml Mon Apr 24 04:47:04 2006
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>external</groupId>
+  <artifactId>artifactId</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <versioning>
+    <snapshot>
+      <timestamp>20060424.060453</timestamp>
+      <buildNumber>1</buildNumber>
+    </snapshot>
+    <lastUpdated>20060424060453</lastUpdated>
+  </versioning>
+</metadata>
\ No newline at end of file

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml.md5
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml.md5?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml.md5 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml.md5 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+ceb4aa19d599a2bdf84f67535ec6c405
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml.sha1
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml.sha1?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml.sha1 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0-SNAPSHOT/maven-metadata.xml.sha1 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+16bd0a96c3f039117c4bc525733fc15e16c14f55
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+dummy

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar.md5
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar.md5?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar.md5 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar.md5 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+f02e326f800ee26f04df7961adbf7c0a
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar.sha1
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar.sha1?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar.sha1 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.jar.sha1 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+f161ebd29699d93411cec0915c5133c0f3229a28
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom Mon Apr 24 04:47:04 2006
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>external</groupId>
+  <artifactId>artifactId</artifactId>
+  <version>1.0</version>
+  <description>POM was created from deploy:deploy-file</description>
+  <distributionManagement>
+    <status>deployed</status>
+  </distributionManagement>
+</project>
\ No newline at end of file

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom.md5
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom.md5?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom.md5 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom.md5 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+80384f7c49df2fcfca9480cdb24b6113
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom.sha1
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom.sha1?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom.sha1 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/1.0/artifactId-1.0.pom.sha1 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+d0a9fc0dd978798d2f293496aca1827647b9aae3
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml Mon Apr 24 04:47:04 2006
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>external</groupId>
+  <artifactId>artifactId</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <versioning>
+    <versions>
+      <version>1.0-SNAPSHOT</version>
+      <version>1.0</version>
+    </versions>
+    <lastUpdated>20060424060506</lastUpdated>
+  </versioning>
+</metadata>
\ No newline at end of file

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml.md5
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml.md5?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml.md5 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml.md5 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+8b23dc667540020840df264eb5a043d3
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml.sha1
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml.sha1?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml.sha1 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/artifactId/maven-metadata.xml.sha1 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+d1b7c7af44325057e3f59bc990f8e188bb5c1857
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml Mon Apr 24 04:47:04 2006
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>external</groupId>
+  <artifactId>plugin-artifactId</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <versioning>
+    <snapshot>
+      <timestamp>20060424.081618</timestamp>
+      <buildNumber>1</buildNumber>
+    </snapshot>
+    <lastUpdated>20060424081618</lastUpdated>
+  </versioning>
+</metadata>
\ No newline at end of file

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml.md5
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml.md5?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml.md5 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml.md5 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+6e4a6e947dac59b7e81296889ba22bf7
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml.sha1
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml.sha1?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml.sha1 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/maven-metadata.xml.sha1 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+01f4c9f71600b533db5bbdae4e7b2e257d8fd80a
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+dummy

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar.md5
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar.md5?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar.md5 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar.md5 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+f02e326f800ee26f04df7961adbf7c0a
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar.sha1
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar.sha1?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar.sha1 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.jar.sha1 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+f161ebd29699d93411cec0915c5133c0f3229a28
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom Mon Apr 24 04:47:04 2006
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>external</groupId>
+  <artifactId>plugin-artifactId</artifactId>
+  <packaging>maven-plugin</packaging>
+  <version>1.0-20060424.081618-1</version>
+  <description>POM was created from deploy:deploy-file</description>
+  <distributionManagement>
+    <status>deployed</status>
+  </distributionManagement>
+</project>
\ No newline at end of file

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom.md5
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom.md5?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom.md5 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom.md5 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+aa494c5330ca7d747d182f22bdb8988a
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom.sha1
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom.sha1?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom.sha1 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0-SNAPSHOT/plugin-artifactId-1.0-20060424.081618-1.pom.sha1 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+e237a11ac1f0e4380fe1fda3a1f8929cd8e11c05
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+dummy

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar.md5
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar.md5?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar.md5 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar.md5 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+f02e326f800ee26f04df7961adbf7c0a
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar.sha1
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar.sha1?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar.sha1 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.jar.sha1 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+f161ebd29699d93411cec0915c5133c0f3229a28
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom Mon Apr 24 04:47:04 2006
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>external</groupId>
+  <artifactId>plugin-artifactId</artifactId>
+  <packaging>maven-plugin</packaging>
+  <version>1.0</version>
+  <description>POM was created from deploy:deploy-file</description>
+  <distributionManagement>
+    <status>deployed</status>
+  </distributionManagement>
+</project>
\ No newline at end of file

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom.md5
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom.md5?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom.md5 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom.md5 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+c187159594b7a051bc535fe13005acf8
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom.sha1
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom.sha1?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom.sha1 (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/1.0/plugin-artifactId-1.0.pom.sha1 Mon Apr 24 04:47:04 2006
@@ -0,0 +1 @@
+c3ca6271274bdfbcbd32185faeffa1e9e9dea02f
\ No newline at end of file

Added: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/maven-metadata.xml
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/maven-metadata.xml?rev=396523&view=auto
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/maven-metadata.xml (added)
+++ maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/maven-metadata.xml Mon Apr 24 04:47:04 2006
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>external</groupId>
+  <artifactId>plugin-artifactId</artifactId>
+  <version>1.0</version>
+  <versioning>
+    <versions>
+      <version>1.0</version>
+      <version>1.0-SNAPSHOT</version>
+    </versions>
+    <lastUpdated>20060424081618</lastUpdated>
+  </versioning>
+</metadata>
\ No newline at end of file

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/maven-metadata.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/plugins/trunk/maven-release-plugin/src/test/remote-repository/external/plugin-artifactId/maven-metadata.xml
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"