Author: brett
Date: Wed Dec 16 00:38:50 2009
New Revision: 891084

URL: http://svn.apache.org/viewvc?rev=891084&view=rev
Log:
[MRM-1301] add back problem reporting for invalid / missing POM

Added:
    
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
      - copied, changed from r890962, 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataResolver.java
Modified:
    
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java
    
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
    
archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataRepository.java
    
archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
    
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
    archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/pom.xml
    
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolver.java
    
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataResolver.java
    
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java
    
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/resources/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.xml
    
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
    
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java
    
archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemFacet.java
    
archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java
    
archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java
    
archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java

Modified: 
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java
 Wed Dec 16 00:38:50 2009
@@ -161,13 +161,14 @@
         project.setNamespace( artifact.getGroupId() );
         project.setId( artifact.getArtifactId() );
 
+        String projectVersion = VersionUtil.getBaseVersion( 
artifact.getVersion() );
         // TODO: maybe not too efficient since it may have already been read 
and stored for this artifact
         ProjectVersionMetadata versionMetadata;
         try
         {
             versionMetadata =
                 storageResolver.getProjectVersion( repository.getId(), 
artifact.getGroupId(), artifact.getArtifactId(),
-                                                   VersionUtil.getBaseVersion( 
artifact.getVersion() ) );
+                                                   projectVersion );
         }
         catch ( MetadataResolverException e )
         {
@@ -176,7 +177,9 @@
 
         if ( versionMetadata == null )
         {
-            throw new ConsumerException( "Unable to read metadata for 
artifact: " + artifact );
+            log.warn( "Missing POM for artifact: " + artifact + "; creating 
empty metadata" );
+            versionMetadata = new ProjectVersionMetadata();
+            versionMetadata.setId( projectVersion );
         }
 
         ArtifactMetadata artifactMeta = new ArtifactMetadata();
@@ -209,8 +212,8 @@
 
         // TODO: transaction
         // read the metadata and update it if it is newer or doesn't exist
-        metadataRepository.updateArtifact( repository.getId(), 
project.getNamespace(), project.getId(),
-                                           versionMetadata.getId(), 
artifactMeta );
+        metadataRepository.updateArtifact( repository.getId(), 
project.getNamespace(), project.getId(), projectVersion,
+                                           artifactMeta );
         metadataRepository.updateProjectVersion( repository.getId(), 
project.getNamespace(), project.getId(),
                                                  versionMetadata );
         metadataRepository.updateProject( repository.getId(), project );

Modified: 
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
 Wed Dec 16 00:38:50 2009
@@ -116,7 +116,7 @@
         return null;  //To change body of implemented methods use File | 
Settings | File Templates.
     }
 
-    public void addMetadataFacet( String repositoryId, String facetId, 
MetadataFacet metadataFacet )
+    public void addMetadataFacet( String repositoryId, MetadataFacet 
metadataFacet )
     {
         //To change body of implemented methods use File | Settings | File 
Templates.
     }

Modified: 
archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataRepository.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataRepository.java?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataRepository.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataRepository.java
 Wed Dec 16 00:38:50 2009
@@ -156,7 +156,7 @@
         throw new UnsupportedOperationException();
     }
 
-    public void addMetadataFacet( String repositoryId, String facetId, 
MetadataFacet metadataFacet )
+    public void addMetadataFacet( String repositoryId, MetadataFacet 
metadataFacet )
     {
         throw new UnsupportedOperationException();
     }

Modified: 
archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
 Wed Dec 16 00:38:50 2009
@@ -116,7 +116,7 @@
         return null;  //To change body of implemented methods use File | 
Settings | File Templates.
     }
 
-    public void addMetadataFacet( String repositoryId, String facetId, 
MetadataFacet metadataFacet )
+    public void addMetadataFacet( String repositoryId, MetadataFacet 
metadataFacet )
     {
         //To change body of implemented methods use File | Settings | File 
Templates.
     }

Modified: 
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java
 Wed Dec 16 00:38:50 2009
@@ -51,11 +51,11 @@
 
     void updateNamespace( String repoId, String namespace );
 
-    List<String> getMetadataFacets( String repodId, String facetId );
+    List<String> getMetadataFacets( String repoId, String facetId );
 
     MetadataFacet getMetadataFacet( String repositoryId, String facetId, 
String name );
 
