Return-Path: Delivered-To: apmail-maven-scm-cvs-archive@www.apache.org Received: (qmail 93778 invoked from network); 9 Nov 2004 16:07:22 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 9 Nov 2004 16:07:22 -0000 Received: (qmail 97236 invoked by uid 500); 9 Nov 2004 16:07:22 -0000 Delivered-To: apmail-maven-scm-cvs-archive@maven.apache.org Received: (qmail 97215 invoked by uid 500); 9 Nov 2004 16:07:22 -0000 Mailing-List: contact scm-cvs-help@maven.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Reply-To: scm-cvs@maven.apache.org Delivered-To: mailing list scm-cvs@maven.apache.org Received: (qmail 97199 invoked by uid 99); 9 Nov 2004 16:07:22 -0000 X-ASF-Spam-Status: No, hits=-10.0 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Tue, 09 Nov 2004 08:07:19 -0800 Received: (qmail 93737 invoked by uid 1849); 9 Nov 2004 16:07:18 -0000 Date: 9 Nov 2004 16:07:18 -0000 Message-ID: <20041109160718.93736.qmail@minotaur.apache.org> From: trygvis@apache.org To: maven-scm-cvs@apache.org Subject: cvs commit: maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/resources/tck checkout.dump update.dump X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N trygvis 2004/11/09 08:07:17 Modified: maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog SvnChangeLogCommand.java SvnChangeLogConsumer.java maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/checkout SvnCheckOutCommand.java maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/update SvnUpdateCommand.java maven-scm-providers/maven-scm-provider-svn/src/main/resources/META-INF/plexus components.xml maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog SvnChangeLogCommandTest.java SvnChangeLogConsumerTest.java maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/checkout SvnCheckOutCommandTest.java maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/update SvnUpdateCommandTest.java Added: maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn SvnScmProvider.java maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command SvnCommand.java maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/checkout SvnCheckOutConsumer.java maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/update SvnUpdateConsumer.java maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/repository SvnScmProviderRepository.java maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn SvnScmProviderTest.java SvnScmTestUtils.java maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/checkout SvnCheckOutCommandTckTest.java maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/update SvnUpdateCommandTckTest.java maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/repository SvnScmProviderRepositoryTest.java maven-scm-providers/maven-scm-provider-svn/src/test/resources checkout.dump maven-scm-providers/maven-scm-provider-svn/src/test/resources/tck checkout.dump update.dump Removed: maven-scm-providers/maven-scm-provider-svn LICENSE.txt NOTICE.txt checkstyle-license.txt project.properties maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn SvnScm.java maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command AbstractSvnCommand.java SvnCommandWrapper.java maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/repository SvnRepository.java maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn SvnScmTest.java maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command AbstractSvnCommandTest.java SvnCommandWrapperTest.java TestAbstractSvnCommand.java maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/repository SvnRepositoryTest.java Log: o Adapting the SVN provider to the new API. Revision Changes Path 1.1 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/SvnScmProvider.java Index: SvnScmProvider.java =================================================================== package org.apache.maven.scm.provider.svn; /* * Copyright 2003-2004 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 java.util.Map; import org.apache.maven.scm.provider.AbstractScmProvider; import org.apache.maven.scm.provider.ScmProviderRepository; import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository; import org.apache.maven.scm.repository.ScmRepositoryException; /** * @author Emmanuel Venisse * @version $Id: SvnScmProvider.java,v 1.1 2004/11/09 16:07:16 trygvis Exp $ */ public class SvnScmProvider extends AbstractScmProvider { /** @requirement org.apache.maven.scm.CvsCommand */ private Map commands; // ---------------------------------------------------------------------- // ScmProvider Implementation // ---------------------------------------------------------------------- public ScmProviderRepository makeProviderScmRepository( String scmSpecificUrl, String delimiter ) throws ScmRepositoryException { int at = scmSpecificUrl.indexOf("@"); String url; String user = null; String password = null; try { if (at >= 1) { user = scmSpecificUrl.substring( 0, at ); url = scmSpecificUrl.substring( at + 1); } else { url = scmSpecificUrl; } } catch ( Exception e ) { throw new ScmRepositoryException( e.getMessage() ); } return new SvnScmProviderRepository( url, user, password ); } // ---------------------------------------------------------------------- // AbstractScmProvider Implementation // ---------------------------------------------------------------------- protected Map getCommands() { return commands; } public String getScmType() { return "svn"; } } 1.1 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/SvnCommand.java Index: SvnCommand.java =================================================================== package org.apache.maven.scm.provider.svn.command; /* * Copyright 2003-2004 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.command.Command; /** * @author Trygve Laugstøl * @version $Id: SvnCommand.java,v 1.1 2004/11/09 16:07:16 trygvis Exp $ */ public interface SvnCommand extends Command { } 1.3 +51 -138 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogCommand.java Index: SvnChangeLogCommand.java =================================================================== RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogCommand.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SvnChangeLogCommand.java 2 Nov 2004 22:24:36 -0000 1.2 +++ SvnChangeLogCommand.java 9 Nov 2004 16:07:16 -0000 1.3 @@ -16,190 +16,103 @@ * limitations under the License. */ +import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; import org.apache.maven.scm.ScmException; -import org.apache.maven.scm.command.changelog.ChangeLogCommand; -import org.apache.maven.scm.command.changelog.ChangeLogConsumer; -import org.apache.maven.scm.provider.svn.command.AbstractSvnCommand; -import org.apache.maven.scm.provider.svn.repository.SvnRepository; +import org.apache.maven.scm.command.changelog.AbstractChangeLogCommand; +import org.apache.maven.scm.command.changelog.ChangeLogScmResult; +import org.apache.maven.scm.provider.ScmProviderRepository; +import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository; +import org.apache.maven.scm.provider.svn.command.SvnCommand; + import org.codehaus.plexus.util.cli.Commandline; -import org.codehaus.plexus.util.cli.StreamConsumer; /** * @author Emmanuel Venisse * @version $Id$ */ public class SvnChangeLogCommand - extends AbstractSvnCommand - implements ChangeLogCommand + extends AbstractChangeLogCommand + implements SvnCommand { - public SvnChangeLogCommand() throws ScmException - { - setConsumer(new SvnChangeLogConsumer()); - } - - /** Date format expected by Subversion */ - static final SimpleDateFormat SVN_DATE_FORMAT_IN = - new SimpleDateFormat("yyyy/MM/dd 'GMT'"); - - /** Set the time zone of the formatters to GMT. */ - static { - SVN_DATE_FORMAT_IN.setTimeZone(TimeZone.getTimeZone("GMT")); - } + private final static String DATE_FORMAT = "yyyy/MM/dd 'GMT'"; - private ChangeLogConsumer consumer; - private Date startDate; - private Date endDate; - - /* (non-Javadoc) - * @see org.apache.maven.scm.command.changelog.ChangeLogCommand#setStartDate(java.util.Date) - */ - public void setStartDate(Date startDate) + protected ChangeLogScmResult executeChangeLogCommand( ScmProviderRepository repo, File workingDirectory, Date startDate, Date endDate, int numDays, String branch ) + throws ScmException { - this.startDate = startDate; - } + Commandline cl = createCommandLine( (SvnScmProviderRepository) repo, workingDirectory, branch, startDate, endDate ); - /* (non-Javadoc) - * @see org.apache.maven.scm.command.changelog.ChangeLogCommand#getStartDate() - */ - public Date getStartDate() - { - return startDate; - } + SvnChangeLogConsumer consumer = new SvnChangeLogConsumer(); - /* (non-Javadoc) - * @see org.apache.maven.scm.command.changelog.ChangeLogCommand#setEndDate(java.util.Date) - */ - public void setEndDate(Date endDate) - { - this.endDate = endDate; - } + // TODO: implement - /* (non-Javadoc) - * @see org.apache.maven.scm.command.changelog.ChangeLogCommand#getEndDate() - */ - public Date getEndDate() - { - return endDate; + return new ChangeLogScmResult( consumer.getModifications() ); } - /* (non-Javadoc) - * @see org.apache.maven.scm.command.changelog.ChangeLogCommand#setRange(int) - */ - public void setRange(int numDays) - { - setStartDate( - new Date( - System.currentTimeMillis() - - (long)numDays * 24 * 60 * 60 * 1000)); - setEndDate( - new Date( - System.currentTimeMillis() + (long)1 * 24 * 60 * 60 * 1000)); - } + // ---------------------------------------------------------------------- + // + // ---------------------------------------------------------------------- - /* (non-Javadoc) - * @see org.apache.maven.scm.command.Command#getName() - */ - public String getName() + public static Commandline createCommandLine( SvnScmProviderRepository repository, File workingDirectory, String branch, Date startDate, Date endDate ) { - return NAME; - } + SimpleDateFormat dateFormat = new SimpleDateFormat( DATE_FORMAT ); - /* (non-Javadoc) - * @see org.apache.maven.scm.command.Command#getDisplayName() - */ - public String getDisplayName() - { - return "Changelog"; - } + dateFormat.setTimeZone( TimeZone.getTimeZone( "GMT" ) ); - public Commandline getCommandLine() throws ScmException - { - Commandline command = new Commandline(); + Commandline cl = new Commandline(); - command.setExecutable("svn"); + cl.setExecutable( "svn" ); - if (getWorkingDirectory() != null) - { - command.setWorkingDirectory(getWorkingDirectory()); - } + cl.setWorkingDirectory( workingDirectory.getAbsolutePath() ); + + cl.createArgument().setValue( "log" ); - SvnRepository repo = (SvnRepository)getRepository(); + cl.createArgument().setValue( "--non-interactive" ); - command.createArgument().setValue("log"); - command.createArgument().setValue("--non-interactive"); - command.createArgument().setValue("-v"); + cl.createArgument().setValue( "-v" ); - if (startDate != null) + if ( startDate != null ) { - command.createArgument().setValue("-r"); - if (endDate != null) + cl.createArgument().setValue( "-r" ); + + if ( endDate != null ) { - command.createArgument().setValue( - "{" - + SVN_DATE_FORMAT_IN.format(getStartDate()) - + "}" - + ":{" - + SVN_DATE_FORMAT_IN.format(getEndDate()) - + "}"); + cl.createArgument().setValue( "{" + dateFormat.format( startDate ) + "}" + ":" + + "{" + dateFormat.format( endDate ) + "}" ); } else { - command.createArgument().setValue( - "{" - + SVN_DATE_FORMAT_IN.format(getStartDate()) - + "}" - + ":HEAD"); + cl.createArgument().setValue( "{" + dateFormat.format( startDate ) + "}:HEAD" ); } } else { - if (getTag() != null) + if ( branch != null ) { - command.createArgument().setValue("-r"); - command.createArgument().setValue(getTag()); + cl.createArgument().setValue( "-r" ); + cl.createArgument().setValue( branch ); } } - if (repo.getUser() != null) - { - command.createArgument().setValue("--username"); - command.createArgument().setValue(repo.getUser()); - } - if (repo.getPassword() != null) + if ( repository.getUser() != null ) { - command.createArgument().setValue("--password"); - command.createArgument().setValue(repo.getPassword()); - } - - command.createArgument().setValue(repo.getUrl()); - - return command; - } + cl.createArgument().setValue( "--username" ); - /* (non-Javadoc) - * @see org.apache.maven.scm.command.Command#setConsumer(org.codehaus.plexus.util.cli.StreamConsumer) - */ - public void setConsumer(StreamConsumer consumer) throws ScmException - { - if (consumer instanceof ChangeLogConsumer) - { - this.consumer = (ChangeLogConsumer)consumer; + cl.createArgument().setValue( repository.getUser() ); } - else + + if ( repository.getPassword() != null ) { - throw new ScmException("Unsupported consumer for this command"); + cl.createArgument().setValue( "--password" ); + + cl.createArgument().setValue( repository.getPassword() ); } - } - /* (non-Javadoc) - * @see org.apache.maven.scm.command.Command#getConsumer() - */ - public StreamConsumer getConsumer() - { - return consumer; + cl.createArgument().setValue( repository.getUrl() ); + + return cl; } } 1.3 +31 -27 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumer.java Index: SvnChangeLogConsumer.java =================================================================== RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumer.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SvnChangeLogConsumer.java 2 Nov 2004 22:24:36 -0000 1.2 +++ SvnChangeLogConsumer.java 9 Nov 2004 16:07:16 -0000 1.3 @@ -19,26 +19,25 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Collection; import java.util.Date; +import java.util.List; -import org.apache.maven.scm.ScmException; -import org.apache.maven.scm.command.changelog.ChangeLogConsumer; import org.apache.maven.scm.command.changelog.ChangeLogEntry; import org.apache.maven.scm.command.changelog.ChangeLogFile; - import org.apache.regexp.RE; import org.apache.regexp.RESyntaxException; +import org.codehaus.plexus.util.cli.StreamConsumer; + /** * @author Emmanuel Venisse * @version $Id$ */ -public class SvnChangeLogConsumer implements ChangeLogConsumer +public class SvnChangeLogConsumer + implements StreamConsumer { /** 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 SimpleDateFormat SVN_TIMESTAMP = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss zzzzzzzzz"); /** State machine constant: expecting header */ private static final int GET_HEADER = 1; @@ -60,22 +59,22 @@ /** The comment section ends with a dashed line */ private static final String COMMENT_END_TOKEN = - "------------------------------------" - + "------------------------------------"; + "------------------------------------" + + "------------------------------------"; /** The pattern used to match svn header lines */ - private static final String pattern = - "^rev (\\d+):\\s+" + // revision number + private static final String pattern = + "^rev (\\d+):\\s+" + // revision number "(\\w+)\\s+\\|\\s+" + // author username "(\\d+-\\d+-\\d+ " + // date 2002-08-24 "\\d+:\\d+:\\d+) " + // time 16:01:00 - "([\\-+])(\\d\\d)(\\d\\d)"; // gmt offset -0400 + "([\\-+])(\\d\\d)(\\d\\d)"; // gmt offset -0400 /** Current status of the parser */ private int status = GET_HEADER; /** List of change log entries */ - private Collection entries = new ArrayList(); + private List entries = new ArrayList(); /** The current log entry being processed by the parser */ private ChangeLogEntry currentLogEntry; @@ -92,29 +91,27 @@ /** * Default constructor. */ - public SvnChangeLogConsumer() throws ScmException + public SvnChangeLogConsumer() { try { headerRegexp = new RE(pattern); } - catch (RESyntaxException ignored) + catch ( RESyntaxException ex ) { - throw new ScmException("Could not create regexp to parse svn log file"); + throw new RuntimeException( "INTERNAL ERROR: Could not create regexp to parse svn log file. This shouldn't happen. Something is probably wrong with the oro installation.", ex ); } } - /* (non-Javadoc) - * @see org.apache.maven.scm.command.changelog.ChangeLogConsumer#getModifications() - */ - public Collection getModifications() + public List getModifications() { return entries; } - /* (non-Javadoc) - * @see org.codehaus.plexus.util.cli.StreamConsumer#consumeLine(java.lang.String) - */ + // ---------------------------------------------------------------------- + // StreamConsumer Implementation + // ---------------------------------------------------------------------- + public void consumeLine(String line) { switch (status) @@ -133,6 +130,10 @@ } } + // ---------------------------------------------------------------------- + // + // ---------------------------------------------------------------------- + /** * Process the current input line in the GET_HEADER state. The * author, date, and the revision of the entry are gathered. Note, @@ -149,10 +150,13 @@ return; } - currentRevision = headerRegexp.getParen(1); + currentRevision = headerRegexp.getParen( 1 ); + currentLogEntry = new ChangeLogEntry(); - currentLogEntry.setAuthor(headerRegexp.getParen(2)); - currentLogEntry.setDate(parseDate()); + + currentLogEntry.setAuthor( headerRegexp.getParen( 2 ) ); + + currentLogEntry.setDate( parseDate() ); status = GET_FILE; } 1.3 +77 -54 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/checkout/SvnCheckOutCommand.java Index: SvnCheckOutCommand.java =================================================================== RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/checkout/SvnCheckOutCommand.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SvnCheckOutCommand.java 2 Nov 2004 22:24:36 -0000 1.2 +++ SvnCheckOutCommand.java 9 Nov 2004 16:07:17 -0000 1.3 @@ -16,10 +16,17 @@ * limitations under the License. */ +import java.io.File; + import org.apache.maven.scm.ScmException; -import org.apache.maven.scm.command.checkout.CheckOutCommand; -import org.apache.maven.scm.provider.svn.command.AbstractSvnCommand; -import org.apache.maven.scm.provider.svn.repository.SvnRepository; +import org.apache.maven.scm.command.checkout.AbstractCheckOutCommand; +import org.apache.maven.scm.command.checkout.CheckOutScmResult; +import org.apache.maven.scm.provider.ScmProviderRepository; +import org.apache.maven.scm.provider.svn.command.SvnCommand; +import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository; + +import org.codehaus.plexus.util.cli.CommandLineException; +import org.codehaus.plexus.util.cli.CommandLineUtils; import org.codehaus.plexus.util.cli.Commandline; /** @@ -27,65 +34,81 @@ * @version $Id$ */ public class SvnCheckOutCommand - extends AbstractSvnCommand - implements CheckOutCommand + extends AbstractCheckOutCommand + implements SvnCommand { - - /* (non-Javadoc) - * @see org.apache.maven.scm.command.AbstractCommand#getCommandLine() - */ - public Commandline getCommandLine() throws ScmException + protected CheckOutScmResult executeCheckOutCommand( ScmProviderRepository repo, File workingDirectory, String tag, File[] files ) + throws ScmException { - Commandline command = new Commandline(); + Commandline cl = createCommandLine( (SvnScmProviderRepository)repo, workingDirectory, tag ); - command.setExecutable("svn"); + SvnCheckOutConsumer consumer = new SvnCheckOutConsumer( getLogger(), workingDirectory ); - if (getWorkingDirectory() != null) - { - command.setWorkingDirectory(getWorkingDirectory()); - } - - SvnRepository repo = (SvnRepository)getRepository(); - - command.createArgument().setValue("checkout"); - command.createArgument().setValue("--non-interactive"); - command.createArgument().setValue("-v"); - - if (getTag() != null) - { - command.createArgument().setValue("-r"); - command.createArgument().setValue(getTag()); - } - - if (repo.getUser() != null) - { - command.createArgument().setValue("--username"); - command.createArgument().setValue(repo.getUser()); - } - if (repo.getPassword() != null) - { - command.createArgument().setValue("--password"); - command.createArgument().setValue(repo.getPassword()); - } + CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer(); - command.createArgument().setValue(repo.getUrl()); + int exitCode; - return command; - } + getLogger().info( "Working directory: " + workingDirectory.getAbsolutePath() ); + getLogger().info( "Command line: " + cl ); - /* (non-Javadoc) - * @see org.apache.maven.scm.command.Command#getName() - */ - public String getName() - { - return NAME; + try + { + exitCode = CommandLineUtils.executeCommandLine( cl, consumer, stderr ); + } + catch( CommandLineException ex ) + { + throw new ScmException( "Error while executing command.", ex ); + } + + if ( exitCode != 0 ) + { + return new CheckOutScmResult( "The cvs command failed.", stderr.getOutput(), false ); + } + + return new CheckOutScmResult( consumer.getCheckedOutFiles() ); } - /* (non-Javadoc) - * @see org.apache.maven.scm.command.Command#getDisplayName() - */ - public String getDisplayName() + // ---------------------------------------------------------------------- + // + // ---------------------------------------------------------------------- + + public static Commandline createCommandLine( SvnScmProviderRepository repository, File workingDirectory, String tag ) { - return "Check out"; + Commandline cl = new Commandline(); + + cl.setExecutable( "svn" ); + + cl.setWorkingDirectory( workingDirectory.getAbsolutePath() ); + + cl.createArgument().setValue( "checkout" ); + + cl.createArgument().setValue( "--non-interactive" ); + +// cl.createArgument().setValue( "-q" ); + + if ( tag != null) + { + cl.createArgument().setValue( "-r" ); + + cl.createArgument().setValue( tag ); + } + + if ( repository.getUser() != null ) + { + cl.createArgument().setValue( "--username" ); + + cl.createArgument().setValue( repository.getUser() ); + } + + if ( repository.getPassword() != null ) + { + cl.createArgument().setValue( "--password" ); + + cl.createArgument().setValue( repository.getPassword() ); + } + + cl.createArgument().setValue( repository.getUrl() ); + + return cl; } } 1.1 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/checkout/SvnCheckOutConsumer.java Index: SvnCheckOutConsumer.java =================================================================== package org.apache.maven.scm.provider.svn.command.checkout; /* * Copyright 2001-2004 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 java.util.ArrayList; import java.util.List; import java.io.File; import org.apache.maven.scm.ScmFile; import org.apache.maven.scm.ScmFileStatus; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.util.cli.StreamConsumer; /** * @author Trygve Laugstøl * @version $Id: SvnCheckOutConsumer.java,v 1.1 2004/11/09 16:07:17 trygvis Exp $ */ public class SvnCheckOutConsumer implements StreamConsumer { private final static String CHECKED_OUT_REVISION_TOKEN = "Checked out revision"; private Logger logger; private File workingDirectory; private List checkedOutFiles = new ArrayList(); private int revision; public SvnCheckOutConsumer( Logger logger, File workingDirectory ) { this.logger = logger; this.workingDirectory = workingDirectory; } // ---------------------------------------------------------------------- // StreamConsumer Implementation // ---------------------------------------------------------------------- public void consumeLine( String line ) { if ( line.length() <= 3 ) { logger.warn( "Unexpected input, the line must be at least three characters long. Line: '" + line + "'." ); return; } String statusString = line.substring( 0, 1 ); String file = line.substring( 3 ); ScmFileStatus status; if ( line.startsWith( CHECKED_OUT_REVISION_TOKEN ) ) { String revisionString = line.substring( CHECKED_OUT_REVISION_TOKEN.length() + 1, line.length() - 1 ); try { revision = Integer.parseInt( revisionString ); } catch( NumberFormatException ex ) { // ignored } return; } else if ( statusString.equals( "A" ) ) { status = ScmFileStatus.ADDED; } else if ( statusString.equals( "U" ) ) { status = ScmFileStatus.UPDATED; } else { logger.info( "Unknown file status: '" + statusString + "'." ); return; } // If the file isn't a file; don't add it. if ( !new File( workingDirectory, file ).isFile() ) { return; } checkedOutFiles.add( new ScmFile( file, status ) ); } // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- public List getCheckedOutFiles() { return checkedOutFiles; } public int getRevision() { return revision; } } 1.3 +73 -55 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/update/SvnUpdateCommand.java Index: SvnUpdateCommand.java =================================================================== RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/update/SvnUpdateCommand.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SvnUpdateCommand.java 2 Nov 2004 22:24:36 -0000 1.2 +++ SvnUpdateCommand.java 9 Nov 2004 16:07:17 -0000 1.3 @@ -16,10 +16,17 @@ * limitations under the License. */ +import java.io.File; + import org.apache.maven.scm.ScmException; -import org.apache.maven.scm.command.update.UpdateCommand; -import org.apache.maven.scm.provider.svn.command.AbstractSvnCommand; -import org.apache.maven.scm.provider.svn.repository.SvnRepository; +import org.apache.maven.scm.command.update.AbstractUpdateCommand; +import org.apache.maven.scm.command.update.UpdateScmResult; +import org.apache.maven.scm.provider.ScmProviderRepository; +import org.apache.maven.scm.provider.svn.command.SvnCommand; +import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository; + +import org.codehaus.plexus.util.cli.CommandLineException; +import org.codehaus.plexus.util.cli.CommandLineUtils; import org.codehaus.plexus.util.cli.Commandline; /** @@ -27,66 +34,77 @@ * @version $Id$ */ public class SvnUpdateCommand - extends AbstractSvnCommand - implements UpdateCommand + extends AbstractUpdateCommand + implements SvnCommand { - - /* (non-Javadoc) - * @see org.apache.maven.scm.command.AbstractCommand#getCommandLine() - */ - public Commandline getCommandLine() throws ScmException + protected UpdateScmResult executeUpdateCommand( ScmProviderRepository repo, File workingDirectory, String tag ) + throws ScmException { - Commandline command = new Commandline(); + Commandline cl = createCommandLine( (SvnScmProviderRepository) repo, workingDirectory, tag ); - command.setExecutable("svn"); + SvnUpdateConsumer consumer = new SvnUpdateConsumer( getLogger(), workingDirectory ); - if (getWorkingDirectory() != null) - { - command.setWorkingDirectory(getWorkingDirectory()); - } - - SvnRepository repo = (SvnRepository)getRepository(); - - command.createArgument().setValue("update"); - command.createArgument().setValue("--non-interactive"); - command.createArgument().setValue("-v"); - - if (getTag() != null) - { - command.createArgument().setValue("-r"); - command.createArgument().setValue(getTag()); - } - - if (repo.getUser() != null) - { - command.createArgument().setValue("--username"); - command.createArgument().setValue(repo.getUser()); - } - if (repo.getPassword() != null) - { - command.createArgument().setValue("--password"); - command.createArgument().setValue(repo.getPassword()); - } + CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer(); - command.createArgument().setValue(repo.getUrl()); + getLogger().info( "Executing: " + cl ); + getLogger().info( "Working directory: " + cl.getWorkingDirectory().getAbsolutePath() ); - return command; - } + int exitCode; - /* (non-Javadoc) - * @see org.apache.maven.scm.command.Command#getName() - */ - public String getName() - { - return NAME; + try + { + exitCode = CommandLineUtils.executeCommandLine( cl, consumer, stderr ); + } + catch ( CommandLineException ex ) + { + throw new ScmException( "Error while executing command.", ex ); + } + + if ( exitCode != 0 ) + { + return new UpdateScmResult( "The cvs command failed.", stderr.getOutput(), false ); + } + + return new UpdateScmResult( consumer.getUpdatedFiles() ); } - /* (non-Javadoc) - * @see org.apache.maven.scm.command.Command#getDisplayName() - */ - public String getDisplayName() + // ---------------------------------------------------------------------- + // + // ---------------------------------------------------------------------- + + public static Commandline createCommandLine( SvnScmProviderRepository repository, File workingDirectory, String tag ) { - return "Update"; - } + Commandline cl = new Commandline(); + + cl.setExecutable( "svn" ); + cl.setWorkingDirectory( workingDirectory.getAbsolutePath() ); + + cl.createArgument().setValue( "update" ); + + cl.createArgument().setValue( "--non-interactive" ); + + if ( tag != null ) + { + cl.createArgument().setValue( "-r" ); + + cl.createArgument().setValue( tag ); + } + + if ( repository.getUser() != null ) + { + cl.createArgument().setValue( "--username" ); + + cl.createArgument().setValue( repository.getUser() ); + } + + if ( repository.getPassword() != null ) + { + cl.createArgument().setValue( "--password" ); + + cl.createArgument().setValue( repository.getPassword() ); + } + + return cl; + } } 1.1 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/command/update/SvnUpdateConsumer.java Index: SvnUpdateConsumer.java =================================================================== package org.apache.maven.scm.provider.svn.command.update; /* * Copyright 2003-2004 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 java.util.List; import java.util.ArrayList; import java.io.File; import org.apache.maven.scm.ScmFileStatus; import org.apache.maven.scm.ScmFile; import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.util.cli.StreamConsumer; /** * @author Trygve Laugstøl * @version $Id: SvnUpdateConsumer.java,v 1.1 2004/11/09 16:07:17 trygvis Exp $ */ public class SvnUpdateConsumer implements StreamConsumer { private final static String UPDATED_TO_REVISION_TOKEN = "Updated to revision"; private Logger logger; private File workingDirectory; private List updatedFiles = new ArrayList(); private int revision; // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- public SvnUpdateConsumer( Logger logger, File workingDirectory ) { this.logger = logger; this.workingDirectory = workingDirectory; } // ---------------------------------------------------------------------- // StreamConsumer Implementation // ---------------------------------------------------------------------- public void consumeLine( String line ) { if ( line.length() <= 3 ) { logger.warn( "Unexpected input, the line must be at least three characters long. Line: '" + line + "'." ); return; } String statusString = line.substring( 0, 1 ); String file = line.substring( 3 ); ScmFileStatus status; if ( line.startsWith( UPDATED_TO_REVISION_TOKEN ) ) { String revisionString = line.substring( UPDATED_TO_REVISION_TOKEN.length() + 1, line.length() - 1 ); try { revision = Integer.parseInt( revisionString ); } catch( NumberFormatException ex ) { // ignored } return; } else if ( statusString.equals( "A" ) ) { status = ScmFileStatus.ADDED; } else if ( statusString.equals( "U" ) ) { status = ScmFileStatus.UPDATED; } else if ( statusString.equals( "D" ) ) { status = ScmFileStatus.DELETED; } else { logger.info( "Unknown file status: '" + statusString + "'." ); return; } // If the file isn't a file; don't add it. if ( !new File( workingDirectory, file ).isFile() ) { return; } updatedFiles.add( new ScmFile( file, status ) ); } public List getUpdatedFiles() { return updatedFiles; } public int getRevision() { return revision; } } 1.1 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/repository/SvnScmProviderRepository.java Index: SvnScmProviderRepository.java =================================================================== package org.apache.maven.scm.provider.svn.repository; /* * Copyright 2003-2004 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.provider.ScmProviderRepository; /** * @author Emmanuel Venisse * @version $Id: SvnScmProviderRepository.java,v 1.1 2004/11/09 16:07:17 trygvis Exp $ */ public class SvnScmProviderRepository extends ScmProviderRepository { /** */ private String url; /** */ private String user; /** */ private String password; public SvnScmProviderRepository( String url, String user, String password ) { this.url = url; this.user = user; this.password = password; } public String getUrl() { return url; } public String getPassword() { return password; } public String getUser() { return user; } } 1.2 +22 -2 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/resources/META-INF/plexus/components.xml Index: components.xml =================================================================== RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-svn/src/main/resources/META-INF/plexus/components.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- components.xml 20 Oct 2004 18:03:43 -0000 1.1 +++ components.xml 9 Nov 2004 16:07:17 -0000 1.2 @@ -1,9 +1,29 @@ + - org.apache.maven.scm.Scm + org.apache.maven.scm.provider.ScmProvider svn - org.apache.maven.scm.provider.svn.SvnScm + org.apache.maven.scm.provider.svn.SvnScmProvider + + + org.apache.maven.scm.provider.svn.command.SvnCommand + commands + + + + + org.apache.maven.scm.provider.svn.command.SvnCommand + check-out + org.apache.maven.scm.provider.svn.command.checkout.SvnCheckOutCommand + + + + org.apache.maven.scm.provider.svn.command.SvnCommand + update + org.apache.maven.scm.provider.svn.command.update.SvnUpdateCommand + + 1.1 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/SvnScmProviderTest.java Index: SvnScmProviderTest.java =================================================================== package org.apache.maven.scm.provider.svn; /* * Copyright 2003-2004 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.ScmTestCase; /** * @author Emmanuel Venisse * @version $Id: SvnScmProviderTest.java,v 1.1 2004/11/09 16:07:17 trygvis Exp $ */ public class SvnScmProviderTest extends ScmTestCase { public void testFoo() { } } 1.1 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/SvnScmTestUtils.java Index: SvnScmTestUtils.java =================================================================== package org.apache.maven.scm.provider.svn; /* * Copyright 2003-2004 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 java.io.File; import java.io.FileInputStream; import org.apache.maven.scm.ScmTestCase; import org.codehaus.plexus.util.FileUtils; import org.codehaus.plexus.util.cli.CommandLineUtils; import org.codehaus.plexus.util.cli.Commandline; import junit.framework.Assert; /** * @author Trygve Laugstøl * @version $Id: SvnScmTestUtils.java,v 1.1 2004/11/09 16:07:17 trygvis Exp $ */ public abstract class SvnScmTestUtils { public static void initializeRepository( File repositoryRoot, File dump ) throws Exception { if ( repositoryRoot.exists() ) { FileUtils.deleteDirectory( repositoryRoot ); } Assert.assertTrue( "Could not make repository root directory: " + repositoryRoot.getAbsolutePath(), repositoryRoot.mkdirs() ); ScmTestCase.execute( repositoryRoot.getParentFile(), "svnadmin", "create " + repositoryRoot.getName() ); loadSvnDump( repositoryRoot, dump ); } private static void loadSvnDump( File repositoryRoot, File dump ) throws Exception { Assert.assertTrue( "The dump file doesn't exist: " + dump.getAbsolutePath(), dump.exists() ); Commandline cl = new Commandline(); cl.setExecutable( "svnadmin" ); cl.setWorkingDirectory( repositoryRoot.getParentFile().getAbsolutePath() ); cl.createArgument().setValue( "load" ); cl.createArgument().setValue( repositoryRoot.getAbsolutePath() ); CommandLineUtils.StringStreamConsumer stdout = new CommandLineUtils.StringStreamConsumer(); CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer(); int exitValue = CommandLineUtils.executeCommandLine( cl, new FileInputStream( dump ), stdout, stderr ); if ( exitValue != 0 ) { System.err.println( "-----------------------------------------" ); System.err.println( "Command line: " + cl ); System.err.println( "Working directory: " + cl.getWorkingDirectory() ); System.err.println( "-----------------------------------------" ); System.err.println( "Standard output: " ); System.err.println( "-----------------------------------------" ); System.err.println( stdout.getOutput() ); System.err.println( "-----------------------------------------" ); System.err.println( "Standard error: " ); System.err.println( "-----------------------------------------" ); System.err.println( stderr.getOutput() ); System.err.println( "-----------------------------------------" ); } if ( exitValue != 0 ) { Assert.fail( "Exit value wasn't 0, was:" + exitValue ); } } } 1.3 +29 -159 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogCommandTest.java Index: SvnChangeLogCommandTest.java =================================================================== RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogCommandTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SvnChangeLogCommandTest.java 2 Nov 2004 22:24:37 -0000 1.2 +++ SvnChangeLogCommandTest.java 9 Nov 2004 16:07:17 -0000 1.3 @@ -16,185 +16,55 @@ * limitations under the License. */ +import java.io.File; import java.util.Calendar; import java.util.Date; -import org.apache.maven.scm.provider.svn.repository.SvnRepository; -import org.codehaus.plexus.util.cli.Commandline; +import org.apache.maven.scm.ScmTestCase; +import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository; +import org.apache.maven.scm.repository.ScmRepository; -import junit.framework.TestCase; +import org.codehaus.plexus.util.cli.Commandline; /** * @author Emmanuel Venisse * @version $Id$ */ -public class SvnChangeLogCommandTest extends TestCase +public class SvnChangeLogCommandTest + extends ScmTestCase { - private SvnChangeLogCommand instance; - private String baseDir; - - /** - * @param testName - */ - public SvnChangeLogCommandTest(String testName) + public void testCommandLine() + throws Exception { - super(testName); - } + Calendar cal = Calendar.getInstance(); - /* (non-Javadoc) - * @see junit.framework.TestCase#setUp() - */ - protected void setUp() throws Exception - { - baseDir = System.getProperty("basedir"); - assertNotNull("The system property basedir was not defined.", baseDir); - instance = new SvnChangeLogCommand(); - } + cal.set(2003, 8, 10); - public void testGetCommandWithEndDate() - { - try - { - SvnRepository repo = new SvnRepository(); - repo.setDelimiter(":"); - repo.setConnection("http://foo.com/svn/trunk"); - instance.setRepository(repo); - instance.setRange(30); - Calendar cal = Calendar.getInstance(); - cal.set(2003, 8, 10); - Date startDate = cal.getTime(); - instance.setStartDate(startDate); - cal.set(2003, 9, 10); - Date endDate = cal.getTime(); - instance.setEndDate(endDate); - Commandline cl = instance.getCommandLine(); - System.out.println(cl.toString()); - assertEquals( - "svn log --non-interactive -v -r \"{2003/09/10 GMT}:{2003/10/10 GMT}\" http://foo.com/svn/trunk", - cl.toString()); - } - catch (Exception e) - { - fail(e.getMessage()); - } - } + Date startDate = cal.getTime(); - public void testGetCommandWithoutEndDate() - { - try - { - SvnRepository repo = new SvnRepository(); - repo.setDelimiter(":"); - repo.setConnection("http://foo.com/svn/trunk"); - instance.setRepository(repo); - Calendar cal = Calendar.getInstance(); - cal.set(2003, 8, 10); - Date startDate = cal.getTime(); - instance.setStartDate(startDate); - Commandline cl = instance.getCommandLine(); - System.out.println(cl.toString()); - assertEquals( - "svn log --non-interactive -v -r \"{2003/09/10 GMT}:HEAD\" http://foo.com/svn/trunk", - cl.toString()); - } - catch (Exception e) - { - fail(e.getMessage()); - } - } + cal.set(2003, 9, 10); - public void testGetCommandWithBranchOrTag() - { - try - { - SvnRepository repo = new SvnRepository(); - repo.setDelimiter(":"); - repo.setConnection("anonymous@http://foo.com/svn/trunk"); - repo.setPassword("passwd"); - instance.setRepository(repo); - instance.setBranch("3"); - instance.setWorkingDirectory(baseDir); - Commandline cl = instance.getCommandLine(); - System.out.println(cl.toString()); - assertEquals( - "svn log --non-interactive -v -r 3 --username anonymous --password passwd http://foo.com/svn/trunk", - cl.toString()); - } - catch (Exception e) - { - fail(e.getMessage()); - } - } + Date endDate = cal.getTime(); - public void testGetCommandWithoutBranchOrTag() - { - try - { - SvnRepository repo = new SvnRepository(); - repo.setDelimiter(":"); - repo.setConnection("anonymous@http://foo.com/svn/trunk"); - repo.setPassword("passwd"); - instance.setRepository(repo); - instance.setWorkingDirectory(baseDir); - Commandline cl = instance.getCommandLine(); - System.out.println(cl.toString()); - assertEquals( - "svn log --non-interactive -v --username anonymous --password passwd http://foo.com/svn/trunk", - cl.toString()); - } - catch (Exception e) - { - fail(e.getMessage()); - } + testCommandLine( "scm:svn:http://foo.com/svn/trunk", null, startDate, endDate, + "svn log --non-interactive -v -r \"{2003/09/10 GMT}:{2003/10/10 GMT}\" http://foo.com/svn/trunk" ); } - public void testGetDisplayNameName() - { - try - { - assertEquals("Changelog", instance.getDisplayName()); - } - catch(Exception e) - { - fail(); - } - } + // ---------------------------------------------------------------------- + // + // ---------------------------------------------------------------------- - public void testGetName() + private void testCommandLine( String scmUrl, String tag, Date startDate, Date endDate, String commandLine ) + throws Exception { - try - { - assertEquals("changelog", instance.getName()); - } - catch(Exception e) - { - fail(); - } - } + File workingDirectory = getTestFile( "target/svn-update-command-test" ); - public void testConsumer() - { - try - { - SvnChangeLogConsumer cons = new SvnChangeLogConsumer(); - instance.setConsumer(cons); - assertEquals(cons, instance.getConsumer()); - } - catch(Exception e) - { - fail(e.getMessage()); - } - } + ScmRepository repository = getScmManager().makeScmRepository( scmUrl ); - public void testWrongConsumer() - { - try - { - instance.setConsumer(null); - fail(); - } - catch(Exception e) - { - } + SvnScmProviderRepository svnRepository = (SvnScmProviderRepository) repository.getProviderRepository(); + + Commandline cl = SvnChangeLogCommand.createCommandLine( svnRepository, workingDirectory, tag, startDate, endDate ); + + assertEquals( commandLine, cl.toString() ); } } 1.3 +5 -92 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumerTest.java Index: SvnChangeLogConsumerTest.java =================================================================== RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/changelog/SvnChangeLogConsumerTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SvnChangeLogConsumerTest.java 2 Nov 2004 22:24:38 -0000 1.2 +++ SvnChangeLogConsumerTest.java 9 Nov 2004 16:07:17 -0000 1.3 @@ -16,103 +16,16 @@ * limitations under the License. */ -import java.io.BufferedReader; -import java.io.FileInputStream; -import java.io.InputStreamReader; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; - -import org.apache.maven.scm.command.changelog.ChangeLogEntry; - -import junit.framework.TestCase; +import org.apache.maven.scm.ScmTestCase; /** * @author Emmanuel Venisse * @version $Id$ */ -public class SvnChangeLogConsumerTest extends TestCase +public class SvnChangeLogConsumerTest + extends ScmTestCase { - /** Date formatter */ - private static final SimpleDateFormat DATE = - new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US); - - /** the {@link SvnChangeLogConsumer} used for testing */ - private SvnChangeLogConsumer instance; - /** file with test results to check against */ - private String testFile; - - /** - * @param testName - */ - public SvnChangeLogConsumerTest(String testName) + public void testFoo() { - super(testName); } - - /** - * Initialize per test data - * @throws Exception when there is an unexpected problem - */ - public void setUp() throws Exception - { - String baseDir = System.getProperty("basedir"); - assertNotNull("The system property basedir was not defined.", baseDir); - testFile = baseDir + "/src/test/resources/svn/changelog/svnlog.txt"; - instance = new SvnChangeLogConsumer(); - } - - /** - * Test of parse method - * @throws Exception when there is an unexpected problem - */ - public void testParse() throws Exception - { - FileInputStream fis = new FileInputStream(testFile); - BufferedReader in = new BufferedReader(new InputStreamReader(fis)); - String s = in.readLine(); - while ( s != null ) - { - instance.consumeLine( s ); - s = in.readLine(); - } - - List entries = new ArrayList(instance.getModifications()); - assertEquals("Wrong number of entries returned", 12, entries.size()); - ChangeLogEntry entry = null; - for (Iterator i = entries.iterator(); i.hasNext(); ) - { - entry = (ChangeLogEntry) i.next(); - assertTrue("ChangeLogEntry erroneously picked up", - entry.toString().indexOf("ChangeLogEntry.java") == -1); - } - - entry = (ChangeLogEntry) entries.get(0); - assertEquals("Entry 0 was parsed incorrectly", - "kaz\n" + - DATE.parse("Mon Aug 26 14:33:26 EDT 2002") + "\n" + - "[/poolserver/trunk/build.xml, 15, " + - "/poolserver/trunk/project.properties, 15]\n" + - "Minor formatting changes.\n\n", - entry.toString()); - - entry = (ChangeLogEntry) entries.get(6); - assertEquals("Entry 6 was parsed incorrectly", - "kaz\n" + - DATE.parse("Fri Aug 23 11:11:52 EDT 2002") + "\n" + - "[/poolserver/trunk/build.xml, 9]\n" + - "Testing script out again ...\n\n", - entry.toString()); - - entry = (ChangeLogEntry) entries.get(8); - assertEquals("Entry 8 was parsed incorrectly", - "pete\n" + - DATE.parse("Fri Aug 23 11:03:39 EDT 2002") + "\n" + - "[/poolserver/trunk/build.xml, 7]\n" + - "Reformatted the indentation (really just an excuse to test out\n" + - "subversion).\n\n", - entry.toString()); - } } 1.3 +35 -79 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/checkout/SvnCheckOutCommandTest.java Index: SvnCheckOutCommandTest.java =================================================================== RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/checkout/SvnCheckOutCommandTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SvnCheckOutCommandTest.java 2 Nov 2004 22:24:39 -0000 1.2 +++ SvnCheckOutCommandTest.java 9 Nov 2004 16:07:17 -0000 1.3 @@ -16,102 +16,58 @@ * limitations under the License. */ -import org.apache.maven.scm.provider.svn.repository.SvnRepository; -import org.codehaus.plexus.util.cli.Commandline; +import java.io.File; + +import org.apache.maven.scm.ScmTestCase; +import org.apache.maven.scm.manager.ScmManager; +import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository; +import org.apache.maven.scm.repository.ScmRepository; -import junit.framework.TestCase; +import org.codehaus.plexus.util.cli.Commandline; /** * @author Emmanuel Venisse * @version $Id$ */ -public class SvnCheckOutCommandTest extends TestCase +public class SvnCheckOutCommandTest + extends ScmTestCase { - private SvnCheckOutCommand instance; - private String baseDir; - - /** - * @param testName - */ - public SvnCheckOutCommandTest(String testName) + public void testCommandLineWithoutTag() + throws Exception { - super(testName); + testCommandLine( getScmManager(), "scm:svn:http://foo.com/svn/trunk", null, + "svn checkout --non-interactive http://foo.com/svn/trunk" ); } - /* (non-Javadoc) - * @see junit.framework.TestCase#setUp() - */ - protected void setUp() throws Exception + public void testCommandLineWithEmptyTag() + throws Exception { - baseDir = System.getProperty("basedir"); - assertNotNull("The system property basedir was not defined.", baseDir); - instance = new SvnCheckOutCommand(); + testCommandLine( getScmManager(), "scm:svn:http://foo.com/svn/trunk", "", + "svn checkout --non-interactive -r http://foo.com/svn/trunk" ); } - public void testGetCommand() + public void testCommandLineWithTag() + throws Exception { - try - { - SvnRepository repo = new SvnRepository(); - repo.setDelimiter(":"); - repo.setConnection("anonymous@http://foo.com/svn/trunk"); - repo.setPassword("passwd"); - instance.setRepository(repo); - instance.setTag("10"); - Commandline cl = instance.getCommandLine(); - System.out.println(cl.toString()); - assertEquals( - "svn checkout --non-interactive -v -r 10 --username anonymous --password passwd http://foo.com/svn/trunk", - cl.toString()); - } - catch (Exception e) - { - fail(e.getMessage()); - } + testCommandLine( getScmManager(), "scm:svn:http://foo.com/svn/trunk", "10", + "svn checkout --non-interactive -r 10 http://foo.com/svn/trunk" ); } - public void testGetCommand2() - { - try - { - SvnRepository repo = new SvnRepository(); - repo.setDelimiter(":"); - repo.setConnection("http://foo.com/svn/trunk"); - instance.setRepository(repo); - instance.setWorkingDirectory(baseDir); - Commandline cl = instance.getCommandLine(); - System.out.println(cl.toString()); - assertEquals( - "svn checkout --non-interactive -v http://foo.com/svn/trunk", - cl.toString()); - } - catch (Exception e) - { - fail(e.getMessage()); - } - } + // ---------------------------------------------------------------------- + // + // ---------------------------------------------------------------------- - public void testGetDisplayNameName() + private static void testCommandLine( ScmManager scmManager, String scmUrl, String tag, String commandLine ) + throws Exception { - try - { - assertEquals("Check out", instance.getDisplayName()); - } - catch(Exception e) - { - fail(); - } - } + File workingDirectory = getTestFile( "target/svn-update-command-test" ); - public void testGetName() - { - try - { - assertEquals("checkout", instance.getName()); - } - catch(Exception e) - { - fail(); - } + ScmRepository repository = scmManager.makeScmRepository( scmUrl ); + + SvnScmProviderRepository svnRepository = (SvnScmProviderRepository) repository.getProviderRepository(); + + Commandline cl = SvnCheckOutCommand.createCommandLine( svnRepository, workingDirectory, tag ); + + assertEquals( commandLine, cl.toString() ); } } 1.1 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/checkout/SvnCheckOutCommandTckTest.java Index: SvnCheckOutCommandTckTest.java =================================================================== package org.apache.maven.scm.provider.svn.command.checkout; /* * Copyright 2003-2004 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.tck.command.checkout.CheckOutCommandTckTest; import org.apache.maven.scm.provider.svn.SvnScmTestUtils; /** * @author Emmanuel Venisse * @version $Id: SvnCheckOutCommandTckTest.java,v 1.1 2004/11/09 16:07:17 trygvis Exp $ */ public class SvnCheckOutCommandTckTest extends CheckOutCommandTckTest { public String getScmUrl() throws Exception { return "scm:svn:file://" + getRepositoryRoot().getAbsolutePath(); } public void initRepo() throws Exception { SvnScmTestUtils.initializeRepository( getRepositoryRoot(), getTestFile( "src/test/resources/tck/checkout.dump" ) ); } } 1.3 +56 -77 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/update/SvnUpdateCommandTest.java Index: SvnUpdateCommandTest.java =================================================================== RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/update/SvnUpdateCommandTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SvnUpdateCommandTest.java 2 Nov 2004 22:24:39 -0000 1.2 +++ SvnUpdateCommandTest.java 9 Nov 2004 16:07:17 -0000 1.3 @@ -16,102 +16,81 @@ * limitations under the License. */ -import org.apache.maven.scm.provider.svn.repository.SvnRepository; -import org.codehaus.plexus.util.cli.Commandline; +import java.io.File; + +import org.apache.maven.scm.ScmTestCase; +import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository; +import org.apache.maven.scm.repository.ScmRepository; -import junit.framework.TestCase; +import org.codehaus.plexus.util.cli.Commandline; /** * @author Emmanuel Venisse * @version $Id$ */ -public class SvnUpdateCommandTest extends TestCase +public class SvnUpdateCommandTest + extends ScmTestCase { - private SvnUpdateCommand instance; - private String baseDir; - - /** - * @param testName - */ - public SvnUpdateCommandTest(String testName) + public void testCommandLineWithEmptyTag() + throws Exception { - super(testName); + testCommandLine( "scm:svn:http://foo.com/svn/trunk", "", + "svn update --non-interactive -r " ); } - /* (non-Javadoc) - * @see junit.framework.TestCase#setUp() - */ - protected void setUp() throws Exception - { - baseDir = System.getProperty("basedir"); - assertNotNull("The system property basedir was not defined.", baseDir); - instance = new SvnUpdateCommand(); + public void testCommandLineWithoutTag() + throws Exception + { + testCommandLine( "scm:svn:http://foo.com/svn/trunk", null, + "svn update --non-interactive" ); } - public void testGetCommand() + public void testCommandLineTag() + throws Exception { - try - { - SvnRepository repo = new SvnRepository(); - repo.setDelimiter(":"); - repo.setConnection("anonymous@http://foo.com/svn/trunk"); - repo.setPassword("passwd"); - instance.setRepository(repo); - instance.setTag("10"); - Commandline cl = instance.getCommandLine(); - System.out.println(cl.toString()); - assertEquals( - "svn update --non-interactive -v -r 10 --username anonymous --password passwd http://foo.com/svn/trunk", - cl.toString()); - } - catch (Exception e) - { - fail(e.getMessage()); - } + testCommandLine( "scm:svn:anonymous@http://foo.com/svn/trunk", "10", + "svn update --non-interactive -r 10 --username anonymous" ); } - public void testGetCommand2() + public void testCommandLineWithUsernameTag() + throws Exception { - try - { - SvnRepository repo = new SvnRepository(); - repo.setDelimiter(":"); - repo.setConnection("http://foo.com/svn/trunk"); - instance.setRepository(repo); - instance.setWorkingDirectory(baseDir); - Commandline cl = instance.getCommandLine(); - System.out.println(cl.toString()); - assertEquals( - "svn update --non-interactive -v http://foo.com/svn/trunk", - cl.toString()); - } - catch (Exception e) - { - fail(e.getMessage()); - } + testCommandLine( "scm:svn:anonymous@http://foo.com/svn/trunk", "10", + "svn update --non-interactive -r 10 --username anonymous" ); } - - public void testGetDisplayNameName() +/* + public void testCommandLineWithTagAndAuth() + throws Exception { - try - { - assertEquals("Update", instance.getDisplayName()); - } - catch(Exception e) - { - fail(); - } + File workingDirectory = getTestFile( "target/svn-update-command-test" ); + + String tag = "10"; + + ScmRepository repository = getScmManager().makeScmRepository( "scm:svn:anonymous@http://foo.com/svn/trunk" ); + + SvnScmProviderRepository svnRepository = (SvnScmProviderRepository) repository.getProviderRepository(); + + Commandline cl = SvnUpdateCommand.createCommandLine( workingDirectory, tag, svnRepository ); + + assertEquals( "svn update --non-interactive -r 10 --username anonymous --password passwd", cl.toString() ); } +*/ + + // ---------------------------------------------------------------------- + // + // ---------------------------------------------------------------------- - public void testGetName() + private void testCommandLine( String scmUrl, String tag, String commandLine ) + throws Exception { - try - { - assertEquals("update", instance.getName()); - } - catch(Exception e) - { - fail(); - } + File workingDirectory = getTestFile( "target/svn-update-command-test" ); + + ScmRepository repository = getScmManager().makeScmRepository( scmUrl ); + + SvnScmProviderRepository svnRepository = (SvnScmProviderRepository) repository.getProviderRepository(); + + Commandline cl = SvnUpdateCommand.createCommandLine( svnRepository, workingDirectory, tag ); + + assertEquals( commandLine, cl.toString() ); } } 1.1 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/update/SvnUpdateCommandTckTest.java Index: SvnUpdateCommandTckTest.java =================================================================== package org.apache.maven.scm.provider.svn.command.update; /* * Copyright 2003-2004 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 java.io.File; import org.apache.maven.scm.tck.command.update.UpdateCommandTckTest; import org.apache.maven.scm.repository.ScmRepository; import org.apache.maven.scm.provider.svn.SvnScmTestUtils; /** * @author Trygve Laugstøl * @version $Id: SvnUpdateCommandTckTest.java,v 1.1 2004/11/09 16:07:17 trygvis Exp $ */ public class SvnUpdateCommandTckTest extends UpdateCommandTckTest { private final static File updateDump = getTestFile( "src/test/resources/tck/update.dump" ); public String getScmUrl() throws Exception { return "scm:svn:file://" + getRepositoryRoot(); } public void initRepo() throws Exception { SvnScmTestUtils.initializeRepository( getRepositoryRoot(), updateDump ); } public void checkOut( File workingDirectory ) throws Exception { execute( workingDirectory.getParentFile(), "svn", "checkout file://" + getRepositoryRoot() + " " + workingDirectory.getName() ); } public void addFileToRepository( File workingDirectory, String file ) throws Exception { execute( workingDirectory, "svn", "add " + file ); } public void addDirectoryToRepository( File workingDirectory, String directory ) throws Exception { execute( workingDirectory, "svn", "add " + directory ); } public void commit( File workingDirectory, ScmRepository repository ) throws Exception { execute( workingDirectory, "svn", "commit -m '' --non-interactive" ); } } 1.1 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/repository/SvnScmProviderRepositoryTest.java Index: SvnScmProviderRepositoryTest.java =================================================================== package org.apache.maven.scm.provider.svn.repository; /* * Copyright 2003-2004 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.ScmTestCase; import org.apache.maven.scm.repository.ScmRepository; import org.apache.maven.scm.manager.ScmManager; /** * @author Emmanuel Venisse * @version $Id: SvnScmProviderRepositoryTest.java,v 1.1 2004/11/09 16:07:17 trygvis Exp $ */ public class SvnScmProviderRepositoryTest extends ScmTestCase { private ScmManager scmManager; public void setUp() throws Exception { super.setUp(); scmManager = getScmManager(); } public void testLegalFileURL() throws Exception { testUrl( "file:///tmp/repo" ); } public void testLegalHttpURL() throws Exception { testUrl( "http://subversion.tigris.org" ); } public void testLegalHttpsURL() throws Exception { testUrl( "https://subversion.tigris.org" ); } public void testLegalSvnURL() throws Exception { testUrl( "svn://subversion.tigris.org" ); } public void testLegalSvnPlusSshURL() throws Exception { testUrl( "svn+ssh://subversion.tigris.org" ); } // ---------------------------------------------------------------------- // // ---------------------------------------------------------------------- private void testUrl( String url ) throws Exception { ScmRepository repository = scmManager.makeScmRepository( "scm:svn:" + url ); assertNotNull( "ScmManager.makeScmRepository() returned null", repository ); assertNotNull( "The provider repository was null.", repository.getProviderRepository() ); assertTrue( "The SCM Repository isn't a " + SvnScmProviderRepository.class.getName() + ".", repository.getProviderRepository() instanceof SvnScmProviderRepository ); } } 1.1 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/resources/checkout.dump Index: checkout.dump =================================================================== SVN-fs-dump-format-version: 2 UUID: 32329737-c6e7-0310-acdd-fde163f827b2 Revision-number: 0 Prop-content-length: 56 Content-length: 56 K 8 svn:date V 27 2004-10-31T22:57:32.330365Z PROPS-END Revision-number: 1 Prop-content-length: 101 Content-length: 101 K 7 svn:log V 0 K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-10-31T23:00:31.108377Z PROPS-END Node-path: file Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 0 Text-content-md5: d41d8cd98f00b204e9800998ecf8427e Content-length: 10 PROPS-END Revision-number: 2 Prop-content-length: 101 Content-length: 101 K 7 svn:log V 0 K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-10-31T23:01:07.427469Z PROPS-END Node-path: file_2 Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 0 Text-content-md5: d41d8cd98f00b204e9800998ecf8427e Content-length: 10 PROPS-END Revision-number: 3 Prop-content-length: 101 Content-length: 101 K 7 svn:log V 0 K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-10-31T23:01:47.729957Z PROPS-END Node-path: file_1 Node-kind: file Node-action: add Node-copyfrom-rev: 1 Node-copyfrom-path: file Node-path: file_2 Node-kind: file Node-action: change Text-content-length: 17 Text-content-md5: 53adcdeed5651fafe46fbba6b5e87d02 Content-length: 17 adding some crap Node-path: file Node-action: delete Revision-number: 4 Prop-content-length: 118 Content-length: 118 K 7 svn:log V 16 o My log message K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-11-01T07:34:03.254229Z PROPS-END Node-path: file_2 Node-kind: file Node-action: change Text-content-length: 102 Text-content-md5: 12db6e90dbaccb1e1c793465d0cd2573 Content-length: 102 adding some crap adding some crap adding some crap adding some crap adding some crap adding some crap 1.1 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/resources/tck/checkout.dump Index: checkout.dump =================================================================== SVN-fs-dump-format-version: 2 UUID: 32329737-c6e7-0310-acdd-fde163f827b2 Revision-number: 0 Prop-content-length: 56 Content-length: 56 K 8 svn:date V 27 2004-10-31T22:57:32.330365Z PROPS-END Revision-number: 1 Prop-content-length: 101 Content-length: 101 K 7 svn:log V 0 K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-10-31T23:00:31.108377Z PROPS-END Node-path: file Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 0 Text-content-md5: d41d8cd98f00b204e9800998ecf8427e Content-length: 10 PROPS-END Revision-number: 2 Prop-content-length: 101 Content-length: 101 K 7 svn:log V 0 K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-10-31T23:01:07.427469Z PROPS-END Node-path: file_2 Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 0 Text-content-md5: d41d8cd98f00b204e9800998ecf8427e Content-length: 10 PROPS-END Revision-number: 3 Prop-content-length: 101 Content-length: 101 K 7 svn:log V 0 K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-10-31T23:01:47.729957Z PROPS-END Node-path: file_1 Node-kind: file Node-action: add Node-copyfrom-rev: 1 Node-copyfrom-path: file Node-path: file_2 Node-kind: file Node-action: change Text-content-length: 17 Text-content-md5: 53adcdeed5651fafe46fbba6b5e87d02 Content-length: 17 adding some crap Node-path: file Node-action: delete Revision-number: 4 Prop-content-length: 118 Content-length: 118 K 7 svn:log V 16 o My log message K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-11-01T07:34:03.254229Z PROPS-END Node-path: file_2 Node-kind: file Node-action: change Text-content-length: 102 Text-content-md5: 12db6e90dbaccb1e1c793465d0cd2573 Content-length: 102 adding some crap adding some crap adding some crap adding some crap adding some crap adding some crap Revision-number: 5 Prop-content-length: 127 Content-length: 127 K 7 svn:log V 25 o Making TCK update dump. K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-11-03T09:40:38.812597Z PROPS-END Node-path: pom.xml Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 8 Text-content-md5: bb4d26f6cff04ea8d4453055155aa4ae Content-length: 18 PROPS-END pom.xml Node-path: readme.txt Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 11 Text-content-md5: 2f4e912cdd8e4daf724d86c85100c234 Content-length: 21 PROPS-END readme.txt Node-path: src Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: src/main Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: src/main/java Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: src/main/java/Application.java Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 17 Text-content-md5: f9c80174d0aceb15241396719d3d8ee0 Content-length: 27 PROPS-END Application.java Node-path: src/test Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: src/test/java Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: src/test/java/Test.java Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 10 Text-content-md5: 2b67cb187cfebc6556a9ff00dd2a73c9 Content-length: 20 PROPS-END Test.java Node-path: src/test/resources Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: file_1 Node-action: delete Node-path: file_2 Node-action: delete Revision-number: 6 Prop-content-length: 135 Content-length: 135 K 7 svn:log V 33 o Making TCK update dump, take 2. K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-11-03T09:55:45.739689Z PROPS-END Node-path: pom.xml Node-kind: file Node-action: change Text-content-length: 9 Text-content-md5: ab43bf43c516ba05e7ea14237861c101 Content-length: 9 /pom.xml Node-path: readme.txt Node-kind: file Node-action: change Text-content-length: 12 Text-content-md5: 2c15d78f5fc4223fccc94031588aee97 Content-length: 12 /readme.txt Node-path: src/main/java/Application.java Node-kind: file Node-action: change Text-content-length: 32 Text-content-md5: e0b1aa4c95b4211d51a817c43f6a0070 Content-length: 32 /src/main/java/Application.java Node-path: src/test/java/Test.java Node-kind: file Node-action: change Text-content-length: 25 Text-content-md5: 2f8ba3ce8330bf354a73b4f243013e98 Content-length: 25 /src/test/java/Test.java Revision-number: 7 Prop-content-length: 135 Content-length: 135 K 7 svn:log V 33 o Making TCK update dump, take 3. K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-11-03T09:57:42.448827Z PROPS-END Node-path: pom.xml Node-kind: file Node-action: change Text-content-length: 8 Text-content-md5: eab74e9a6a0a7669ca7a253f0f0ed832 Content-length: 8 /pom.xml Node-path: readme.txt Node-kind: file Node-action: change Text-content-length: 11 Text-content-md5: 74088de3393a22eb8d6abc87369fb21a Content-length: 11 /readme.txt Node-path: src/main/java/Application.java Node-kind: file Node-action: change Text-content-length: 31 Text-content-md5: 1486dc4cd4c38fc1d4c2b4ae40f87a3e Content-length: 31 /src/main/java/Application.java Node-path: src/test/java/Test.java Node-kind: file Node-action: change Text-content-length: 24 Text-content-md5: 197e3f681c57ea737fdd1b73e83509b1 Content-length: 24 /src/test/java/Test.java 1.1 maven-scm/maven-scm-providers/maven-scm-provider-svn/src/test/resources/tck/update.dump Index: update.dump =================================================================== SVN-fs-dump-format-version: 2 UUID: 32329737-c6e7-0310-acdd-fde163f827b2 Revision-number: 0 Prop-content-length: 56 Content-length: 56 K 8 svn:date V 27 2004-10-31T22:57:32.330365Z PROPS-END Revision-number: 1 Prop-content-length: 101 Content-length: 101 K 7 svn:log V 0 K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-10-31T23:00:31.108377Z PROPS-END Node-path: file Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 0 Text-content-md5: d41d8cd98f00b204e9800998ecf8427e Content-length: 10 PROPS-END Revision-number: 2 Prop-content-length: 101 Content-length: 101 K 7 svn:log V 0 K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-10-31T23:01:07.427469Z PROPS-END Node-path: file_2 Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 0 Text-content-md5: d41d8cd98f00b204e9800998ecf8427e Content-length: 10 PROPS-END Revision-number: 3 Prop-content-length: 101 Content-length: 101 K 7 svn:log V 0 K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-10-31T23:01:47.729957Z PROPS-END Node-path: file_1 Node-kind: file Node-action: add Node-copyfrom-rev: 1 Node-copyfrom-path: file Node-path: file_2 Node-kind: file Node-action: change Text-content-length: 17 Text-content-md5: 53adcdeed5651fafe46fbba6b5e87d02 Content-length: 17 adding some crap Node-path: file Node-action: delete Revision-number: 4 Prop-content-length: 118 Content-length: 118 K 7 svn:log V 16 o My log message K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-11-01T07:34:03.254229Z PROPS-END Node-path: file_2 Node-kind: file Node-action: change Text-content-length: 102 Text-content-md5: 12db6e90dbaccb1e1c793465d0cd2573 Content-length: 102 adding some crap adding some crap adding some crap adding some crap adding some crap adding some crap Revision-number: 5 Prop-content-length: 127 Content-length: 127 K 7 svn:log V 25 o Making TCK update dump. K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-11-03T09:40:38.812597Z PROPS-END Node-path: pom.xml Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 8 Text-content-md5: bb4d26f6cff04ea8d4453055155aa4ae Content-length: 18 PROPS-END pom.xml Node-path: readme.txt Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 11 Text-content-md5: 2f4e912cdd8e4daf724d86c85100c234 Content-length: 21 PROPS-END readme.txt Node-path: src Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: src/main Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: src/main/java Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: src/main/java/Application.java Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 17 Text-content-md5: f9c80174d0aceb15241396719d3d8ee0 Content-length: 27 PROPS-END Application.java Node-path: src/test Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: src/test/java Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: src/test/java/Test.java Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 10 Text-content-md5: 2b67cb187cfebc6556a9ff00dd2a73c9 Content-length: 20 PROPS-END Test.java Node-path: src/test/resources Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: file_1 Node-action: delete Node-path: file_2 Node-action: delete Revision-number: 6 Prop-content-length: 135 Content-length: 135 K 7 svn:log V 33 o Making TCK update dump, take 2. K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-11-03T09:55:45.739689Z PROPS-END Node-path: pom.xml Node-kind: file Node-action: change Text-content-length: 9 Text-content-md5: ab43bf43c516ba05e7ea14237861c101 Content-length: 9 /pom.xml Node-path: readme.txt Node-kind: file Node-action: change Text-content-length: 12 Text-content-md5: 2c15d78f5fc4223fccc94031588aee97 Content-length: 12 /readme.txt Node-path: src/main/java/Application.java Node-kind: file Node-action: change Text-content-length: 32 Text-content-md5: e0b1aa4c95b4211d51a817c43f6a0070 Content-length: 32 /src/main/java/Application.java Node-path: src/test/java/Test.java Node-kind: file Node-action: change Text-content-length: 25 Text-content-md5: 2f8ba3ce8330bf354a73b4f243013e98 Content-length: 25 /src/test/java/Test.java Revision-number: 7 Prop-content-length: 135 Content-length: 135 K 7 svn:log V 33 o Making TCK update dump, take 3. K 10 svn:author V 7 trygvis K 8 svn:date V 27 2004-11-03T09:57:42.448827Z PROPS-END Node-path: pom.xml Node-kind: file Node-action: change Text-content-length: 8 Text-content-md5: eab74e9a6a0a7669ca7a253f0f0ed832 Content-length: 8 /pom.xml Node-path: readme.txt Node-kind: file Node-action: change Text-content-length: 11 Text-content-md5: 74088de3393a22eb8d6abc87369fb21a Content-length: 11 /readme.txt Node-path: src/main/java/Application.java Node-kind: file Node-action: change Text-content-length: 31 Text-content-md5: 1486dc4cd4c38fc1d4c2b4ae40f87a3e Content-length: 31 /src/main/java/Application.java Node-path: src/test/java/Test.java Node-kind: file Node-action: change Text-content-length: 24 Text-content-md5: 197e3f681c57ea737fdd1b73e83509b1 Content-length: 24 /src/test/java/Test.java