Author: dantran Date: Sat Mar 27 03:39:51 2010 New Revision: 928132 URL: http://svn.apache.org/viewvc?rev=928132&view=rev Log: [SCM-526] implement checkout/export's excludes/includes plus tests
Added: maven/scm/trunk/maven-scm-plugin/src/test/resources/mojos/export/exportWithExcludesIncludes.xml (with props) Modified: maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java maven/scm/trunk/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/CheckoutMojoTest.java maven/scm/trunk/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ExportMojoTest.java Modified: maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java?rev=928132&r1=928131&r2=928132&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java (original) +++ maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java Sat Mar 27 03:39:51 2010 @@ -468,7 +468,7 @@ public abstract class AbstractScmMojo throw new MojoExecutionException( "Unknown '" + versionType + "' version type." ); } - protected void cleanCheckoutDirectory( File checkoutDirectory ) + protected void handleExcludesIncludesAfterCheckoutAndExport( File checkoutDirectory ) throws MojoExecutionException { List includes = new ArrayList(); @@ -502,8 +502,8 @@ public abstract class AbstractScmMojo FileSet fileset = new FileSet(); fileset.setDirectory( checkoutDirectory.getAbsolutePath() ); - fileset.setIncludes( includes ); - fileset.setExcludes( excludes ); + fileset.setIncludes( excludes );//revert the order to do the delete + fileset.setExcludes( includes ); fileset.setUseDefaultExcludes( false ); try Modified: maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java?rev=928132&r1=928131&r2=928132&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java (original) +++ maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java Sat Mar 27 03:39:51 2010 @@ -127,8 +127,8 @@ public class CheckoutMojo checkResult( result ); - //to be activated after tests are fully added - //cleanCheckoutDirectory( this.checkoutDirectory ); + + handleExcludesIncludesAfterCheckoutAndExport( this.checkoutDirectory ); return result; } Modified: maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java?rev=928132&r1=928131&r2=928132&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java (original) +++ maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java Sat Mar 27 03:39:51 2010 @@ -122,8 +122,7 @@ public class ExportMojo checkResult( result ); - //to be activated after tests are fully added - //cleanCheckoutDirectory( this.exportDirectory ); + handleExcludesIncludesAfterCheckoutAndExport( this.exportDirectory ); } catch ( ScmException e ) { Modified: maven/scm/trunk/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/CheckoutMojoTest.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/CheckoutMojoTest.java?rev=928132&r1=928131&r2=928132&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/CheckoutMojoTest.java (original) +++ maven/scm/trunk/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/CheckoutMojoTest.java Sat Mar 27 03:39:51 2010 @@ -126,7 +126,7 @@ public class CheckoutMojoTest assertFalse( new File( checkoutDir, ".svn" ).exists() ); } - public void notestExcludeInclude() + public void testExcludeInclude() throws Exception { checkoutDir.mkdirs(); @@ -140,8 +140,13 @@ public class CheckoutMojoTest mojo.execute(); assertTrue( checkoutDir.listFiles().length > 0 ); - assertFalse( new File( checkoutDir, "pom.xml" ).exists() ); - //assertFalse( ! new File( checkoutDir, "readme.txt" ).exists() ); + assertTrue( new File( checkoutDir, ".svn").exists() ); + assertTrue( new File( checkoutDir, "pom.xml" ).exists() ); + assertFalse( new File( checkoutDir, "readme.txt" ).exists() ); + assertFalse( new File( checkoutDir, "src/test" ).exists() ); + assertTrue( new File( checkoutDir, "src/main/java" ).exists() ); + assertTrue( new File( checkoutDir, "src/main/java/.svn" ).exists() ); + assertTrue( new File( checkoutDir, "src/main/.svn" ).exists() ); } } Modified: maven/scm/trunk/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ExportMojoTest.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ExportMojoTest.java?rev=928132&r1=928131&r2=928132&view=diff ============================================================================== --- maven/scm/trunk/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ExportMojoTest.java (original) +++ maven/scm/trunk/maven-scm-plugin/src/test/java/org/apache/maven/scm/plugin/ExportMojoTest.java Sat Mar 27 03:39:51 2010 @@ -54,23 +54,43 @@ public class ExportMojoTest mojo.execute(); - assertTrue( exportDir.listFiles().length > 0 ); + assertTrue( exportDir.listFiles().length > 0 ); assertFalse( new File( exportDir, ".svn" ).exists() ); } - + public void testSkipExportIfExists() throws Exception { exportDir.mkdirs(); - ExportMojo mojo = (ExportMojo) lookupMojo( "export", getTestFile( - "src/test/resources/mojos/export/exportWhenExportDirectoryExistsAndSkip.xml" ) ); + ExportMojo mojo = (ExportMojo) lookupMojo( + "export", + getTestFile( "src/test/resources/mojos/export/exportWhenExportDirectoryExistsAndSkip.xml" ) ); + + mojo.setExportDirectory( exportDir ); + + mojo.execute(); + + assertEquals( 0, exportDir.listFiles().length ); + } + + public void testExcludeInclude() + throws Exception + { + exportDir.mkdirs(); + + ExportMojo mojo = (ExportMojo) lookupMojo( + "export", + getTestFile( "src/test/resources/mojos/export/exportWithExcludesIncludes.xml" ) ); mojo.setExportDirectory( exportDir ); mojo.execute(); - assertEquals( 0, exportDir.listFiles().length ); + assertTrue( exportDir.listFiles().length > 0 ); + assertTrue( new File( exportDir, "pom.xml" ).exists() ); + assertFalse( new File( exportDir, "readme.txt" ).exists() ); + assertFalse( new File( exportDir, "src/test" ).exists() ); } } Added: maven/scm/trunk/maven-scm-plugin/src/test/resources/mojos/export/exportWithExcludesIncludes.xml URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-plugin/src/test/resources/mojos/export/exportWithExcludesIncludes.xml?rev=928132&view=auto ============================================================================== --- maven/scm/trunk/maven-scm-plugin/src/test/resources/mojos/export/exportWithExcludesIncludes.xml (added) +++ maven/scm/trunk/maven-scm-plugin/src/test/resources/mojos/export/exportWithExcludesIncludes.xml Sat Mar 27 03:39:51 2010 @@ -0,0 +1,36 @@ +<!-- + ~ Licensed to the Apache Software Foundation (ASF) under one + ~ or more contributor license agreements. See the NOTICE file + ~ distributed with this work for additional information + ~ regarding copyright ownership. The ASF licenses this file + ~ to you 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. + --> + +<project> + <build> + <plugins> + <plugin> + <artifactId>maven-scm-plugin</artifactId> + <configuration> + <settings implementation="org.apache.maven.settings.Settings"/> + <exportDirectory>target/export</exportDirectory> + <connectionType>connection</connectionType> + <connectionUrl>scm:svn:file:///${basedir}/target/repository/trunk</connectionUrl> + <includes>pom.xml</includes> + <excludes>readme.txt,src/test</excludes> + </configuration> + </plugin> + </plugins> + </build> +</project> \ No newline at end of file Propchange: maven/scm/trunk/maven-scm-plugin/src/test/resources/mojos/export/exportWithExcludesIncludes.xml ------------------------------------------------------------------------------ svn:eol-style = native