-    void addMetadataFacet( String repositoryId, String facetId, MetadataFacet 
metadataFacet );
+    void addMetadataFacet( String repositoryId, MetadataFacet metadataFacet );
 
     void removeMetadataFacets( String repositoryId, String facetId );
 

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/pom.xml?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/pom.xml 
(original)
+++ archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/pom.xml 
Wed Dec 16 00:38:50 2009
@@ -30,6 +30,10 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.archiva</groupId>
+      <artifactId>problem-reports</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.archiva</groupId>
       <artifactId>metadata-model</artifactId>
     </dependency>
     <dependency>

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolver.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolver.java?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolver.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolver.java
 Wed Dec 16 00:38:50 2009
@@ -35,11 +35,13 @@
 import org.apache.archiva.metadata.model.ProjectMetadata;
 import org.apache.archiva.metadata.model.ProjectVersionMetadata;
 import org.apache.archiva.metadata.model.ProjectVersionReference;
+import org.apache.archiva.metadata.repository.MetadataRepository;
 import org.apache.archiva.metadata.repository.MetadataResolverException;
 import org.apache.archiva.metadata.repository.filter.AllFilter;
 import org.apache.archiva.metadata.repository.filter.Filter;
 import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator;
 import org.apache.archiva.metadata.repository.storage.StorageMetadataResolver;
+import org.apache.archiva.reports.RepositoryProblemFacet;
 import org.apache.maven.archiva.common.utils.VersionUtil;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
@@ -80,6 +82,11 @@
      */
     private RepositoryPathTranslator pathTranslator;
 
+    /**
+     * @plexus.requirement
+     */
+    private MetadataRepository metadataRepository;
+
     private final static Logger log = LoggerFactory.getLogger( 
Maven2RepositoryMetadataResolver.class );
 
     private static final String METADATA_FILENAME = "maven-metadata.xml";
@@ -127,11 +134,22 @@
             }
         }
 
-        File file = pathTranslator.toFile( basedir, namespace, projectId, 
projectVersion,
-                                           projectId + "-" + artifactVersion + 
".pom" );
+        String id = projectId + "-" + artifactVersion + ".pom";
+        File file = pathTranslator.toFile( basedir, namespace, projectId, 
projectVersion, id );
 
         if ( !file.exists() )
         {
+            // TODO: an event mechanism would remove coupling to the problem 
reporting plugin
+            RepositoryProblemFacet problem = new RepositoryProblemFacet();
+            problem.setProblem( "missing-pom" );
+            problem.setMessage( "The artifact's POM file '" + file + "' was 
missing" );
+            problem.setProject( projectId );
+            problem.setNamespace( namespace );
+            problem.setRepositoryId( repoId );
+            problem.setVersion( projectVersion );
+
+            metadataRepository.addMetadataFacet( repoId, problem );
+
             // metadata could not be resolved
             return null;
         }
@@ -149,8 +167,19 @@
         }
         catch ( ModelBuildingException e )
         {
-            throw new MetadataResolverException( "Unable to build Maven POM to 
derive metadata from: " + e.getMessage(),
-                                                 e );
+            // TODO: an event mechanism would remove coupling to the problem 
reporting plugin
+            RepositoryProblemFacet problem = new RepositoryProblemFacet();
+            problem.setProblem( "invalid-pom" );
+            problem.setMessage( "The artifact's POM file '" + file + "' was 
invalid: " + e.getMessage() );
+            problem.setProject( projectId );
+            problem.setNamespace( namespace );
+            problem.setRepositoryId( repoId );
+            problem.setVersion( projectVersion );
+
+            metadataRepository.addMetadataFacet( repoId, problem );
+
+            // metadata could not be resolved
+            return null;
         }
 
         ProjectVersionMetadata metadata = new ProjectVersionMetadata();
@@ -531,6 +560,11 @@
         return metadata;
     }
 
