Author: brett
Date: Fri Dec 30 13:46:08 2005
New Revision: 360170

URL: http://svn.apache.org/viewcvs?rev=360170&view=rev
Log:
exception clean up (all done!)

Modified:
    
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/DefaultMetadataDiscoverer.java
    
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/MetadataDiscoverer.java
    
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java
    
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java
    
maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/AbstractRepositoryQueryLayer.java
    
maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java

Modified: 
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/DefaultMetadataDiscoverer.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/DefaultMetadataDiscoverer.java?rev=360170&r1=360169&r2=360170&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/DefaultMetadataDiscoverer.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/DefaultMetadataDiscoverer.java
 Fri Dec 30 13:46:08 2005
@@ -35,6 +35,7 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -172,6 +173,10 @@
             // TODO: log ignored metadata
         }
         catch ( XmlPullParserException xe )
+        {
+            // TODO: log ignored metadata
+        }
+        catch ( MalformedURLException e )
         {
             // TODO: log ignored metadata
         }

Modified: 
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/MetadataDiscoverer.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/MetadataDiscoverer.java?rev=360170&r1=360169&r2=360170&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/MetadataDiscoverer.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/MetadataDiscoverer.java
 Fri Dec 30 13:46:08 2005
@@ -32,7 +32,6 @@
      *
      * @param repositoryBase      The repository directory.
      * @param blacklistedPatterns Patterns that are to be excluded from the 
discovery process.
-     * @return
      */
     List discoverMetadata( File repositoryBase, String blacklistedPatterns );
 

Modified: 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java?rev=360170&r1=360169&r2=360170&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/AbstractRepositoryIndex.java
 Fri Dec 30 13:46:08 2005
@@ -94,9 +94,9 @@
 
             indexOpen = false;
         }
-        catch ( Exception e )
+        catch ( IOException e )
         {
-            throw new RepositoryIndexException( e );
+            throw new RepositoryIndexException( e.getMessage(), e );
         }
     }
 

Modified: 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java?rev=360170&r1=360169&r2=360170&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-indexer/src/main/java/org/apache/maven/repository/indexing/ArtifactRepositoryIndex.java
 Fri Dec 30 13:46:08 2005
@@ -20,9 +20,9 @@
 import org.apache.lucene.analysis.SimpleAnalyzer;
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
-import org.apache.lucene.index.IndexWriter;
 import org.apache.maven.artifact.Artifact;
 
+import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -31,6 +31,7 @@
 import java.security.NoSuchAlgorithmException;
 import java.util.Enumeration;
 import java.util.zip.ZipEntry;
+import java.util.zip.ZipException;
 import java.util.zip.ZipFile;
 
 
@@ -65,7 +66,9 @@
 
     private Analyzer analyzer;
 
