summaryrefslogtreecommitdiffstats
path: root/archiva-modules/plugins
diff options
context:
space:
mode:
authorBrett Porter <brett@apache.org>2009-11-25 12:17:38 +0000
committerBrett Porter <brett@apache.org>2009-11-25 12:17:38 +0000
commit7c7f2cfd6df17d9226cd09433c5d0adfea3fa42c (patch)
tree7e0a39340ae0a072b74d5a086af77c3b7f8277ec /archiva-modules/plugins
parent78191d6285e7bad6d93cea693ebdd77c37333a54 (diff)
downloadarchiva-7c7f2cfd6df17d9226cd09433c5d0adfea3fa42c.tar.gz
archiva-7c7f2cfd6df17d9226cd09433c5d0adfea3fa42c.zip
[MRM-1282] improve exception handling
git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/MRM-1025@884066 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'archiva-modules/plugins')
-rw-r--r--archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolver.java18
-rw-r--r--archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java3
2 files changed, 15 insertions, 6 deletions
diff --git a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolver.java b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolver.java
index b3fa377cd..a18d4f57d 100644
--- a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolver.java
+++ b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolver.java
@@ -27,6 +27,7 @@ import java.util.List;
import org.apache.archiva.metadata.model.ProjectMetadata;
import org.apache.archiva.metadata.model.ProjectVersionMetadata;
import org.apache.archiva.metadata.repository.MetadataResolver;
+import org.apache.archiva.metadata.repository.MetadataResolverException;
import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator;
import org.apache.maven.archiva.common.utils.VersionUtil;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
@@ -42,6 +43,8 @@ import org.apache.maven.model.building.DefaultModelBuildingRequest;
import org.apache.maven.model.building.ModelBuilder;
import org.apache.maven.model.building.ModelBuildingException;
import org.apache.maven.model.building.ModelBuildingRequest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* @plexus.component role="org.apache.archiva.metadata.repository.MetadataResolver" role-hint="maven2"
@@ -64,6 +67,8 @@ public class Maven2RepositoryMetadataResolver
*/
private RepositoryPathTranslator pathTranslator;
+ private final static Logger log = LoggerFactory.getLogger( Maven2RepositoryMetadataResolver.class );
+
public ProjectMetadata getProject( String repoId, String namespace, String projectId )
{
throw new UnsupportedOperationException();
@@ -71,6 +76,7 @@ public class Maven2RepositoryMetadataResolver
public ProjectVersionMetadata getProjectVersion( String repoId, String namespace, String projectId,
String projectVersion )
+ throws MetadataResolverException
{
ManagedRepositoryConfiguration repositoryConfiguration =
archivaConfiguration.getConfiguration().findManagedRepositoryById( repoId );
@@ -81,10 +87,11 @@ public class Maven2RepositoryMetadataResolver
if ( VersionUtil.isSnapshot( projectVersion ) )
{
// TODO: need much error handling here for incorrect metadata
+ File metadataFile =
+ pathTranslator.toFile( basedir, namespace, projectId, projectVersion, "maven-metadata.xml" );
try
{
- MavenRepositoryMetadata metadata = MavenRepositoryMetadataReader.read(
- pathTranslator.toFile( basedir, namespace, projectId, projectVersion, "maven-metadata.xml" ) );
+ MavenRepositoryMetadata metadata = MavenRepositoryMetadataReader.read( metadataFile );
artifactVersion =
artifactVersion.substring( 0, artifactVersion.length() - 8 ); // remove SNAPSHOT from end
@@ -94,8 +101,8 @@ public class Maven2RepositoryMetadataResolver
}
catch ( XMLException e )
{
- // TODO: handle it
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ // unable to parse metadata - log it, and continue with the version as the original SNAPSHOT version
+ log.warn( "Invalid metadata: " + metadataFile + " - " + e.getMessage() );
}
}
@@ -114,8 +121,7 @@ public class Maven2RepositoryMetadataResolver
}
catch ( ModelBuildingException e )
{
- // TODO: handle it
- throw new RuntimeException( e );
+ throw new MetadataResolverException( "Unable to build Maven POM to derive metadata from: " + e.getMessage(), e );
}
ProjectVersionMetadata metadata = new ProjectVersionMetadata();
diff --git a/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java b/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java
index a1de458d9..853738abf 100644
--- a/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java
+++ b/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java
@@ -24,6 +24,7 @@ import java.util.Arrays;
import org.apache.archiva.metadata.model.License;
import org.apache.archiva.metadata.model.ProjectVersionMetadata;
import org.apache.archiva.metadata.repository.MetadataResolver;
+import org.apache.archiva.metadata.repository.MetadataResolverException;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
@@ -59,6 +60,7 @@ public class Maven2RepositoryMetadataResolverTest
}
public void testGetProjectVersionMetadata()
+ throws MetadataResolverException
{
ProjectVersionMetadata metadata =
resolver.getProjectVersion( TEST_REPO_ID, "org.apache.archiva", "archiva-common", "1.2.1" );
@@ -90,6 +92,7 @@ public class Maven2RepositoryMetadataResolverTest
}
public void testGetProjectVersionMetadataForTimestampedSnapshot()
+ throws MetadataResolverException
{
ProjectVersionMetadata metadata =
resolver.getProjectVersion( TEST_REPO_ID, "org.apache", "apache", "5-SNAPSHOT" );