+    public void setConfiguration( ArchivaConfiguration configuration )
+    {
+        this.archivaConfiguration = configuration;
+    }
+
     private static class DirectoryFilter
         implements FilenameFilter
     {

Copied: 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
 (from r890962, 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataResolver.java)
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java?p2=archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java&p1=archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataResolver.java&r1=890962&r2=891084&rev=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataResolver.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java
 Wed Dec 16 00:38:50 2009
@@ -1,12 +1,5 @@
 package org.apache.archiva.metadata.repository;
 
-import java.util.Collection;
-
-import org.apache.archiva.metadata.model.ArtifactMetadata;
-import org.apache.archiva.metadata.model.ProjectMetadata;
-import org.apache.archiva.metadata.model.ProjectVersionMetadata;
-import org.apache.archiva.metadata.model.ProjectVersionReference;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -26,57 +19,89 @@
  * under the License.
  */
 
-public class TestMetadataResolver
-    implements MetadataResolver
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.archiva.metadata.model.ArtifactMetadata;
+import org.apache.archiva.metadata.model.MetadataFacet;
+import org.apache.archiva.metadata.model.ProjectMetadata;
+import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+import org.apache.archiva.metadata.model.ProjectVersionReference;
+
+public class TestMetadataRepository
+    extends TestMetadataResolver
+    implements MetadataRepository
 {
-    public ProjectMetadata getProject( String repoId, String namespace, String 
projectId )
+    private Map<String, MetadataFacet> facets = new HashMap<String, 
MetadataFacet>();
+
+    public void updateProject( String repoId, ProjectMetadata project )
     {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        //To change body of implemented methods use File | Settings | File 
Templates.
     }
 
-    public ProjectVersionMetadata getProjectVersion( String repoId, String 
namespace, String projectId,
-                                                     String projectVersion )
-        throws MetadataResolverException
+    public void updateArtifact( String repoId, String namespace, String 
projectId, String projectVersion,
+                                ArtifactMetadata artifactMeta )
     {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        //To change body of implemented methods use File | Settings | File 
Templates.
     }
 
-    public Collection<String> getArtifactVersions( String repoId, String 
namespace, String projectId,
-                                                   String projectVersion )
+    public void updateProjectVersion( String repoId, String namespace, String 
projectId, ProjectVersionMetadata versionMetadata )
     {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        //To change body of implemented methods use File | Settings | File 
Templates.
     }
 
-    public Collection<ProjectVersionReference> getProjectReferences( String 
repoId, String namespace, String projectId,
-                                                                     String 
projectVersion )
+    public void updateProjectReference( String repoId, String namespace, 
String projectId, String projectVersion,
+                                        ProjectVersionReference reference )
     {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        //To change body of implemented methods use File | Settings | File 
Templates.
     }
 
-    public Collection<String> getRootNamespaces( String repoId )
+    public void updateNamespace( String repoId, String namespace )
     {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        //To change body of implemented methods use File | Settings | File 
Templates.
     }
 
-    public Collection<String> getNamespaces( String repoId, String namespace )
+    public List<String> getMetadataFacets( String repoId, String facetId )
     {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        return new ArrayList<String>( facets.keySet() );
+    }
+
+    public MetadataFacet getMetadataFacet( String repositoryId, String 
facetId, String name )
+    {
+        return facets.get( name );
+    }
+
+    public void addMetadataFacet( String repositoryId, MetadataFacet 
metadataFacet )
+    {
+        facets.put( metadataFacet.getName(), metadataFacet );
+    }
+
+    public void removeMetadataFacets( String repositoryId, String facetId )
+    {
+        facets.clear();
+    }
+
+    public void removeMetadataFacet( String repoId, String facetId, String 
name )
+    {
+        //To change body of implemented methods use File | Settings | File 
Templates.
     }
 
-    public Collection<String> getProjects( String repoId, String namespace )
+    public List<ArtifactMetadata> getArtifactsByDateRange( String repoId, Date 
startTime, Date endTime )
     {
         return null;  //To change body of implemented methods use File | 
Settings | File Templates.
     }
 
-    public Collection<String> getProjectVersions( String repoId, String 
namespace, String projectId )
-        throws MetadataResolverException
+    public Collection<String> getRepositories()
     {
         return null;  //To change body of implemented methods use File | 
Settings | File Templates.
     }
 
-    public Collection<ArtifactMetadata> getArtifacts( String repoId, String 
namespace, String projectId,
-                                                      String projectVersion )
+    public List<ArtifactMetadata> getArtifactsByChecksum( String repoId, 
String checksum )
     {
         return null;  //To change body of implemented methods use File | 
Settings | File Templates.
     }
-}
+}
\ No newline at end of file

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataResolver.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataResolver.java?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataResolver.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataResolver.java
 Wed Dec 16 00:38:50 2009
@@ -1,12 +1,5 @@
 package org.apache.archiva.metadata.repository;
 
-import java.util.Collection;
-
-import org.apache.archiva.metadata.model.ArtifactMetadata;
-import org.apache.archiva.metadata.model.ProjectMetadata;
-import org.apache.archiva.metadata.model.ProjectVersionMetadata;
-import org.apache.archiva.metadata.model.ProjectVersionReference;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -26,6 +19,13 @@
  * under the License.
  */
 