-    private static final int CHEKCSUM_BUFFER_SIZE = 256;
+    private static final int CHECKSUM_BUFFER_SIZE = 16384;
+
+    private static final int BYTE_MASK = 0xFF;
 
     /**
      * method to get the Analyzer used to create indices
@@ -124,75 +127,137 @@
             throw new RepositoryIndexException( "Unable to add artifact index 
on a closed index" );
         }
 
+        StringBuffer classes = new StringBuffer();
+        StringBuffer packages = new StringBuffer();
+        StringBuffer files = new StringBuffer();
+
+        String sha1sum;
+        String md5sum;
+        ZipFile jar;
         try
         {
-            IndexWriter indexWriter = getIndexWriter();
+            sha1sum = byteArrayToHexStr( createChecksum( artifact.getFile(), 
"SHA-1" ) );
+            md5sum = byteArrayToHexStr( createChecksum( artifact.getFile(), 
"MD5" ) );
+            jar = new ZipFile( artifact.getFile() );
+        }
+        catch ( NoSuchAlgorithmException e )
+        {
+            throw new RepositoryIndexException( "Unable to create a checksum", 
e );
+        }
+        catch ( FileNotFoundException e )
+        {
+            throw new RepositoryIndexException( "Error reading from artifact 
file", e );
+        }
+        catch ( ZipException e )
+        {
+            throw new RepositoryIndexException( "Error reading from artifact 
file", e );
+        }
+        catch ( IOException e )
+        {
+            throw new RepositoryIndexException( "Error reading from artifact 
file", e );
+        }
 
-            StringBuffer classes = new StringBuffer();
-            StringBuffer packages = new StringBuffer();
-            StringBuffer files = new StringBuffer();
-            ZipFile jar = new ZipFile( artifact.getFile() );
-            for ( Enumeration entries = jar.entries(); 
entries.hasMoreElements(); )
+        for ( Enumeration entries = jar.entries(); entries.hasMoreElements(); )
+        {
+            ZipEntry entry = (ZipEntry) entries.nextElement();
+            if ( addIfClassEntry( entry, classes ) )
             {
-                ZipEntry entry = (ZipEntry) entries.nextElement();
-                if ( addIfClassEntry( entry, classes ) )
-                {
-                    addClassPackage( entry.getName(), packages );
-                }
-                addFile( entry, files );
+                addClassPackage( entry.getName(), packages );
             }
+            addFile( entry, files );
+        }
+
+        //@todo should some of these fields be Keyword instead of Text ?
+        Document doc = new Document();
+        doc.add( Field.Text( NAME, artifact.getFile().getName() ) );
+        doc.add( Field.Text( GROUPID, artifact.getGroupId() ) );
+        doc.add( Field.Text( ARTIFACTID, artifact.getArtifactId() ) );
+        doc.add( Field.Text( VERSION, artifact.getVersion() ) );
+        doc.add( Field.Text( SHA1, sha1sum ) );
+        doc.add( Field.Text( MD5, md5sum ) );
+        doc.add( Field.Text( CLASSES, classes.toString() ) );
+        doc.add( Field.Text( PACKAGES, packages.toString() ) );
+        doc.add( Field.Text( FILES, files.toString() ) );
 
-            //@todo should some of these fields be Keyword instead of Text ?
-            Document doc = new Document();
-            doc.add( Field.Text( NAME, artifact.getFile().getName() ) );
-            doc.add( Field.Text( GROUPID, artifact.getGroupId() ) );
-            doc.add( Field.Text( ARTIFACTID, artifact.getArtifactId() ) );
-            doc.add( Field.Text( VERSION, artifact.getVersion() ) );
-            doc.add( Field.Text( SHA1, getSha1( artifact ) ) );
-            doc.add( Field.Text( MD5, getMd5( artifact ) ) );
-            doc.add( Field.Text( CLASSES, classes.toString() ) );
-            doc.add( Field.Text( PACKAGES, packages.toString() ) );
-            doc.add( Field.Text( FILES, files.toString() ) );
-            indexWriter.addDocument( doc );
+        try
+        {
+            getIndexWriter().addDocument( doc );
         }
-        catch ( Exception e )
+        catch ( IOException e )
         {
-            throw new RepositoryIndexException( e );
+            throw new RepositoryIndexException( "Error opening index", e );
         }
     }
 
-    private String getSha1( Artifact artifact )
-        throws FileNotFoundException, IOException, NoSuchAlgorithmException
+    /**
+     * Convert an incoming array of bytes into a string that represents each of
+     * the bytes as two hex characters.
+     *
+     * @param data
+     * @todo move to utilities
+     */
+    private static String byteArrayToHexStr( byte[] data )
     {
-        FileInputStream fIn = new FileInputStream( artifact.getFile() );
-        return new String( getChecksum( fIn, "SHA-1" ) );
-    }
+        String output = "";
 
-    private String getMd5( Artifact artifact )
-        throws FileNotFoundException, IOException, NoSuchAlgorithmException
-    {
-        FileInputStream fIn = new FileInputStream( artifact.getFile() );
-        return new String( getChecksum( fIn, "MD5" ) );
+        for ( int cnt = 0; cnt < data.length; cnt++ )
+        {
+            //Deposit a byte into the 8 lsb of an int.
+            int tempInt = data[cnt] & BYTE_MASK;
+
+            //Get hex representation of the int as a string.
+            String tempStr = Integer.toHexString( tempInt );
+
+            //Append a leading 0 if necessary so that each hex string will 
contain 2 characters.
+            if ( tempStr.length() == 1 )
+            {
+                tempStr = "0" + tempStr;
+            }
+
+            //Concatenate the two characters to the output string.
+            output = output + tempStr;
+        }
+
+        return output.toUpperCase();
     }
 
