Author: brett
Date: Thu Dec 10 02:29:30 2009
New Revision: 889061

URL: http://svn.apache.org/viewvc?rev=889061&view=rev
Log:
[MRM-1282] make the creation consumer read from storage so we get consistent 
metadata creation

Modified:
    
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/pom.xml
    
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java

Modified: 
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/pom.xml?rev=889061&r1=889060&r2=889061&view=diff
==============================================================================
--- 
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/pom.xml
 (original)
+++ 
archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/pom.xml
 Thu Dec 10 02:29:30 2009
@@ -40,10 +40,6 @@
       <groupId>org.apache.archiva</groupId>
       <artifactId>metadata-repository-api</artifactId>
     </dependency>
-    <dependency> <!--  FIXME: temporary coupling to file based repo -->
-      <groupId>org.apache.archiva</groupId>
-      <artifactId>metadata-repository-file</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.archiva</groupId>
       <artifactId>archiva-repository-layer</artifactId>

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=889061&r1=889060&r2=889061&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
 Thu Dec 10 02:29:30 2009
@@ -31,6 +31,8 @@
 import org.apache.archiva.metadata.model.ProjectMetadata;
 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.storage.StorageMetadataResolver;
 import org.apache.maven.archiva.common.utils.VersionUtil;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.ConfigurationNames;
@@ -94,6 +96,15 @@
      */
     private MetadataRepository metadataRepository;
 
+    /**
+     * FIXME: this needs to be configurable based on storage type, and 
availability of proxy module
+     * ... could be a different type since we need methods to modify the 
storage metadata, which would also allow more
+     * appropriate methods to pass in the already determined repository 
configuration, for example, instead of the ID
+     *
+     * @plexus.requirement role-hint="maven2"
+     */
+    private StorageMetadataResolver storageResolver;
+
     private static final Logger log = LoggerFactory.getLogger( 
ArchivaMetadataCreationConsumer.class );
 
     public String getId()
@@ -150,8 +161,18 @@
         project.setNamespace( artifact.getGroupId() );
         project.setId( artifact.getArtifactId() );
 
-        ProjectVersionMetadata versionMetadata = new ProjectVersionMetadata();
-        versionMetadata.setId( VersionUtil.getBaseVersion( 
artifact.getVersion() ) );
+        // TODO: maybe not too efficient since it may have already been read 
and stored for this artifact
+        ProjectVersionMetadata versionMetadata = null;
+        try
+        {
+            versionMetadata =
+                storageResolver.getProjectVersion( repository.getId(), 
artifact.getGroupId(), artifact.getArtifactId(),
+                                                   VersionUtil.getBaseVersion( 
artifact.getVersion() ) );
+        }
+        catch ( MetadataResolverException e )
+        {
+            throw new ConsumerException( e.getMessage(), e );
+        }
 
         ArtifactMetadata artifactMeta = new ArtifactMetadata();
         artifactMeta.setRepositoryId( repository.getId() );
@@ -181,7 +202,6 @@
             log.error( "Error attempting to get SHA-1 checksum for " + file + 
": " + e.getMessage() );
         }
 
-        // TODO: read the POM and fill in the rest of the information
 
         // TODO: transaction
         // read the metadata and update it if it is newer or doesn't exist


Reply via email to