+import java.util.Collection;
+
+import org.apache.archiva.metadata.model.ArtifactMetadata;
+import org.apache.archiva.metadata.model.ProjectMetadata;
+import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+import org.apache.archiva.metadata.model.ProjectVersionReference;
+
 public class TestMetadataResolver
     implements MetadataResolver
 {

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java
 Wed Dec 16 00:38:50 2009
@@ -30,9 +30,11 @@
 import org.apache.archiva.metadata.model.License;
 import org.apache.archiva.metadata.model.MailingList;
 import org.apache.archiva.metadata.model.ProjectVersionMetadata;
+import org.apache.archiva.metadata.repository.MetadataRepository;
 import org.apache.archiva.metadata.repository.MetadataResolverException;
 import org.apache.archiva.metadata.repository.filter.ExcludesFilter;
 import org.apache.archiva.metadata.repository.storage.StorageMetadataResolver;
+import org.apache.archiva.reports.RepositoryProblemFacet;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
@@ -55,6 +57,8 @@
 
     private static final String EMPTY_SHA1 = 
"da39a3ee5e6b4b0d3255bfef95601890afd80709";
 
+    private MetadataRepository metadataRepository;
+
     public void setUp()
         throws Exception
     {
@@ -69,6 +73,8 @@
         configuration.save( c );
 
         resolver = (Maven2RepositoryMetadataResolver) lookup( 
StorageMetadataResolver.class, "maven2" );
+        metadataRepository = (MetadataRepository) lookup( 
MetadataRepository.class );
+        metadataRepository.removeMetadataFacets( TEST_REPO_ID, 
RepositoryProblemFacet.FACET_ID );
     }
 
     public void testGetProjectVersionMetadata()
@@ -204,27 +210,36 @@
     }
 
     public void testGetProjectVersionMetadataForInvalidPom()
+        throws MetadataResolverException
     {
-        try
-        {
-            ProjectVersionMetadata metadata =
-                resolver.getProjectVersion( TEST_REPO_ID, "com.example.test", 
"invalid-pom", "1.0" );
+        assertTrue( metadataRepository.getMetadataFacets( TEST_REPO_ID, 
RepositoryProblemFacet.FACET_ID ).isEmpty() );
 
-            fail( "Expected failure, but received metadata: " + metadata );
-        }
-        catch ( MetadataResolverException e )
-        {
-            assertTrue( true );
-        }
+        ProjectVersionMetadata metadata =
+            resolver.getProjectVersion( TEST_REPO_ID, "com.example.test", 
"invalid-pom", "1.0" );
+        assertNull( metadata );
+
+        assertFalse( metadataRepository.getMetadataFacets( TEST_REPO_ID, 
RepositoryProblemFacet.FACET_ID ).isEmpty() );
+        RepositoryProblemFacet facet =
+            (RepositoryProblemFacet) metadataRepository.getMetadataFacet( 
TEST_REPO_ID, RepositoryProblemFacet.FACET_ID,
+                                                                          
"com.example.test/invalid-pom/1.0" );
+        assertEquals( "invalid-pom", facet.getProblem() );
     }
 
     public void testGetProjectVersionMetadataForMissingPom()
         throws MetadataResolverException
     {
+        assertTrue( metadataRepository.getMetadataFacets( TEST_REPO_ID, 
RepositoryProblemFacet.FACET_ID ).isEmpty() );
+
         ProjectVersionMetadata metadata =
             resolver.getProjectVersion( TEST_REPO_ID, "com.example.test", 
"missing-pom", "1.0" );
         assertNull( metadata );
 
+        assertFalse( metadataRepository.getMetadataFacets( TEST_REPO_ID, 
RepositoryProblemFacet.FACET_ID ).isEmpty() );
+        RepositoryProblemFacet facet =
+            (RepositoryProblemFacet) metadataRepository.getMetadataFacet( 
TEST_REPO_ID, RepositoryProblemFacet.FACET_ID,
+                                                                          
"com.example.test/missing-pom/1.0" );
+        assertEquals( "missing-pom", facet.getProblem() );
+
     }
 
     public void testGetRootNamespaces()

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/resources/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.xml
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/resources/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.xml?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/resources/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.xml
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/maven2-repository/src/test/resources/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.xml
 Wed Dec 16 00:38:50 2009
@@ -23,5 +23,9 @@
       <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
       
<implementation>org.apache.archiva.configuration.TestConfiguration</implementation>
     </component>
