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"