You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm-commits@maven.apache.org by ev...@apache.org on 2006/02/02 13:00:38 UTC
svn commit: r374369 - in /maven/scm/trunk:
maven-scm-api/src/main/java/org/apache/maven/scm/
maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/
maven-scm-api/src/main/java/org/apache/maven/scm/provider/
maven-scm-api/src/main/java/org/...
Author: evenisse
Date: Thu Feb 2 03:59:40 2006
New Revision: 374369
URL: http://svn.apache.org/viewcvs?rev=374369&view=rev
Log:
Allow to define date format in changelog output parsed by changelog consumer.
Added:
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/util/
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/util/AbstractConsumer.java (with props)
Modified:
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/ChangeSet.java
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java
maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java
maven/scm/trunk/maven-scm-client/pom.xml
maven/scm/trunk/maven-scm-plugin/pom.xml
maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConsumer.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/add/BazaarAddConsumer.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/status/BazaarStatusConsumer.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogConsumer.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogConsumer.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogConsumerTest.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/changelog/LocalChangeLogCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumer.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/test/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumerTest.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogConsumer.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogConsumerTest.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogCommand.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumer.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumerTest.java
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/ChangeSet.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/ChangeSet.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/ChangeSet.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/ChangeSet.java Thu Feb 2 03:59:40 2006
@@ -17,6 +17,7 @@
*/
import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.codehaus.plexus.util.StringUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -94,9 +95,9 @@
private List files;
- public ChangeSet( String date, String comment, String author, List files )
+ public ChangeSet( String date, String userDatePattern, String comment, String author, List files )
{
- setDate( date );
+ setDate( date, userDatePattern );
setAuthor( author );
@@ -227,19 +228,59 @@
*/
public void setDate( String date )
{
+ setDate( date, null );
+ }
+
+ /**
+ * Setter for property date that takes a string and parses it
+ *
+ * @param date - a string in yyyy/MM/dd HH:mm:ss format
+ * @param userDatePattern - pattern of date
+ */
+ public void setDate( String date, String userDatePattern )
+ {
try
{
- this.date = TIMESTAMP_FORMAT_1.parse( date );
+ if ( !StringUtils.isEmpty( userDatePattern ) )
+ {
+ SimpleDateFormat format = new SimpleDateFormat( userDatePattern );
+ this.date = format.parse( date );
+ }
+ else
+ {
+ this.date = TIMESTAMP_FORMAT_1.parse( date );
+ }
}
catch ( ParseException e )
{
- try
+ if ( !StringUtils.isEmpty( userDatePattern ) )
{
- this.date = TIMESTAMP_FORMAT_2.parse( date );
+ try
+ {
+ this.date = TIMESTAMP_FORMAT_2.parse( date );
+ }
+ catch ( ParseException pe )
+ {
+ try
+ {
+ this.date = TIMESTAMP_FORMAT_2.parse( date );
+ }
+ catch ( ParseException ex )
+ {
+ throw new IllegalArgumentException( "Unable to parse date: " + date );
+ }
+ }
}
- catch ( ParseException ex )
+ else
{
- throw new IllegalArgumentException( "Unable to parse CVS date: " + date );
+ try
+ {
+ this.date = TIMESTAMP_FORMAT_2.parse( date );
+ }
+ catch ( ParseException ex )
+ {
+ throw new IllegalArgumentException( "Unable to parse date: " + date );
+ }
}
}
}
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/CommandParameter.java Thu Feb 2 03:59:40 2006
@@ -42,6 +42,8 @@
public final static CommandParameter END_TAG = new CommandParameter( "endTag" );
+ public final static CommandParameter CHANGELOG_DATE_PATTERN = new CommandParameter( "changelogDatePattern" );
+
public final static CommandParameter TAG = new CommandParameter( "tag" );
public final static CommandParameter FILE = new CommandParameter( "file" );
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/changelog/AbstractChangeLogCommand.java Thu Feb 2 03:59:40 2006
@@ -36,11 +36,12 @@
implements ChangeLogCommand
{
protected abstract ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repository, ScmFileSet fileSet,
- Date startDate, Date endDate, String branch )
+ Date startDate, Date endDate, String branch,
+ String datePattern )
throws ScmException;
protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repository, ScmFileSet fileSet,
- String startTag, String endTag )
+ String startTag, String endTag, String datePattern )
throws ScmException
{
throw new ScmException( "Unsupported method for this provider." );
@@ -62,9 +63,11 @@
String endTag = parameters.getString( CommandParameter.END_TAG, null );
+ String datePattern = parameters.getString( CommandParameter.CHANGELOG_DATE_PATTERN, null );
+
if ( !StringUtils.isEmpty( startTag ) )
{
- return executeChangeLogCommand( repository, fileSet, startTag, endTag );
+ return executeChangeLogCommand( repository, fileSet, startTag, endTag, datePattern );
}
else
{
@@ -85,7 +88,7 @@
endDate = new Date( System.currentTimeMillis() + (long) 1 * 24 * 60 * 60 * 1000 );
}
- return executeChangeLogCommand( repository, fileSet, startDate, endDate, branch );
+ return executeChangeLogCommand( repository, fileSet, startDate, endDate, branch, datePattern );
}
}
}
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java Thu Feb 2 03:59:40 2006
@@ -116,6 +116,15 @@
int numDays, String branch )
throws ScmException
{
+ return changeLog( repository, fileSet, startDate, endDate, numDays, branch, null);
+ }
+ /**
+ * @see org.apache.maven.scm.provider.ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, java.util.Date, java.util.Date, int, java.lang.String, java.lang.String)
+ */
+ public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
+ int numDays, String branch, String datePattern )
+ throws ScmException
+ {
login( repository, fileSet );
CommandParameters parameters = new CommandParameters();
@@ -128,6 +137,8 @@
parameters.setString( CommandParameter.BRANCH, branch );
+ parameters.setString( CommandParameter.CHANGELOG_DATE_PATTERN, datePattern );
+
return changelog( repository, fileSet, parameters );
}
@@ -137,6 +148,14 @@
public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag )
throws ScmException
{
+ return changeLog( repository, fileSet, startTag, endTag, null);
+ }
+ /**
+ * @see org.apache.maven.scm.provider.ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, java.lang.String, java.lang.String, java.lang.String)
+ */
+ public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag, String datePattern )
+ throws ScmException
+ {
login( repository, fileSet );
CommandParameters parameters = new CommandParameters();
@@ -145,6 +164,8 @@
parameters.setString( CommandParameter.END_TAG, endTag );
+ parameters.setString( CommandParameter.CHANGELOG_DATE_PATTERN, datePattern );
+
return changelog( repository, fileSet, parameters );
}
@@ -235,9 +256,7 @@
protected LoginScmResult login( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
throws ScmException
{
- LoginScmResult result = new LoginScmResult( null, null, null, true );
-
- return result;
+ return new LoginScmResult( null, null, null, true );
}
/**
@@ -307,12 +326,22 @@
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag )
throws ScmException
{
+ return update( repository, fileSet, tag, "");
+ }
+ /**
+ * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, java.lang.String, java.lang.String)
+ */
+ public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, String datePattern )
+ throws ScmException
+ {
login( repository, fileSet );
CommandParameters parameters = new CommandParameters();
parameters.setString( CommandParameter.TAG, tag );
+ parameters.setString( CommandParameter.CHANGELOG_DATE_PATTERN, datePattern );
+
return update( repository, fileSet, parameters );
}
@@ -322,6 +351,15 @@
public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate )
throws ScmException
{
+ return update( repository, fileSet, tag, lastUpdate, null);
+ }
+
+ /**
+ * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, java.lang.String, java.util.Date, java.lang.String)
+ */
+ public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate, String datePattern )
+ throws ScmException
+ {
login( repository, fileSet );
CommandParameters parameters = new CommandParameters();
@@ -333,6 +371,8 @@
parameters.setDate( CommandParameter.START_DATE, lastUpdate );
}
+ parameters.setString( CommandParameter.CHANGELOG_DATE_PATTERN, datePattern );
+
return update( repository, fileSet, parameters );
}
@@ -396,7 +436,7 @@
}
/**
- * @see org.apache.maven.scm.provider.ScmProvider#makeProviderScmRepository(java.io.File, java.lang.String)
+ * @see org.apache.maven.scm.provider.ScmProvider#makeProviderScmRepository(java.io.File)
*/
public ScmProviderRepository makeProviderScmRepository( File path )
throws ScmRepositoryException, UnknownRepositoryStructure
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java Thu Feb 2 03:59:40 2006
@@ -90,6 +90,25 @@
throws ScmException;
/**
+ * Returns the changes that have happend in the source control system in a certain period of time.
+ * This can be adding, removing, updating, ... of files
+ *
+ * @param repository the source control system
+ * @param fileSet the files to know the changes about. Implementations can also give the changes
+ * from the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} downwards.
+ * @param startDate the start date of the period
+ * @param endDate the end date of the period
+ * @param numDays
+ * @param branch
+ * @param datePattern the date pattern use in changelog output returned by scm tool
+ * @return
+ * @throws ScmException
+ */
+ ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
+ int numDays, String branch, String datePattern )
+ throws ScmException;
+
+ /**
* Returns the changes that have happend in the source control system between two tags.
* This can be adding, removing, updating, ... of files
*
@@ -105,6 +124,23 @@
throws ScmException;
/**
+ * Returns the changes that have happend in the source control system between two tags.
+ * This can be adding, removing, updating, ... of files
+ *
+ * @param repository the source control system
+ * @param fileSet the files to know the changes about. Implementations can also give the changes
+ * from the {@link org.apache.maven.scm.ScmFileSet#getBasedir()} downwards.
+ * @param startTag the start tag
+ * @param endTag the end tag
+ * @param datePattern the date pattern use in changelog output returned by scm tool
+ * @return
+ * @throws ScmException
+ */
+ ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag,
+ String datePattern )
+ throws ScmException;
+
+ /**
* Save the changes you have done into the repository. This will create a new version of the file or
* directory in the repository.
*
@@ -186,6 +222,19 @@
/**
* Updates the copy on the local machine with the changes in the repository
*
+ * @param repository the source control system
+ * @param fileSet location of your local copy
+ * @param tag use the version defined by the tag
+ * @param datePattern the date pattern use in changelog output returned by scm tool
+ * @return
+ * @throws ScmException
+ */
+ UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, String datePattern )
+ throws ScmException;
+
+ /**
+ * Updates the copy on the local machine with the changes in the repository
+ *
* @param repository the source control system
* @param fileSet location of your local copy
* @param tag use the version defined by the tag
@@ -194,6 +243,21 @@
* @throws ScmException
*/
UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate )
+ throws ScmException;
+
+ /**
+ * Updates the copy on the local machine with the changes in the repository
+ *
+ * @param repository the source control system
+ * @param fileSet location of your local copy
+ * @param tag use the version defined by the tag
+ * @param lastUpdate Date of last update
+ * @param datePattern the date pattern use in changelog output returned by scm tool
+ * @return
+ * @throws ScmException
+ */
+ UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate,
+ String datePattern )
throws ScmException;
/**
Added: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/util/AbstractConsumer.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/util/AbstractConsumer.java?rev=374369&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/util/AbstractConsumer.java (added)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/util/AbstractConsumer.java Thu Feb 2 03:59:40 2006
@@ -0,0 +1,91 @@
+package org.apache.maven.scm.util;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+import org.apache.maven.scm.log.ScmLogger;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.cli.StreamConsumer;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public abstract class AbstractConsumer
+ implements StreamConsumer
+{
+ private ScmLogger logger;
+
+ public AbstractConsumer( ScmLogger logger )
+ {
+ setLogger( logger );
+ }
+
+ public ScmLogger getLogger()
+ {
+ return logger;
+ }
+
+ public void setLogger( ScmLogger logger )
+ {
+ this.logger = logger;
+ }
+
+ /**
+ * Converts the date timestamp from the output into a date object.
+ *
+ * @return A date representing the timestamp of the log entry.
+ */
+ protected Date parseDate( String date, String userPattern, String defaultPattern )
+ {
+ SimpleDateFormat format;
+
+ if ( !StringUtils.isEmpty( userPattern ) )
+ {
+ format = new SimpleDateFormat( userPattern );
+ }
+ else
+ {
+ if ( !StringUtils.isEmpty( defaultPattern ) )
+ {
+ format = new SimpleDateFormat( defaultPattern );
+ }
+ else
+ {
+ format = new SimpleDateFormat();
+ }
+ }
+
+ try
+ {
+ return format.parse( date );
+ }
+ catch ( ParseException e )
+ {
+ if ( getLogger() != null )
+ {
+ getLogger().error( "ParseException Caught", e );
+ }
+
+ return null;
+ }
+ }
+}
Propchange: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/util/AbstractConsumer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/util/AbstractConsumer.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: maven/scm/trunk/maven-scm-client/pom.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-client/pom.xml?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-client/pom.xml (original)
+++ maven/scm/trunk/maven-scm-client/pom.xml Thu Feb 2 03:59:40 2006
@@ -11,6 +11,11 @@
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-provider-bazaar</artifactId>
+ <version>1.0-beta-3-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-perforce</artifactId>
<version>1.0-beta-3-SNAPSHOT</version>
</dependency>
Modified: maven/scm/trunk/maven-scm-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-plugin/pom.xml?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-plugin/pom.xml (original)
+++ maven/scm/trunk/maven-scm-plugin/pom.xml Thu Feb 2 03:59:40 2006
@@ -40,6 +40,11 @@
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
+ <artifactId>maven-scm-provider-bazaar</artifactId>
+ <version>1.0-beta-3-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-perforce</artifactId>
<version>1.0-beta-3-SNAPSHOT</version>
</dependency>
Modified: maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java (original)
+++ maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ChangeLogMojo.java Thu Feb 2 03:59:40 2006
@@ -56,6 +56,13 @@
*/
private String endDate;
+ /**
+ * Date Format in changelog output of scm tool
+ *
+ * @parameter expression="${dateFormat}"
+ */
+ private String dateFormat;
+
private SimpleDateFormat localFormat = new SimpleDateFormat();
public void execute()
@@ -69,7 +76,7 @@
ScmProvider provider = getScmManager().getProviderByRepository( repository );
ChangeLogScmResult result = provider.changeLog( repository, getFileSet(), this.parseDate( this.startDate ),
- this.parseDate( this.endDate ), 0, null );
+ this.parseDate( this.endDate ), 0, null, dateFormat );
checkResult( result );
ChangeLogSet changeLogSet = result.getChangeLog();
@@ -77,6 +84,7 @@
for ( Iterator i = changeLogSet.getChangeSets().iterator(); i.hasNext(); )
{
ChangeSet changeSet = (ChangeSet) i.next();
+
System.out.println( changeSet.toString() );
}
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConsumer.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConsumer.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConsumer.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/BazaarConsumer.java Thu Feb 2 03:59:40 2006
@@ -17,6 +17,7 @@
*/
import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.util.AbstractConsumer;
import org.apache.maven.scm.log.ScmLogger;
import org.codehaus.plexus.util.cli.StreamConsumer;
@@ -33,7 +34,7 @@
* @author <a href="mailto:torbjorn@smorgrav.org">Torbjørn Eikli Smørgrav</a>
*/
public class BazaarConsumer
- implements StreamConsumer
+ extends AbstractConsumer
{
/**
@@ -57,14 +58,9 @@
messages.put( "bzr: ERROR:", "ERROR" );
}
- /**
- * Shared logger with all consumer implementations
- */
- protected final ScmLogger logger;
-
public BazaarConsumer( ScmLogger logger )
{
- this.logger = logger;
+ super( logger);
}
public void doConsume( ScmFileStatus status, String trimmedLine )
@@ -74,7 +70,7 @@
public void consumeLine( String line )
{
- logger.debug( line );
+ getLogger().debug( line );
String trimmedLine = line.trim();
String statusStr = processInputForKnownIdentifiers( trimmedLine );
@@ -123,11 +119,11 @@
String message = line.substring( prefix.length() );
if ( messages.get( prefix ).equals( "WARNING" ) )
{
- logger.warn( message );
+ getLogger().warn( message );
}
else
{
- logger.error( message );
+ getLogger().error( message );
}
return true;
}
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/add/BazaarAddConsumer.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/add/BazaarAddConsumer.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/add/BazaarAddConsumer.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/add/BazaarAddConsumer.java Thu Feb 2 03:59:40 2006
@@ -49,12 +49,12 @@
File tmpFile = new File( workingDir, trimmedLine );
if ( !tmpFile.exists() )
{
- logger.warn( "Not a file: " + tmpFile + ". Ignored" );
+ getLogger().warn( "Not a file: " + tmpFile + ". Ignored" );
}
else
{
ScmFile scmFile = new ScmFile( trimmedLine, ScmFileStatus.ADDED );
- logger.info( scmFile.toString() );
+ getLogger().info( scmFile.toString() );
addedFiles.add( scmFile );
}
}
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommand.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogCommand.java Thu Feb 2 03:59:40 2006
@@ -40,11 +40,13 @@
implements BazaarCommand
{
protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet,
- Date startDate, Date endDate, String branch )
+ Date startDate, Date endDate, String branch,
+ String datePattern )
throws ScmException
{
String[] cmd = new String[]{LOG_CMD, VERBOSE_OPTION};
- BazaarChangeLogConsumer consumer = new BazaarChangeLogConsumer( getLogger(), fileSet.getBasedir() );
+ BazaarChangeLogConsumer consumer =
+ new BazaarChangeLogConsumer( getLogger(), datePattern, fileSet.getBasedir() );
ScmResult result = BazaarUtils.execute( consumer, getLogger(), fileSet.getBasedir(), cmd );
List logEntries = consumer.getModifications();
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/changelog/BazaarChangeLogConsumer.java Thu Feb 2 03:59:40 2006
@@ -23,8 +23,6 @@
import org.apache.maven.scm.provider.bazaar.command.BazaarConsumer;
import java.io.File;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -36,7 +34,7 @@
extends BazaarConsumer
{
- private static final SimpleDateFormat BAZAAR_TIME_FORMAT = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss Z" );
+ private static final String BAZAAR_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss Z";
private static final String START_LOG_TAG = "-----";
@@ -60,15 +58,19 @@
private StringBuffer currentComment;
+ private String userDatePattern;
+
/**
* null means not parsing message nor files, UNKNOWN means parsing message
*/
private ScmFileStatus currentStatus = null;
- public BazaarChangeLogConsumer( ScmLogger logger, File workingDir )
+ public BazaarChangeLogConsumer( ScmLogger logger, String userDatePattern, File workingDir )
{
super( logger );
+ this.userDatePattern = userDatePattern;
+
this.workingDir = workingDir;
}
@@ -79,7 +81,7 @@
public void doConsume( ScmFileStatus status, String line )
{
- String tmpLine = new String( line );
+ String tmpLine = line;
// Parse line
if ( line.startsWith( START_LOG_TAG ) )
@@ -106,15 +108,8 @@
{
tmpLine = line.substring( TIME_STAMP_TOKEN.length() + 3 );
tmpLine = tmpLine.trim();
- try
- {
- Date date = BAZAAR_TIME_FORMAT.parse( tmpLine );
- currentChange.setDate( date );
- }
- catch ( ParseException e )
- {
- logger.warn( "Could not figure out of date: " + tmpLine );
- }
+ Date date = parseDate( tmpLine, userDatePattern, BAZAAR_TIME_PATTERN );
+ currentChange.setDate( date );
}
else if ( line.startsWith( MESSAGE_TOKEN ) )
{
@@ -144,7 +139,7 @@
}
else
{
- logger.warn( "Could not figure out of: " + line );
+ getLogger().warn( "Could not figure out of: " + line );
}
}
}
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/status/BazaarStatusConsumer.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/status/BazaarStatusConsumer.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/status/BazaarStatusConsumer.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-bazaar/src/main/java/org/apache/maven/scm/provider/bazaar/command/status/BazaarStatusConsumer.java Thu Feb 2 03:59:40 2006
@@ -63,16 +63,16 @@
File tmpFile = new File( workingDir, trimmedLine );
if ( !tmpFile.exists() )
{
- logger.info( "Not a file: " + tmpFile + ". Ignoring" );
+ getLogger().info( "Not a file: " + tmpFile + ". Ignoring" );
}
else if ( tmpFile.isDirectory() )
{
- logger.info( "New directory added: " + tmpFile );
+ getLogger().info( "New directory added: " + tmpFile );
}
else
{
ScmFile scmFile = new ScmFile( trimmedLine, currentState );
- logger.info( scmFile.toString() );
+ getLogger().info( scmFile.toString() );
repositoryStatus.add( scmFile );
}
}
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogCommand.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogCommand.java Thu Feb 2 03:59:40 2006
@@ -81,13 +81,14 @@
// ----------------------------------------------------------------------
protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repository, ScmFileSet fileSet,
- Date startDate, Date endDate, String branch )
+ Date startDate, Date endDate, String branch,
+ String datePattern )
throws ScmException
{
getLogger().debug( "executing changelog command..." );
Commandline cl = createCommandLine( fileSet.getBasedir(), branch, startDate );
- ClearCaseChangeLogConsumer consumer = new ClearCaseChangeLogConsumer( getLogger() );
+ ClearCaseChangeLogConsumer consumer = new ClearCaseChangeLogConsumer( getLogger(), datePattern );
CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogConsumer.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogConsumer.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogConsumer.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/command/changelog/ClearCaseChangeLogConsumer.java Thu Feb 2 03:59:40 2006
@@ -19,10 +19,8 @@
import org.apache.maven.scm.ChangeFile;
import org.apache.maven.scm.ChangeSet;
import org.apache.maven.scm.log.ScmLogger;
-import org.codehaus.plexus.util.cli.StreamConsumer;
+import org.apache.maven.scm.util.AbstractConsumer;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
@@ -32,14 +30,12 @@
* @version $Id$
*/
public class ClearCaseChangeLogConsumer
- implements StreamConsumer
+ extends AbstractConsumer
{
- private ScmLogger logger;
-
/**
* Formatter used to parse Clearcase date/timestamp.
*/
- private static final SimpleDateFormat CLEARCASE_TIMESTAMP_FORMAT = new SimpleDateFormat( "yyyyMMdd.HHmmss" );
+ private static final String CLEARCASE_TIMESTAMP_PATTERN = "yyyyMMdd.HHmmss";
private static final String NAME_TAG = "NAME:";
@@ -83,13 +79,17 @@
*/
private ChangeFile currentFile = null;
+ private String userDatePattern;
+
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
- public ClearCaseChangeLogConsumer( ScmLogger logger )
+ public ClearCaseChangeLogConsumer( ScmLogger logger, String userDatePattern )
{
- this.logger = logger;
+ super( logger );
+
+ this.userDatePattern = userDatePattern;
}
// ----------------------------------------------------------------------
@@ -119,7 +119,7 @@
processGetCommentAndUser( line );
break;
default:
- logger.warn( "Unknown state: " + status );
+ getLogger().warn( "Unknown state: " + status );
}
}
@@ -151,14 +151,9 @@
{
if ( line.startsWith( DATE_TAG ) )
{
- try
- {
- getCurrentChange().setDate( CLEARCASE_TIMESTAMP_FORMAT.parse( line.substring( DATE_TAG.length() ) ) );
- }
- catch ( ParseException e )
- {
- e.printStackTrace();
- }
+ getCurrentChange().setDate(
+ parseDate( line.substring( DATE_TAG.length() ), userDatePattern, CLEARCASE_TIMESTAMP_PATTERN ) );
+
setStatus( GET_COMMENT );
}
}
@@ -227,7 +222,7 @@
/**
* Setter for property currentLogEntry.
*
- * @param currentLogEntry New value of property currentLogEntry.
+ * @param currentChange New value of property currentLogEntry.
*/
private void setCurrentChange( ChangeSet currentChange )
{
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogCommand.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogCommand.java Thu Feb 2 03:59:40 2006
@@ -41,21 +41,23 @@
implements CvsCommand
{
protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet,
- String startTag, String endTag )
+ String startTag, String endTag, String datePattern )
throws ScmException
{
- return executeChangeLogCommand( repo, fileSet, null, null, null, startTag, endTag );
+ return executeChangeLogCommand( repo, fileSet, null, null, null, startTag, endTag, datePattern );
}
protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet,
- Date startDate, Date endDate, String branch )
+ Date startDate, Date endDate, String branch,
+ String datePattern )
throws ScmException
{
- return executeChangeLogCommand( repo, fileSet, startDate, endDate, branch, null, null );
+ return executeChangeLogCommand( repo, fileSet, startDate, endDate, branch, null, null, datePattern );
}
private ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet, Date startDate,
- Date endDate, String branch, String startTag, String endTag )
+ Date endDate, String branch, String startTag, String endTag,
+ String datePattern )
throws ScmException
{
CvsScmProviderRepository repository = (CvsScmProviderRepository) repo;
@@ -111,7 +113,7 @@
cl.createArgument().setValue( param );
}
- CvsChangeLogConsumer consumer = new CvsChangeLogConsumer( getLogger() );
+ CvsChangeLogConsumer consumer = new CvsChangeLogConsumer( getLogger(), datePattern );
CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogConsumer.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogConsumer.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogConsumer.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogConsumer.java Thu Feb 2 03:59:40 2006
@@ -18,6 +18,7 @@
import org.apache.maven.scm.ChangeFile;
import org.apache.maven.scm.ChangeSet;
+import org.apache.maven.scm.util.AbstractConsumer;
import org.apache.maven.scm.log.ScmLogger;
import org.codehaus.plexus.util.cli.StreamConsumer;
@@ -31,7 +32,7 @@
* @version $Id$
*/
public class CvsChangeLogConsumer
- implements StreamConsumer
+ extends AbstractConsumer
{
private List entries = new ArrayList();
@@ -98,11 +99,13 @@
*/
private ChangeFile currentFile = null;
- private ScmLogger logger;
+ private String userDatePattern;
- public CvsChangeLogConsumer( ScmLogger logger )
+ public CvsChangeLogConsumer( ScmLogger logger, String userDatePattern )
{
- this.logger = logger;
+ super( logger);
+
+ this.userDatePattern = userDatePattern;
}
public List getModifications()
@@ -134,7 +137,7 @@
}
catch ( Throwable ex )
{
- logger.warn( "Exception in the cvs changelog consumer.", ex );
+ getLogger().warn( "Exception in the cvs changelog consumer.", ex );
}
}
@@ -211,7 +214,7 @@
tokenizer.nextToken(); // date tag
String date = tokenizer.nextToken();
String time = tokenizer.nextToken();
- getCurrentChange().setDate( date + " " + time );
+ getCurrentChange().setDate( date + " " + time, userDatePattern );
tokenizer.nextToken(); // author tag
// assumes author can't contain spaces
String author = tokenizer.nextToken();
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogConsumerTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogConsumerTest.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogConsumerTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogConsumerTest.java Thu Feb 2 03:59:40 2006
@@ -60,7 +60,7 @@
public void testParse()
throws Exception
{
- CvsChangeLogConsumer command = new CvsChangeLogConsumer( null );
+ CvsChangeLogConsumer command = new CvsChangeLogConsumer( null, null );
FileInputStream fis = new FileInputStream( testFile );
BufferedReader in = new BufferedReader( new InputStreamReader( fis ) );
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/changelog/LocalChangeLogCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/changelog/LocalChangeLogCommand.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/changelog/LocalChangeLogCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/changelog/LocalChangeLogCommand.java Thu Feb 2 03:59:40 2006
@@ -44,7 +44,8 @@
extends AbstractChangeLogCommand
{
protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repository, ScmFileSet fileSet,
- Date startDate, Date endDate, String branch )
+ Date startDate, Date endDate, String branch,
+ String datePattern )
throws ScmException
{
LocalScmProviderRepository repo = (LocalScmProviderRepository) repository;
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogCommand.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogCommand.java Thu Feb 2 03:59:40 2006
@@ -44,7 +44,8 @@
implements PerforceCommand
{
protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet,
- Date startDate, Date endDate, String branch )
+ Date startDate, Date endDate, String branch,
+ String datePattern )
throws ScmException
{
if ( StringUtils.isNotEmpty( branch ) )
@@ -54,14 +55,15 @@
Commandline cl = createCommandLine( (PerforceScmProviderRepository) repo, fileSet.getBasedir() );
- PerforceChangeLogConsumer consumer = new PerforceChangeLogConsumer( startDate, endDate );
+ PerforceChangeLogConsumer consumer =
+ new PerforceChangeLogConsumer( startDate, endDate, datePattern, getLogger() );
try
{
getLogger().debug( PerforceScmProvider.clean( "Executing " + cl.toString() ) );
Process proc = cl.execute();
BufferedReader br = new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
- String line = null;
+ String line;
while ( ( line = br.readLine() ) != null )
{
consumer.consumeLine( line );
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumer.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumer.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumer.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumer.java Thu Feb 2 03:59:40 2006
@@ -18,12 +18,11 @@
import org.apache.maven.scm.ChangeFile;
import org.apache.maven.scm.ChangeSet;
+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 org.codehaus.plexus.util.cli.StreamConsumer;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -33,12 +32,12 @@
* @version $Id$
*/
public class PerforceChangeLogConsumer
- implements StreamConsumer
+ extends AbstractConsumer
{
/**
* Date formatter for perforce timestamp
*/
- private static final SimpleDateFormat PERFORCE_TIMESTAMP = new SimpleDateFormat( "yyyy/MM/dd HH:mm:ss" );
+ private static final String PERFORCE_TIMESTAMP_PATTERN = "yyyy/MM/dd HH:mm:ss";
private List entries = new ArrayList();
@@ -91,24 +90,30 @@
private Date endDate;
+ private String userDatePattern;
+
private static final String pattern = "^\\.\\.\\. #(\\d+) " + // revision number
"change (\\d+) .* " + // changelist number
"on (.*) " + // date
"by (.*)@"; // author
- public PerforceChangeLogConsumer( Date startDate, Date endDate )
+ public PerforceChangeLogConsumer( Date startDate, Date endDate, String userDatePattern, ScmLogger logger )
{
+ super( logger );
+
this.startDate = startDate;
this.endDate = endDate;
+ this.userDatePattern = userDatePattern;
+
try
{
revisionRegexp = new RE( pattern );
}
catch ( RESyntaxException ignored )
{
- //LOG.error("Could not create regexp to parse perforce log file", ignored);
+ getLogger().error( "Could not create regexp to parse perforce log file", ignored );
}
}
@@ -151,9 +156,9 @@
* Add a change log entry to the list (if it's not already there)
* with the given file.
*
- * @param entry a {@link ChangeLogEntry} to be added to the list if another
+ * @param entry a {@link ChangeSet} to be added to the list if another
* with the same key (p4 change number) doesn't exist already.
- * @param file a {@link ChangeLogFile} to be added to the entry
+ * @param file a {@link ChangeFile} to be added to the entry
*/
private void addEntry( ChangeSet entry, ChangeFile file )
{
@@ -202,7 +207,7 @@
currentChange = new ChangeSet();
- currentChange.setDate( parseDate( revisionRegexp.getParen( 3 ) ) );
+ currentChange.setDate( parseDate( revisionRegexp.getParen( 3 ), userDatePattern, PERFORCE_TIMESTAMP_PATTERN ) );
currentChange.setAuthor( revisionRegexp.getParen( 4 ) );
@@ -226,25 +231,6 @@
else
{
currentChange.setComment( currentChange.getComment() + line + "\n" );
- }
- }
-
- /**
- * Converts the date timestamp from the perforce output into a date
- * object.
- *
- * @return A date representing the timestamp of the log entry.
- */
- private Date parseDate( String date )
- {
- try
- {
- return PERFORCE_TIMESTAMP.parse( date );
- }
- catch ( ParseException e )
- {
- //LOG.error("ParseException Caught", e);
- return null;
}
}
}
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/test/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumerTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/test/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumerTest.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/test/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumerTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/test/java/org/apache/maven/scm/provider/perforce/command/changelog/PerforceChangeLogConsumerTest.java Thu Feb 2 03:59:40 2006
@@ -19,6 +19,7 @@
import org.apache.maven.scm.ChangeFile;
import org.apache.maven.scm.ChangeSet;
import org.apache.maven.scm.ScmTestCase;
+import org.apache.maven.scm.log.DefaultLog;
import java.io.BufferedReader;
import java.io.File;
@@ -38,7 +39,7 @@
{
File testFile = getTestFile( "src/test/resources/perforce/perforcelog.txt" );
- PerforceChangeLogConsumer consumer = new PerforceChangeLogConsumer( null, null );
+ PerforceChangeLogConsumer consumer = new PerforceChangeLogConsumer( null, null, null, new DefaultLog() );
FileInputStream fis = new FileInputStream( testFile );
BufferedReader in = new BufferedReader( new InputStreamReader( fis ) );
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogCommand.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogCommand.java Thu Feb 2 03:59:40 2006
@@ -45,7 +45,8 @@
// ----------------------------------------------------------------------
protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet,
- Date startDate, Date endDate, String branch )
+ Date startDate, Date endDate, String branch,
+ String datePattern )
throws ScmException
{
@@ -59,7 +60,8 @@
// TODO: revision
Commandline cl = createCommandLine( repository, fileSet.getBasedir(), startDate );
- StarteamChangeLogConsumer consumer = new StarteamChangeLogConsumer( getLogger(), startDate, endDate );
+ StarteamChangeLogConsumer consumer =
+ new StarteamChangeLogConsumer( getLogger(), startDate, endDate, datePattern );
CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogConsumer.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogConsumer.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogConsumer.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogConsumer.java Thu Feb 2 03:59:40 2006
@@ -19,9 +19,8 @@
import org.apache.maven.scm.ChangeFile;
import org.apache.maven.scm.ChangeSet;
import org.apache.maven.scm.log.ScmLogger;
-import org.codehaus.plexus.util.cli.StreamConsumer;
+import org.apache.maven.scm.util.AbstractConsumer;
-import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
@@ -32,10 +31,8 @@
* @version $Id$
*/
public class StarteamChangeLogConsumer
- implements StreamConsumer
+ extends AbstractConsumer
{
- private ScmLogger logger;
-
private SimpleDateFormat localFormat = new SimpleDateFormat();
private List entries = new ArrayList();
@@ -118,18 +115,22 @@
*/
private Date endDate;
+ private String userDateFormat;
+
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
- public StarteamChangeLogConsumer( ScmLogger logger, Date startDate, Date endDate )
+ public StarteamChangeLogConsumer( ScmLogger logger, Date startDate, Date endDate, String userDateFormat )
{
- this.logger = logger;
+ super( logger );
this.startDate = startDate;
this.endDate = endDate;
+ this.userDateFormat = userDateFormat;
+
//work around for all en_US compatible locales, where Starteam
// stcmd hist output uses a different format, ugly eh?
// makesure to change the test file as well if this ever got fixed
@@ -155,7 +156,7 @@
public void consumeLine( String line )
{
- logger.debug( line );
+ getLogger().debug( line );
// current state transitions in the state machine - starts with Get File
// Get File -> Get Revision
@@ -189,10 +190,10 @@
* Add a change log entry to the list (if it's not already there)
* with the given file.
*
- * @param entry a {@link ChangeLogEntry} to be added to the list if another
+ * @param entry a {@link ChangeSet} to be added to the list if another
* with the same key doesn't exist already. If the entry's author
* is null, the entry wont be added
- * @param file a {@link ChangeLogFile} to be added to the entry
+ * @param file a {@link ChangeFile} to be added to the entry
*/
private void addEntry( ChangeSet entry, ChangeFile file )
{
@@ -278,7 +279,7 @@
String date = line.substring( posDateTag + DATE_TAG.length() );
- getCurrentChange().setDate( parseDate( date ) );
+ getCurrentChange().setDate( parseDate( date, userDateFormat, null ) );
setStatus( GET_COMMENT );
}
@@ -375,25 +376,5 @@
private void setStatus( int status )
{
this.status = status;
- }
-
- /**
- * Converts the date timestamp from the svn output into a date
- * object.
- *
- * @return A date representing the timestamp of the log entry.
- */
- private Date parseDate( String date )
- {
- try
- {
- return localFormat.parse( date.toString() );
- }
- catch ( ParseException e )
- {
- logger.error( "ParseException Caught", e );
-
- return null;
- }
}
}
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogConsumerTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogConsumerTest.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogConsumerTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/changelog/StarteamChangeLogConsumerTest.java Thu Feb 2 03:59:40 2006
@@ -61,7 +61,7 @@
String s = in.readLine();
- StarteamChangeLogConsumer consumer = new StarteamChangeLogConsumer( new DefaultLog(), null, null );
+ StarteamChangeLogConsumer consumer = new StarteamChangeLogConsumer( new DefaultLog(), null, null, null );
while ( s != null )
{
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogCommand.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogCommand.java Thu Feb 2 03:59:40 2006
@@ -46,13 +46,14 @@
private final static String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss Z";
protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, ScmFileSet fileSet,
- Date startDate, Date endDate, String branch )
+ Date startDate, Date endDate, String branch,
+ String datePattern )
throws ScmException
{
Commandline cl =
createCommandLine( (SvnScmProviderRepository) repo, fileSet.getBasedir(), branch, startDate, endDate );
- SvnChangeLogConsumer consumer = new SvnChangeLogConsumer();
+ SvnChangeLogConsumer consumer = new SvnChangeLogConsumer( getLogger(), datePattern );
CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumer.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumer.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumer.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumer.java Thu Feb 2 03:59:40 2006
@@ -17,13 +17,12 @@
*/
import org.apache.maven.scm.ChangeFile;
+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 org.apache.regexp.RESyntaxException;
-import org.codehaus.plexus.util.cli.StreamConsumer;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -33,12 +32,12 @@
* @version $Id$
*/
public class SvnChangeLogConsumer
- implements StreamConsumer
+ extends AbstractConsumer
{
/**
* Date formatter for svn timestamp (after a little massaging)
*/
- private static final SimpleDateFormat SVN_TIMESTAMP = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss zzzzzzzzz" );
+ private static final String SVN_TIMESTAMP_PATTERN = "yyyy-MM-dd HH:mm:ss zzzzzzzzz";
/**
* State machine constant: expecting header
@@ -123,11 +122,17 @@
private RE headerRegexp2;
+ private String userDateFormat;
+
/**
* Default constructor.
*/
- public SvnChangeLogConsumer()
+ public SvnChangeLogConsumer( ScmLogger logger, String userDateFormat )
{
+ super( logger );
+
+ this.userDateFormat = userDateFormat;
+
try
{
headerRegexp = new RE( pattern );
@@ -264,17 +269,10 @@
*/
private Date parseDate()
{
- try
- {
- StringBuffer date = new StringBuffer().append( headerRegexp.getParen( 3 ) ).append( " GMT" )
- .append( headerRegexp.getParen( 4 ) ).append( headerRegexp.getParen( 5 ) ).append( ':' )
- .append( headerRegexp.getParen( 6 ) );
+ StringBuffer date = new StringBuffer().append( headerRegexp.getParen( 3 ) ).append( " GMT" )
+ .append( headerRegexp.getParen( 4 ) ).append( headerRegexp.getParen( 5 ) ).append( ':' )
+ .append( headerRegexp.getParen( 6 ) );
- return SVN_TIMESTAMP.parse( date.toString() );
- }
- catch ( ParseException e )
- {
- return null;
- }
+ return parseDate( date.toString(), userDateFormat, SVN_TIMESTAMP_PATTERN );
}
}
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumerTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumerTest.java?rev=374369&r1=374368&r2=374369&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumerTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumerTest.java Thu Feb 2 03:59:40 2006
@@ -18,6 +18,7 @@
import org.apache.maven.scm.ChangeFile;
import org.apache.maven.scm.ChangeSet;
+import org.apache.maven.scm.log.DefaultLog;
import org.codehaus.plexus.PlexusTestCase;
import java.io.BufferedReader;
@@ -36,7 +37,7 @@
public void testConsumerWithPattern1()
throws Exception
{
- SvnChangeLogConsumer consumer = new SvnChangeLogConsumer();
+ SvnChangeLogConsumer consumer = new SvnChangeLogConsumer( new DefaultLog(), null );
File f = getTestFile( "/src/test/resources/svn/changelog/svnlog.txt" );
@@ -94,7 +95,7 @@
public void testConsumerWithPattern2()
throws Exception
{
- SvnChangeLogConsumer consumer = new SvnChangeLogConsumer();
+ SvnChangeLogConsumer consumer = new SvnChangeLogConsumer( new DefaultLog(), null );
File f = getTestFile( "/src/test/resources/svn/changelog/svnlog2.txt" );