Repository: maven-scm Updated Branches: refs/heads/master 03b1907a6 -> 29c1d1d42
Replace jakarta-regexp with java.util.regexp for maven-scm-provider-svnexe Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/fb3714ca Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/fb3714ca Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/fb3714ca Branch: refs/heads/master Commit: fb3714caf721668104170abbe010821e029f2758 Parents: 03b1907 Author: Emmanuel Bourg <ebo...@apache.org> Authored: Mon Feb 24 17:00:23 2014 +0100 Committer: Emmanuel Bourg <ebo...@apache.org> Committed: Mon Feb 24 17:10:43 2014 +0100 ---------------------------------------------------------------------- .../maven-scm-provider-svnexe/pom.xml | 4 -- .../svnexe/command/blame/SvnBlameConsumer.java | 64 +++++--------------- .../command/changelog/SvnChangeLogConsumer.java | 60 +++++++++--------- 3 files changed, 49 insertions(+), 79 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/maven-scm/blob/fb3714ca/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml ---------------------------------------------------------------------- diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml index 8ee891f..d884a07 100644 --- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml +++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/pom.xml @@ -45,10 +45,6 @@ <artifactId>maven-scm-provider-svn-commons</artifactId> </dependency> <dependency> - <groupId>regexp</groupId> - <artifactId>regexp</artifactId> - </dependency> - <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> </dependency> http://git-wip-us.apache.org/repos/asf/maven-scm/blob/fb3714ca/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/blame/SvnBlameConsumer.java ---------------------------------------------------------------------- diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/blame/SvnBlameConsumer.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/blame/SvnBlameConsumer.java index f6d5fbe..d73cf8b 100644 --- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/blame/SvnBlameConsumer.java +++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/blame/SvnBlameConsumer.java @@ -22,8 +22,6 @@ package org.apache.maven.scm.provider.svn.svnexe.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 org.apache.regexp.RESyntaxException; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -31,6 +29,8 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.TimeZone; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * @author Evgeny Mandrikov @@ -42,33 +42,14 @@ public class SvnBlameConsumer { private static final String SVN_TIMESTAMP_PATTERN = "yyyy-MM-dd HH:mm:ss"; - private static final String LINE_PATTERN = "line-number=\"(.*)\""; + private static final Pattern LINE_PATTERN = Pattern.compile( "line-number=\"(.*)\"" ); - private static final String REVISION_PATTERN = "revision=\"(.*)\""; + private static final Pattern REVISION_PATTERN = Pattern.compile( "revision=\"(.*)\"" ); - private static final String AUTHOR_PATTERN = "<author>(.*)</author>"; + private static final Pattern AUTHOR_PATTERN = Pattern.compile( "<author>(.*)</author>" ); - private static final String DATE_PATTERN = "<date>(.*)T(.*)\\.(.*)Z</date>"; + private static final Pattern DATE_PATTERN = Pattern.compile( "<date>(.*)T(.*)\\.(.*)Z</date>" ); - /** - * @see #LINE_PATTERN - */ - private RE lineRegexp; - - /** - * @see #REVISION_PATTERN - */ - private RE revisionRegexp; - - /** - * @see #AUTHOR_PATTERN - */ - private RE authorRegexp; - - /** - * @see #DATE_PATTERN - */ - private RE dateRegexp; private SimpleDateFormat dateFormat; @@ -80,20 +61,6 @@ public class SvnBlameConsumer dateFormat = new SimpleDateFormat( SVN_TIMESTAMP_PATTERN ); dateFormat.setTimeZone( TimeZone.getTimeZone( "UTC" ) ); - - try - { - lineRegexp = new RE( LINE_PATTERN ); - revisionRegexp = new RE( REVISION_PATTERN ); - authorRegexp = new RE( AUTHOR_PATTERN ); - dateRegexp = new RE( DATE_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 ); - } } private int lineNumber; @@ -104,23 +71,24 @@ public class SvnBlameConsumer public void consumeLine( String line ) { - if ( lineRegexp.match( line ) ) + Matcher matcher; + if ( ( matcher = LINE_PATTERN.matcher( line ) ).matches() ) { - String lineNumberStr = lineRegexp.getParen( 1 ); + String lineNumberStr = matcher.group( 1 ); lineNumber = Integer.parseInt( lineNumberStr ); } - else if ( revisionRegexp.match( line ) ) + else if ( ( matcher = REVISION_PATTERN.matcher( line ) ).matches() ) { - revision = revisionRegexp.getParen( 1 ); + revision = matcher.group( 1 ); } - else if ( authorRegexp.match( line ) ) + else if ( ( matcher = AUTHOR_PATTERN.matcher( line ) ).matches() ) { - author = authorRegexp.getParen( 1 ); + author = matcher.group( 1 ); } - else if ( dateRegexp.match( line ) ) + else if ( ( matcher = DATE_PATTERN.matcher( line ) ).matches() ) { - String date = dateRegexp.getParen( 1 ); - String time = dateRegexp.getParen( 2 ); + String date = matcher.group( 1 ); + String time = matcher.group( 2 ); Date dateTime = parseDateTime( date + " " + time ); lines.add( new BlameLine( dateTime, revision, author ) ); if ( getLogger().isDebugEnabled() ) http://git-wip-us.apache.org/repos/asf/maven-scm/blob/fb3714ca/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogConsumer.java ---------------------------------------------------------------------- diff --git a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogConsumer.java b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogConsumer.java index 76d0271..43dd2ae 100644 --- a/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogConsumer.java +++ b/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/changelog/SvnChangeLogConsumer.java @@ -25,11 +25,12 @@ import org.apache.maven.scm.ScmFileStatus; import org.apache.maven.scm.log.ScmLogger; import org.apache.maven.scm.provider.svn.SvnChangeSet; import org.apache.maven.scm.util.AbstractConsumer; -import org.apache.regexp.RE; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * @author <a href="mailto:eveni...@apache.org">Emmanuel Venisse</a> @@ -61,13 +62,13 @@ public class SvnChangeLogConsumer /** * There is always action and affected path; when copying/moving, recognize also original path and revision */ - private static final RE FILE_PATTERN = new RE( "^\\s\\s\\s([:upper:])\\s(.+)$" ); + private static final Pattern FILE_PATTERN = Pattern.compile("^\\s\\s\\s([A-Z])\\s(.+)$"); /** * This matches the 'original file info' part of the complete file line. * Note the use of [:alpha:] instead of literal 'from' - this is meant to allow non-English localizations. */ - private static final RE ORIG_FILE_PATTERN = new RE( "\\([:alpha:]+ (.+):(\\d+)\\)" ); + private static final Pattern ORIG_FILE_PATTERN = Pattern.compile( "\\([A-Za-z]+ (.+):(\\d+)\\)" ); /** * The file section ends with a blank line @@ -108,7 +109,7 @@ public class SvnChangeLogConsumer /** * The regular expression used to match header lines */ - private static final RE HEADER_REG_EXP = new RE( "^(.+) \\| (.+) \\| (.+) \\|.*$" ); + private static final Pattern HEADER_REG_EXP = Pattern.compile( "^(.+) \\| (.+) \\| (.+) \\|.*$" ); private static final int REVISION_GROUP = 1; @@ -116,13 +117,13 @@ public class SvnChangeLogConsumer private static final int DATE_GROUP = 3; - private static final RE REVISION_REG_EXP1 = new RE( "rev (\\d+):" ); + private static final Pattern REVISION_REG_EXP1 = Pattern.compile( "rev (\\d+):" ); - private static final RE REVISION_REG_EXP2 = new RE( "r(\\d+)" ); + private static final Pattern REVISION_REG_EXP2 = Pattern.compile( "r(\\d+)" ); - private static final RE DATE_REG_EXP = new RE( "(\\d+-\\d+-\\d+ " + // date 2002-08-24 + private static final Pattern DATE_REG_EXP = Pattern.compile( "(\\d+-\\d+-\\d+ " + // date 2002-08-24 "\\d+:\\d+:\\d+) " + // time 16:01:00 - "([\\-+])(\\d\\d)(\\d\\d)" ); // gmt offset -0400);) + "([\\-+])(\\d\\d)(\\d\\d)" ); // gmt offset -0400);) private final String userDateFormat; @@ -185,19 +186,20 @@ public class SvnChangeLogConsumer */ private void processGetHeader( String line ) { - if ( !HEADER_REG_EXP.match( line ) ) + Matcher matcher = HEADER_REG_EXP.matcher( line ); + if ( !matcher.matches() ) { // The header line is not found. Intentionally do nothing. return; } - currentRevision = getRevision( HEADER_REG_EXP.getParen( REVISION_GROUP ) ); + currentRevision = getRevision( matcher.group( REVISION_GROUP ) ); currentChange = new SvnChangeSet(); - currentChange.setAuthor( HEADER_REG_EXP.getParen( AUTHOR_GROUP ) ); + currentChange.setAuthor( matcher.group( AUTHOR_GROUP ) ); - currentChange.setDate( getDate( HEADER_REG_EXP.getParen( DATE_GROUP ) ) ); + currentChange.setDate( getDate( matcher.group( DATE_GROUP ) ) ); currentChange.setRevision( currentRevision ); @@ -212,13 +214,14 @@ public class SvnChangeLogConsumer */ private String getRevision( final String revisionOutput ) { - if ( REVISION_REG_EXP1.match( revisionOutput ) ) + Matcher matcher; + if ( ( matcher = REVISION_REG_EXP1.matcher( revisionOutput ) ).matches() ) { - return REVISION_REG_EXP1.getParen( 1 ); + return matcher.group( 1 ); } - else if ( REVISION_REG_EXP2.match( revisionOutput ) ) + else if ( ( matcher = REVISION_REG_EXP2.matcher( revisionOutput )).matches() ) { - return REVISION_REG_EXP2.getParen( 1 ); + return matcher.group( 1 ); } else { @@ -236,9 +239,10 @@ public class SvnChangeLogConsumer */ private void processGetFile( String line ) { - if ( FILE_PATTERN.match( line ) ) + Matcher matcher = FILE_PATTERN.matcher( line ); + if ( matcher.matches() ) { - final String fileinfo = FILE_PATTERN.getParen( 2 ); + final String fileinfo = matcher.group( 2 ); String name = fileinfo; String originalName = null; String originalRev = null; @@ -246,15 +250,16 @@ public class SvnChangeLogConsumer if ( n > 1 && fileinfo.endsWith( ")" ) ) { final String origFileInfo = fileinfo.substring( n ); - if ( ORIG_FILE_PATTERN.match( origFileInfo ) ) + Matcher matcher2 = ORIG_FILE_PATTERN.matcher( origFileInfo ); + if ( matcher2.find() ) { // if original file is present, we must extract the affected one from the beginning name = fileinfo.substring( 0, n ); - originalName = ORIG_FILE_PATTERN.getParen( 1 ); - originalRev = ORIG_FILE_PATTERN.getParen( 2 ); + originalName = matcher2.group( 1 ); + originalRev = matcher2.group( 2 ); } } - final String actionStr = FILE_PATTERN.getParen( 1 ); + final String actionStr = matcher.group( 1 ); final ScmFileStatus action; if ( "A".equals( actionStr ) ) { @@ -327,18 +332,19 @@ public class SvnChangeLogConsumer */ private Date getDate( final String dateOutput ) { - if ( !DATE_REG_EXP.match( dateOutput ) ) + Matcher matcher = DATE_REG_EXP.matcher( dateOutput ); + if ( !matcher.find() ) { throw new IllegalOutputException( dateOutput ); } final StringBuilder date = new StringBuilder(); - date.append( DATE_REG_EXP.getParen( 1 ) ); + date.append( matcher.group( 1 ) ); date.append( " GMT" ); - date.append( DATE_REG_EXP.getParen( 2 ) ); - date.append( DATE_REG_EXP.getParen( 3 ) ); + date.append( matcher.group( 2 ) ); + date.append( matcher.group( 3 ) ); date.append( ':' ); - date.append( DATE_REG_EXP.getParen( 4 ) ); + date.append( matcher.group( 4 ) ); return parseDate( date.toString(), userDateFormat, SVN_TIMESTAMP_PATTERN ); }