You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by br...@apache.org on 2009/12/02 12:54:29 UTC
svn commit: r886126 - in /archiva/branches/MRM-1025/archiva-modules:
archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/
metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ ...
Author: brett
Date: Wed Dec 2 11:54:28 2009
New Revision: 886126
URL: http://svn.apache.org/viewvc?rev=886126&view=rev
Log:
[MRM-1025] fill out more of the information in the metadata creation consumer to make it consistent with the current database record creation consumer
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/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ArtifactMetadata.java
archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.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=886126&r1=886125&r2=886126&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 2 11:54:28 2009
@@ -20,14 +20,18 @@
*/
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import org.apache.archiva.checksum.ChecksumAlgorithm;
+import org.apache.archiva.checksum.ChecksummedFile;
import org.apache.archiva.metadata.model.ArtifactMetadata;
-import org.apache.archiva.metadata.model.ProjectVersionMetadata;
import org.apache.archiva.metadata.model.ProjectMetadata;
+import org.apache.archiva.metadata.model.ProjectVersionMetadata;
import org.apache.archiva.metadata.repository.MetadataRepository;
+import org.apache.maven.archiva.common.utils.VersionUtil;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.ConfigurationNames;
import org.apache.maven.archiva.configuration.FileTypes;
@@ -42,13 +46,15 @@
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.codehaus.plexus.registry.Registry;
import org.codehaus.plexus.registry.RegistryListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Take an artifact off of disk and put it into the metadata repository.
- *
+ *
* @version $Id: ArtifactUpdateDatabaseConsumer.java 718864 2008-11-19 06:33:35Z brett $
* @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer"
- * role-hint="create-archiva-metadata" instantiation-strategy="per-lookup"
+ * role-hint="create-archiva-metadata" instantiation-strategy="per-lookup"
*/
public class ArchivaMetadataCreationConsumer
extends AbstractMonitoredConsumer
@@ -88,6 +94,8 @@
*/
private MetadataRepository metadataRepository;
+ private static final Logger log = LoggerFactory.getLogger( ArchivaMetadataCreationConsumer.class );
+
public String getId()
{
return this.id;
@@ -143,22 +151,41 @@
project.setId( artifact.getArtifactId() );
ProjectVersionMetadata versionMetadata = new ProjectVersionMetadata();
- versionMetadata.setId( artifact.getVersion() ); // TODO: this should be the version from the POM, not the timestamped version
+ versionMetadata.setId( VersionUtil.getBaseVersion( artifact.getVersion() ) );
ArtifactMetadata artifactMeta = new ArtifactMetadata();
artifactMeta.setId( file.getName() );
- artifactMeta.setUpdated( file.lastModified() );
+ artifactMeta.setFileLastModified( file.lastModified() );
artifactMeta.setSize( file.length() );
artifactMeta.setVersion( artifact.getVersion() );
+ artifactMeta.setWhenGathered( whenGathered );
- // TODO: read the POM and fill in the rest of the information
+ ChecksummedFile checksummedFile = new ChecksummedFile( file );
+ try
+ {
+ artifactMeta.setMd5( checksummedFile.calculateChecksum( ChecksumAlgorithm.MD5 ) );
+ }
+ catch ( IOException e )
+ {
+ log.error( "Error attempting to get MD5 checksum for " + file + ": " + e.getMessage() );
+ }
+ try
+ {
+ artifactMeta.setSha1( checksummedFile.calculateChecksum( ChecksumAlgorithm.SHA1 ) );
+ }
+ catch ( IOException e )
+ {
+ log.error( "Error attempting to get SHA-1 checksum for " + file + ": " + e.getMessage() );
+ }
- // TODO: store "whenGathered"
+ // 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
- metadataRepository.updateArtifact( repository.getId(), project.getNamespace(), project.getId(), versionMetadata.getId(), artifactMeta );
- metadataRepository.updateProjectVersion( repository.getId(), project.getNamespace(), project.getId(), versionMetadata );
+ metadataRepository.updateArtifact( repository.getId(), project.getNamespace(), project.getId(),
+ versionMetadata.getId(), artifactMeta );
+ metadataRepository.updateProjectVersion( repository.getId(), project.getNamespace(), project.getId(),
+ versionMetadata );
metadataRepository.updateProject( repository.getId(), project );
}
Modified: archiva/branches/MRM-1025/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ArtifactMetadata.java
URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ArtifactMetadata.java?rev=886126&r1=886125&r2=886126&view=diff
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ArtifactMetadata.java (original)
+++ archiva/branches/MRM-1025/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ArtifactMetadata.java Wed Dec 2 11:54:28 2009
@@ -25,12 +25,18 @@
{
private String id;
- private Date updated;
-
private long size;
private String version;
+ private Date fileLastModified;
+
+ private Date whenGathered;
+
+ private String md5;
+
+ private String sha1;
+
public String getId()
{
return id;
@@ -41,38 +47,64 @@
this.id = id;
}
- public Date getUpdated()
+ public long getSize()
{
- return updated;
+ return size;
}
- public void setUpdated( Date updated )
+ public void setSize( long size )
{
- this.updated = updated;
+ this.size = size;
}
- public void setUpdated( long updated )
+ public String getVersion()
{
- this.updated = new Date( updated );
+ return version;
}
- public long getSize()
+ public void setVersion( String version )
{
- return size;
+ this.version = version;
}
- public void setSize( long size )
+ public void setFileLastModified( long fileLastModified )
{
- this.size = size;
+ this.fileLastModified = new Date( fileLastModified );
}
- public String getVersion()
+ public void setWhenGathered( Date whenGathered )
{
- return version;
+ this.whenGathered = whenGathered;
}
- public void setVersion( String version )
+ public void setMd5( String md5 )
{
- this.version = version;
+ this.md5 = md5;
+ }
+
+ public void setSha1( String sha1 )
+ {
+ this.sha1 = sha1;
+ }
+
+ public Date getWhenGathered()
+ {
+ return whenGathered;
+ }
+
+ public String getMd5()
+ {
+ return md5;
+ }
+
+ public String getSha1()
+ {
+ return sha1;
+ }
+
+ public Date getFileLastModified()
+ {
+
+ return fileLastModified;
}
}
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=886126&r1=886125&r2=886126&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 2 11:54:28 2009
@@ -268,8 +268,12 @@
Properties properties = readProperties( directory, PROJECT_VERSION_METADATA_KEY );
properties.setProperty( "artifact:updated:" + artifact.getId(),
- Long.toString( artifact.getUpdated().getTime() ) );
+ Long.toString( artifact.getFileLastModified().getTime() ) );
+ properties.setProperty( "artifact:whenGathered:" + artifact.getId(),
+ Long.toString( artifact.getWhenGathered().getTime() ) );
properties.setProperty( "artifact:size:" + artifact.getId(), Long.toString( artifact.getSize() ) );
+ properties.setProperty( "artifact:md5:" + artifact.getId(), artifact.getMd5() );
+ properties.setProperty( "artifact:sha1:" + artifact.getId(), artifact.getMd5() );
properties.setProperty( "artifact:version:" + artifact.getId(), artifact.getVersion() );
try