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 2013/03/17 21:10:24 UTC
git commit: Use URI to prevent unnecessary to/from String conversions
Updated Branches:
refs/heads/master 10099c042 -> 55aec671a
Use URI to prevent unnecessary to/from String conversions
Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/55aec671
Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/55aec671
Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/55aec671
Branch: refs/heads/master
Commit: 55aec671a0fed84c3d73ab6c60fa818f1db81452
Parents: 10099c0
Author: rfscholte <rf...@apache.org>
Authored: Sun Mar 17 21:09:50 2013 +0100
Committer: rfscholte <rf...@apache.org>
Committed: Sun Mar 17 21:09:50 2013 +0100
----------------------------------------------------------------------
.../git/gitexe/command/add/GitAddCommand.java | 4 +-
.../gitexe/command/checkin/GitCheckInCommand.java | 4 +-
.../gitexe/command/status/GitStatusCommand.java | 4 +-
.../gitexe/command/status/GitStatusConsumer.java | 26 ++++++++++++--
.../command/status/GitStatusConsumerTest.java | 21 ++++++------
5 files changed, 39 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/55aec671/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/add/GitAddCommand.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/add/GitAddCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/add/GitAddCommand.java
index 59bc521..1ea1e07 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/add/GitAddCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/add/GitAddCommand.java
@@ -76,7 +76,7 @@ public class GitAddCommand
CommandLineUtils.StringStreamConsumer stdout = new CommandLineUtils.StringStreamConsumer();
CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
- String relativeRepositoryPath = null;
+ URI relativeRepositoryPath = null;
int exitCode;
@@ -91,7 +91,7 @@ public class GitAddCommand
}
else
{
- relativeRepositoryPath = URI.create( stdout.getOutput().trim() ).relativize( fileSet.getBasedir().toURI() ).getPath();
+ relativeRepositoryPath = URI.create( stdout.getOutput().trim() ).relativize( fileSet.getBasedir().toURI() );
}
// git-add doesn't show single files, but only summary :/
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/55aec671/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommand.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommand.java
index f00db3b..a37aaaf 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommand.java
@@ -104,7 +104,7 @@ public class GitCheckInCommand
stdout = new CommandLineUtils.StringStreamConsumer();
stderr = new CommandLineUtils.StringStreamConsumer();
- String relativeRepositoryPath = null;
+ URI relativeRepositoryPath = null;
exitCode = GitCommandLineUtils.execute( clRevparse, stdout, stderr, getLogger() );
if ( exitCode != 0 )
@@ -117,7 +117,7 @@ public class GitCheckInCommand
}
else
{
- relativeRepositoryPath = URI.create( stdout.getOutput().trim() ).relativize( fileSet.getBasedir().toURI() ).getPath();
+ relativeRepositoryPath = URI.create( stdout.getOutput().trim() ).relativize( fileSet.getBasedir().toURI() );
}
// git-commit doesn't show single files, but only summary :/
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/55aec671/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusCommand.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusCommand.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusCommand.java
index 2689a49..133f5aa 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusCommand.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusCommand.java
@@ -50,7 +50,7 @@ public class GitStatusCommand
CommandLineUtils.StringStreamConsumer stdout = new CommandLineUtils.StringStreamConsumer();
CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
- String relativeRepositoryPath = null;
+ URI relativeRepositoryPath = null;
int exitCode;
@@ -65,7 +65,7 @@ public class GitStatusCommand
}
else
{
- relativeRepositoryPath = URI.create( stdout.getOutput().trim() ).relativize( fileSet.getBasedir().toURI() ).getPath();
+ relativeRepositoryPath = URI.create( stdout.getOutput().trim() ).relativize( fileSet.getBasedir().toURI() );
}
Commandline cl = createCommandLine( (GitScmProviderRepository) repo, fileSet );
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/55aec671/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumer.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumer.java
index 2ee90a8..074d66a 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumer.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/main/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumer.java
@@ -68,19 +68,37 @@ public class GitStatusConsumer
*/
private List<ScmFile> changedFiles = new ArrayList<ScmFile>();
- private String relativeRepositoryPath;
+ private URI relativeRepositoryPath;
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
+ /**
+ * Consumer when workingDirectory and repositoryRootDirectory are the same
+ *
+ * @param logger the logger
+ * @param workingDirectory the working directory
+ */
public GitStatusConsumer( ScmLogger logger, File workingDirectory )
{
this.logger = logger;
this.workingDirectory = workingDirectory;
}
- public GitStatusConsumer( ScmLogger logger, File workingDirectory, String relativeRepositoryPath )
+ /**
+ * Assuming that you have to discover the repositoryRoot, this is how you can get the <code>relativeRepositoryPath</code>
+ * <pre>
+ * URI.create( repositoryRoot ).relativize( fileSet.getBasedir().toURI() )
+ * </pre>
+ *
+ * @param logger the logger
+ * @param workingDirectory the working directory
+ * @param relativeRepositoryPath the working directory relative to the repository root
+ * @since 1.9
+ * @see GitStatusCommand#createRevparseShowToplevelCommand(org.apache.maven.scm.ScmFileSet)
+ */
+ public GitStatusConsumer( ScmLogger logger, File workingDirectory, URI relativeRepositoryPath )
{
this( logger, workingDirectory );
this.relativeRepositoryPath = relativeRepositoryPath;
@@ -198,12 +216,12 @@ public class GitStatusConsumer
return new File( workingDirectory, file ).isFile();
}
- protected static String resolvePath( String fileEntry, String path )
+ protected static String resolvePath( String fileEntry, URI path )
{
if ( path != null )
{
- return URI.create( path ).relativize( URI.create( fileEntry ) ).getPath();
+ return path.relativize( URI.create( fileEntry ) ).getPath();
}
else
{
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/55aec671/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumerTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumerTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumerTest.java
index 9d9b924..5e4ceeb 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumerTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/status/GitStatusConsumerTest.java
@@ -19,6 +19,13 @@ package org.apache.maven.scm.provider.git.gitexe.command.status;
* under the License.
*/
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.net.URI;
+import java.util.List;
+
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.maven.scm.ScmFile;
@@ -26,12 +33,6 @@ import org.apache.maven.scm.ScmFileStatus;
import org.apache.maven.scm.log.DefaultLog;
import org.codehaus.plexus.PlexusTestCase;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.List;
-
/**
* @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
*/
@@ -45,7 +46,7 @@ public class GitStatusConsumerTest
return getChangedFiles( gitlog, null );
}
- private List<ScmFile> getChangedFiles( File gitlog, String relativeRepoPath )
+ private List<ScmFile> getChangedFiles( File gitlog, URI relativeRepoPath )
throws IOException
{
GitStatusConsumer consumer = new GitStatusConsumer( new DefaultLog(), null, relativeRepoPath );
@@ -288,7 +289,7 @@ public class GitStatusConsumerTest
public void testLog3Consumer()
throws Exception
{
- List<ScmFile> changedFiles = getChangedFiles( getTestFile( "/src/test/resources/git/status/gitstatus2.gitlog" ), "maven-scm-provider-gitexe" );
+ List<ScmFile> changedFiles = getChangedFiles( getTestFile( "/src/test/resources/git/status/gitstatus2.gitlog" ), URI.create( "maven-scm-provider-gitexe" ) );
assertEquals( 4, changedFiles.size() );
@@ -312,9 +313,9 @@ public class GitStatusConsumerTest
File repositoryRoot = getTestFile( "repo" );
File workingDirectory = getTestFile( "repo/work" );
- String path = repositoryRoot.toURI().relativize( workingDirectory.toURI() ).getPath();
+ URI path = repositoryRoot.toURI().relativize( workingDirectory.toURI() );
- assertEquals( "work", path );
+ assertEquals( "work", path.getPath() );
assertEquals( "pom.xml", GitStatusConsumer.resolvePath( "work/pom.xml", path ) );
assertEquals( "work/pom.xml", GitStatusConsumer.resolvePath( "work/pom.xml", null ) );