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/15 17:20:49 UTC

svn commit: r997364 - 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/external/parent-artifactId/ test/remote-repository/externa...

Author: brett
Date: Wed Sep 15 15:20:49 2010
New Revision: 997364

URL: http://svn.apache.org/viewvc?rev=997364&view=rev
Log:
[MRELEASE-317] release:prepare doesn't update snapshot parent POMs to releases as requested when using the prompts
Submitted by: Noel Keating

Added:
    maven/release/trunk/maven-release-manager/src/test/remote-repository/external/parent-artifactId/1-SNAPSHOT/
    maven/release/trunk/maven-release-manager/src/test/remote-repository/external/parent-artifactId/1-SNAPSHOT/parent-artifactId-1-SNAPSHOT.pom   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-externally-released-parent/
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-externally-released-parent/expected-pom.xml   (with props)
    maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-externally-released-parent/pom.xml   (with props)
Modified:
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
    maven/release/trunk/maven-release-manager/src/test/remote-repository/external/parent-artifactId/maven-metadata.xml

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java?rev=997364&r1=997363&r2=997364&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java Wed Sep 15 15:20:49 2010
@@ -253,7 +253,8 @@ public abstract class AbstractRewritePom
         Map resolvedSnapshotDependencies = releaseDescriptor.getResolvedSnapshotDependencies();
         Element properties = rootElement.getChild( "properties", namespace );
 
-        String parentVersion = rewriteParent( project, rootElement, namespace, mappedVersions, originalVersions );
+        String parentVersion = rewriteParent( project, rootElement, namespace, mappedVersions, 
+                                              resolvedSnapshotDependencies, originalVersions);
 
         String projectId = ArtifactUtils.versionlessKey( project.getGroupId(), project.getArtifactId() );
 
