diff options
author | Brett Porter <brett@apache.org> | 2009-11-25 12:17:38 +0000 |
---|---|---|
committer | Brett Porter <brett@apache.org> | 2009-11-25 12:17:38 +0000 |
commit | 7c7f2cfd6df17d9226cd09433c5d0adfea3fa42c (patch) | |
tree | 7e0a39340ae0a072b74d5a086af77c3b7f8277ec /archiva-modules/plugins | |
parent | 78191d6285e7bad6d93cea693ebdd77c37333a54 (diff) | |
download | archiva-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')
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" ); |