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 2011/10/03 09:18:11 UTC
svn commit: r1178312 -
/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java
Author: brett
Date: Mon Oct 3 07:18:10 2011
New Revision: 1178312
URL: http://svn.apache.org/viewvc?rev=1178312&view=rev
Log:
prevent overzealous deletion of snapshot versions in the same artifact that may not be part of the currently scanned file
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.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/CleanupReleasedSnapshotsRepositoryPurge.java?rev=1178312&r1=1178311&r2=1178312&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java Mon Oct 3 07:18:10 2011
@@ -116,19 +116,25 @@ public class CleanupReleasedSnapshotsRep
reference.setGroupId( artifactRef.getGroupId() );
reference.setArtifactId( artifactRef.getArtifactId() );
- // Gather up all of the versions.
- List<String> allVersions = new ArrayList<String>( repository.getVersions( reference ) );
+ // Gether the released versions
+ List<String> releasedVersions = new ArrayList<String>();
List<ManagedRepository> repos = managedRepositoryAdmin.getManagedRepositories();
for ( ManagedRepository repo : repos )
{
- if ( repo.isReleases() && !repo.getId().equals( repository.getId() ) )
+ if ( repo.isReleases() )
{
try
{
ManagedRepositoryContent repoContent =
repoContentFactory.getManagedRepositoryContent( repo.getId() );
- allVersions.addAll( repoContent.getVersions( reference ) );
+ for ( String version : repoContent.getVersions( reference ) )
+ {
+ if ( !VersionUtil.isSnapshot( version ) )
+ {
+ releasedVersions.add( version );
+ }
+ }
}
catch ( RepositoryNotFoundException e )
{
@@ -141,25 +147,7 @@ public class CleanupReleasedSnapshotsRep
}
}
- // Split the versions into released and snapshots.
- List<String> releasedVersions = new ArrayList<String>();
- List<String> snapshotVersions = new ArrayList<String>();
-
- for ( String version : allVersions )
- {
- if ( VersionUtil.isSnapshot( version ) )
- {
- snapshotVersions.add( version );
- }
- else
- {
- releasedVersions.add( version );
- }
- }
-
- Collections.sort( allVersions, VersionComparator.getInstance() );
Collections.sort( releasedVersions, VersionComparator.getInstance() );
- Collections.sort( snapshotVersions, VersionComparator.getInstance() );
// Now clean out any version that is earlier than the highest released version.
boolean needsMetadataUpdate = false;
@@ -168,28 +156,22 @@ public class CleanupReleasedSnapshotsRep
versionRef.setGroupId( artifactRef.getGroupId() );
versionRef.setArtifactId( artifactRef.getArtifactId() );
- ArchivaArtifact artifact =
- new ArchivaArtifact( artifactRef.getGroupId(), artifactRef.getArtifactId(), artifactRef.getVersion(),
- artifactRef.getClassifier(), artifactRef.getType(), repository.getId() );
-
MetadataRepository metadataRepository = repositorySession.getRepository();
- for ( String version : snapshotVersions )
- {
- if ( releasedVersions.contains( VersionUtil.getReleaseVersion( version ) ) )
- {
- versionRef.setVersion( version );
- repository.deleteVersion( versionRef );
- // FIXME: looks incomplete, might not delete related metadata?
- for ( RepositoryListener listener : listeners )
- {
- listener.deleteArtifact( metadataRepository, repository.getId(), artifact.getGroupId(),
- artifact.getArtifactId(), artifact.getVersion(),
- artifactFile.getName() );
- }
+ if ( releasedVersions.contains( VersionUtil.getReleaseVersion( artifactRef.getVersion() ) ) )
+ {
+ versionRef.setVersion( artifactRef.getVersion() );
+ repository.deleteVersion( versionRef );
- needsMetadataUpdate = true;
+ // FIXME: looks incomplete, might not delete related metadata?
+ for ( RepositoryListener listener : listeners )
+ {
+ listener.deleteArtifact( metadataRepository, repository.getId(), artifactRef.getGroupId(),
+ artifactRef.getArtifactId(), artifactRef.getVersion(),
+ artifactFile.getName() );
}
+
+ needsMetadataUpdate = true;
}
if ( needsMetadataUpdate )