@@ -393,7 +394,7 @@ public abstract class AbstractRewritePom
     }
 
     private String rewriteParent( MavenProject project, Element rootElement, Namespace namespace, Map mappedVersions,
-                                  Map originalVersions )
+                                  Map resolvedSnapshotDependencies, Map originalVersions)
         throws ReleaseFailureException
     {
         String parentVersion = null;
@@ -406,6 +407,11 @@ public abstract class AbstractRewritePom
             parentVersion = (String) mappedVersions.get( key );
             if ( parentVersion == null )
             {
+                //MRELEASE-317
+                parentVersion = getResolvedSnapshotVersion(key, resolvedSnapshotDependencies);
+            }
+            if ( parentVersion == null )
+            {
                 if ( parent.getVersion().equals( originalVersions.get( key ) ) )
                 {
                     throw new ReleaseFailureException( "Version for parent '" + parent.getName() + "' was not mapped" );

Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java?rev=997364&r1=997363&r2=997364&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java Wed Sep 15 15:20:49 2010
@@ -374,4 +374,18 @@ public class RewritePomsForReleasePhaseT
         descriptor.setScmReleaseLabel( "release-label" );
         return descriptor;
     }
+    
+    public void testRewritePomWithExternallyReleasedParent()
+    throws Exception
+    {
+        List reactorProjects = createReactorProjects( "pom-with-externally-released-parent" );
+    
+        ReleaseDescriptor config = createDescriptorFromProjects( reactorProjects );
+        config.mapResolvedSnapshotDependencies( "external:parent-artifactId", "1" , "2-SNAPSHOT" );
+        config.mapReleaseVersion( "groupId:subproject1", ALTERNATIVE_NEXT_VERSION );
+    
+        phase.execute( config, new DefaultReleaseEnvironment(), reactorProjects );
+    
+        assertTrue( comparePomFiles( reactorProjects ) );
+    }
 }

Added: maven/release/trunk/maven-release-manager/src/test/remote-repository/external/parent-artifactId/1-SNAPSHOT/parent-artifactId-1-SNAPSHOT.pom
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/remote-repository/external/parent-artifactId/1-SNAPSHOT/parent-artifactId-1-SNAPSHOT.pom?rev=997364&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/remote-repository/external/parent-artifactId/1-SNAPSHOT/parent-artifactId-1-SNAPSHOT.pom (added)
+++ maven/release/trunk/maven-release-manager/src/test/remote-repository/external/parent-artifactId/1-SNAPSHOT/parent-artifactId-1-SNAPSHOT.pom Wed Sep 15 15:20:49 2010
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you 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>external</groupId>
+  <artifactId>parent-artifactId</artifactId>
+  <version>1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  <description>POM was created from deploy:deploy-file</description>
+  <scm>
+    <connection>scm:svn:file://localhost/tmp/scm-repo/trunk</connection>
+    <developerConnection>scm:svn:file://localhost/tmp/scm-repo/trunk</developerConnection>
+    <url>file://localhost/tmp/scm-repo/trunk</url>
+  </scm>
+  <distributionManagement>
+    <status>deployed</status>
+  </distributionManagement>
+</project>
\ No newline at end of file

Propchange: maven/release/trunk/maven-release-manager/src/test/remote-repository/external/parent-artifactId/1-SNAPSHOT/parent-artifactId-1-SNAPSHOT.pom
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: maven/release/trunk/maven-release-manager/src/test/remote-repository/external/parent-artifactId/maven-metadata.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/remote-repository/external/parent-artifactId/maven-metadata.xml?rev=997364&r1=997363&r2=997364&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/remote-repository/external/parent-artifactId/maven-metadata.xml (original)
+++ maven/release/trunk/maven-release-manager/src/test/remote-repository/external/parent-artifactId/maven-metadata.xml Wed Sep 15 15:20:49 2010
@@ -25,6 +25,7 @@
   <versioning>
     <versions>
       <version>1</version>
+      <version>1-SNAPSHOT</version>
     </versions>
     <lastUpdated>20060424060506</lastUpdated>
   </versioning>

Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-externally-released-parent/expected-pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-externally-released-parent/expected-pom.xml?rev=997364&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-externally-released-parent/expected-pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-externally-released-parent/expected-pom.xml Wed Sep 15 15:20:49 2010
@@ -0,0 +1,36 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>external</groupId>
+    <artifactId>parent-artifactId</artifactId>
+    <version>1</version>
+  </parent>
+
+  <groupId>groupId</groupId>
+  <artifactId>subproject1</artifactId>
+  <version>2.0</version>
+  <scm>
+    <connection>scm:svn:file://localhost/tmp/scm-repo/tags/release-label</connection>
+    <developerConnection>scm:svn:file://localhost/tmp/scm-repo/tags/release-label</developerConnection>
+    <url>file://localhost/tmp/scm-repo/tags/release-label</url>
+  </scm>
+</project>

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-externally-released-parent/expected-pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-externally-released-parent/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-externally-released-parent/pom.xml?rev=997364&view=auto
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-externally-released-parent/pom.xml (added)
+++ maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-externally-released-parent/pom.xml Wed Sep 15 15:20:49 2010
@@ -0,0 +1,31 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements.  See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership.  The ASF licenses this file
+  ~ to you under the Apache License, Version 2.0 (the
+  ~ "License"); you may not use this file except in compliance
+  ~ with the License.  You may obtain a copy of the License at
+  ~
+  ~   http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing,
+  ~ software distributed under the License is distributed on an
+  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  ~ KIND, either express or implied.  See the License for the
+  ~ specific language governing permissions and limitations
+  ~ under the License.
+  -->
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>external</groupId>
+    <artifactId>parent-artifactId</artifactId>
+    <version>1-SNAPSHOT</version>
+  </parent>
+
+  <groupId>groupId</groupId>
+  <artifactId>subproject1</artifactId>
+  <version>2.0-SNAPSHOT</version>
+</project>

Propchange: maven/release/trunk/maven-release-manager/src/test/resources/projects/rewrite-for-release/pom-with-externally-released-parent/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native