You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2012/11/19 20:29:07 UTC

svn commit: r1411360 - in /maven/release/trunk: maven-release-manager/src/main/ maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ maven-release-plugin/ maven-release-plugin/src/it/projects/update-versions/ maven-release-plugin/...

Author: rfscholte
Date: Mon Nov 19 19:29:05 2012
New Revision: 1411360

URL: http://svn.apache.org/viewvc?rev=1411360&view=rev
Log:
[MRELEASE-783] release:update-versions should not need SCM config 

Added:
    maven/release/trunk/maven-release-plugin/src/it/projects/update-versions/
    maven/release/trunk/maven-release-plugin/src/it/projects/update-versions/MRELEASE-783/
    maven/release/trunk/maven-release-plugin/src/it/projects/update-versions/MRELEASE-783/pom.xml
Modified:
    maven/release/trunk/maven-release-manager/src/main/components-fragment.xml
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckPomPhase.java
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java
    maven/release/trunk/maven-release-plugin/pom.xml

Modified: maven/release/trunk/maven-release-manager/src/main/components-fragment.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/components-fragment.xml?rev=1411360&r1=1411359&r2=1411360&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/components-fragment.xml (original)
+++ maven/release/trunk/maven-release-manager/src/main/components-fragment.xml Mon Nov 19 19:29:05 2012
@@ -82,7 +82,7 @@
           <phase>end-release</phase>
         </branchPhases>
         <updateVersionsPhases>
-          <phase>check-poms</phase>
+          <phase>check-poms-updateversions</phase>
           <phase>create-backup-poms</phase>
           <phase>map-development-versions</phase>
           <phase>rewrite-pom-versions</phase>
@@ -249,5 +249,31 @@
         </requirement>
       </requirements>
     </component>
+    <component>
+      <role>org.apache.maven.shared.release.phase.ReleasePhase</role>
+      <role-hint>check-poms</role-hint>
+      <implementation>org.apache.maven.shared.release.phase.CheckPomPhase</implementation>
+      <configuration>
+        <scmRequired>true</scmRequired>
+      </configuration>
+      <requirements>
+        <requirement>
+          <role>org.apache.maven.shared.release.scm.ScmRepositoryConfigurator</role>
+        </requirement>
+      </requirements>
+    </component>
+    <component>
+      <role>org.apache.maven.shared.release.phase.ReleasePhase</role>
+      <role-hint>check-poms-updateversions</role-hint>
+      <implementation>org.apache.maven.shared.release.phase.CheckPomPhase</implementation>
+      <configuration>
+        <scmRequired>false</scmRequired>
+      </configuration>
+      <requirements>
+        <requirement>
+          <role>org.apache.maven.shared.release.scm.ScmRepositoryConfigurator</role>
+        </requirement>
+      </requirements>
+    </component>
   </components>
 </component-set>

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=1411360&r1=1411359&r2=1411360&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 Mon Nov 19 19:29:05 2012
@@ -211,22 +211,26 @@ public abstract class AbstractRewritePom
             throw new ReleaseExecutionException( "Error reading POM: " + e.getMessage(), e );
         }
 
-        ScmRepository scmRepository;
-        ScmProvider provider;
-        try
-        {
-            scmRepository = scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor,
-                                                                               releaseEnvironment.getSettings() );
+        ScmRepository scmRepository = null;
+        ScmProvider provider = null;
 
