Author: brett
Date: Sat Jun 4 22:49:18 2005
New Revision: 180069
URL: http://svn.apache.org/viewcvs?rev=180069&view=rev
Log:
correctly deploy checksums
Modified:
maven/maven-1/plugins/trunk/artifact/src/main/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
Modified:
maven/maven-1/plugins/trunk/artifact/src/main/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
URL:
http://svn.apache.org/viewcvs/maven/maven-1/plugins/trunk/artifact/src/main/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java?rev=180069&r1=180068&r2=180069&view=diff
==============================================================================
---
maven/maven-1/plugins/trunk/artifact/src/main/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
(original)
+++
maven/maven-1/plugins/trunk/artifact/src/main/org/apache/maven/artifact/deployer/DefaultArtifactDeployer.java
Sat Jun 4 22:49:18 2005
@@ -41,6 +41,7 @@
import org.apache.maven.wagon.authentication.AuthenticationException;
import org.apache.maven.wagon.authentication.AuthenticationInfo;
import org.apache.maven.wagon.authorization.AuthorizationException;
+import org.apache.maven.wagon.events.TransferListener;
import org.apache.maven.wagon.observers.ChecksumObserver;
import org.apache.maven.wagon.providers.file.FileWagon;
import org.apache.maven.wagon.providers.ftp.FtpWagon;
@@ -65,8 +66,10 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.TimeZone;
/**
@@ -437,7 +440,7 @@
private void deployFile( Repository repository, File src, String dest,
Project project )
throws ResourceDoesNotExistException, MalformedURLException,
NoSuchAlgorithmException, TransferFailedException,
- ConnectionException, AuthenticationException, AuthorizationException
+ ConnectionException, AuthenticationException, AuthorizationException,
MavenException
{
deployFiles( repository, Collections.singletonList( src ),
Collections.singletonList( dest ), null, project );
}
@@ -445,7 +448,7 @@
private void deployFiles( Repository repository, List srcFiles, List
destFiles,
AuthenticationInfo authenticationInfo, Project
project )
throws ConnectionException, AuthenticationException,
ResourceDoesNotExistException, TransferFailedException,
- AuthorizationException, MalformedURLException, NoSuchAlgorithmException
+ AuthorizationException, MalformedURLException,
NoSuchAlgorithmException, MavenException
{
if ( srcFiles.size() != destFiles.size() )
@@ -455,9 +458,17 @@
}
Wagon wagon = getWagon( repository.getProtocol(), project,
repository.getId() );
- wagon.addTransferListener( new UploadMeter() );
- wagon.addTransferListener( new ChecksumObserver() );
- wagon.addTransferListener( new ChecksumObserver( "SHA-1" ) );
+
+ TransferListener uploadMonitor = new UploadMeter();
+
+ Map checksums = new HashMap( 2 );
+
+ ChecksumObserver observer = new ChecksumObserver( "MD5" );
+ checksums.put( "md5", observer );
+ wagon.addTransferListener( observer );
+ observer = new ChecksumObserver( "SHA-1" );
+ checksums.put( "sha1", observer );
+ wagon.addTransferListener( observer );
try
{
@@ -466,10 +477,40 @@
Iterator destIterator = destFiles.iterator();
while ( srcIterator.hasNext() )
{
+ wagon.addTransferListener( uploadMonitor );
+
File srcFile = (File) srcIterator.next();
String destFile = (String) destIterator.next();
wagon.put( srcFile, destFile );
+
+ wagon.removeTransferListener( uploadMonitor );
+
+ Map sums = new HashMap( 2 );
+ for ( Iterator i = checksums.keySet().iterator(); i.hasNext();
)
+ {
+ // store first - a later put will modify them
+ String extension = (String) i.next();
+ observer = (ChecksumObserver) checksums.get( extension );
+ sums.put( extension, observer.getActualChecksum() );
+ }
+
+ for ( Iterator i = checksums.keySet().iterator(); i.hasNext();
)
+ {
+ String extension = (String) i.next();
+ observer = (ChecksumObserver) checksums.get( extension );
+
+ // TODO: shouldn't need a file intermediatary - improve
wagon to take a stream
+ File temp = File.createTempFile( "maven-artifact", null );
+ temp.deleteOnExit();
+ FileUtils.fileWrite( temp.getAbsolutePath(), (String)
sums.get( extension ) );
+
+ wagon.put( temp, destFile + "." + extension );
+ }
}
+ }
+ catch ( IOException e )
+ {
+ throw new MavenException( "Error creating temporary file to
transfer checksums", e );
}
finally
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]