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() );
}
}