You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2014/02/25 18:24:16 UTC

[7/8] git commit: Replace jakarta-regexp with java.util.regexp for maven-scm-provider-perforce

Replace jakarta-regexp with java.util.regexp for maven-scm-provider-perforce


Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/093ca18e
Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/093ca18e
Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/093ca18e

Branch: refs/heads/master
Commit: 093ca18ec31072a526981bc9f98d535d4c9fc39e
Parents: c0efaf5
Author: Emmanuel Bourg <eb...@apache.org>
Authored: Mon Feb 24 22:19:12 2014 +0100
Committer: Emmanuel Bourg <eb...@apache.org>
Committed: Mon Feb 24 22:19:12 2014 +0100

----------------------------------------------------------------------
 .../maven-scm-provider-perforce/pom.xml         |  7 ---
 .../command/add/PerforceAddConsumer.java        | 25 +++-------
 .../command/blame/PerforceBlameConsumer.java    | 16 +++----
 .../command/blame/PerforceFilelogConsumer.java  | 17 ++++---
 .../changelog/PerforceChangeLogConsumer.java    | 38 +++++----------
 .../changelog/PerforceChangesConsumer.java      | 27 +++--------
 .../changelog/PerforceDescribeConsumer.java     | 50 +++++++-------------
 .../checkin/PerforceCheckInConsumer.java        | 37 +++++----------
 .../checkout/PerforceCheckOutCommand.java       | 10 ++--
 .../checkout/PerforceCheckOutConsumer.java      | 12 +++--
 .../command/edit/PerforceEditConsumer.java      | 25 +++-------
 .../command/login/PerforceLoginConsumer.java    |  7 +--
 .../command/remove/PerforceRemoveConsumer.java  | 25 +++-------
 .../command/status/PerforceStatusCommand.java   | 12 +++--
 .../command/tag/PerforceTagConsumer.java        | 29 ++++--------
 .../command/unedit/PerforceUnEditConsumer.java  | 25 +++-------
 .../command/update/PerforceHaveConsumer.java    | 28 ++++-------
 17 files changed, 127 insertions(+), 263 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/pom.xml
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/pom.xml b/maven-scm-providers/maven-scm-provider-perforce/pom.xml
index 7eb6e5d..f87051e 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/pom.xml
+++ b/maven-scm-providers/maven-scm-provider-perforce/pom.xml
@@ -33,13 +33,6 @@
   <name>Maven SCM Perforce Provider</name>
   <description>SCM Provider implementation for Perforce (http://www.perforce.com/).</description>
 
-  <dependencies>
-    <dependency>
-      <groupId>regexp</groupId>
-      <artifactId>regexp</artifactId>
-    </dependency>
-  </dependencies>
-
   <build>
     <plugins>
       <plugin>

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/add/PerforceAddConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/add/PerforceAddConsumer.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/add/PerforceAddConsumer.java
index 31ed10e..be5575b 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/add/PerforceAddConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/add/PerforceAddConsumer.java
@@ -21,11 +21,11 @@ package org.apache.maven.scm.provider.perforce.command.add;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.apache.maven.scm.ScmFile;
 import org.apache.maven.scm.ScmFileStatus;
-import org.apache.regexp.RE;
-import org.apache.regexp.RESyntaxException;
 import org.codehaus.plexus.util.cli.StreamConsumer;
 
 /**
@@ -37,26 +37,12 @@ public class PerforceAddConsumer
     implements StreamConsumer
 {
 
-    private static final String PATTERN = "^([^#]+)#(\\d+) - (.*)";
+    private static final Pattern PATTERN = Pattern.compile( "^([^#]+)#(\\d+) - (.*)" );
 
     private static final String FILE_BEGIN_TOKEN = "//";
 
     private List<ScmFile> additions = new ArrayList<ScmFile>();
 
-    private RE revisionRegexp;
-
-    public PerforceAddConsumer()
-    {
-        try
-        {
-            revisionRegexp = new RE( PATTERN );
-        }
-        catch ( RESyntaxException ignored )
-        {
-            ignored.printStackTrace();
-        }
-    }
-
     public List<ScmFile> getAdditions()
     {
         return additions;
@@ -77,11 +63,12 @@ public class PerforceAddConsumer
             throw new IllegalStateException( "Unknown error: " + line );
         }
 
-        if ( !revisionRegexp.match( line ) )
+        Matcher matcher = PATTERN.matcher( line );
+        if ( !matcher.find() )
         {
             throw new IllegalStateException( "Unknown input: " + line );
         }
 
-        additions.add( new ScmFile( revisionRegexp.getParen( 1 ), ScmFileStatus.ADDED ) );
+        additions.add( new ScmFile( matcher.group( 1 ), ScmFileStatus.ADDED ) );
     }
 }

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/blame/PerforceBlameConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/blame/PerforceBlameConsumer.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/blame/PerforceBlameConsumer.java
index f2391f2..95825cd 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/blame/PerforceBlameConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/blame/PerforceBlameConsumer.java
@@ -22,10 +22,11 @@ package org.apache.maven.scm.provider.perforce.command.blame;
 import org.apache.maven.scm.command.blame.BlameLine;
 import org.apache.maven.scm.log.ScmLogger;
 import org.apache.maven.scm.util.AbstractConsumer;
-import org.apache.regexp.RE;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @author Evgeny Mandrikov
@@ -37,27 +38,22 @@ public class PerforceBlameConsumer
 {
 
     /* 151: line */
-    private static final String LINE_PATTERN = "(\\d+):";
-
-    /**
-     * @see #LINE_PATTERN
-     */
-    private RE lineRegexp;
+    private static final Pattern LINE_PATTERN = Pattern.compile( "(\\d+):" );
 
     private List<BlameLine> lines = new ArrayList<BlameLine>();
 
     public PerforceBlameConsumer( ScmLogger logger )
     {
         super( logger );
-        lineRegexp = new RE( LINE_PATTERN );
     }
 
     /** {@inheritDoc} */
     public void consumeLine( String line )
     {
-        if ( lineRegexp.match( line ) )
+        Matcher matcher = LINE_PATTERN.matcher( line );
+        if ( matcher.find() )
         {
-            String revision = lineRegexp.getParen( 1 ).trim();
+            String revision = matcher.group( 1 ).trim();
 
             lines.add( new BlameLine( null, revision, null ) );
         }

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/blame/PerforceFilelogConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/blame/PerforceFilelogConsumer.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/blame/PerforceFilelogConsumer.java
index dd5b235..ba03b72 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/blame/PerforceFilelogConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/blame/PerforceFilelogConsumer.java
@@ -21,11 +21,12 @@ package org.apache.maven.scm.provider.perforce.command.blame;
 
 import org.apache.maven.scm.log.ScmLogger;
 import org.apache.maven.scm.util.AbstractConsumer;
-import org.apache.regexp.RE;
 
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @author Evgeny Mandrikov
@@ -36,9 +37,7 @@ public class PerforceFilelogConsumer
 {
     private static final String PERFORCE_TIMESTAMP_PATTERN = "yyyy/MM/dd";
 
-    private static final String LINE_PATTERN = "#(\\d+).*on (.*) by (.*)@";
-
-    private RE lineRegexp;
+    private static final Pattern LINE_PATTERN = Pattern.compile( "#(\\d+).*on (.*) by (.*)@" );
 
     private Map<String, Date> dates = new HashMap<String,Date>();
 
@@ -47,17 +46,17 @@ public class PerforceFilelogConsumer
     public PerforceFilelogConsumer( ScmLogger logger )
     {
         super( logger );
-        lineRegexp = new RE( LINE_PATTERN );
     }
 
     /** {@inheritDoc} */
     public void consumeLine( String line )
     {
-        if ( lineRegexp.match( line ) )
+        Matcher matcher = LINE_PATTERN.matcher( line );
+        if ( matcher.find() )
         {
-            String revision = lineRegexp.getParen( 1 );
-            String dateTimeStr = lineRegexp.getParen( 2 );
-            String author = lineRegexp.getParen( 3 );
+            String revision = matcher.group( 1 );
+            String dateTimeStr = matcher.group( 2 );
+            String author = matcher.group( 3 );
 
             Date dateTime = parseDate( dateTimeStr, null, PERFORCE_TIMESTAMP_PATTERN );
 

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumer.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumer.java
index 8aefddc..ae66827 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumer.java
@@ -24,14 +24,14 @@ import org.apache.maven.scm.ChangeSet;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.log.ScmLogger;
 import org.apache.maven.scm.util.AbstractConsumer;
-import org.apache.regexp.RE;
-import org.apache.regexp.RESyntaxException;
 
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
@@ -93,21 +93,19 @@ public class PerforceChangeLogConsumer
      */
     private String repoPath;
 
-    /**
-     * The regular expression used to match header lines
-     */
-    private RE revisionRegexp;
-
     private Date startDate;
 
     private Date endDate;
 
     private String userDatePattern;
 
-    private static final String PATTERN = "^\\.\\.\\. #(\\d+) " + // revision number
+    /**
+     * The regular expression used to match header lines
+     */
+    private static final Pattern PATTERN = Pattern.compile( "^\\.\\.\\. #(\\d+) " + // revision number
         "change (\\d+) .* " + // changelist number
         "on (.*) " + // date
-        "by (.*)@"; // author
+        "by (.*)@" ); // author
 
     public PerforceChangeLogConsumer( String path, Date startDate, Date endDate, String userDatePattern,
                                       ScmLogger logger )
@@ -118,18 +116,6 @@ public class PerforceChangeLogConsumer
         this.endDate = endDate;
         this.userDatePattern = userDatePattern;
         this.repoPath = path;
-
-        try
-        {
-            revisionRegexp = new RE( PATTERN );
-        }
-        catch ( RESyntaxException ignored )
-        {
-            if ( getLogger().isErrorEnabled() )
-            {
-                getLogger().error( "Could not create regexp to parse perforce log file", ignored );
-            }
-        }
     }
 
     // ----------------------------------------------------------------------
@@ -243,14 +229,16 @@ public class PerforceChangeLogConsumer
             return;
         }
 
-        if ( !revisionRegexp.match( line ) )
+        Matcher matcher = PATTERN.matcher( line );
+        if ( !matcher.find() )
         {
             return;
         }
 
         currentChange = new ChangeSet();
-        currentChange.setDate( parseDate( revisionRegexp.getParen( 3 ), userDatePattern, PERFORCE_TIMESTAMP_PATTERN ) );
-        currentChange.setAuthor( revisionRegexp.getParen( 4 ) );
+        currentChange.setRevision( matcher.group( 1 ));
+        currentChange.setDate( parseDate( matcher.group( 3 ), userDatePattern, PERFORCE_TIMESTAMP_PATTERN ) );
+        currentChange.setAuthor( matcher.group( 4 ) );
 
         status = GET_COMMENT_BEGIN;
     }
@@ -265,7 +253,7 @@ public class PerforceChangeLogConsumer
     {
         if ( line.equals( COMMENT_DELIMITER ) )
         {
-            addEntry( currentChange, new ChangeFile( currentFile, revisionRegexp.getParen( 1 ) ) );
+            addEntry( currentChange, new ChangeFile( currentFile, currentChange.getRevision() ) );
 
             status = GET_REVISION;
         }

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangesConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangesConsumer.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangesConsumer.java
index 769f154..d6e0ceb 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangesConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangesConsumer.java
@@ -22,11 +22,11 @@ package org.apache.maven.scm.provider.perforce.command.changelog;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.log.ScmLogger;
 import org.apache.maven.scm.util.AbstractConsumer;
-import org.apache.regexp.RE;
-import org.apache.regexp.RESyntaxException;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
@@ -41,27 +41,13 @@ public class PerforceChangesConsumer
     /**
      * The regular expression used to match header lines
      */
-    private RE revisionRegexp;
-
-    private static final String PATTERN = "^Change (\\d+) " + // changelist number
+    private static final Pattern PATTERN = Pattern.compile( "^Change (\\d+) " + // changelist number
         "on (.*) " + // date
-        "by (.*)@"; // author
+        "by (.*)@" ); // author
 
     public PerforceChangesConsumer( ScmLogger logger )
     {
         super( logger );
-
-        try
-        {
-            revisionRegexp = new RE( PATTERN );
-        }
-        catch ( RESyntaxException ignored )
-        {
-            if ( getLogger().isErrorEnabled() )
-            {
-                getLogger().error( "Could not create regexp to parse perforce log file", ignored );
-            }
-        }
     }
 
     public List<String> getChanges() throws ScmException
@@ -76,9 +62,10 @@ public class PerforceChangesConsumer
     /** {@inheritDoc} */
     public void consumeLine( String line )
     {
-        if( revisionRegexp.match( line ) )
+        Matcher matcher = PATTERN.matcher( line );
+        if( matcher.find() )
         {
-            entries.add( revisionRegexp.getParen( 1 ) );
+            entries.add( matcher.group( 1 ) );
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceDescribeConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceDescribeConsumer.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceDescribeConsumer.java
index dd094cd..a23cbd6 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceDescribeConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceDescribeConsumer.java
@@ -21,14 +21,14 @@ package org.apache.maven.scm.provider.perforce.command.changelog;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.apache.maven.scm.ChangeFile;
 import org.apache.maven.scm.ChangeSet;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.log.ScmLogger;
 import org.apache.maven.scm.util.AbstractConsumer;
-import org.apache.regexp.RE;
-import org.apache.regexp.RESyntaxException;
 
 /**
  * Parse the tagged output from "p4 describe -s [change] [change] [...]".
@@ -102,9 +102,12 @@ public class PerforceDescribeConsumer
 
     private String userDatePattern;
 
-    private static final String REVISION_PATTERN = "^Change (\\d+) " + // changelist number
+    /**
+     * The regular expression used to match header lines
+     */
+    private static final Pattern REVISION_PATTERN = Pattern.compile( "^Change (\\d+) " + // changelist number
         "by (.*)@[^ ]+ " + // author
-        "on (.*)"; // date
+        "on (.*)" ); // date
     /**
      * The comment section ends with a blank line
      */
@@ -114,17 +117,10 @@ public class PerforceDescribeConsumer
      */
     private static final String CHANGELIST_DELIMITER = "";
 
-    private static final String FILE_PATTERN = "^\\.\\.\\. (.*)#(\\d+) ";
-
-    /**
-     * The regular expression used to match header lines
-     */
-    private RE revisionRegexp;
-
     /**
      * The regular expression used to match file paths
      */
-    private RE fileRegexp;
+    private static final Pattern FILE_PATTERN = Pattern.compile( "^\\.\\.\\. (.*)#(\\d+) " );
 
     public PerforceDescribeConsumer( String repoPath, String userDatePattern, ScmLogger logger )
     {
@@ -132,19 +128,6 @@ public class PerforceDescribeConsumer
 
         this.repoPath = repoPath;
         this.userDatePattern = userDatePattern;
-
-        try
-        {
-            revisionRegexp = new RE( REVISION_PATTERN );
-            fileRegexp = new RE( FILE_PATTERN );
-        }
-        catch ( RESyntaxException ignored )
-        {
-            if ( getLogger().isErrorEnabled() )
-            {
-                getLogger().error( "Could not create regexps to parse Perforce descriptions", ignored );
-            }
-        }
     }
 
     // ----------------------------------------------------------------------
@@ -217,19 +200,21 @@ public class PerforceDescribeConsumer
             status = GET_REVISION;
             return;
         }
-        if ( !fileRegexp.match( line ) )
+        
+        Matcher matcher = FILE_PATTERN.matcher( line );
+        if ( !matcher.find() )
         {
             return;
         }
 
-        currentFile = fileRegexp.getParen( 1 );
+        currentFile = matcher.group( 1 );
 
 	// Although Perforce allows files to be submitted anywhere in the
 	// repository in a single changelist, we're only concerned about the
 	// local files.
         if( currentFile.startsWith( repoPath ) ) {
             currentFile = currentFile.substring( repoPath.length() + 1 );
-            addEntry( currentChange, new ChangeFile( currentFile, fileRegexp.getParen( 2 ) ) );
+            addEntry( currentChange, new ChangeFile( currentFile, matcher.group( 2 ) ) );
         }
     }
 
@@ -241,14 +226,15 @@ public class PerforceDescribeConsumer
      */
     private void processGetRevision( String line )
     {
-        if ( !revisionRegexp.match( line ) )
+        Matcher matcher = REVISION_PATTERN.matcher( line );
+        if ( !matcher.find() )
         {
             return;
         }
         currentChange = new ChangeSet();
-        currentRevision = revisionRegexp.getParen( 1 );
-        currentChange.setAuthor( revisionRegexp.getParen( 2 ) );
-        currentChange.setDate( revisionRegexp.getParen( 3 ), userDatePattern );
+        currentRevision = matcher.group( 1 );
+        currentChange.setAuthor( matcher.group( 2 ) );
+        currentChange.setDate( matcher.group( 3 ), userDatePattern );
 
         status = GET_COMMENT_BEGIN;
     }

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInConsumer.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInConsumer.java
index 39dee1e..ff84dd8 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkin/PerforceCheckInConsumer.java
@@ -19,12 +19,11 @@ package org.apache.maven.scm.provider.perforce.command.checkin;
  * under the License.
  */
 
-import org.apache.regexp.RE;
-import org.apache.regexp.RESyntaxException;
 import org.codehaus.plexus.util.cli.StreamConsumer;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.util.regex.Pattern;
 
 /**
  * @author Mike Perham
@@ -34,18 +33,18 @@ import java.io.StringWriter;
 public class PerforceCheckInConsumer
     implements StreamConsumer
 {
-    private static final String CREATED_PATTERN = "^Change \\d+ created .+$";
+    private static final Pattern CREATED_PATTERN = Pattern.compile( "^Change \\d+ created .+$" );
 
-    private static final String SUBMITTING_PATTERN = "^Submitting change \\d+\\.$";
+    private static final Pattern SUBMITTING_PATTERN = Pattern.compile( "^Submitting change \\d+\\.$" );
 
-    private static final String LOCKING_PATTERN = "^Locking \\d+ files \\.\\.\\.$";
+    private static final Pattern LOCKING_PATTERN = Pattern.compile( "^Locking \\d+ files \\.\\.\\.$" );
 
-    private static final String OP_PATTERN = "^[a-z]+ //[^#]+#\\d+$";
+    private static final Pattern OPERATION_PATTERN = Pattern.compile( "^[a-z]+ //[^#]+#\\d+$" );
 
     // SCM-181 Two possible messages:
     // "Change 94821 renamed change 94823 and submitted."
     // "Change 94821 submitted."
-    private static final String COMPLETE_PATTERN = "^Change \\d+ .*submitted.$";
+    private static final Pattern COMPLETE_PATTERN = Pattern.compile( "^Change \\d+ .*submitted.$" );
 
     public static final int STATE_CREATED = 1;
 
@@ -65,20 +64,6 @@ public class PerforceCheckInConsumer
 
     private int currentState = STATE_CREATED;
 
-    private RE opRegexp;
-
-    public PerforceCheckInConsumer()
-    {
-        try
-        {
-            opRegexp = new RE( OP_PATTERN );
-        }
-        catch ( RESyntaxException ignored )
-        {
-            ignored.printStackTrace();
-        }
-    }
-
     /*
      * Change 80835 created with 1 open file(s). Submitting change 80835.
      * Locking 1 files ... add //depot/modules/cordoba/runtime-ear/foo.xml#1
@@ -106,7 +91,7 @@ public class PerforceCheckInConsumer
         switch ( currentState )
         {
             case STATE_CREATED:
-                boolean created = new RE( CREATED_PATTERN ).match( line );
+                boolean created = CREATED_PATTERN.matcher( line ).matches();
                 if ( created )
                 {
                     currentState++;
@@ -115,7 +100,7 @@ public class PerforceCheckInConsumer
                 error( line );
                 break;
             case STATE_SUBMITTING:
-                boolean submitting = new RE( SUBMITTING_PATTERN ).match( line );
+                boolean submitting = SUBMITTING_PATTERN.matcher( line ).matches();
                 if ( submitting )
                 {
                     currentState++;
@@ -124,7 +109,7 @@ public class PerforceCheckInConsumer
                 error( line );
                 break;
             case STATE_LOCKING:
-                boolean locked = new RE( LOCKING_PATTERN ).match( line );
+                boolean locked = LOCKING_PATTERN.matcher( line ).matches();
                 if ( locked )
                 {
                     currentState++;
@@ -133,12 +118,12 @@ public class PerforceCheckInConsumer
                 error( line );
                 break;
             case STATE_OP:
-                boolean operation = opRegexp.match( line );
+                boolean operation = OPERATION_PATTERN.matcher( line ).matches();
                 if ( operation )
                 {
                     break;
                 }
-                else if ( new RE( COMPLETE_PATTERN ).match( line ) )
+                else if ( COMPLETE_PATTERN.matcher( line ).matches() )
                 {
                     currentState++;
                     break;

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java
index c507fab..a64a487 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutCommand.java
@@ -28,7 +28,6 @@ import org.apache.maven.scm.provider.ScmProviderRepository;
 import org.apache.maven.scm.provider.perforce.PerforceScmProvider;
 import org.apache.maven.scm.provider.perforce.command.PerforceCommand;
 import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
-import org.apache.regexp.RE;
 import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.cli.CommandLineException;
@@ -40,6 +39,8 @@ import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStreamReader;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @author Mike Perham
@@ -321,10 +322,11 @@ public class PerforceCheckOutCommand
             while ( ( line = br.readLine() ) != null )
             {
                 getLogger().debug( "Consuming: " + line );
-                RE changeRegexp = new RE( "Change (\\d+)" );
-                if ( changeRegexp.match( line ) )
+                Pattern changeRegexp = Pattern.compile( "Change (\\d+)" );
+                Matcher matcher = changeRegexp.matcher( line );
+                if ( matcher.find() )
                 {
-                    lastChangelistStr = changeRegexp.getParen( 1 );
+                    lastChangelistStr = matcher.group( 1 );
                 }
             }
             br.close();

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutConsumer.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutConsumer.java
index 7742440..871c71e 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/checkout/PerforceCheckOutConsumer.java
@@ -23,11 +23,12 @@ import org.apache.maven.scm.ScmFile;
 import org.apache.maven.scm.ScmFileStatus;
 import org.apache.maven.scm.provider.perforce.command.AbstractPerforceConsumer;
 import org.apache.maven.scm.provider.perforce.command.PerforceVerbMapper;
-import org.apache.regexp.RE;
 import org.codehaus.plexus.util.cli.StreamConsumer;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @author Mike Perham
@@ -46,7 +47,7 @@ public class PerforceCheckOutConsumer
 
     private int currentState = STATE_CLIENTSPEC;
 
-    private RE fileRegexp = new RE( "([^#]+)#\\d+ - ([a-z]+)" );
+    private Pattern fileRegexp = Pattern.compile( "([^#]+)#\\d+ - ([a-z]+)" );
 
     private List<ScmFile> checkedout = new ArrayList<ScmFile>();
 
@@ -99,14 +100,15 @@ public class PerforceCheckOutConsumer
             return;
         }
 
-        if ( currentState != STATE_ERROR && fileRegexp.match( line ) )
+        Matcher matcher;
+        if ( currentState != STATE_ERROR && ( matcher = fileRegexp.matcher( line ) ).find() )
         {
-            String location = fileRegexp.getParen( 1 );
+            String location = matcher.group( 1 );
             if ( location.startsWith( repo ) )
             {
                 location = location.substring( repo.length() + 1 );
             }
-            ScmFileStatus status = PerforceVerbMapper.toStatus( fileRegexp.getParen( 2 ) );
+            ScmFileStatus status = PerforceVerbMapper.toStatus( matcher.group( 2 ) );
             if ( status != null )
             {
                 // there are cases where Perforce prints out something but the file did not

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/edit/PerforceEditConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/edit/PerforceEditConsumer.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/edit/PerforceEditConsumer.java
index 61c7289..5f06f20 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/edit/PerforceEditConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/edit/PerforceEditConsumer.java
@@ -21,12 +21,12 @@ package org.apache.maven.scm.provider.perforce.command.edit;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.apache.maven.scm.ScmFile;
 import org.apache.maven.scm.ScmFileStatus;
 import org.apache.maven.scm.provider.perforce.command.AbstractPerforceConsumer;
-import org.apache.regexp.RE;
-import org.apache.regexp.RESyntaxException;
 import org.codehaus.plexus.util.cli.StreamConsumer;
 
 /**
@@ -38,29 +38,15 @@ public class PerforceEditConsumer
     implements StreamConsumer
 {
 
-    private static final String PATTERN = "^([^#]+)#\\d+ - (.*)";
+    private static final Pattern PATTERN = Pattern.compile( "^([^#]+)#\\d+ - (.*)" );
 
     private static final String FILE_BEGIN_TOKEN = "//";
 
     private List<ScmFile> edits = new ArrayList<ScmFile>();
 
-    private RE revisionRegexp;
-
     private boolean errors = false;
     private StringBuilder errorMessage = new StringBuilder();
 
-    public PerforceEditConsumer()
-    {
-        try
-        {
-            revisionRegexp = new RE( PATTERN );
-        }
-        catch ( RESyntaxException ignored )
-        {
-            ignored.printStackTrace();
-        }
-    }
-
     public List<ScmFile> getEdits()
     {
         return edits;
@@ -81,12 +67,13 @@ public class PerforceEditConsumer
             error( line );
         }
 
-        if ( !revisionRegexp.match( line ) )
+        Matcher matcher = PATTERN.matcher( line );
+        if ( !matcher.matches() )
         {
             error( line );
         }
 
-        edits.add( new ScmFile( revisionRegexp.getParen( 1 ), ScmFileStatus.EDITED ) );
+        edits.add( new ScmFile( matcher.group( 1 ), ScmFileStatus.EDITED ) );
     }
 
     private void error( String line )

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/login/PerforceLoginConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/login/PerforceLoginConsumer.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/login/PerforceLoginConsumer.java
index b7db8bc..bcfbcd9 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/login/PerforceLoginConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/login/PerforceLoginConsumer.java
@@ -19,8 +19,9 @@ package org.apache.maven.scm.provider.perforce.command.login;
  * under the License.
  */
 
+import java.util.regex.Pattern;
+
 import org.apache.maven.scm.provider.perforce.command.AbstractPerforceConsumer;
-import org.apache.regexp.RE;
 import org.codehaus.plexus.util.cli.StreamConsumer;
 
 /**
@@ -33,7 +34,7 @@ public class PerforceLoginConsumer
     implements StreamConsumer
 {
 
-    private static final String LOGIN_PATTERN = "^User [^ ]+ logged in.$";
+    private static final Pattern LOGIN_PATTERN = Pattern.compile( "^User [^ ]+ logged in.$" );
 
     public static final int STATE_LOGIN = 1;
 
@@ -48,7 +49,7 @@ public class PerforceLoginConsumer
         {
             return;
         }
-        if ( currentState != STATE_ERROR && new RE( LOGIN_PATTERN ).match( line ) )
+        if ( currentState != STATE_ERROR && LOGIN_PATTERN.matcher( line ).matches() )
         {
             return;
         }

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/remove/PerforceRemoveConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/remove/PerforceRemoveConsumer.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/remove/PerforceRemoveConsumer.java
index d7f7480..0f63579 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/remove/PerforceRemoveConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/remove/PerforceRemoveConsumer.java
@@ -21,12 +21,12 @@ package org.apache.maven.scm.provider.perforce.command.remove;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.apache.maven.scm.ScmFile;
 import org.apache.maven.scm.ScmFileStatus;
 import org.apache.maven.scm.provider.perforce.command.AbstractPerforceConsumer;
-import org.apache.regexp.RE;
-import org.apache.regexp.RESyntaxException;
 import org.codehaus.plexus.util.cli.StreamConsumer;
 
 /**
@@ -40,26 +40,12 @@ public class PerforceRemoveConsumer
 {
     private static final String FILE_BEGIN_TOKEN = "//";
 
-    private static final String PATTERN = "^([^#]+)#\\d+ - (.*)";
+    private static final Pattern REVISION_PATTERN = Pattern.compile( "^([^#]+)#\\d+ - (.*)" );
 
     private List<ScmFile> removals = new ArrayList<ScmFile>();
 
-    private RE revisionRegexp;
-
     private boolean error = false;
 
-    public PerforceRemoveConsumer()
-    {
-        try
-        {
-            revisionRegexp = new RE( PATTERN );
-        }
-        catch ( RESyntaxException ignored )
-        {
-            ignored.printStackTrace();
-        }
-    }
-
     public List<ScmFile> getRemovals()
     {
         return removals;
@@ -78,12 +64,13 @@ public class PerforceRemoveConsumer
             error( line );
         }
 
-        if ( !revisionRegexp.match( line ) )
+        Matcher matcher = REVISION_PATTERN.matcher( line );
+        if ( !matcher.matches() )
         {
             error( line );
         }
 
-        removals.add( new ScmFile(revisionRegexp.getParen( 1 ), ScmFileStatus.DELETED ) );
+        removals.add( new ScmFile( matcher.group( 1 ), ScmFileStatus.DELETED ) );
     }
 
     private void error( String line )

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/status/PerforceStatusCommand.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/status/PerforceStatusCommand.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/status/PerforceStatusCommand.java
index da5bf92..ed6fc04 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/status/PerforceStatusCommand.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/status/PerforceStatusCommand.java
@@ -29,7 +29,6 @@ import org.apache.maven.scm.provider.perforce.PerforceScmProvider;
 import org.apache.maven.scm.provider.perforce.command.PerforceCommand;
 import org.apache.maven.scm.provider.perforce.command.PerforceVerbMapper;
 import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
-import org.apache.regexp.RE;
 import org.codehaus.plexus.util.cli.CommandLineException;
 import org.codehaus.plexus.util.cli.CommandLineUtils;
 import org.codehaus.plexus.util.cli.Commandline;
@@ -38,6 +37,8 @@ import java.io.File;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @author Mike Perham
@@ -72,17 +73,18 @@ public class PerforceStatusCommand
     {
         List<ScmFile> results = new ArrayList<ScmFile>();
         List<String> files = consumer.getDepotfiles();
-        RE re = new RE( "([^#]+)#\\d+ - ([^ ]+) .*" );
+        Pattern re = Pattern.compile( "([^#]+)#\\d+ - ([^ ]+) .*" );
         for ( Iterator<String> it = files.iterator(); it.hasNext(); )
         {
             String filepath = it.next();
-            if ( !re.match( filepath ) )
+            Matcher matcher = re.matcher( filepath );
+            if ( !matcher.matches() )
             {
                 System.err.println( "Skipping " + filepath );
                 continue;
             }
-            String path = re.getParen( 1 );
-            String verb = re.getParen( 2 );
+            String path = matcher.group( 1 );
+            String verb = matcher.group( 2 );
 
             ScmFile scmfile = new ScmFile( path.substring( repoPath.length() + 1 ).trim(), PerforceVerbMapper
                 .toStatus( verb ) );

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/tag/PerforceTagConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/tag/PerforceTagConsumer.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/tag/PerforceTagConsumer.java
index 7155294..a739cb3 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/tag/PerforceTagConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/tag/PerforceTagConsumer.java
@@ -21,12 +21,12 @@ package org.apache.maven.scm.provider.perforce.command.tag;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.apache.maven.scm.ScmFile;
 import org.apache.maven.scm.ScmFileStatus;
 import org.apache.maven.scm.provider.perforce.command.AbstractPerforceConsumer;
-import org.apache.regexp.RE;
-import org.apache.regexp.RESyntaxException;
 import org.codehaus.plexus.util.cli.StreamConsumer;
 
 /**
@@ -39,9 +39,9 @@ public class PerforceTagConsumer
     implements StreamConsumer
 {
 
-    private static final String LABEL_PATTERN = "^Label ([^ ]+) saved.$";
+    private static final Pattern LABEL_PATTERN = Pattern.compile( "^Label ([^ ]+) saved.$" );
 
-    private static final String SYNC_PATTERN = "^([^#]+)#\\d+ - (.*)";
+    private static final Pattern SYNC_PATTERN = Pattern.compile( "^([^#]+)#\\d+ - (.*)" );
 
     public static final int STATE_CREATE = 1;
 
@@ -53,20 +53,6 @@ public class PerforceTagConsumer
 
     private List<ScmFile> tagged = new ArrayList<ScmFile>();
 
-    private RE syncRegexp;
-
-    public PerforceTagConsumer()
-    {
-        try
-        {
-            syncRegexp = new RE( SYNC_PATTERN );
-        }
-        catch ( RESyntaxException ignored )
-        {
-            ignored.printStackTrace();
-        }
-    }
-
     /**
      * Return a list of Strings formatted like:
      * <p/>
@@ -97,7 +83,7 @@ public class PerforceTagConsumer
         switch ( currentState )
         {
             case STATE_CREATE:
-                if ( !new RE( LABEL_PATTERN ).match( line ) )
+                if ( !LABEL_PATTERN.matcher( line ).matches() )
                 {
                     error( line );
                     break;
@@ -105,12 +91,13 @@ public class PerforceTagConsumer
                 currentState = STATE_SYNC;
                 break;
             case STATE_SYNC:
-                if ( !syncRegexp.match( line ) )
+                Matcher matcher = SYNC_PATTERN.matcher( line );
+                if ( !matcher.matches() )
                 {
                     error( line );
                     break;
                 }
-                tagged.add( new ScmFile( syncRegexp.getParen( 1 ), ScmFileStatus.TAGGED ) );
+                tagged.add( new ScmFile( matcher.group( 1 ), ScmFileStatus.TAGGED ) );
                 break;
             default:
                 error( line );

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/unedit/PerforceUnEditConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/unedit/PerforceUnEditConsumer.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/unedit/PerforceUnEditConsumer.java
index 36be76d..feaceb8 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/unedit/PerforceUnEditConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/unedit/PerforceUnEditConsumer.java
@@ -21,12 +21,12 @@ package org.apache.maven.scm.provider.perforce.command.unedit;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.apache.maven.scm.ScmFile;
 import org.apache.maven.scm.ScmFileStatus;
 import org.apache.maven.scm.provider.perforce.command.AbstractPerforceConsumer;
-import org.apache.regexp.RE;
-import org.apache.regexp.RESyntaxException;
 import org.codehaus.plexus.util.cli.StreamConsumer;
 
 /**
@@ -40,7 +40,7 @@ public class PerforceUnEditConsumer
     implements StreamConsumer
 {
 
-    private static final String PATTERN = "^([^#]+)#\\d+ - (.*)";
+    private static final Pattern REVISION_PATTERN = Pattern.compile( "^([^#]+)#\\d+ - (.*)" );
 
     private static final int STATE_NORMAL = 1;
 
@@ -50,20 +50,6 @@ public class PerforceUnEditConsumer
 
     private List<ScmFile> edits = new ArrayList<ScmFile>();
 
-    private RE revisionRegexp;
-
-    public PerforceUnEditConsumer()
-    {
-        try
-        {
-            revisionRegexp = new RE( PATTERN );
-        }
-        catch ( RESyntaxException ignored )
-        {
-            ignored.printStackTrace();
-        }
-    }
-
     public List<ScmFile> getEdits()
     {
         return edits;
@@ -72,9 +58,10 @@ public class PerforceUnEditConsumer
     /** {@inheritDoc} */
     public void consumeLine( String line )
     {
-        if ( currentState != STATE_ERROR && revisionRegexp.match( line ) )
+        Matcher matcher = REVISION_PATTERN.matcher( line );
+        if ( currentState != STATE_ERROR && matcher.matches() )
         {
-            edits.add( new ScmFile(revisionRegexp.getParen( 1 ), ScmFileStatus.UNKNOWN ) );
+            edits.add( new ScmFile( matcher.group( 1 ), ScmFileStatus.UNKNOWN ) );
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/093ca18e/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/update/PerforceHaveConsumer.java
----------------------------------------------------------------------
diff --git a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/update/PerforceHaveConsumer.java b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/update/PerforceHaveConsumer.java
index d341d9a..553559f 100644
--- a/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/update/PerforceHaveConsumer.java
+++ b/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/update/PerforceHaveConsumer.java
@@ -19,11 +19,12 @@ package org.apache.maven.scm.provider.perforce.command.update;
  * under the License.
  */
 
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.log.ScmLogger;
 import org.apache.maven.scm.util.AbstractConsumer;
-import org.apache.regexp.RE;
-import org.apache.regexp.RESyntaxException;
 
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
@@ -37,27 +38,13 @@ public class PerforceHaveConsumer
     /**
      * The regular expression used to match header lines
      */
-    private RE revisionRegexp;
-
-    private static final String PATTERN = "^Change (\\d+) " + // changelist number
+    private static final Pattern REVISION_PATTERN = Pattern.compile( "^Change (\\d+) " + // changelist number
         "on (.*) " + // date
-        "by (.*)@"; // author
+        "by (.*)@" ); // author
 
     public PerforceHaveConsumer( ScmLogger logger )
     {
         super( logger );
-
-        try
-        {
-            revisionRegexp = new RE( PATTERN );
-        }
-        catch ( RESyntaxException ignored )
-        {
-            if ( getLogger().isErrorEnabled() )
-            {
-                getLogger().error( "Could not create regexp to parse perforce log file", ignored );
-            }
-        }
     }
 
     public String getHave() throws ScmException
@@ -72,9 +59,10 @@ public class PerforceHaveConsumer
     /** {@inheritDoc} */
     public void consumeLine( String line )
     {
-        if( revisionRegexp.match( line ) )
+        Matcher matcher = REVISION_PATTERN.matcher( line );
+        if( matcher.find() )
         {
-            have = revisionRegexp.getParen( 1 );
+            have = matcher.group( 1 );
         }
     }
 }