+    <component>
+      <role>org.apache.archiva.metadata.repository.MetadataRepository</role>
+      
<implementation>org.apache.archiva.metadata.repository.TestMetadataRepository</implementation>
+    </component>
   </components>
 </component-set>
\ No newline at end of file

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
 Wed Dec 16 00:38:50 2009
@@ -303,16 +303,16 @@
         return metadataFacet;
     }
 
-    public void addMetadataFacet( String repositoryId, String facetId, 
MetadataFacet metadataFacet )
+    public void addMetadataFacet( String repositoryId, MetadataFacet 
metadataFacet )
     {
         Properties properties = new Properties();
         properties.putAll( metadataFacet.toProperties() );
 
         try
         {
-            writeProperties( properties,
-                             new File( getMetadataDirectory( repositoryId, 
facetId ), metadataFacet.getName() ),
-                             METADATA_KEY );
+            File directory =
+                new File( getMetadataDirectory( repositoryId, 
metadataFacet.getFacetId() ), metadataFacet.getName() );
+            writeProperties( properties, directory, METADATA_KEY );
         }
         catch ( IOException e )
         {

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java
 Wed Dec 16 00:38:50 2009
@@ -125,7 +125,7 @@
 
     public void testGetMetadataFacet()
     {
-        repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, new 
TestMetadataFacet( TEST_VALUE ) );
+        repository.addMetadataFacet( TEST_REPO_ID, new TestMetadataFacet( 
TEST_VALUE ) );
 
         assertEquals( new TestMetadataFacet( TEST_VALUE ),
                       repository.getMetadataFacet( TEST_REPO_ID, 
TEST_FACET_ID, TEST_NAME ) );
@@ -138,14 +138,14 @@
 
     public void testGetMetadataFacetWhenUnknownName()
     {
-        repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, new 
TestMetadataFacet( TEST_VALUE ) );
+        repository.addMetadataFacet( TEST_REPO_ID, new TestMetadataFacet( 
TEST_VALUE ) );
 
         assertNull( repository.getMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, 
UNKNOWN ) );
     }
 
     public void testGetMetadataFacetWhenDefaultValue()
     {
-        repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, new 
TestMetadataFacet( null ) );
+        repository.addMetadataFacet( TEST_REPO_ID, new TestMetadataFacet( null 
) );
 
         assertEquals( new TestMetadataFacet( "test-metadata" ),
                       repository.getMetadataFacet( TEST_REPO_ID, 
TEST_FACET_ID, TEST_NAME ) );
@@ -153,14 +153,12 @@
 
     public void testGetMetadataFacetWhenUnknownFacetId()
     {
-        repository.addMetadataFacet( TEST_REPO_ID, UNKNOWN, new 
TestMetadataFacet( TEST_VALUE ) );
-
         assertNull( repository.getMetadataFacet( TEST_REPO_ID, UNKNOWN, 
TEST_NAME ) );
     }
 
     public void testGetMetadataFacets()
     {
-        repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, new 
TestMetadataFacet( TEST_VALUE ) );
+        repository.addMetadataFacet( TEST_REPO_ID, new TestMetadataFacet( 
TEST_VALUE ) );
 
         assertEquals( Collections.singletonList( TEST_NAME ),
                       repository.getMetadataFacets( TEST_REPO_ID, 
TEST_FACET_ID ) );
@@ -174,7 +172,7 @@
 
     public void testRemoveFacets()
     {
-        repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, new 
TestMetadataFacet( TEST_VALUE ) );
+        repository.addMetadataFacet( TEST_REPO_ID, new TestMetadataFacet( 
TEST_VALUE ) );
 
         List<String> facets = repository.getMetadataFacets( TEST_REPO_ID, 
TEST_FACET_ID );
         assertFalse( facets.isEmpty() );
@@ -204,7 +202,7 @@
     public void testRemoveFacet()
     {
         TestMetadataFacet metadataFacet = new TestMetadataFacet( TEST_VALUE );
-        repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, 
metadataFacet );
+        repository.addMetadataFacet( TEST_REPO_ID, metadataFacet );
 
         assertEquals( metadataFacet, repository.getMetadataFacet( 
TEST_REPO_ID, TEST_FACET_ID, TEST_NAME ) );
         List<String> facets = repository.getMetadataFacets( TEST_REPO_ID, 
TEST_FACET_ID );
@@ -280,8 +278,8 @@
 
     public void testRepositories()
     {
-        repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, new 
TestMetadataFacet( TEST_VALUE ) );
-        repository.addMetadataFacet( OTHER_REPO, TEST_FACET_ID, new 
TestMetadataFacet( TEST_VALUE ) );
+        repository.addMetadataFacet( TEST_REPO_ID, new TestMetadataFacet( 
TEST_VALUE ) );
+        repository.addMetadataFacet( OTHER_REPO, new TestMetadataFacet( 
TEST_VALUE ) );
 
         assertEquals( Arrays.asList( OTHER_REPO, TEST_REPO_ID ), 
repository.getRepositories() );
     }

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemFacet.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemFacet.java?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemFacet.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemFacet.java
 Wed Dec 16 00:38:50 2009
