You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2011/03/20 01:08:19 UTC

svn commit: r1083343 - in /maven/release/trunk/maven-release-manager/src: main/java/org/apache/maven/shared/release/phase/ main/java/org/apache/maven/shared/release/util/ test/java/org/apache/maven/shared/release/phase/

Author: olamy
Date: Sun Mar 20 00:08:18 2011
New Revision: 1083343

URL: http://svn.apache.org/viewvc?rev=1083343&view=rev
Log:
 fix symlink issue

Modified:
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java
    maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
    maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java?rev=1083343&r1=1083342&r2=1083343&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhase.java Sun Mar 20 00:08:18 2011
@@ -19,6 +19,7 @@ package org.apache.maven.shared.release.
  * under the License.
  */
 
+import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
@@ -26,6 +27,7 @@ import org.apache.maven.artifact.Artifac
 import org.apache.maven.model.Scm;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.repository.ScmRepository;
+import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseResult;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.scm.ScmTranslator;
@@ -49,7 +51,8 @@ public class RewritePomsForBranchPhase
 
     protected void transformScm( MavenProject project, Element rootElement, Namespace namespace,
                                  ReleaseDescriptor releaseDescriptor, String projectId, ScmRepository scmRepository,
-                                 ReleaseResult result, String commonBasedir )
+                                 ReleaseResult result, String commonBasedir ) 
+    throws ReleaseExecutionException
     {
         // If SCM is null in original model, it is inherited, no mods needed
         if ( project.getScm() != null )
@@ -59,7 +62,14 @@ public class RewritePomsForBranchPhase
             {
                 releaseDescriptor.mapOriginalScmInfo( projectId, project.getScm() );
 
-                translateScm( project, releaseDescriptor, scmRoot, namespace, scmRepository, result, commonBasedir );
+                try
+                {
+                    translateScm( project, releaseDescriptor, scmRoot, namespace, scmRepository, result, commonBasedir );
+                }
+                catch ( IOException e )
+                {
+                    throw new ReleaseExecutionException(e.getMessage(), e);
+                }
             }
             else
             {
@@ -77,10 +87,17 @@ public class RewritePomsForBranchPhase
                         scmRoot = new Element( "scm" );
                         scmRoot.addContent( "\n  " );
 
-                        if ( translateScm( project, releaseDescriptor, scmRoot, namespace, scmRepository, result,
-                                           commonBasedir ) )
+                        try
+                        {
+                            if ( translateScm( project, releaseDescriptor, scmRoot, namespace, scmRepository, result,
+                                               commonBasedir ) )
+                            {
+                                rootElement.addContent( "\n  " ).addContent( scmRoot ).addContent( "\n" );
+                            }
+                        }
+                        catch ( IOException e )
                         {
-                            rootElement.addContent( "\n  " ).addContent( scmRoot ).addContent( "\n" );
+                            throw new ReleaseExecutionException(e.getMessage(), e);
                         }
                     }
                 }
