You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wagon-commits@maven.apache.org by br...@apache.org on 2005/04/12 08:41:32 UTC
cvs commit: maven-wagon/wagon-provider-api/src/main/java/org/apache/maven/wagon WagonUtils.java
brett 2005/04/11 23:41:32
Modified: wagon-provider-api/src/main/java/org/apache/maven/wagon/observers
ChecksumObserver.java
wagon-provider-api/src/main/java/org/apache/maven/wagon
WagonUtils.java
Log:
o marginal improvement to exception handling (only swallow wagon/io exceptions, not everything) - needs change to interface
o allow SHA-1 to actually work
o rename md5 references to checksum
o some error handling for unknown algorithms
Revision Changes Path
1.10 +43 -28 maven-wagon/wagon-provider-api/src/main/java/org/apache/maven/wagon/observers/ChecksumObserver.java
Index: ChecksumObserver.java
===================================================================
RCS file: /home/cvs/maven-wagon/wagon-provider-api/src/main/java/org/apache/maven/wagon/observers/ChecksumObserver.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- ChecksumObserver.java 19 Mar 2005 03:00:02 -0000 1.9
+++ ChecksumObserver.java 12 Apr 2005 06:41:32 -0000 1.10
@@ -1,23 +1,24 @@
package org.apache.maven.wagon.observers;
-/* ====================================================================
- * Copyright 2001-2004 The Apache Software Foundation.
+/*
+ * Copyright 2001-2005 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
+ * 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
+ * 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.
- * ====================================================================
+ * 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.wagon.ResourceDoesNotExistException;
import org.apache.maven.wagon.Wagon;
+import org.apache.maven.wagon.WagonException;
import org.apache.maven.wagon.WagonUtils;
import org.apache.maven.wagon.events.TransferEvent;
import org.apache.maven.wagon.events.TransferListener;
@@ -25,13 +26,13 @@
import org.apache.maven.wagon.util.IoUtils;
import java.io.File;
+import java.io.IOException;
import java.io.InputStream;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;
-
/**
* TransferListeners which computes MD5 checksum on the fly when files are transfered.
*
@@ -50,7 +51,7 @@
private String actualChecksum;
- private boolean transferingMd5 = false;
+ private boolean transferingChecksum = false;
private static Map algorithmExtensionMap = new HashMap();
@@ -77,6 +78,11 @@
public ChecksumObserver( String algorithm )
{
this.algorithm = algorithm;
+
+ if ( !algorithmExtensionMap.containsKey( algorithm ) )
+ {
+ throw new IllegalArgumentException( "Unknown checksum algorithm: " + algorithm );
+ }
}
public void transferInitiated( TransferEvent transferEvent )
@@ -90,7 +96,7 @@
public void transferStarted( TransferEvent transferEvent )
{
- if ( transferingMd5 )
+ if ( transferingChecksum )
{
return;
}
@@ -124,7 +130,6 @@
public void transferCompleted( TransferEvent transferEvent )
{
-
if ( digester == null )
{
return;
@@ -138,7 +143,7 @@
InputStream inputStream = null;
- transferingMd5 = true;
+ transferingChecksum = true;
try
{
@@ -155,13 +160,13 @@
// read its content into memory
File artifactFile = transferEvent.getLocalFile();
- File md5File = new File( artifactFile.getPath() + extension );
+ File checksumFile = new File( artifactFile.getPath() + extension );
String md5Resource = resource + extension;
- wagon.get( md5Resource, md5File );
+ wagon.get( md5Resource, checksumFile );
- expectedChecksum = FileUtils.fileRead( md5File ).trim();
+ expectedChecksum = FileUtils.fileRead( checksumFile ).trim();
}
else
{
@@ -172,7 +177,17 @@
}
}
- catch ( Exception e )
+ catch ( ResourceDoesNotExistException e )
+ {
+ // TODO: handle differently! No Exception catching....
+ e.printStackTrace();
+ }
+ catch ( WagonException e )
+ {
+ // TODO: handle differently! No Exception catching....
+ e.printStackTrace();
+ }
+ catch ( IOException e )
{
// TODO: handle differently! No Exception catching....
e.printStackTrace();
@@ -181,7 +196,7 @@
{
IoUtils.close( inputStream );
- transferingMd5 = false;
+ transferingChecksum = false;
}
}
@@ -220,22 +235,22 @@
/**
- * Encodes a 128 bit (16 bytes) byte array into a 32 character String.
- * XXX I think it should at least throw an IllegalArgumentException rather than return null
+ * Encodes a 128 bit or 160-bit byte array into a String.
*
* @param binaryData Array containing the digest
* @return Encoded hex string, or null if encoding failed
*/
protected String encode( byte[] binaryData )
{
- if ( binaryData.length != 16 )
+ if ( binaryData.length != 16 && binaryData.length != 20 )
{
- return null;
+ int bitLength = binaryData.length * 8;
+ throw new IllegalArgumentException( "Unrecognised length for binary data: " + bitLength + " bits" );
}
String retValue = "";
- for ( int i = 0; i < 16; i++ )
+ for ( int i = 0; i < binaryData.length; i++ )
{
String t = Integer.toHexString( binaryData[i] & 0xff );
1.13 +3 -3 maven-wagon/wagon-provider-api/src/main/java/org/apache/maven/wagon/WagonUtils.java
Index: WagonUtils.java
===================================================================
RCS file: /home/cvs/maven-wagon/wagon-provider-api/src/main/java/org/apache/maven/wagon/WagonUtils.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- WagonUtils.java 9 Feb 2005 06:17:43 -0000 1.12
+++ WagonUtils.java 12 Apr 2005 06:41:32 -0000 1.13
@@ -65,7 +65,8 @@
}
- public static void fromString( String resource, Wagon wagon, String content ) throws Exception
+ public static void fromString( String resource, Wagon wagon, String content )
+ throws IOException, WagonException
{
File file = null;
@@ -77,7 +78,6 @@
FileUtils.fileWrite( file.getPath(), content );
wagon.put( file, resource );
-
}
finally
{
---------------------------------------------------------------------
To unsubscribe, e-mail: wagon-cvs-unsubscribe@maven.apache.org
For additional commands, e-mail: wagon-cvs-help@maven.apache.org