@@ -60,7 +60,10 @@
         map.put( "namespace", namespace );
         map.put( "project", project );
         map.put( "version", version );
-        map.put( "id", id );
+        if ( id != null )
+        {
+            map.put( "id", id );
+        }
         map.put( "message", message );
         map.put( "problem", problem );
         return map;
@@ -147,8 +150,13 @@
         return problem;
     }
 
-    static String createName( String namespace, String project, String 
projectVersion, String id )
+    public static String createName( String namespace, String project, String 
projectVersion, String id )
     {
-        return namespace + "/" + project + "/" + projectVersion + "/" + id;
+        String name = namespace + "/" + project + "/" + projectVersion;
+        if ( id != null )
+        {
+            name = name + "/" + id;
+        }
+        return name;
     }
 }

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/consumers/DuplicateArtifactsConsumer.java
 Wed Dec 16 00:38:50 2009
@@ -209,7 +209,7 @@
                         "/" + dupArtifact.getProject() + "/" + 
dupArtifact.getVersion() + "/" + dupArtifact.getId() );
                 problem.setProblem( "duplicate-artifact" );
 
-                metadataRepository.addMetadataFacet( repoId, 
RepositoryProblemFacet.FACET_ID, problem );
+                metadataRepository.addMetadataFacet( repoId, problem );
             }
         }
     }

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java
 Wed Dec 16 00:38:50 2009
@@ -77,7 +77,7 @@
         // populate total project count from content repository
 //        repositoryStatistics.setTotalProjectCount(  );
 
-        metadataRepository.addMetadataFacet( repositoryId, 
RepositoryStatistics.FACET_ID, repositoryStatistics );
+        metadataRepository.addMetadataFacet( repositoryId, 
repositoryStatistics );
     }
 
     public void deleteStatistics( String repositoryId )

Modified: 
archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java?rev=891084&r1=891083&r2=891084&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java
 Wed Dec 16 00:38:50 2009
@@ -120,7 +120,7 @@
 
         RepositoryStatistics stats = createTestStats( startTime, current );
 
-        metadataRepository.addMetadataFacet( TEST_REPO_ID, 
RepositoryStatistics.FACET_ID, stats );
+        metadataRepository.addMetadataFacet( TEST_REPO_ID, stats );
         metadataRepositoryControl.expectAndReturn(
             metadataRepository.getMetadataFacets( TEST_REPO_ID, 
RepositoryStatistics.FACET_ID ),
             Arrays.asList( stats.getName() ) );
@@ -152,11 +152,11 @@
 
         Date startTime1 = new Date( current.getTime() - 12345 );
         RepositoryStatistics stats1 = createTestStats( startTime1, new Date( 
current.getTime() - 6000 ) );
-        metadataRepository.addMetadataFacet( TEST_REPO_ID, 
RepositoryStatistics.FACET_ID, stats1 );
+        metadataRepository.addMetadataFacet( TEST_REPO_ID, stats1 );
 
         Date startTime2 = new Date( current.getTime() - 3000 );
         RepositoryStatistics stats2 = createTestStats( startTime2, current );
-        metadataRepository.addMetadataFacet( TEST_REPO_ID, 
RepositoryStatistics.FACET_ID, stats2 );
+        metadataRepository.addMetadataFacet( TEST_REPO_ID, stats2 );
 
         metadataRepositoryControl.expectAndReturn(
             metadataRepository.getMetadataFacets( TEST_REPO_ID, 
RepositoryStatistics.FACET_ID ),
@@ -391,7 +391,7 @@
     private void addStats( Date startTime, Date endTime )
     {
         RepositoryStatistics stats = createTestStats( startTime, endTime );
-        metadataRepository.addMetadataFacet( TEST_REPO_ID, 
RepositoryStatistics.FACET_ID, stats );
+        metadataRepository.addMetadataFacet( TEST_REPO_ID, stats );
         statsCreated.put( stats.getName(), stats );
     }
 


Reply via email to