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 2005/11/07 16:05:24 UTC
svn commit: r331276 [1/3] - 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/update/
maven-scm-api/src/test/java/org/apache/maven/scm/
maven-scm-providers/maven-scm-provider...
Author: evenisse
Date: Mon Nov 7 07:04:54 2005
New Revision: 331276
URL: http://svn.apache.org/viewcvs?rev=331276&view=rev
Log:
Fix ChangeSet. A changeSet can contains more than one, it's necessary for svn changelog.
Added:
maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumerTest.java (with props)
maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/resources/svn/changelog/svnlog2.txt (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/command/update/AbstractUpdateCommand.java
maven/scm/trunk/maven-scm-api/src/test/java/org/apache/maven/scm/ChangeSetTest.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/CvsChangeLogConsumer.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/StarteamChangeLogConsumer.java
maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumer.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=331276&r1=331275&r2=331276&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 Mon Nov 7 07:04:54 2005
@@ -2,7 +2,10 @@
import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
/*
* Copyright 2001-2005 The Apache Software Foundation.
@@ -53,9 +56,9 @@
/** comment provided at commit time */
private String comment = "";
- private ChangeFile file;
+ private List files;
- public ChangeSet( String date, String comment, String author, ChangeFile file )
+ public ChangeSet( String date, String comment, String author, List files )
{
setDate( date );
@@ -63,7 +66,7 @@
setComment( comment );
- this.file = file;
+ this.files = files;
}
/**
@@ -74,23 +77,51 @@
}
/**
- * Getter for property file.
+ * Getter for ChangeFile list.
*
- * @return Value of property file.
+ * @return List of ChangeFile.
*/
- public ChangeFile getFile()
+ public List getFiles()
{
- return file;
+ return files;
}
/**
- * Setter for property file.
+ * Setter for ChangeFile list.
*
- * @param author New value of property file.
+ * @param files List of ChangeFiles.
*/
- public void setFile( ChangeFile file )
+ public void setFiles( List files )
{
- this.file = file;
+ this.files = files;
+ }
+
+ public void addFile( ChangeFile file )
+ {
+ if ( files == null )
+ {
+ files = new ArrayList();
+ }
+
+ files.add( file );
+ }
+
+ public boolean containsFilename( String filename )
+ {
+ if ( files != null )
+ {
+ for ( Iterator i = files.iterator(); i.hasNext(); )
+ {
+ ChangeFile file = (ChangeFile) i.next();
+
+ if ( file.getName().equals( filename ) )
+ {
+ return true;
+ }
+ }
+ }
+
+ return false;
}
/**
@@ -198,7 +229,21 @@
*/
public String toString()
{
- return author + "\n" + date + "\n" + file + "\n" + comment;
+ String result = author + "\n" + date + "\n";
+
+ if ( files != null )
+ {
+ for ( Iterator i = files.iterator(); i.hasNext(); )
+ {
+ ChangeFile file = (ChangeFile) i.next();
+
+ result += file + "\n";
+ }
+ }
+
+ result += comment;
+
+ return result;
}
/**
@@ -210,8 +255,7 @@
{
ChangeSet changeSet = (ChangeSet) obj;
- if ( date.equals( changeSet.getDate() ) && author.equals( changeSet.getAuthor() )
- && comment.equals( changeSet.getComment() ) && file.equals( changeSet.getFile() ) )
+ if ( toString().equals( changeSet.toString() ) )
{
return true;
}
Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/update/AbstractUpdateCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/update/AbstractUpdateCommand.java?rev=331276&r1=331275&r2=331276&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/update/AbstractUpdateCommand.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/command/update/AbstractUpdateCommand.java Mon Nov 7 07:04:54 2005
@@ -75,7 +75,7 @@
{
ScmFile currentFile = (ScmFile) j.next();
- if ( currentFile.getPath().equals( change.getFile().getName() ) )
+ if ( change.containsFilename( currentFile.getPath() ) )
{
changes.add( change );
}
Modified: maven/scm/trunk/maven-scm-api/src/test/java/org/apache/maven/scm/ChangeSetTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/test/java/org/apache/maven/scm/ChangeSetTest.java?rev=331276&r1=331275&r2=331276&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/test/java/org/apache/maven/scm/ChangeSetTest.java (original)
+++ maven/scm/trunk/maven-scm-api/src/test/java/org/apache/maven/scm/ChangeSetTest.java Mon Nov 7 07:04:54 2005
@@ -50,7 +50,7 @@
public void testAddFileWithFile()
{
ChangeFile file = new ChangeFile( "maven:dummy" );
- instance.setFile( file );
+ instance.addFile( file );
assertTrue( "File name not found in list", instance.toString().indexOf( "maven:dummy" ) != -1 );
}
@@ -59,12 +59,11 @@
*/
public void testToString()
{
- //dion, Mon Apr 01 00:00:00 EST 2002, null, comment
+ //dion, Mon Apr 01 00:00:00 EST 2002, comment
String value = instance.toString();
assertTrue( "author not found in string", value.indexOf( "dion" ) != -1 );
assertTrue( "comment not found in string", value.indexOf( "comment" ) != -1 );
assertTrue( "date not found in string", value.indexOf( "Mon Apr 01" ) != -1 );
- assertTrue( "null file not found in string" + value, value.indexOf( "null" ) != -1 );
}
/**
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=331276&r1=331275&r2=331276&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 Mon Nov 7 07:04:54 2005
@@ -187,7 +187,7 @@
getCurrentChange().setAuthor( line.substring( USER_TAG.length() ) );
// add entry, and set state to get file
- getCurrentChange().setFile( getCurrentFile() );
+ getCurrentChange().addFile( getCurrentFile() );
entries.add( getCurrentChange() );
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=331276&r1=331275&r2=331276&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 Mon Nov 7 07:04:54 2005
@@ -130,7 +130,8 @@
return;
}
- entry.setFile( file );
+ entry.addFile( file );
+
entries.add( entry );
}
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=331276&r1=331275&r2=331276&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 Mon Nov 7 07:04:54 2005
@@ -176,7 +176,7 @@
//
// ----------------------------------------------------------------------
- entry.setFile( file );
+ entry.addFile( file );
entries.add( entry );
}
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=331276&r1=331275&r2=331276&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 Mon Nov 7 07:04:54 2005
@@ -23,6 +23,7 @@
import java.util.ArrayList;
import org.apache.maven.scm.ScmTestCase;
+import org.apache.maven.scm.ChangeFile;
import org.apache.maven.scm.ChangeSet;
/**
@@ -52,7 +53,7 @@
assertEquals( "Wrong number of entries returned", 9, entries.size() );
ChangeSet entry = (ChangeSet) entries.get( 0 );
assertEquals( "jim", entry.getAuthor() );
- assertEquals( "//depot/test/demo/demo.c", entry.getFile().getName() );
+ assertEquals( "//depot/test/demo/demo.c", ( (ChangeFile) entry.getFiles().get( 0 ) ).getName() );
assertEquals( "2003-10-01", entry.getDateFormatted() );
assertEquals( "16:24:20", entry.getTimeFormatted() );
}
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=331276&r1=331275&r2=331276&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 Mon Nov 7 07:04:54 2005
@@ -213,7 +213,7 @@
return;
}
- entry.setFile( file );
+ entry.addFile( file );
entries.add( entry );
}
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=331276&r1=331275&r2=331276&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 Mon Nov 7 07:04:54 2005
@@ -190,7 +190,7 @@
{
// Skip the status flags and just get the name of the file
String name = line.substring( FILE_START_INDEX );
- currentChange.setFile( new ChangeFile( name, currentRevision ) );
+ currentChange.addFile( new ChangeFile( name, currentRevision ) );
status = GET_FILE;
}
Added: 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=331276&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumerTest.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumerTest.java Mon Nov 7 07:04:54 2005
@@ -0,0 +1,121 @@
+package org.apache.maven.scm.provider.svn.command.changelog;
+
+/*
+ * Copyright 2003-2005 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.ChangeFile;
+import org.apache.maven.scm.ChangeSet;
+import org.codehaus.plexus.PlexusTestCase;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class SvnChangeLogConsumerTest
+ extends PlexusTestCase
+{
+ public void testConsumerWithPattern1()
+ throws Exception
+ {
+ SvnChangeLogConsumer consumer = new SvnChangeLogConsumer();
+
+ File f = getTestFile( "/src/test/resources/svn/changelog/svnlog.txt" );
+
+ BufferedReader r = new BufferedReader( new FileReader( f ) );
+
+ String line;
+
+ while ( ( line = r.readLine() ) != null )
+ {
+ consumer.consumeLine( line );
+ }
+
+ List modifications = consumer.getModifications();
+
+ System.out.println( "nb modifications : " + modifications.size() );
+
+ for ( Iterator i = modifications.iterator(); i.hasNext(); )
+ {
+ ChangeSet entry = (ChangeSet) i.next();
+
+ System.out.println( entry.getAuthor() );
+
+ System.out.println( entry.getDate() );
+
+ System.out.println( entry.getComment() );
+
+ List files = entry.getFiles();
+
+ for ( Iterator it = files.iterator(); it.hasNext(); )
+ {
+ ChangeFile file = (ChangeFile) it.next();
+
+ System.out.println( file.getName() );
+ }
+
+ System.out.println( "==============================" );
+ }
+ }
+
+ public void testConsumerWithPattern2()
+ throws Exception
+ {
+ SvnChangeLogConsumer consumer = new SvnChangeLogConsumer();
+
+ File f = getTestFile( "/src/test/resources/svn/changelog/svnlog2.txt" );
+
+ BufferedReader r = new BufferedReader( new FileReader( f ) );
+
+ String line;
+
+ while ( ( line = r.readLine() ) != null )
+ {
+ consumer.consumeLine( line );
+ }
+
+ List modifications = consumer.getModifications();
+
+ System.out.println( "nb modifications : " + modifications.size() );
+
+ for ( Iterator i = modifications.iterator(); i.hasNext(); )
+ {
+ ChangeSet entry = (ChangeSet) i.next();
+
+ System.out.println( entry.getAuthor() );
+
+ System.out.println( entry.getDate() );
+
+ System.out.println( entry.getComment() );
+
+ List files = entry.getFiles();
+
+ for ( Iterator it = files.iterator(); it.hasNext(); )
+ {
+ ChangeFile file = (ChangeFile) it.next();
+
+ System.out.println( file.getName() );
+ }
+
+ System.out.println( "==============================" );
+ }
+ }
+}
\ No newline at end of file
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumerTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumerTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"