@@ -90,7 +107,8 @@ public class RewritePomsForBranchPhase
 
     private boolean translateScm( MavenProject project, ReleaseDescriptor releaseDescriptor, Element scmRoot,
                                   Namespace namespace, ScmRepository scmRepository, ReleaseResult relResult,
-                                  String commonBasedir )
+                                  String commonBasedir ) 
+    throws IOException
     {
         ScmTranslator translator = (ScmTranslator) scmTranslators.get( scmRepository.getProvider() );
         boolean result = false;
@@ -105,9 +123,13 @@ public class RewritePomsForBranchPhase
             {
                 branchBase = "scm:svn:" + branchBase;
             }
+            
+            String workingDirectory =
+                ReleaseUtil.isSymlink( project.getBasedir() ) ? project.getBasedir().getCanonicalPath()
+                                : project.getBasedir().getAbsolutePath();
 
             int count =
-                ReleaseUtil.getBaseWorkingDirectoryParentCount( commonBasedir, project.getBasedir().getAbsolutePath() );
+                ReleaseUtil.getBaseWorkingDirectoryParentCount( commonBasedir, workingDirectory );
             if ( scm.getConnection() != null )
             {
                 String rootUrl = ReleaseUtil.realignScmUrl( count, scm.getConnection() );

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java?rev=1083343&r1=1083342&r2=1083343&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhase.java Sun Mar 20 00:08:18 2011
@@ -19,6 +19,7 @@ package org.apache.maven.shared.release.
  * under the License.
  */
 
+import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
@@ -26,6 +27,7 @@ import org.apache.maven.artifact.Artifac
 import org.apache.maven.model.Scm;
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.repository.ScmRepository;
+import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseResult;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.scm.ScmTranslator;
@@ -50,6 +52,7 @@ public class RewritePomsForReleasePhase
     protected void transformScm( MavenProject project, Element rootElement, Namespace namespace,
                                  ReleaseDescriptor releaseDescriptor, String projectId, ScmRepository scmRepository,
                                  ReleaseResult result, String commonBasedir )
+    throws ReleaseExecutionException
     {
         // If SCM is null in original model, it is inherited, no mods needed
         if ( project.getScm() != null )
@@ -59,7 +62,14 @@ public class RewritePomsForReleasePhase
             {
                 releaseDescriptor.mapOriginalScmInfo( projectId, project.getScm() );
 
-                translateScm( project, releaseDescriptor, scmRoot, namespace, scmRepository, result, commonBasedir );
+                try
+                {
+                    translateScm( project, releaseDescriptor, scmRoot, namespace, scmRepository, result, commonBasedir );
+                }
+                catch ( IOException e )
+                {
+                    throw new ReleaseExecutionException( e.getMessage(), e );
+                }
             }
             else
             {
@@ -77,10 +87,17 @@ public class RewritePomsForReleasePhase
                         scmRoot = new Element( "scm" );
                         scmRoot.addContent( "\n  " );
 
-                        if ( translateScm( project, releaseDescriptor, scmRoot, namespace, scmRepository, result,
-                                           commonBasedir ) )
+                        try
+                        {
+                            if ( translateScm( project, releaseDescriptor, scmRoot, namespace, scmRepository, result,
+                                               commonBasedir ) )
+                            {
+                                rootElement.addContent( "\n  " ).addContent( scmRoot ).addContent( "\n" );
+                            }
+                        }
+                        catch ( IOException e )
                         {
-                            rootElement.addContent( "\n  " ).addContent( scmRoot ).addContent( "\n" );
+                            throw new ReleaseExecutionException(e.getMessage(), e);
                         }
                     }
                 }
@@ -90,7 +107,7 @@ public class RewritePomsForReleasePhase
 
     private boolean translateScm( MavenProject project, ReleaseDescriptor releaseDescriptor, Element scmRoot,
                                   Namespace namespace, ScmRepository scmRepository, ReleaseResult relResult,
-                                  String commonBasedir )
+                                  String commonBasedir ) throws IOException
     {
         ScmTranslator translator = (ScmTranslator) scmTranslators.get( scmRepository.getProvider() );
         boolean result = false;
@@ -111,8 +128,11 @@ public class RewritePomsForReleasePhase
                 tagBase = "scm:svn:" + tagBase;
             }
 
+            String workingDirectory =
+                ReleaseUtil.isSymlink( project.getBasedir() ) ? project.getBasedir().getCanonicalPath()
+                                : project.getBasedir().getAbsolutePath();
             int count =
-                ReleaseUtil.getBaseWorkingDirectoryParentCount( commonBasedir, project.getBasedir().getAbsolutePath() );
+                ReleaseUtil.getBaseWorkingDirectoryParentCount( commonBasedir, workingDirectory );
             if ( scm.getConnection() != null )
             {
                 String rootUrl = ReleaseUtil.realignScmUrl( count, scm.getConnection() );

Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java?rev=1083343&r1=1083342&r2=1083343&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/util/ReleaseUtil.java Sun Mar 20 00:08:18 2011
@@ -276,4 +276,10 @@ public class ReleaseUtil
         }
         return url;
     }
+    
+    public static boolean isSymlink(File file) 
+        throws IOException
+    {
+        return !file.getAbsolutePath().equals( file.getCanonicalPath() );
+    }
 }

Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java?rev=1083343&r1=1083342&r2=1083343&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java Sun Mar 20 00:08:18 2011
@@ -356,4 +356,4 @@ public abstract class AbstractReleaseTes
         }
         return "file://" + getTestFile( "src/test/remote-repository" ).getCanonicalPath().replace( '\\', '/' );
     }
-}
+}
\ No newline at end of file