-            provider = scmRepositoryConfigurator.getRepositoryProvider( scmRepository );
-        }
-        catch ( ScmRepositoryException e )
-        {
-            throw new ReleaseScmRepositoryException( e.getMessage(), e.getValidationMessages() );
-        }
-        catch ( NoSuchScmProviderException e )
+        if( isUpdateScm() )
         {
-            throw new ReleaseExecutionException( "Unable to configure SCM repository: " + e.getMessage(), e );
+            try
+            {
+                scmRepository = scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor,
+                                                                                   releaseEnvironment.getSettings() );
+
+                provider = scmRepositoryConfigurator.getRepositoryProvider( scmRepository );
+            }
+            catch ( ScmRepositoryException e )
+            {
+                throw new ReleaseScmRepositoryException( e.getMessage(), e.getValidationMessages() );
+            }
+            catch ( NoSuchScmProviderException e )
+            {
+                throw new ReleaseExecutionException( "Unable to configure SCM repository: " + e.getMessage(), e );
+            }
         }
 
         transformDocument( project, document.getRootElement(), releaseDescriptor, reactorProjects, scmRepository,
@@ -639,7 +643,7 @@ public abstract class AbstractRewritePom
     {
         try
         {
-            if ( releaseDescriptor.isScmUseEditMode() || provider.requiresEditMode() )
+            if ( isUpdateScm() && ( releaseDescriptor.isScmUseEditMode() || provider.requiresEditMode() ) )
             {
                 EditScmResult result = provider.edit( repository, new ScmFileSet(
                     new File( releaseDescriptor.getWorkingDirectory() ), pomFile ) );
@@ -769,6 +773,16 @@ public abstract class AbstractRewritePom
                                           ScmRepository scmRepository, ReleaseResult result, String commonBasedir )
         throws ReleaseExecutionException;
 
+    /**
+     * 
+     * @return {@code true} if the SCM-section should be updated, otherwise {@code false}
+     * @since 2.4
+     */
+    protected boolean isUpdateScm()
+    {
+        return true;
+    }
+
     protected String getOriginalResolvedSnapshotVersion( String artifactVersionlessKey, Map<String, Map<String, String>> resolvedSnapshots )
     {
         Map<String, String> versionsMap = resolvedSnapshots.get( artifactVersionlessKey );

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckPomPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckPomPhase.java?rev=1411360&r1=1411359&r2=1411360&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckPomPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/CheckPomPhase.java Mon Nov 19 19:29:05 2012
@@ -39,16 +39,16 @@ import java.util.List;
  * Phase that checks the validity of the POM before release.
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
- * @plexus.component role="org.apache.maven.shared.release.phase.ReleasePhase" role-hint="check-poms"
  */
 public class CheckPomPhase
     extends AbstractReleasePhase
 {
+    
     /**
-     * Retrieve an SCM repository, useful for validating an URL.
-     *
-     * @plexus.requirement
+     * @since 2.4
      */
+    private boolean scmRequired = true;
+    
     private ScmRepositoryConfigurator scmRepositoryConfigurator;
 
     public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, ReleaseEnvironment releaseEnvironment, List<MavenProject> reactorProjects )
@@ -57,7 +57,7 @@ public class CheckPomPhase
         ReleaseResult result = new ReleaseResult();
 
         // Currently, we don't deal with multiple SCM locations in a multiproject
-        if ( StringUtils.isEmpty( releaseDescriptor.getScmSourceUrl() ) )
+        if ( scmRequired && StringUtils.isEmpty( releaseDescriptor.getScmSourceUrl() ) )
         {
             MavenProject rootProject = ReleaseUtil.getRootProject( reactorProjects );
             if ( rootProject != null && rootProject.getScm() != null )

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java?rev=1411360&r1=1411359&r2=1411360&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomVersionsPhase.java Mon Nov 19 19:29:05 2012
@@ -48,6 +48,12 @@ public class RewritePomVersionsPhase
         // We are only updating versions no mods to scm needed
     }
 
+    @Override
+    protected boolean isUpdateScm()
+    {
+        return false;
+    }
+
     @SuppressWarnings( "unchecked" )
     @Override
     protected Map<String, String> getOriginalVersionMap( ReleaseDescriptor releaseDescriptor, List<MavenProject> reactorProjects,

Modified: maven/release/trunk/maven-release-plugin/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/pom.xml?rev=1411360&r1=1411359&r2=1411360&view=diff
==============================================================================
--- maven/release/trunk/maven-release-plugin/pom.xml (original)
+++ maven/release/trunk/maven-release-plugin/pom.xml Mon Nov 19 19:29:05 2012
@@ -273,6 +273,22 @@
                   <goal>run</goal>
                 </goals>
               </execution>
+              <execution>
+                <id>integration-test-update-versions</id>
+                <configuration>
+                  <pomIncludes>
+                    <pomInclude>projects/update-versions/*/pom.xml</pomInclude>
+                  </pomIncludes>
+                  <goals>
+                    <goal>clean</goal>
+                    <goal>${project.groupId}:${project.artifactId}:${project.version}:clean</goal>
+                    <goal>${project.groupId}:${project.artifactId}:${project.version}:update-versions</goal>
+                  </goals>
+                </configuration>
+                <goals>
+                  <goal>run</goal>
+                </goals>
+              </execution>
            </executions>
           </plugin>
         </plugins>

Added: maven/release/trunk/maven-release-plugin/src/it/projects/update-versions/MRELEASE-783/pom.xml
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/it/projects/update-versions/MRELEASE-783/pom.xml?rev=1411360&view=auto
==============================================================================
--- maven/release/trunk/maven-release-plugin/src/it/projects/update-versions/MRELEASE-783/pom.xml (added)
+++ maven/release/trunk/maven-release-plugin/src/it/projects/update-versions/MRELEASE-783/pom.xml Mon Nov 19 19:29:05 2012
@@ -0,0 +1,40 @@
+<?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 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>org.apache.maven.its.release</groupId>
+  <artifactId>mrelease-783</artifactId>
+  <version>1.0-SNAPSHOT</version>
+  <packaging>pom</packaging>
+
+  <name>Maven Release Plugin IT</name>
+  <url>http://maven.apache.org/</url>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-release-plugin</artifactId>
+        <version>@project.version@</version>
+      </plugin>
+    </plugins>
+  </build>
+</project>