-    private byte[] getChecksum( InputStream inStream, String algorithm )
-        throws IOException, NoSuchAlgorithmException
+    /**
+     * Create a checksum from the specified metadata file.
+     *
+     * @param file The file that will be created a checksum.
+     * @param algo The algorithm to be used (MD5, SHA-1)
+     * @return
+     * @throws FileNotFoundException
+     * @throws NoSuchAlgorithmException
+     * @throws IOException
+     * @todo move to utility class
+     */
+    private static byte[] createChecksum( File file, String algo )
+        throws FileNotFoundException, NoSuchAlgorithmException, IOException
     {
-        byte[] buffer = new byte[ CHEKCSUM_BUFFER_SIZE ];
-        MessageDigest complete = MessageDigest.getInstance( algorithm );
-        int numRead;
-        do
+        MessageDigest digest = MessageDigest.getInstance( algo );
+
+        InputStream fis = new FileInputStream( file );
+        try
         {
-            numRead = inStream.read( buffer );
-            if ( numRead > 0 )
+            byte[] buffer = new byte[CHECKSUM_BUFFER_SIZE];
+            int numRead;
+            do
             {
-                complete.update( buffer, 0, numRead );
+                numRead = fis.read( buffer );
+                if ( numRead > 0 )
+                {
+                    digest.update( buffer, 0, numRead );
+                }
             }
+            while ( numRead != -1 );
+        }
+        finally
+        {
+            fis.close();
         }
-        while ( numRead != -1 );
-        inStream.close();
 
-        return complete.digest();
+        return digest.digest();
     }
 
     private boolean addIfClassEntry( ZipEntry entry, StringBuffer classes )

Modified: 
maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/AbstractRepositoryQueryLayer.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/AbstractRepositoryQueryLayer.java?rev=360170&r1=360169&r2=360170&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/AbstractRepositoryQueryLayer.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/AbstractRepositoryQueryLayer.java
 Fri Dec 30 13:46:08 2005
@@ -22,9 +22,12 @@
 import org.apache.maven.artifact.repository.metadata.Metadata;
 import org.apache.maven.artifact.repository.metadata.Snapshot;
 import 
org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Reader;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.io.FileReader;
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -80,7 +83,15 @@
             {
                 metadata = reader.read( new FileReader( metadataFile ) );
             }
-            catch ( Exception e )
+            catch ( FileNotFoundException e )
+            {
+                throw new RepositoryQueryLayerException( "Error occurred while 
attempting to read metadata file", e );
+            }
+            catch ( IOException e )
+            {
+                throw new RepositoryQueryLayerException( "Error occurred while 
attempting to read metadata file", e );
+            }
+            catch ( XmlPullParserException e )
             {
                 throw new RepositoryQueryLayerException( "Error occurred while 
attempting to read metadata file", e );
             }

Modified: 
maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java
URL: 
http://svn.apache.org/viewcvs/maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java?rev=360170&r1=360169&r2=360170&view=diff
==============================================================================
--- 
maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java
 (original)
+++ 
maven/repository-manager/trunk/maven-repository-reports-standard/src/main/java/org/apache/maven/repository/reporting/ChecksumArtifactReporter.java
 Fri Dec 30 13:46:08 2005
@@ -42,7 +42,7 @@
 {
     private static final int BYTE_MASK = 0xFF;
 
-    private static final int CHECKSUM_BUFFER_SIZE = 256;
+    private static final int CHECKSUM_BUFFER_SIZE = 16384;
 
     /**
      * Validate the checksum of the specified artifact.
@@ -232,7 +232,7 @@
      * @throws IOException
      * @todo move to utility class
      */
-    private byte[] createChecksum( File file, String algo )
+    private static byte[] createChecksum( File file, String algo )
         throws FileNotFoundException, NoSuchAlgorithmException, IOException
     {
         MessageDigest digest = MessageDigest.getInstance( algo );


Reply via email to