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/05/22 00:15:59 UTC
svn commit: r1341231 - in /maven/release/trunk/maven-release-manager/src:
main/java/org/apache/maven/shared/release/phase/
main/java/org/apache/maven/shared/release/scm/
test/java/org/apache/maven/shared/release/scm/
Author: rfscholte
Date: Mon May 21 22:15:59 2012
New Revision: 1341231
URL: http://svn.apache.org/viewvc?rev=1341231&view=rev
Log:
Fix MRELEASE-759: Add ScmTranslator.toRelativePath()
Modified:
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCheckModificationsPhase.java
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/ClearCaseScmTranslator.java
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/CvsScmTranslator.java
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/GitScmTranslator.java
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/HgScmTranslator.java
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/JazzScmTranslator.java
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/ScmTranslator.java
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/SubversionScmTranslator.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/ClearCaseScmTranslatorTest.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/CvsScmTranslatorTest.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/GitScmTranslatorTest.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/HgScmTranslatorTest.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/JazzScmTranslatorTest.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/SubversionScmTranslatorTest.java
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCheckModificationsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCheckModificationsPhase.java?rev=1341231&r1=1341230&r2=1341231&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCheckModificationsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/ScmCheckModificationsPhase.java Mon May 21 22:15:59 2012
@@ -36,6 +36,7 @@ import org.apache.maven.shared.release.e
import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
+import org.apache.maven.shared.release.scm.ScmTranslator;
import org.codehaus.plexus.util.SelectorUtils;
import org.codehaus.plexus.util.StringUtils;
@@ -44,6 +45,7 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.Set;
/**
@@ -61,6 +63,13 @@ public class ScmCheckModificationsPhase
* @plexus.requirement
*/
private ScmRepositoryConfigurator scmRepositoryConfigurator;
+
+ /**
+ * SCM URL translators mapped by provider name.
+ *
+ * @plexus.requirement role="org.apache.maven.shared.release.scm.ScmTranslator"
+ */
+ private Map<String, ScmTranslator> scmTranslators;
/**
* The filepatterns to exclude from the status check.
@@ -130,20 +139,35 @@ public class ScmCheckModificationsPhase
List<ScmFile> changedFiles = result.getChangedFiles();
- // TODO: would be nice for SCM status command to do this for me.
- for ( Iterator<ScmFile> i = changedFiles.iterator(); i.hasNext(); )
+ if ( !changedFiles.isEmpty() )
{
- ScmFile f = i.next();
+ ScmTranslator scmTranslator = scmTranslators.get( repository );
+
+ // TODO: would be nice for SCM status command to do this for me.
+ for ( Iterator<ScmFile> i = changedFiles.iterator(); i.hasNext(); )
+ {
+ ScmFile f = i.next();
+
+ String path;
+ if ( scmTranslator != null )
+ {
+ path = scmTranslator.toRelativePath( f.getPath() );
+ }
+ else
+ {
+ path = f.getPath();
+ }
- // SelectorUtils expects File.separator, don't standardize!
- String fileName = f.getPath().replace( "\\", File.separator ).replace( "/", File.separator );
+ // SelectorUtils expects File.separator, don't standardize!
+ String fileName = path.replace( "\\", File.separator ).replace( "/", File.separator );
- for ( String exclusionPattern : exclusionPatterns )
- {
- if ( SelectorUtils.matchPath( exclusionPattern, fileName ) )
+ for ( String exclusionPattern : exclusionPatterns )
{
- logDebug( relResult, "Ignoring changed file: " + fileName );
- i.remove();
+ if ( SelectorUtils.matchPath( exclusionPattern, fileName ) )
+ {
+ logDebug( relResult, "Ignoring changed file: " + fileName );
+ i.remove();
+ }
}
}
}
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/ClearCaseScmTranslator.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/ClearCaseScmTranslator.java?rev=1341231&r1=1341230&r2=1341231&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/ClearCaseScmTranslator.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/ClearCaseScmTranslator.java Mon May 21 22:15:59 2012
@@ -28,16 +28,25 @@ package org.apache.maven.shared.release.
public class ClearCaseScmTranslator
implements ScmTranslator
{
+ /**
+ * {@inheritDoc}
+ */
public String translateBranchUrl( String url, String branchName, String branchBase )
{
return url;
}
+ /**
+ * {@inheritDoc}
+ */
public String translateTagUrl( String url, String tag, String tagBase )
{
return url;
}
+ /**
+ * {@inheritDoc}
+ */
public String resolveTag( String tag )
{
if ( !"HEAD".equals( tag ) )
@@ -49,4 +58,12 @@ public class ClearCaseScmTranslator
return null;
}
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public String toRelativePath( String path )
+ {
+ return path;
+ }
}
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/CvsScmTranslator.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/CvsScmTranslator.java?rev=1341231&r1=1341230&r2=1341231&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/CvsScmTranslator.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/CvsScmTranslator.java Mon May 21 22:15:59 2012
@@ -28,16 +28,25 @@ package org.apache.maven.shared.release.
public class CvsScmTranslator
implements ScmTranslator
{
+ /**
+ * {@inheritDoc}
+ */
public String translateBranchUrl( String url, String branchName, String branchBase )
{
return url;
}
+ /**
+ * {@inheritDoc}
+ */
public String translateTagUrl( String url, String tag, String tagBase )
{
return url;
}
+ /**
+ * {@inheritDoc}
+ */
public String resolveTag( String tag )
{
if ( !"HEAD".equals( tag ) )
@@ -49,4 +58,12 @@ public class CvsScmTranslator
return null;
}
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public String toRelativePath( String path )
+ {
+ return path;
+ }
}
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/GitScmTranslator.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/GitScmTranslator.java?rev=1341231&r1=1341230&r2=1341231&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/GitScmTranslator.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/GitScmTranslator.java Mon May 21 22:15:59 2012
@@ -22,7 +22,8 @@ package org.apache.maven.shared.release.
/**
* @plexus.component role="org.apache.maven.shared.release.scm.ScmTranslator" role-hint="git"
*/
-public class GitScmTranslator implements ScmTranslator
+public class GitScmTranslator
+ implements ScmTranslator
{
/** {@inheritDoc} */
@@ -42,4 +43,10 @@ public class GitScmTranslator implements
{
return tag;
}
+
+ /** {@inheritDoc} */
+ public String toRelativePath( String path )
+ {
+ return path;
+ }
}
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/HgScmTranslator.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/HgScmTranslator.java?rev=1341231&r1=1341230&r2=1341231&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/HgScmTranslator.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/HgScmTranslator.java Mon May 21 22:15:59 2012
@@ -22,7 +22,8 @@ package org.apache.maven.shared.release.
/**
* @plexus.component role="org.apache.maven.shared.release.scm.ScmTranslator" role-hint="hg"
*/
-public class HgScmTranslator implements ScmTranslator
+public class HgScmTranslator
+ implements ScmTranslator
{
/** {@inheritDoc} */
@@ -42,4 +43,10 @@ public class HgScmTranslator implements
{
return tag;
}
+
+ /** {@inheritDoc} */
+ public String toRelativePath( String path )
+ {
+ return path;
+ }
}
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/JazzScmTranslator.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/JazzScmTranslator.java?rev=1341231&r1=1341230&r2=1341231&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/JazzScmTranslator.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/JazzScmTranslator.java Mon May 21 22:15:59 2012
@@ -1,5 +1,7 @@
package org.apache.maven.shared.release.scm;
+import java.io.File;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -76,4 +78,21 @@ public class JazzScmTranslator
// project.scm.tag is not required, so return null.
return null;
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public String toRelativePath( String path )
+ {
+ String relativePath;
+ if ( path.startsWith( "\\" ) || path.startsWith( "/" ) )
+ {
+ relativePath = path.substring( 1 );
+ }
+ else
+ {
+ relativePath = path;
+ }
+ return relativePath.replace( "\\", File.separator ).replace( "/", File.separator );
+ }
}
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/ScmTranslator.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/ScmTranslator.java?rev=1341231&r1=1341230&r2=1341231&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/ScmTranslator.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/ScmTranslator.java Mon May 21 22:15:59 2012
@@ -59,4 +59,13 @@ public interface ScmTranslator
* @return the tag to use, or <code>null</code> if the provider does not use tags
*/
String resolveTag( String tag );
+
+ /**
+ * Translates an ScmFile path to a path relative to the working directory.
+ *
+ * @param path
+ * @return the relative path with OS specific File separator
+ * @since 2.3.1
+ */
+ String toRelativePath( String path );
}
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/SubversionScmTranslator.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/SubversionScmTranslator.java?rev=1341231&r1=1341230&r2=1341231&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/SubversionScmTranslator.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/scm/SubversionScmTranslator.java Mon May 21 22:15:59 2012
@@ -32,19 +32,36 @@ import org.apache.maven.scm.provider.svn
public class SubversionScmTranslator
implements ScmTranslator
{
+ /**
+ * {@inheritDoc}
+ */
public String translateBranchUrl( String url, String branchName, String branchBase )
{
return SvnTagBranchUtils.resolveUrl( url, branchBase, SvnTagBranchUtils.SVN_BRANCHES,
new ScmBranch( branchName ) );
}
+ /**
+ * {@inheritDoc}
+ */
public String translateTagUrl( String url, String tag, String tagBase )
{
return SvnTagBranchUtils.resolveUrl( url, tagBase, SvnTagBranchUtils.SVN_TAGS, new ScmTag( tag ) );
}
+ /**
+ * {@inheritDoc}
+ */
public String resolveTag( String tag )
{
return null;
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public String toRelativePath( String path )
+ {
+ return path;
+ }
}
Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/ClearCaseScmTranslatorTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/ClearCaseScmTranslatorTest.java?rev=1341231&r1=1341230&r2=1341231&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/ClearCaseScmTranslatorTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/ClearCaseScmTranslatorTest.java Mon May 21 22:15:59 2012
@@ -47,4 +47,9 @@ public class ClearCaseScmTranslatorTest
assertEquals( "url", scmTranslator.translateBranchUrl( "url", "branchName", null ) );
assertEquals( "url", scmTranslator.translateBranchUrl( "url", "branchName", "tagBase" ) );
}
+
+ public void testGetRelativePath()
+ {
+ assertEquals( "a/b/c", "a/b/c" );
+ }
}
Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/CvsScmTranslatorTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/CvsScmTranslatorTest.java?rev=1341231&r1=1341230&r2=1341231&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/CvsScmTranslatorTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/CvsScmTranslatorTest.java Mon May 21 22:15:59 2012
@@ -47,4 +47,9 @@ public class CvsScmTranslatorTest
assertEquals( "url", scmTranslator.translateBranchUrl( "url", "branchName", null ) );
assertEquals( "url", scmTranslator.translateBranchUrl( "url", "branchName", "tagBase" ) );
}
+
+ public void testGetRelativePath()
+ {
+ assertEquals( "a/b/c", "a/b/c" );
+ }
}
Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/GitScmTranslatorTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/GitScmTranslatorTest.java?rev=1341231&r1=1341230&r2=1341231&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/GitScmTranslatorTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/GitScmTranslatorTest.java Mon May 21 22:15:59 2012
@@ -47,4 +47,9 @@ public class GitScmTranslatorTest
assertEquals( "url", scmTranslator.translateBranchUrl( "url", "branchName", null ) );
assertEquals( "url", scmTranslator.translateBranchUrl( "url", "branchName", "tagBase" ) );
}
+
+ public void testGetRelativePath()
+ {
+ assertEquals( "a/b/c", "a/b/c" );
+ }
}
Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/HgScmTranslatorTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/HgScmTranslatorTest.java?rev=1341231&r1=1341230&r2=1341231&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/HgScmTranslatorTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/HgScmTranslatorTest.java Mon May 21 22:15:59 2012
@@ -46,4 +46,9 @@ public class HgScmTranslatorTest
assertEquals( "url", scmTranslator.translateBranchUrl( "url", "branchName", null ) );
assertEquals( "url", scmTranslator.translateBranchUrl( "url", "branchName", "tagBase" ) );
}
+
+ public void testGetRelativePath()
+ {
+ assertEquals( "a/b/c", "a/b/c" );
+ }
}
Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/JazzScmTranslatorTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/JazzScmTranslatorTest.java?rev=1341231&r1=1341230&r2=1341231&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/JazzScmTranslatorTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/JazzScmTranslatorTest.java Mon May 21 22:15:59 2012
@@ -19,6 +19,8 @@ package org.apache.maven.shared.release.
* under the License.
*/
+import java.io.File;
+
import junit.framework.TestCase;
public class JazzScmTranslatorTest
@@ -47,4 +49,12 @@ public class JazzScmTranslatorTest
assertEquals( "url:branchName", scmTranslator.translateBranchUrl( "url:module", "branchName", null ) );
assertEquals( "url:branchName", scmTranslator.translateBranchUrl( "url:module", "branchName", "tagBase" ) );
}
+
+ public void testGetRelativePath()
+ {
+ assertEquals( "BogusTest" + File.separator + "release.properties", scmTranslator.toRelativePath( "BogusTest/release.properties" ) );
+ assertEquals( "BogusTest" + File.separator + "release.properties", scmTranslator.toRelativePath( "/BogusTest/release.properties" ) );
+ assertEquals( "BogusTest" + File.separator + "release.properties", scmTranslator.toRelativePath( "BogusTest\\release.properties" ) );
+ assertEquals( "BogusTest" + File.separator + "release.properties", scmTranslator.toRelativePath( "\\BogusTest\\release.properties" ) );
+ }
}
Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/SubversionScmTranslatorTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/SubversionScmTranslatorTest.java?rev=1341231&r1=1341230&r2=1341231&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/SubversionScmTranslatorTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/scm/SubversionScmTranslatorTest.java Mon May 21 22:15:59 2012
@@ -48,4 +48,9 @@ public class SubversionScmTranslatorTest
assertEquals( "url/branches/branchName", scmTranslator.translateBranchUrl( "url", "branchName", null ) );
assertEquals( "tagBase/branchName", scmTranslator.translateBranchUrl( "url", "branchName", "tagBase" ) );
}
+
+ public void testGetRelativePath()
+ {
+ assertEquals( "a/b/c", "a/b/c" );
+ }
}