Return-Path: X-Original-To: apmail-archiva-commits-archive@www.apache.org Delivered-To: apmail-archiva-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2A525D725 for ; Fri, 19 Oct 2012 22:48:08 +0000 (UTC) Received: (qmail 62604 invoked by uid 500); 19 Oct 2012 22:48:08 -0000 Delivered-To: apmail-archiva-commits-archive@archiva.apache.org Received: (qmail 62568 invoked by uid 500); 19 Oct 2012 22:48:08 -0000 Mailing-List: contact commits-help@archiva.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@archiva.apache.org Delivered-To: mailing list commits@archiva.apache.org Received: (qmail 62561 invoked by uid 99); 19 Oct 2012 22:48:08 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 19 Oct 2012 22:48:08 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 19 Oct 2012 22:48:04 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 0392423888CD for ; Fri, 19 Oct 2012 22:47:20 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1400323 - in /archiva/trunk/archiva-modules: archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/ archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/... Date: Fri, 19 Oct 2012 22:47:19 -0000 To: commits@archiva.apache.org From: olamy@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20121019224720.0392423888CD@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: olamy Date: Fri Oct 19 22:47:19 2012 New Revision: 1400323 URL: http://svn.apache.org/viewvc?rev=1400323&view=rev Log: [MRM-1701] metadatas are not removed when a snapshot is purged. Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/AbstractRepositoryPurge.java archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/user.js Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/AbstractRepositoryPurge.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/AbstractRepositoryPurge.java?rev=1400323&r1=1400322&r2=1400323&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/AbstractRepositoryPurge.java (original) +++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/AbstractRepositoryPurge.java Fri Oct 19 22:47:19 2012 @@ -20,16 +20,24 @@ package org.apache.archiva.consumers.cor */ 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 AbstractRepository // 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 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 ), Modified: archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java?rev=1400323&r1=1400322&r2=1400323&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java (original) +++ archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java Fri Oct 19 22:47:19 2012 @@ -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, Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/user.js URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/user.js?rev=1400323&r1=1400322&r2=1400323&view=diff ============================================================================== --- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/user.js (original) +++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/redback/user.js Fri Oct 19 22:47:19 2012 @@ -77,7 +77,7 @@ function(jquery,utils,i18n,jqueryValidat 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,jqueryValidat // 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);