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 br...@apache.org on 2005/01/03 02:33:59 UTC

cvs commit: maven-scm/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/checkin LocalCheckInCommandTckTest.java

brett       2005/01/02 17:33:59

  Modified:    maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/add
                        LocalAddCommand.java
               maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/checkin
                        LocalCheckInCommand.java
               maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/update
                        LocalUpdateCommand.java
               maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/repository
                        LocalScmProviderRepository.java
  Added:       maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/checkin
                        LocalCheckInCommandTckTest.java
  Log:
  partially implement add command for local repository, and add checkin test
  
  Revision  Changes    Path
  1.2       +25 -1     maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/add/LocalAddCommand.java
  
  Index: LocalAddCommand.java
  ===================================================================
  RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/add/LocalAddCommand.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- LocalAddCommand.java	30 Dec 2004 10:05:29 -0000	1.1
  +++ LocalAddCommand.java	3 Jan 2005 01:33:58 -0000	1.2
  @@ -23,7 +23,9 @@
   import org.apache.maven.scm.command.add.AddScmResult;
   import org.apache.maven.scm.provider.ScmProviderRepository;
   import org.apache.maven.scm.provider.local.command.LocalCommand;
  +import org.apache.maven.scm.provider.local.repository.LocalScmProviderRepository;
   
  +import java.io.File;
   import java.util.Collections;
   
   /**
  @@ -38,6 +40,28 @@
                                              boolean binary )
           throws ScmException
       {
  +        LocalScmProviderRepository localRepo = (LocalScmProviderRepository) repository;
  +
  +        File[] files = fileSet.getFiles();
  +        for ( int i = 0; i < files.length; i++ )
  +        {
  +            // TODO: better to standardise on relative paths inside fileset
  +
  +            String path = files[i].getPath();
  +            if ( path.startsWith( fileSet.getBasedir().getPath() ) )
  +            {
  +                path = path.substring( fileSet.getBasedir().getPath().length() );
  +            }
  +            path = path.replace( '\\', '/' );
  +
  +            if ( path.startsWith( "/" ) )
  +            {
  +                path = path.substring( 1 );
  +            }
  +
  +            localRepo.addFile( path );
  +        }
  +
           // TODO: Also, ensure it is tested from the update test
           return new AddScmResult( Collections.EMPTY_LIST );
       }
  
  
  
  1.3       +14 -3     maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/checkin/LocalCheckInCommand.java
  
  Index: LocalCheckInCommand.java
  ===================================================================
  RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/checkin/LocalCheckInCommand.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LocalCheckInCommand.java	24 Dec 2004 03:24:37 -0000	1.2
  +++ LocalCheckInCommand.java	3 Jan 2005 01:33:58 -0000	1.3
  @@ -89,7 +89,11 @@
               {
                   File file = (File) it.next();
   
  -                String path = file.getAbsolutePath().substring( baseDestination.getAbsolutePath().length());
  +                String path = file.getAbsolutePath().substring( baseDestination.getAbsolutePath().length() ).replace( '\\', '/' );
  +                if ( path.startsWith( "/" ) )
  +                {
  +                    path = path.substring( 1 );
  +                }
   
                   File repoFile = new File( repoRoot, path );
   
  @@ -110,9 +114,16 @@
   
                       status = ScmFileStatus.CHECKED_IN;
                   }
  +                else if ( repository.isFileAdded( path ) )
  +                {
  +                    status = ScmFileStatus.CHECKED_IN;
  +                }
                   else
                   {
  -                    status = ScmFileStatus.ADDED;
  +                    // TODO: use some log mechanism instead
  +                    System.err.println("skipped unknown file in checkin:" + path);
  +                    // unknown file, skip
  +                    continue;
                   }
   
                   FileUtils.copyFile( file, repoFile );
  
  
  
  1.7       +3 -4      maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommand.java
  
  Index: LocalUpdateCommand.java
  ===================================================================
  RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/command/update/LocalUpdateCommand.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- LocalUpdateCommand.java	30 Dec 2004 10:05:29 -0000	1.6
  +++ LocalUpdateCommand.java	3 Jan 2005 01:33:59 -0000	1.7
  @@ -23,7 +23,6 @@
   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.local.LocalScmProvider;
   import org.apache.maven.scm.provider.local.command.LocalCommand;
   import org.apache.maven.scm.provider.local.repository.LocalScmProviderRepository;
   import org.codehaus.plexus.util.FileUtils;
  @@ -89,7 +88,7 @@
   
           	List fileList = FileUtils.getFiles( source.getAbsoluteFile(), "**", null );
   
  -        	updatedFiles = update( source, baseDestination, fileList, LocalScmProvider.fixModuleName( repository.getModule() ) );
  +        	updatedFiles = update( source, baseDestination, fileList );
           }
           catch( IOException ex )
           {
  @@ -99,7 +98,7 @@
           return new LocalUpdateScmResult( updatedFiles );
       }
   
  -    private List update( File source, File baseDestination, List files, String module )
  +    private List update( File source, File baseDestination, List files )
       	throws ScmException, IOException
       {
           String sourcePath = source.getAbsolutePath();
  
  
  
  1.3       +16 -1     maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/repository/LocalScmProviderRepository.java
  
  Index: LocalScmProviderRepository.java
  ===================================================================
  RCS file: /home/cvs/maven-scm/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/repository/LocalScmProviderRepository.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LocalScmProviderRepository.java	26 Oct 2004 12:45:28 -0000	1.2
  +++ LocalScmProviderRepository.java	3 Jan 2005 01:33:59 -0000	1.3
  @@ -18,6 +18,9 @@
   
   import org.apache.maven.scm.provider.ScmProviderRepository;
   
  +import java.util.HashSet;
  +import java.util.Set;
  +
   /**
    * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
    * @version $Id$
  @@ -29,6 +32,8 @@
   
       private String module;
   
  +    private Set addedFiles = new HashSet();
  +
       /**
        * @param root
        * @param module
  @@ -54,5 +59,15 @@
       public String getModule()
       {
           return module;
  +    }
  +
  +    public void addFile( String path )
  +    {
  +        addedFiles.add( path );
  +    }
  +
  +    public boolean isFileAdded( String path )
  +    {
  +        return addedFiles.contains( path );
       }
   }
  
  
  
  1.1                  maven-scm/maven-scm-providers/maven-scm-provider-local/src/test/java/org/apache/maven/scm/provider/local/command/checkin/LocalCheckInCommandTckTest.java
  
  Index: LocalCheckInCommandTckTest.java
  ===================================================================
  package org.apache.maven.scm.provider.local.command.checkin;
  
  /*
   * 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 org.apache.maven.scm.tck.command.checkin.CheckInCommandTckTest;
  
  import java.io.File;
  
  /**
   * @author <a href="mailto:brett@apache.org">Brett Porter</a>
   * @version $Id: LocalCheckInCommandTckTest.java,v 1.1 2005/01/03 01:33:59 brett Exp $
   */
  public class LocalCheckInCommandTckTest
  	extends CheckInCommandTckTest
  {
      private final static String moduleName = "checkin-tck";
  
      public String getScmUrl()
      	throws Exception
  	{
          return "scm:local|" + getRepositoryRoot() + "|" + moduleName;
  	}
  
      public void initRepo()
  		throws Exception
  	{
          makeRepo( getRepositoryRoot() );
  	}
  
      private void makeRepo( File workingDirectory )
  		throws Exception
  	{
          makeFile( workingDirectory, moduleName + "/pom.xml", "/pom.xml" );
  
          makeFile( workingDirectory, moduleName + "/readme.txt", "/readme.txt" );
  
          makeFile( workingDirectory, moduleName + "/src/main/java/Application.java", "/src/main/java/Application.java" );
  
          makeFile( workingDirectory, moduleName + "/src/test/java/Test.java", "/src/test/java/Test.java" );
  
          makeDirectory( workingDirectory, moduleName + "/src/test/resources" );
      }
  }