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/01/03 18:39:59 UTC
git commit: [SCM-709] Use JDK Pattern/Matcher instead of RE
Updated Branches:
refs/heads/master fa5b0dd8f -> 1bb2d4faf
[SCM-709] Use JDK Pattern/Matcher instead of RE
Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/1bb2d4fa
Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/1bb2d4fa
Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/1bb2d4fa
Branch: refs/heads/master
Commit: 1bb2d4faf0ade9795455ba235ffc8f41dd2a2f4c
Parents: fa5b0dd
Author: rfscholte <rf...@apache.org>
Authored: Thu Jan 3 18:39:25 2013 +0100
Committer: rfscholte <rf...@apache.org>
Committed: Thu Jan 3 18:39:25 2013 +0100
----------------------------------------------------------------------
.../gitexe/command/status/GitStatusConsumer.java | 80 +++++----------
1 files changed, 24 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-scm/blob/1bb2d4fa/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 11c541a..c696571 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
@@ -19,63 +19,44 @@ package org.apache.maven.scm.provider.git.gitexe.command.status;
* under the License.
*/
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
import org.apache.commons.lang.StringUtils;
import org.apache.maven.scm.ScmFile;
import org.apache.maven.scm.ScmFileStatus;
import org.apache.maven.scm.log.ScmLogger;
-import org.apache.regexp.RE;
-import org.apache.regexp.RESyntaxException;
import org.codehaus.plexus.util.cli.StreamConsumer;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
*/
public class GitStatusConsumer
implements StreamConsumer
{
+
/**
* The pattern used to match added file lines
*/
- private static final String ADDED_PATTERN = "^A[ M]* (.*)$";
+ private static final Pattern addedRegexp = Pattern.compile( "^A[ M]* (.*)$" );
/**
* The pattern used to match modified file lines
*/
- private static final String MODIFIED_PATTERN = "^ *M[ M]* (.*)$";
+ private static final Pattern modifiedRegexp = Pattern.compile( "^ *M[ M]* (.*)$" );
/**
* The pattern used to match deleted file lines
*/
- private static final String DELETED_PATTERN = "^ *D * (.*)$";
+ private Pattern deletedRegexp = Pattern.compile( "^ *D * (.*)$" );
/**
* The pattern used to match renamed file lines
*/
- private static final String RENAMED_PATTERN = "R (.*) -> (.*)$";
-
- /**
- * @see #ADDED_PATTERN
- */
- private RE addedRegexp;
-
- /**
- * @see #MODIFIED_PATTERN
- */
- private RE modifiedRegexp;
-
- /**
- * @see #DELETED_PATTERN
- */
- private RE deletedRegexp;
-
- /**
- * @see #RENAMED_PATTERN
- */
- private RE renamedRegexp;
+ private Pattern renamedRegexp = Pattern.compile( "R (.*) -> (.*)$" );
private ScmLogger logger;
@@ -91,20 +72,6 @@ public class GitStatusConsumer
{
this.logger = logger;
this.workingDirectory = workingDirectory;
-
- try
- {
- addedRegexp = new RE( ADDED_PATTERN );
- modifiedRegexp = new RE( MODIFIED_PATTERN );
- deletedRegexp = new RE( DELETED_PATTERN );
- renamedRegexp = new RE( RENAMED_PATTERN );
- }
- catch ( RESyntaxException ex )
- {
- throw new RuntimeException(
- "INTERNAL ERROR: Could not create regexp to parse git log file. This shouldn't happen. Something is probably wrong with the oro installation.",
- ex );
- }
}
// ----------------------------------------------------------------------
@@ -128,29 +95,30 @@ public class GitStatusConsumer
ScmFileStatus status = null;
List<String> files = new ArrayList<String>();
-
- if ( addedRegexp.match( line ) )
+
+ Matcher matcher;
+ if ( ( matcher = addedRegexp.matcher( line ) ).find() )
{
status = ScmFileStatus.ADDED;
- files.add( addedRegexp.getParen( 1 ) );
+ files.add( matcher.group( 1 ) );
}
- else if ( modifiedRegexp.match( line ) )
+ else if ( ( matcher = modifiedRegexp.matcher( line ) ).find() )
{
status = ScmFileStatus.MODIFIED;
- files.add( modifiedRegexp.getParen( 1 ) );
+ files.add( matcher.group( 1 ) );
}
- else if ( deletedRegexp.match( line ) )
+ else if ( ( matcher = deletedRegexp.matcher( line ) ) .find() )
{
status = ScmFileStatus.DELETED;
- files.add( deletedRegexp.getParen( 1 ) );
+ files.add( matcher.group( 1 ) );
}
- else if ( renamedRegexp.match( line ) )
+ else if ( ( matcher = renamedRegexp.matcher( line ) ).find() )
{
status = ScmFileStatus.RENAMED;
- files.add( StringUtils.trim( renamedRegexp.getParen( 1 ) ) );
- files.add( StringUtils.trim( renamedRegexp.getParen( 2 ) ) );
- logger.debug( "RENAMED status for line '" + line + "' files added '" + renamedRegexp.getParen( 1 ) + "' '"
- + renamedRegexp.getParen( 2 ) );
+ files.add( StringUtils.trim( matcher.group( 1 ) ) );
+ files.add( StringUtils.trim( matcher.group( 2 ) ) );
+ logger.debug( "RENAMED status for line '" + line + "' files added '" + matcher.group( 1 ) + "' '"
+ + matcher.group( 2 ) );
}
else
{