mirror of https://github.com/apache/archiva.git
[MRM-1701] metadatas are not removed when a snapshot is purged.
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1400323 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
0b41e0e326
commit
4b5be0143c
|
@ -20,16 +20,24 @@ package org.apache.archiva.consumers.core.repository;
|
|||
*/
|
||||
|
||||
import org.apache.archiva.audit.AuditEvent;
|
||||
import org.apache.archiva.common.utils.VersionUtil;
|
||||
import org.apache.archiva.metadata.model.ArtifactMetadata;
|
||||
import org.apache.archiva.metadata.repository.MetadataRepository;
|
||||
import org.apache.archiva.metadata.repository.MetadataRepositoryException;
|
||||
import org.apache.archiva.metadata.repository.MetadataResolutionException;
|
||||
import org.apache.archiva.metadata.repository.RepositorySession;
|
||||
import org.apache.archiva.repository.events.RepositoryListener;
|
||||
import org.apache.archiva.metadata.repository.storage.maven2.MavenArtifactFacet;
|
||||
import org.apache.archiva.model.ArtifactReference;
|
||||
import org.apache.archiva.repository.ContentNotFoundException;
|
||||
import org.apache.archiva.repository.ManagedRepositoryContent;
|
||||
import org.apache.archiva.repository.events.RepositoryListener;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FilenameFilter;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
|
@ -39,7 +47,7 @@ import java.util.Set;
|
|||
public abstract class AbstractRepositoryPurge
|
||||
implements RepositoryPurge
|
||||
{
|
||||
protected Logger log = LoggerFactory.getLogger( AbstractRepositoryPurge.class );
|
||||
protected Logger log = LoggerFactory.getLogger( getClass() );
|
||||
|
||||
protected final ManagedRepositoryContent repository;
|
||||
|
||||
|
@ -83,7 +91,82 @@ public abstract class AbstractRepositoryPurge
|
|||
|
||||
// TODO: this needs to be logged
|
||||
artifactFile.delete();
|
||||
//repository.deleteArtifact( reference );
|
||||
try
|
||||
{
|
||||
repository.deleteArtifact( reference );
|
||||
}
|
||||
catch ( ContentNotFoundException e )
|
||||
{
|
||||
log.warn( "skip error deleting artifact {}: {}", reference, e.getMessage() );
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
metadataRepository.removeProjectVersion( repository.getId(), reference.getGroupId(),
|
||||
reference.getArtifactId(), reference.getVersion() );
|
||||
}
|
||||
catch ( MetadataRepositoryException e )
|
||||
{
|
||||
log.warn( "skip error removeProjectVersion artifact {}: {}", reference, e.getMessage() );
|
||||
}
|
||||
|
||||
boolean snapshotVersion = VersionUtil.isSnapshot( reference.getVersion() );
|
||||
|
||||
try
|
||||
{
|
||||
if ( snapshotVersion )
|
||||
{
|
||||
String baseVersion = VersionUtil.getBaseVersion( reference.getVersion() );
|
||||
Collection<ArtifactMetadata> artifacts =
|
||||
metadataRepository.getArtifacts( repository.getId(), reference.getGroupId(),
|
||||
reference.getArtifactId(), baseVersion );
|
||||
// cleanup snapshots metadata
|
||||
for ( ArtifactMetadata artifactMetadata : artifacts )
|
||||
{
|
||||
|
||||
// TODO: mismatch between artifact (snapshot) version and project (base) version here
|
||||
if ( artifactMetadata.getVersion().equals( reference.getVersion() ) )
|
||||
{
|
||||
if ( StringUtils.isNotBlank( reference.getClassifier() ) )
|
||||
{
|
||||
|
||||
// cleanup facet which contains classifier information
|
||||
MavenArtifactFacet mavenArtifactFacet =
|
||||
(MavenArtifactFacet) artifactMetadata.getFacet( MavenArtifactFacet.FACET_ID );
|
||||
|
||||
if ( StringUtils.equals( reference.getClassifier(),
|
||||
mavenArtifactFacet.getClassifier() ) )
|
||||
{
|
||||
artifactMetadata.removeFacet( MavenArtifactFacet.FACET_ID );
|
||||
String groupId = reference.getGroupId(), artifactId = reference.getArtifactId(),
|
||||
version = reference.getVersion();
|
||||
MavenArtifactFacet mavenArtifactFacetToCompare = new MavenArtifactFacet();
|
||||
mavenArtifactFacetToCompare.setClassifier( reference.getClassifier() );
|
||||
metadataRepository.removeArtifact( repository.getId(), groupId, artifactId,
|
||||
version, mavenArtifactFacetToCompare );
|
||||
metadataRepository.save();
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
metadataRepository.removeArtifact( artifactMetadata, VersionUtil.getBaseVersion(
|
||||
reference.getVersion() ) );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch ( MetadataResolutionException e )
|
||||
{
|
||||
log.warn( "skip error deleting metadata {}: {}", reference, e.getMessage() );
|
||||
}
|
||||
catch ( MetadataRepositoryException e )
|
||||
{
|
||||
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
|
||||
}
|
||||
|
||||
repositorySession.save();
|
||||
|
||||
triggerAuditEvent( repository.getRepository().getId(), ArtifactReference.toKey( reference ),
|
||||
|
|
|
@ -766,9 +766,6 @@ public class DefaultRepositoriesService
|
|||
artifactMetadata.removeFacet( MavenArtifactFacet.FACET_ID );
|
||||
String groupId = artifact.getGroupId(), artifactId = artifact.getArtifactId(), version =
|
||||
artifact.getVersion();
|
||||
//metadataRepository.updateArtifact( repositoryId, groupId, artifactId, version,
|
||||
// artifactMetadata );
|
||||
// String repositoryId, String namespace, String project, String version, String projectId, MetadataFacet metadataFacet
|
||||
MavenArtifactFacet mavenArtifactFacetToCompare = new MavenArtifactFacet();
|
||||
mavenArtifactFacetToCompare.setClassifier( artifact.getClassifier() );
|
||||
metadataRepository.removeArtifact( repositoryId, groupId, artifactId, version,
|
||||
|
|
|
@ -77,7 +77,7 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid) {
|
|||
this.modified=ko.observable(false);
|
||||
|
||||
this.rememberme=false;
|
||||
this.password=null;
|
||||
|
||||
this.logged=false;
|
||||
|
||||
this.remove = function() {
|
||||
|
@ -413,7 +413,7 @@ function(jquery,utils,i18n,jqueryValidate,ko,koSimpleGrid) {
|
|||
// FIXME check validated
|
||||
user.rememberme=window.redbackModel.rememberme;
|
||||
if(user.rememberme){
|
||||
user.password=window.redbackModel.password;
|
||||
user.password(window.redbackModel.password);
|
||||
}
|
||||
$.log("user.rememberme:"+(user.rememberme));
|
||||
reccordLoginCookie(user);
|
||||
|
|
Loading…
Reference in New Issue