Author: dantran
Date: Sun Jan 11 11:38:26 2009
New Revision: 733500

URL: http://svn.apache.org/viewvc?rev=733500&view=rev
Log:
- revert the following change one for SCM-375
  o Have export mojo to pre create export directory similar to checkout mojo
  o Have export svn command to support setting of working directory

- have export mojo not pass in export directory to maven scm api since export 
directory is already set as working directory

Modified:
    
maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/ExportMojo.java
    
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExeExportCommand.java
    
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExportCommandTest.java

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=733500&r1=733499&r2=733500&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
 Sun Jan 11 11:38:26 2009
@@ -70,6 +70,13 @@
     public void execute()
         throws MojoExecutionException
     {
+        super.execute();
+
+        if ( this.skipExportIfExists && this.exportDirectory.isDirectory()  )
+        {
+            return;
+        }
+        
         export();
     }
 
@@ -86,13 +93,6 @@
     protected void export()
         throws MojoExecutionException
     {
-        super.execute();
-
-        if ( this.skipExportIfExists && this.exportDirectory.isDirectory()  )
-        {
-            return;
-        }
-        
         try
         {
             ScmRepository repository = getScmRepository();
@@ -111,10 +111,14 @@
                 throw new MojoExecutionException( "Cannot remove " + 
getExportDirectory() );
             }
 
+            if ( !this.exportDirectory.mkdirs() )
+            {
+                throw new MojoExecutionException( "Cannot create " + 
this.exportDirectory );
+            }                
+            
             ExportScmResult result = getScmManager().export( repository,
                                                              new ScmFileSet( 
this.exportDirectory.getAbsoluteFile() ),
-                                                             getScmVersion( 
scmVersionType, scmVersion ),
-                                                             
this.exportDirectory.getAbsolutePath() );
+                                                             getScmVersion( 
scmVersionType, scmVersion ) );
 
             checkResult( result );
         }

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExeExportCommand.java
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExeExportCommand.java?rev=733500&r1=733499&r2=733500&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExeExportCommand.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/main/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExeExportCommand.java
 Sun Jan 11 11:38:26 2009
@@ -19,6 +19,8 @@
  * under the License.
  */
 
+import java.io.File;
+
 import org.apache.maven.scm.ScmBranch;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
@@ -72,7 +74,7 @@
         url = SvnCommandUtils.fixUrl( url, repository.getUser() );
 
         Commandline cl =
-            createCommandLine( (SvnScmProviderRepository) repo, version, url, 
outputDirectory );
+            createCommandLine( (SvnScmProviderRepository) repo, 
fileSet.getBasedir(), version, url, outputDirectory );
 
         SvnUpdateConsumer consumer = new SvnUpdateConsumer( getLogger(), 
fileSet.getBasedir() );
 
@@ -111,14 +113,14 @@
     //
     // ----------------------------------------------------------------------
 
-    public static Commandline createCommandLine( SvnScmProviderRepository 
repository, ScmVersion version, String url, String outputSirectory )
+    public static Commandline createCommandLine( SvnScmProviderRepository 
repository, File workingDirectory, ScmVersion version, String url, String 
outputSirectory )
     {
         if ( version != null && StringUtils.isEmpty( version.getName() ) )
         {
             version = null;
         }
 
-        Commandline cl = SvnCommandLineUtils.getBaseSvnCommandLine( null, 
repository );
+        Commandline cl = SvnCommandLineUtils.getBaseSvnCommandLine( 
workingDirectory, repository );
 
         cl.createArg().setValue( "export" );
 

Modified: 
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExportCommandTest.java
URL: 
http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExportCommandTest.java?rev=733500&r1=733499&r2=733500&view=diff
==============================================================================
--- 
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExportCommandTest.java
 (original)
+++ 
maven/scm/trunk/maven-scm-providers/maven-scm-providers-svn/maven-scm-provider-svnexe/src/test/java/org/apache/maven/scm/provider/svn/svnexe/command/export/SvnExportCommandTest.java
 Sun Jan 11 11:38:26 2009
@@ -11,23 +11,34 @@
     extends ScmTestCase
 {
 
-    public void testGetExportCommandLine()
+    public void testGetExportCommandLineWithImplicitExportDirectory()
         throws Exception
     {
         File exportDirectory = new File( getBasedir() );
-        
-        testCommandLine( "scm:svn:http://foo.com/svn/trunk";, exportDirectory, 
"svn --non-interactive export --force scm:svn:http://foo.com/svn/trunk " + 
exportDirectory );
+
+        testCommandLine( "scm:svn:http://foo.com/svn/trunk";, exportDirectory, 
null,
+                         "svn --non-interactive export --force 
scm:svn:http://foo.com/svn/trunk"; );
     }
-    
-    private void testCommandLine( String scmUrl, File exportDirectory, String 
commandLine )
+
+    public void testGetExportCommandLineWithExplicitExportDirectory()
+        throws Exception
+    {
+        File exportDirectory = new File( getBasedir() );
+
+        testCommandLine( "scm:svn:http://foo.com/svn/trunk";, exportDirectory, 
exportDirectory,
+                         "svn --non-interactive export --force 
scm:svn:http://foo.com/svn/trunk " + exportDirectory );
+    }
+
+    private void testCommandLine( String scmUrl, File workingDirectory, File 
exportDirectory, String commandLine )
         throws Exception
     {
         ScmRepository repository = getScmManager().makeScmRepository( scmUrl );
 
         SvnScmProviderRepository svnRepository = (SvnScmProviderRepository) 
repository.getProviderRepository();
 
-        Commandline cl = SvnExeExportCommand.createCommandLine( svnRepository, 
null, scmUrl, exportDirectory.getAbsolutePath() );
-        
+        Commandline cl = SvnExeExportCommand.createCommandLine( svnRepository, 
exportDirectory, null, scmUrl,
+                                                                
exportDirectory != null?exportDirectory.getAbsolutePath():null );
+
         assertCommandLine( commandLine, exportDirectory, cl );
     }
 }


Reply via email to