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 2010/09/29 17:35:06 UTC

svn commit: r1002680 - 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/ test/remote-repository/groupId/artifactId2/ test...

Author: brett
Date: Wed Sep 29 15:35:05 2010
New Revision: 1002680

URL: http://svn.apache.org/viewvc?rev=1002680&view=rev
Log:
[MRELEASE-589] Resolved dependencies overwritten when multiple subprojects with SNAPSHOT dependencies are released
Submitted by: Elliot Metsger

Added:
    maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/
    maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/
    maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/1.0-SNAPSHOT/
    maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/1.0-SNAPSHOT/artifactId2-1.0-20100813.112234-1.pom
    maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/1.0-SNAPSHOT/maven-metadata.xml
    maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/maven-metadata.xml
    maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/pom.xml
    maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/subproject1/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/subproject1/pom.xml
    maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/subproject2/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/subproject2/pom.xml
Modified:
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java?rev=1002680&r1=1002679&r2=1002680&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhase.java Wed Sep 29 15:35:05 2010
@@ -363,7 +363,14 @@ public class CheckDependencySnapshotsPha
                         break;
                 }
 
-                releaseDescriptor.setResolvedSnapshotDependencies( resolvedSnapshots );
+                if ( releaseDescriptor.getResolvedSnapshotDependencies() != null )
+                {
+                    releaseDescriptor.getResolvedSnapshotDependencies().putAll( resolvedSnapshots );
+                }
+                else
+                {
+                    releaseDescriptor.setResolvedSnapshotDependencies( resolvedSnapshots );
+                }
             }
         }
         catch ( PrompterException e )

Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java?rev=1002680&r1=1002679&r2=1002680&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java Wed Sep 29 15:35:05 2010
@@ -613,6 +613,52 @@ public class CheckDependencySnapshotsPha
         assertEquals( "1.0", versionsMap.get( ReleaseDescriptor.RELEASE_KEY ) );
     }
 
+    // MRELEASE-589
+    public void testSnapshotDependenciesOutsideMultimoduleProjectOnlyInteractiveWithSnapshotsResolved()
+        throws Exception
+    {
+        CheckDependencySnapshotsPhase phase =
+            (CheckDependencySnapshotsPhase) lookup( ReleasePhase.ROLE, "check-dependency-snapshots" );
+
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        List reactorProjects = createDescriptorFromProjects( "multimodule-external-snapshot-dependencies" );
+
+        VersionPair pair = new VersionPair( "1.0", "1.1-SNAPSHOT" );
+        VersionPair defaultPair = new VersionPair( "1.0", "1.0" );
+        Prompter mockPrompter = createMockPrompter( "yes", "1", Arrays.asList( pair, pair ), Arrays.asList( defaultPair,
+                                                                                                            defaultPair ) );
+        phase.setPrompter( mockPrompter );
+
+        try
+        {
+            phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+        }
+        catch ( ReleaseFailureException e )
+        {
+            fail( e.getMessage() );
+        }
+
+        Map resolvedDependencies = releaseDescriptor.getResolvedSnapshotDependencies();
+
+        assertNotNull( resolvedDependencies );
+        assertEquals( 2, resolvedDependencies.size() );
+
+        assertTrue( resolvedDependencies.containsKey( "external:artifactId" ) );
+        assertTrue( resolvedDependencies.containsKey( "external:artifactId2") );
+
+        Map versionsMap = (Map) releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId" );
+
+        assertNotNull( versionsMap );
+        assertEquals( "1.1-SNAPSHOT", versionsMap.get( ReleaseDescriptor.DEVELOPMENT_KEY ) );
+        assertEquals( "1.0", versionsMap.get( ReleaseDescriptor.RELEASE_KEY ) );
+
+        versionsMap = (Map) releaseDescriptor.getResolvedSnapshotDependencies().get( "external:artifactId2" );
+
+        assertNotNull( versionsMap );
+        assertEquals( "1.1-SNAPSHOT", versionsMap.get( ReleaseDescriptor.DEVELOPMENT_KEY ) );
+        assertEquals( "1.0", versionsMap.get( ReleaseDescriptor.RELEASE_KEY ) );
+    }
+
     public void testSnapshotDependenciesInsideAndOutsideProject()
         throws Exception
     {

Added: maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/1.0-SNAPSHOT/artifactId2-1.0-20100813.112234-1.pom
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/1.0-SNAPSHOT/artifactId2-1.0-20100813.112234-1.pom?rev=1002680&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/1.0-SNAPSHOT/artifactId2-1.0-20100813.112234-1.pom (added)
+++ maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/1.0-SNAPSHOT/artifactId2-1.0-20100813.112234-1.pom Wed Sep 29 15:35:05 2010
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>groupId</groupId>
+  <artifactId>artifactId2</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <packaging>pom</packaging>
+</project>

Added: maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/1.0-SNAPSHOT/maven-metadata.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/1.0-SNAPSHOT/maven-metadata.xml?rev=1002680&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/1.0-SNAPSHOT/maven-metadata.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/1.0-SNAPSHOT/maven-metadata.xml Wed Sep 29 15:35:05 2010
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>groupId</groupId>
+  <artifactId>artifactId2</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <versioning>
+    <snapshot>
+      <timestamp>20100813.112234</timestamp>
+      <buildNumber>1</buildNumber>
+    </snapshot>
+    <lastUpdated>20100813112234</lastUpdated>
+  </versioning>
+</metadata>

Added: maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/maven-metadata.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/maven-metadata.xml?rev=1002680&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/maven-metadata.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/remote-repository/groupId/artifactId2/maven-metadata.xml Wed Sep 29 15:35:05 2010
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata>
+  <groupId>groupId</groupId>
+  <artifactId>artifactId2</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <versioning>
+    <versions>
+      <version>1.0-SNAPSHOT</version>
+    </versions>
+    <lastUpdated>20100813112234</lastUpdated>
+  </versioning>
+</metadata>

Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/pom.xml?rev=1002680&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/pom.xml Wed Sep 29 15:35:05 2010
@@ -0,0 +1,34 @@
+<!--
+  ~ 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-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <parent>
+    <groupId>external</groupId>
+    <artifactId>parent-artifactId</artifactId>
+    <version>1</version>
+  </parent>
+
+  <modules>
+    <module>subproject1</module>
+    <module>subproject2</module>
+  </modules>
+</project>

Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/subproject1/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/subproject1/pom.xml?rev=1002680&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/subproject1/pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/subproject1/pom.xml Wed Sep 29 15:35:05 2010
@@ -0,0 +1,36 @@
+<!--
+  ~ 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>
+ 
+  <parent>
+    <groupId>groupId</groupId>
+    <artifactId>artifactId</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent> 
+
+  <dependencies>
+    <dependency>
+      <groupId>external</groupId>
+      <artifactId>artifactId</artifactId>
+      <version>1.0-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+</project>

Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/subproject2/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/subproject2/pom.xml?rev=1002680&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/subproject2/pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/check-dependencies/multimodule-external-snapshot-dependencies/subproject2/pom.xml Wed Sep 29 15:35:05 2010
@@ -0,0 +1,36 @@
+<!--
+  ~ 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>subproject2</artifactId>
+  <version>1.0-SNAPSHOT</version>
+ 
+  <parent>
+    <groupId>groupId</groupId>
+    <artifactId>artifactId</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent> 
+
+  <dependencies>
+    <dependency>
+      <groupId>external</groupId>
+      <artifactId>artifactId2</artifactId>
+      <version>1.0-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+</project>