]> source.dussan.org Git - archiva.git/commitdiff
error handling
authorBrett Porter <brett@apache.org>
Wed, 7 Jun 2006 08:46:19 +0000 (08:46 +0000)
committerBrett Porter <brett@apache.org>
Wed, 7 Jun 2006 08:46:19 +0000 (08:46 +0000)
git-svn-id: https://svn.apache.org/repos/asf/maven/repository-manager/trunk@412327 13f79535-47bb-0310-9956-ffa450edef68

maven-repository-converter/src/main/java/org/apache/maven/repository/converter/DefaultRepositoryConverter.java
maven-repository-discovery/src/main/java/org/apache/maven/repository/discovery/DefaultMetadataDiscoverer.java

index d06f9bfdd5710cbc66456fe31d0edc83a1ad330e..3c8a5b998d57636bebfe75ebb2a4c59267abb5d6 100644 (file)
@@ -463,7 +463,6 @@ public class DefaultRepositoryConverter
                 }
                 catch ( PomTranslationException e )
                 {
-                    // TODO! check handling, fix error message
                     reporter.addFailure( artifact, getI18NString( "failure.invalid.source.pom", e.getMessage() ) );
                     result = false;
                 }
index f68990a089067286eab14e9b44da9dfa2e7dbb98..e07cd14d3d4ef78eb79b86679a1f29069663838d 100644 (file)
@@ -26,7 +26,6 @@ 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.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
@@ -92,106 +91,113 @@ public class DefaultMetadataDiscoverer
      */
     private RepositoryMetadata buildMetadata( String repo, String metadataPath )
     {
-        RepositoryMetadata metadata = null;
-
+        Metadata m = null;
+        String repoPath = repo + "/" + metadataPath;
         try
         {
-            URL url = new File( repo + "/" + metadataPath ).toURL();
+            URL url = new File( repoPath ).toURL();
             InputStream is = url.openStream();
             Reader reader = new InputStreamReader( is );
             MetadataXpp3Reader metadataReader = new MetadataXpp3Reader();
 
-            Metadata m = metadataReader.read( reader );
-            String metaGroupId = m.getGroupId();
-            String metaArtifactId = m.getArtifactId();
-            String metaVersion = m.getVersion();
-
-            // check if the groupId, artifactId and version is in the
-            // metadataPath
-            // parse the path, in reverse order
-            List pathParts = new ArrayList();
-            StringTokenizer st = new StringTokenizer( metadataPath, "/\\" );
-            while ( st.hasMoreTokens() )
-            {
-                pathParts.add( st.nextToken() );
-            }
+            m = metadataReader.read( reader );
+        }
+        catch ( XmlPullParserException e )
+        {
+            getLogger().error( "Error parsing metadata file '" + repoPath + "': " + e.getMessage(), e );
+        }
+        catch ( MalformedURLException e )
+        {
+            // shouldn't happen
+            getLogger().error( "Error constructing metadata file '" + repoPath + "': " + e.getMessage(), e );
+        }
+        catch ( IOException e )
+        {
+            getLogger().error( "Error reading metadata file '" + repoPath + "': " + e.getMessage(), e );
+        }
 
-            Collections.reverse( pathParts );
-            // remove the metadata file
-            pathParts.remove( 0 );
-            Iterator it = pathParts.iterator();
-            String tmpDir = (String) it.next();
+        RepositoryMetadata repositoryMetadata = null;
+        if ( m != null )
+        {
+            repositoryMetadata = buildMetadata( m, metadataPath );
+        }
+        return repositoryMetadata;
+    }
+
+    private RepositoryMetadata buildMetadata( Metadata m, String metadataPath )
+    {
+        String metaGroupId = m.getGroupId();
+        String metaArtifactId = m.getArtifactId();
+        String metaVersion = m.getVersion();
+
+        // check if the groupId, artifactId and version is in the
+        // metadataPath
+        // parse the path, in reverse order
+        List pathParts = new ArrayList();
+        StringTokenizer st = new StringTokenizer( metadataPath, "/\\" );
+        while ( st.hasMoreTokens() )
+        {
+            pathParts.add( st.nextToken() );
+        }
 
-            //ArtifactHandler handler = new DefaultArtifactHandler( "jar" );
-            //if( metaVersion != null && !metaVersion.equals( "" ) )
-            //{
-            //   VersionRange version = VersionRange.createFromVersion( metaVersion );
-            //}
+        Collections.reverse( pathParts );
+        // remove the metadata file
+        pathParts.remove( 0 );
+        Iterator it = pathParts.iterator();
+        String tmpDir = (String) it.next();
 
-            Artifact artifact = null;
-            if ( metaVersion != null && !"".equals( metaVersion ) )
-            {
-                artifact = artifactFactory.createBuildArtifact( metaGroupId, metaArtifactId, metaVersion, "jar" );
-            }
+        //ArtifactHandler handler = new DefaultArtifactHandler( "jar" );
+        //if( metaVersion != null && !metaVersion.equals( "" ) )
+        //{
+        //   VersionRange version = VersionRange.createFromVersion( metaVersion );
+        //}
+
+        Artifact artifact = null;
+        if ( metaVersion != null && !"".equals( metaVersion ) )
+        {
+            artifact = artifactFactory.createBuildArtifact( metaGroupId, metaArtifactId, metaVersion, "jar" );
+        }
 
-            // snapshotMetadata
-            if ( tmpDir != null && tmpDir.equals( metaVersion ) )
+        // snapshotMetadata
+        RepositoryMetadata metadata = null;
+        if ( tmpDir != null && tmpDir.equals( metaVersion ) )
+        {
+            if ( artifact != null )
             {
-                if ( artifact != null )
-                {
-                    metadata = new SnapshotArtifactRepositoryMetadata( artifact );
-                }
+                metadata = new SnapshotArtifactRepositoryMetadata( artifact );
             }
-            else if ( tmpDir != null && tmpDir.equals( metaArtifactId ) )
+        }
+        else if ( tmpDir != null && tmpDir.equals( metaArtifactId ) )
+        {
+            // artifactMetadata
+            if ( artifact != null )
             {
-                // artifactMetadata
-                if ( artifact != null )
-                {
-                    metadata = new ArtifactRepositoryMetadata( artifact );
-                }
+                metadata = new ArtifactRepositoryMetadata( artifact );
             }
-            else
+        }
+        else
+        {
+            String groupDir = "";
+            int ctr = 0;
+            for ( it = pathParts.iterator(); it.hasNext(); )
             {
-
-                String groupDir = "";
-                int ctr = 0;
-                for ( it = pathParts.iterator(); it.hasNext(); )
+                String path = (String) it.next();
+                if ( ctr == 0 )
                 {
-                    String path = (String) it.next();
-                    if ( ctr == 0 )
-                    {
-                        groupDir = path;
-                    }
-                    else
-                    {
-                        groupDir = path + "." + groupDir;
-                    }
-                    ctr++;
+                    groupDir = path;
                 }
-
-                // groupMetadata
-                if ( metaGroupId != null && metaGroupId.equals( groupDir ) )
+                else
                 {
-                    metadata = new GroupRepositoryMetadata( metaGroupId );
+                    groupDir = path + "." + groupDir;
                 }
+                ctr++;
             }
 
-        }
-        catch ( FileNotFoundException fe )
-        {
-            // TODO: log ignored metadata!
-        }
-        catch ( XmlPullParserException xe )
-        {
-            // TODO: log ignored metadata!
-        }
-        catch ( MalformedURLException e )
-        {
-            // TODO: log ignored metadata!
-        }
-        catch ( IOException ie )
-        {
-            // TODO: log ignored metadata!
+            // groupMetadata
+            if ( metaGroupId != null && metaGroupId.equals( groupDir ) )
+            {
+                metadata = new GroupRepositoryMetadata( metaGroupId );
+            }
         }
 
         return metadata;