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 vs...@apache.org on 2008/08/19 13:38:13 UTC

svn commit: r687023 - in /maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs: maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/ maven-scm-provider-cvsjava/src/main/java/org/apache/maven/scm/provide...

Author: vsiveton
Date: Tue Aug 19 04:38:12 2008
New Revision: 687023

URL: http://svn.apache.org/viewvc?rev=687023&view=rev
Log:
SCM-380: CvsStatusConsumer cannot be used for CvsJavaListCommand and CvsExeListCommand
Submitted by: Sergey Zakusov
Reviewed by: Vincent Siveton

o patch applied with 1.4 compatibility

Added:
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/CvsListConsumer.java   (with props)
Modified:
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/AbstractCvsListCommand.java
    maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsjava/src/main/java/org/apache/maven/scm/provider/cvslib/cvsjava/command/list/CvsJavaListCommand.java

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/AbstractCvsListCommand.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/AbstractCvsListCommand.java?rev=687023&r1=687022&r2=687023&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/AbstractCvsListCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/AbstractCvsListCommand.java Tue Aug 19 04:38:12 2008
@@ -19,6 +19,9 @@
  * under the License.
  */
 
+import java.io.File;
+import java.util.Iterator;
+
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmVersion;
@@ -54,12 +57,24 @@
         }
 
         cl.createArgument().setValue( "-d" );
+        cl.createArgument().setValue( "-e" ); // szakusov: to fix "Unknown file status" problem
 
         if ( recursive )
         {
             cl.createArgument().setValue( "-R" );
         }
 
+        for ( Iterator it = fileSet.getFileList().iterator(); it.hasNext(); )
+        {
+            File target = (File) it.next();
+            String path = target.getPath();
+            if ( path.startsWith( "\\" ) )
+            {
+                path = path.substring( 1 );
+            }
+            cl.createArgument().setValue( path );
+        }
+
         getLogger().info( "Executing: " + cl );
         getLogger().info( "Working directory: " + cl.getWorkingDirectory().getAbsolutePath() );
 

Added: maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/CvsListConsumer.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/CvsListConsumer.java?rev=687023&view=auto
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/CvsListConsumer.java (added)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/CvsListConsumer.java Tue Aug 19 04:38:12 2008
@@ -0,0 +1,63 @@
+package org.apache.maven.scm.provider.cvslib.command.list;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileStatus;
+import org.apache.maven.scm.log.ScmLogger;
+import org.codehaus.plexus.util.StringUtils;
+import org.codehaus.plexus.util.cli.StreamConsumer;
+
+/**
+ * Parses CVS/Entries format, for example, like
+ * 
+ * <pre>
+ * /checkoutlist/1.9/Wed Jan 26 19:08:06 2005/-kkv/
+ * /commitinfo/1.10/Tue Jan 11 01:25:34 2005/-kkv/
+ * /config/1.15/Sun Jan 23 02:15:57 2005/-kkv/
+ * D/directory1////
+ * D/directory2////
+ * </pre>
+ * 
+ * @author <a href="mailto:szakusov@emdev.ru">Sergey Zakusov</a>: implemented to fix "Unknown file status" problem
+ */
+public class CvsListConsumer implements StreamConsumer {
+
+    private ScmLogger m_logger;
+    private List      m_entries;
+
+    /**
+     * @param logger is a logger
+     */
+    public CvsListConsumer(ScmLogger logger) {
+
+        m_logger = logger;
+        m_entries = new LinkedList();
+    }
+
+    /**
+     * @see org.codehaus.plexus.util.cli.StreamConsumer#consumeLine(java.lang.String)
+     */
+    public void consumeLine(String i_line) {
+
+        m_logger.debug(i_line);
+
+        String[] params = i_line.split("/");
+        if (params.length < 2) {
+            if (StringUtils.isNotEmpty(i_line)) {
+                m_logger.warn("Unable to parse it as CVS/Entries format: " + i_line + ".");
+            }
+        } else {
+            m_entries.add(new ScmFile(params[1], ScmFileStatus.UNKNOWN));
+        }
+    }
+
+    /**
+     * @return Parse result
+     */
+    public List getEntries() {
+
+        return m_entries;
+    }
+}

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/CvsListConsumer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvs-commons/src/main/java/org/apache/maven/scm/provider/cvslib/command/list/CvsListConsumer.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsjava/src/main/java/org/apache/maven/scm/provider/cvslib/cvsjava/command/list/CvsJavaListCommand.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsjava/src/main/java/org/apache/maven/scm/provider/cvslib/cvsjava/command/list/CvsJavaListCommand.java?rev=687023&r1=687022&r2=687023&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsjava/src/main/java/org/apache/maven/scm/provider/cvslib/cvsjava/command/list/CvsJavaListCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-providers-cvs/maven-scm-provider-cvsjava/src/main/java/org/apache/maven/scm/provider/cvslib/cvsjava/command/list/CvsJavaListCommand.java Tue Aug 19 04:38:12 2008
@@ -19,18 +19,18 @@
  * under the License.
  */
 
+import java.io.BufferedReader;
+import java.io.ByteArrayInputStream;
+import java.io.InputStreamReader;
+
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.command.list.ListScmResult;
 import org.apache.maven.scm.provider.cvslib.command.list.AbstractCvsListCommand;
-import org.apache.maven.scm.provider.cvslib.command.status.CvsStatusConsumer;
+import org.apache.maven.scm.provider.cvslib.command.list.CvsListConsumer;
 import org.apache.maven.scm.provider.cvslib.cvsjava.util.CvsConnection;
 import org.apache.maven.scm.provider.cvslib.cvsjava.util.CvsLogListener;
 import org.codehaus.plexus.util.cli.Commandline;
 
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.InputStreamReader;
-
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
@@ -44,7 +44,7 @@
     {
         CvsLogListener logListener = new CvsLogListener();
 
-        CvsStatusConsumer consumer = new CvsStatusConsumer( getLogger(), cl.getWorkingDirectory() );
+        CvsListConsumer consumer = new CvsListConsumer( getLogger() );
 
         try
         {
@@ -74,6 +74,6 @@
                                       false );
         }
 
-        return new ListScmResult( cl.toString(), consumer.getChangedFiles() );
+        return new ListScmResult( cl.toString(), consumer.getEntries() );
     }
 }