Author: carlos
Date: Thu Mar 2 23:23:00 2006
New Revision: 382702
URL: http://svn.apache.org/viewcvs?rev=382702&view=rev
Log:
Added initial support for copying directories
Modified:
maven/sandbox/wagon-scm/src/main/java/org/apache/maven/wagon/providers/scm/ScmWagon.java
Modified:
maven/sandbox/wagon-scm/src/main/java/org/apache/maven/wagon/providers/scm/ScmWagon.java
URL:
http://svn.apache.org/viewcvs/maven/sandbox/wagon-scm/src/main/java/org/apache/maven/wagon/providers/scm/ScmWagon.java?rev=382702&r1=382701&r2=382702&view=diff
==============================================================================
---
maven/sandbox/wagon-scm/src/main/java/org/apache/maven/wagon/providers/scm/ScmWagon.java
(original)
+++
maven/sandbox/wagon-scm/src/main/java/org/apache/maven/wagon/providers/scm/ScmWagon.java
Thu Mar 2 23:23:00 2006
@@ -122,10 +122,19 @@
return scmRepository;
}
- // put
public void put( File source, String resourceName )
throws TransferFailedException, ResourceDoesNotExistException,
AuthorizationException
{
+ if ( source.isDirectory() )
+ {
+ throw new IllegalArgumentException( "Source is a directory: " +
source );
+ }
+ putInternal( source, resourceName );
+ }
+
+ private void putInternal( File source, String resourceName )
+ throws TransferFailedException, ResourceDoesNotExistException,
AuthorizationException
+ {
Resource resource = new Resource( resourceName );
firePutInitiated( resource, source );
@@ -146,9 +155,10 @@
String msg = "Adding " + resourceName + " to repository";
- // TODO: ewwww
ScmProvider scmProvider = scmManager.getProviderByRepository(
scmRepository );
ScmResult result;
+
+ //TODO check in other way non svn, cvs specific
if ( new File( basedir, ".svn" ).exists() || new File( basedir,
"CVS" ).exists() )
{
result = scmProvider.update( scmRepository, new ScmFileSet(
basedir ), null );
@@ -172,7 +182,14 @@
if ( !scmFile.equals( source ) )
{
- FileUtils.copyFile( source, scmFile );
+ if ( source.isDirectory() )
+ {
+ FileUtils.copyDirectory( source, scmFile );
+ }
+ else
+ {
+ FileUtils.copyFile( source, scmFile );
+ }
}
if ( !fileAlreadyInScm )
@@ -193,11 +210,29 @@
throw new TransferFailedException( "Error interacting with SCM", e
);
}
- postProcessListeners( resource, source, TransferEvent.REQUEST_PUT );
+ if ( source.isFile() )
+ {
+ postProcessListeners( resource, source, TransferEvent.REQUEST_PUT
);
+ }
firePutCompleted( resource, source );
}
+ public boolean supportsDirectoryCopy()
+ {
+ return true;
+ }
+
+ public void putDirectory( File sourceDirectory, String
destinationDirectory )
+ throws TransferFailedException, ResourceDoesNotExistException,
AuthorizationException
+ {
+ if ( !sourceDirectory.isDirectory() )
+ {
+ throw new IllegalArgumentException( "Source is not a directory: "
+ sourceDirectory );
+ }
+ putInternal( sourceDirectory, destinationDirectory );
+ }
+
private void checkScmResult( ScmResult result ) throws
TransferFailedException
{
if ( !result.isSuccess() )
@@ -308,4 +343,5 @@
fireGetCompleted( resource, destination );
}
+
}