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 2010/12/29 07:14:07 UTC
svn commit: r1053542 [1/7] - in /archiva/trunk/archiva-modules:
archiva-base/archiva-consumers/archiva-core-consumers/
archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/
archiva-base/...
Author: brett
Date: Wed Dec 29 06:14:04 2010
New Revision: 1053542
URL: http://svn.apache.org/viewvc?rev=1053542&view=rev
Log:
[MRM-1330] refactor access around the concept of a "repository session". See Javadoc for some notes. This should be a single entry point for application users of either the metadata repository, resolution, or storage access. The session needs to be explicitly closed (and modifications saved) to facilitate some storage mechanisms.
Added:
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/metadata/
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/metadata/repository/
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/metadata/repository/TestRepositorySessionFactory.java
archiva/trunk/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestRepositorySessionFactory.java
archiva/trunk/archiva-modules/archiva-base/archiva-proxy/src/test/resources/META-INF/
archiva/trunk/archiva-modules/archiva-base/archiva-proxy/src/test/resources/META-INF/spring-context.xml
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/metadata/
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/metadata/repository/
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/metadata/repository/TestRepositorySessionFactory.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestRepositorySessionFactory.java
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestRepositorySessionFactory.java
archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/RepositorySession.java
archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/RepositorySessionFactory.java
archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/storage/RepositoryStorageMetadataException.java
archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/storage/RepositoryStorageMetadataInvalidException.java
archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/storage/RepositoryStorageMetadataNotFoundException.java
archiva/trunk/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestRepositorySessionFactory.java
archiva/trunk/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileRepositorySessionFactory.java
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.xml
archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java
archiva/trunk/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/AbstractProxyTestCase.java
archiva/trunk/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/maven/archiva/proxy/HttpProxyTransferTest.java
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/pom.xml
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutor.java
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/main/java/org/apache/archiva/scheduler/repository/RepositoryArchivaTaskScheduler.java
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.java
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/TestRepositoryStatisticsManager.java
archiva/trunk/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorTest.xml
archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/AbstractArtifactsRssFeedProcessor.java
archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessor.java
archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessor.java
archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/main/java/org/apache/archiva/rss/processor/RssFeedProcessor.java
archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewArtifactsRssFeedProcessorTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-rss/src/test/java/org/apache/archiva/rss/processor/NewVersionsOfArtifactRssFeedProcessorTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-test/pom.xml
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/BrowseAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/DeleteArtifactAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/MergeAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/PlexusActionSupport.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/SearchAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/ShowArtifactAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/GenerateReportAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/reports/ViewAuditLogReportAction.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/rss/RssFeedServlet.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataResolver.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/BrowseActionTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/DeleteArtifactActionTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/SearchActionTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/ShowArtifactActionTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/RepositoriesActionTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/reports/GenerateReportActionTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/rss/RssFeedServletTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/tags/DependencyTreeTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/META-INF/plexus/components.xml
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/BrowseActionTest.xml
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/ShowArtifactActionTest.xml
archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/test/resources/META-INF/plexus/components.xml
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/pom.xml
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImpl.java
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImplTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java
archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java
archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataResolver.java
archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/storage/RepositoryStorage.java
archiva/trunk/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/repository/events/RepositoryListener.java
archiva/trunk/archiva-modules/plugins/audit/src/main/java/org/apache/archiva/audit/AuditManager.java
archiva/trunk/archiva-modules/plugins/audit/src/main/java/org/apache/archiva/audit/DefaultAuditManager.java
archiva/trunk/archiva-modules/plugins/audit/src/main/java/org/apache/archiva/audit/MetadataAuditListener.java
archiva/trunk/archiva-modules/plugins/audit/src/test/java/org/apache/archiva/audit/AuditManagerTest.java
archiva/trunk/archiva-modules/plugins/maven2-repository/pom.xml
archiva/trunk/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/dependency/tree/maven2/DefaultDependencyTreeBuilder.java
archiva/trunk/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryStorage.java
archiva/trunk/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataResolver.java
archiva/trunk/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.java
archiva/trunk/archiva-modules/plugins/maven2-repository/src/test/resources/org/apache/archiva/dependency/tree/maven2/DependencyTreeBuilderTest.xml
archiva/trunk/archiva-modules/plugins/maven2-repository/src/test/resources/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryMetadataResolverTest.xml
archiva/trunk/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java
archiva/trunk/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java
archiva/trunk/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemEventListener.java
archiva/trunk/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java
archiva/trunk/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManager.java
archiva/trunk/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java
archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java
archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMerger.java
archiva/trunk/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMergerTest.java
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml?rev=1053542&r1=1053541&r2=1053542&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/pom.xml Wed Dec 29 06:14:04 2010
@@ -78,5 +78,10 @@
<artifactId>xmlunit</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-all</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</project>
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/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/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java?rev=1053542&r1=1053541&r2=1053542&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java Wed Dec 29 06:14:04 2010
@@ -20,6 +20,8 @@ package org.apache.maven.archiva.consume
*/
import org.apache.archiva.audit.AuditEvent;
+import org.apache.archiva.metadata.repository.MetadataRepository;
+import org.apache.archiva.metadata.repository.RepositorySession;
import org.apache.archiva.repository.events.RepositoryListener;
import org.apache.maven.archiva.model.ArtifactReference;
import org.apache.maven.archiva.repository.ManagedRepositoryContent;
@@ -41,15 +43,19 @@ public abstract class AbstractRepository
protected final ManagedRepositoryContent repository;
+ protected final RepositorySession repositorySession;
+
protected final List<RepositoryListener> listeners;
private Logger logger = LoggerFactory.getLogger( "org.apache.archiva.AuditLog" );
private static final char DELIM = ' ';
- public AbstractRepositoryPurge( ManagedRepositoryContent repository, List<RepositoryListener> listeners )
+ public AbstractRepositoryPurge( ManagedRepositoryContent repository, RepositorySession repositorySession,
+ List<RepositoryListener> listeners )
{
this.repository = repository;
+ this.repositorySession = repositorySession;
this.listeners = listeners;
}
@@ -62,6 +68,7 @@ public abstract class AbstractRepository
{
if ( references != null && !references.isEmpty() )
{
+ MetadataRepository metadataRepository = repositorySession.getRepository();
for ( ArtifactReference reference : references )
{
File artifactFile = repository.toFile( reference );
@@ -69,12 +76,15 @@ public abstract class AbstractRepository
// FIXME: looks incomplete, might not delete related metadata?
for ( RepositoryListener listener : listeners )
{
- listener.deleteArtifact( repository.getId(), reference.getGroupId(), reference.getArtifactId(),
- reference.getVersion(), artifactFile.getName() );
+ listener.deleteArtifact( metadataRepository, repository.getId(), reference.getGroupId(),
+ reference.getArtifactId(), reference.getVersion(),
+ artifactFile.getName() );
}
// TODO: this needs to be logged
artifactFile.delete();
+ repositorySession.save();
+
triggerAuditEvent( repository.getRepository().getId(), ArtifactReference.toKey( reference ),
AuditEvent.PURGE_ARTIFACT );
purgeSupportFiles( artifactFile );
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/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/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java?rev=1053542&r1=1053541&r2=1053542&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java Wed Dec 29 06:14:04 2010
@@ -19,6 +19,8 @@ package org.apache.maven.archiva.consume
* under the License.
*/
+import org.apache.archiva.metadata.repository.MetadataRepository;
+import org.apache.archiva.metadata.repository.RepositorySession;
import org.apache.archiva.repository.events.RepositoryListener;
import org.apache.maven.archiva.common.utils.VersionComparator;
import org.apache.maven.archiva.common.utils.VersionUtil;
@@ -79,9 +81,10 @@ public class CleanupReleasedSnapshotsRep
public CleanupReleasedSnapshotsRepositoryPurge( ManagedRepositoryContent repository, MetadataTools metadataTools,
ArchivaConfiguration archivaConfig,
RepositoryContentFactory repoContentFactory,
+ RepositorySession repositorySession,
List<RepositoryListener> listeners )
{
- super( repository, listeners );
+ super( repository, repositorySession, listeners );
this.metadataTools = metadataTools;
this.archivaConfig = archivaConfig;
this.repoContentFactory = repoContentFactory;
@@ -168,6 +171,7 @@ public class CleanupReleasedSnapshotsRep
artifactRef.getVersion(), artifactRef.getClassifier(),
artifactRef.getType(), repository.getId() );
+ MetadataRepository metadataRepository = repositorySession.getRepository();
for ( String version : snapshotVersions )
{
if ( releasedVersions.contains( VersionUtil.getReleaseVersion( version ) ) )
@@ -178,8 +182,9 @@ public class CleanupReleasedSnapshotsRep
// FIXME: looks incomplete, might not delete related metadata?
for ( RepositoryListener listener : listeners )
{
- listener.deleteArtifact( repository.getId(), artifact.getGroupId(), artifact.getArtifactId(),
- artifact.getVersion(), artifactFile.getName() );
+ listener.deleteArtifact( metadataRepository, repository.getId(), artifact.getGroupId(),
+ artifact.getArtifactId(), artifact.getVersion(),
+ artifactFile.getName() );
}
needsMetadataUpdate = true;
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java?rev=1053542&r1=1053541&r2=1053542&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurge.java Wed Dec 29 06:14:04 2010
@@ -19,6 +19,7 @@ package org.apache.maven.archiva.consume
* under the License.
*/
+import org.apache.archiva.metadata.repository.RepositorySession;
import org.apache.archiva.repository.events.RepositoryListener;
import org.apache.commons.lang.time.DateUtils;
import org.apache.maven.archiva.common.utils.VersionComparator;
@@ -42,7 +43,6 @@ import java.util.regex.Matcher;
/**
* Purge from repository all snapshots older than the specified days in the repository configuration.
- *
*/
public class DaysOldRepositoryPurge
extends AbstractRepositoryPurge
@@ -53,10 +53,10 @@ public class DaysOldRepositoryPurge
private int retentionCount;
- public DaysOldRepositoryPurge( ManagedRepositoryContent repository, int daysOlder,
- int retentionCount, List<RepositoryListener> listeners )
+ public DaysOldRepositoryPurge( ManagedRepositoryContent repository, int daysOlder, int retentionCount,
+ RepositorySession repositorySession, List<RepositoryListener> listeners )
{
- super( repository, listeners );
+ super( repository, repositorySession, listeners );
this.daysOlder = daysOlder;
this.retentionCount = retentionCount;
timestampParser = new SimpleDateFormat( "yyyyMMdd.HHmmss" );
@@ -105,8 +105,8 @@ public class DaysOldRepositoryPurge
break;
}
- ArtifactReference newArtifactReference =
- repository.toArtifactReference( artifactFile.getAbsolutePath() );
+ ArtifactReference newArtifactReference = repository.toArtifactReference(
+ artifactFile.getAbsolutePath() );
newArtifactReference.setVersion( version );
File newArtifactFile = repository.toFile( newArtifactReference );
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java?rev=1053542&r1=1053541&r2=1053542&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumer.java Wed Dec 29 06:14:04 2010
@@ -19,6 +19,8 @@ package org.apache.maven.archiva.consume
* under the License.
*/
+import org.apache.archiva.metadata.repository.RepositorySession;
+import org.apache.archiva.metadata.repository.RepositorySessionFactory;
import org.apache.archiva.repository.events.RepositoryListener;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.ConfigurationNames;
@@ -46,11 +48,9 @@ import java.util.List;
* Consumer for removing old snapshots in the repository based on the criteria
* specified by the user.
*
- *
- * @plexus.component
- * role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer"
- * role-hint="repository-purge"
- * instantiation-strategy="per-lookup"
+ * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer"
+ * role-hint="repository-purge"
+ * instantiation-strategy="per-lookup"
*/
public class RepositoryPurgeConsumer
extends AbstractMonitoredConsumer
@@ -94,9 +94,20 @@ public class RepositoryPurgeConsumer
private boolean deleteReleasedSnapshots;
- /** @plexus.requirement role="org.apache.archiva.repository.events.RepositoryListener" */
+ /**
+ * @plexus.requirement role="org.apache.archiva.repository.events.RepositoryListener"
+ */
private List<RepositoryListener> listeners = Collections.emptyList();
-
+
+ /**
+ * TODO: this could be multiple implementations and needs to be configured.
+ *
+ * @plexus.requirement
+ */
+ private RepositorySessionFactory repositorySessionFactory;
+
+ private RepositorySession repositorySession;
+
public String getId()
{
return this.id;
@@ -125,27 +136,10 @@ public class RepositoryPurgeConsumer
public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered )
throws ConsumerException
{
+ ManagedRepositoryContent repositoryContent;
try
{
- ManagedRepositoryContent repositoryContent = repositoryFactory.getManagedRepositoryContent( repository
- .getId() );
-
- if ( repository.getDaysOlder() != 0 )
- {
- repoPurge = new DaysOldRepositoryPurge( repositoryContent, repository.getDaysOlder(),
- repository.getRetentionCount(), listeners );
- }
- else
- {
- repoPurge = new RetentionCountRepositoryPurge( repositoryContent, repository.getRetentionCount(),
- listeners );
- }
-
- cleanUp =
- new CleanupReleasedSnapshotsRepositoryPurge( repositoryContent, metadataTools, configuration,
- repositoryFactory, listeners );
-
- deleteReleasedSnapshots = repository.isDeleteReleasedSnapshots();
+ repositoryContent = repositoryFactory.getManagedRepositoryContent( repository.getId() );
}
catch ( RepositoryNotFoundException e )
{
@@ -155,6 +149,24 @@ public class RepositoryPurgeConsumer
{
throw new ConsumerException( "Can't run repository purge: " + e.getMessage(), e );
}
+
+ repositorySession = repositorySessionFactory.createSession();
+
+ if ( repository.getDaysOlder() != 0 )
+ {
+ repoPurge = new DaysOldRepositoryPurge( repositoryContent, repository.getDaysOlder(),
+ repository.getRetentionCount(), repositorySession, listeners );
+ }
+ else
+ {
+ repoPurge = new RetentionCountRepositoryPurge( repositoryContent, repository.getRetentionCount(),
+ repositorySession, listeners );
+ }
+
+ cleanUp = new CleanupReleasedSnapshotsRepositoryPurge( repositoryContent, metadataTools, configuration,
+ repositoryFactory, repositorySession, listeners );
+
+ deleteReleasedSnapshots = repository.isDeleteReleasedSnapshots();
}
public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered, boolean executeOnEntireRepo )
@@ -189,7 +201,7 @@ public class RepositoryPurgeConsumer
public void completeScan()
{
- /* do nothing */
+ repositorySession.close();
}
public void completeScan( boolean executeOnEntireRepo )
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java?rev=1053542&r1=1053541&r2=1053542&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurge.java Wed Dec 29 06:14:04 2010
@@ -19,6 +19,7 @@ package org.apache.maven.archiva.consume
* under the License.
*/
+import org.apache.archiva.metadata.repository.RepositorySession;
import org.apache.archiva.repository.events.RepositoryListener;
import org.apache.maven.archiva.common.utils.VersionComparator;
import org.apache.maven.archiva.common.utils.VersionUtil;
@@ -36,17 +37,16 @@ import java.util.Set;
/**
* Purge the repository by retention count. Retain only the specified number of snapshots.
- *
*/
public class RetentionCountRepositoryPurge
extends AbstractRepositoryPurge
{
private int retentionCount;
- public RetentionCountRepositoryPurge( ManagedRepositoryContent repository,
- int retentionCount, List<RepositoryListener> listeners )
+ public RetentionCountRepositoryPurge( ManagedRepositoryContent repository, int retentionCount,
+ RepositorySession repositorySession, List<RepositoryListener> listeners )
{
- super( repository, listeners );
+ super( repository, repositorySession, listeners );
this.retentionCount = retentionCount;
}
@@ -61,7 +61,7 @@ public class RetentionCountRepositoryPur
{
return;
}
-
+
ArtifactReference artifact = repository.toArtifactReference( path );
if ( VersionUtil.isSnapshot( artifact.getVersion() ) )
@@ -114,7 +114,7 @@ public class RetentionCountRepositoryPur
artifact.setVersion( version );
artifact.setClassifier( reference.getClassifier() );
artifact.setType( reference.getType() );
-
+
try
{
Set<ArtifactReference> related = repository.getRelatedArtifacts( artifact );
Added: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/metadata/repository/TestRepositorySessionFactory.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/metadata/repository/TestRepositorySessionFactory.java?rev=1053542&view=auto
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/metadata/repository/TestRepositorySessionFactory.java (added)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/archiva/metadata/repository/TestRepositorySessionFactory.java Wed Dec 29 06:14:04 2010
@@ -0,0 +1,43 @@
+package org.apache.archiva.metadata.repository;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+public class TestRepositorySessionFactory
+ implements RepositorySessionFactory
+{
+ private MetadataRepository repository;
+
+ private MetadataResolver resolver;
+
+ public RepositorySession createSession()
+ {
+ return new RepositorySession( repository, resolver );
+ }
+
+ public void setRepository( MetadataRepository repository )
+ {
+ this.repository = repository;
+ }
+
+ public void setResolver( MetadataResolver resolver )
+ {
+ this.resolver = resolver;
+ }
+}
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java?rev=1053542&r1=1053541&r2=1053542&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurgeTest.java Wed Dec 29 06:14:04 2010
@@ -19,10 +19,11 @@ package org.apache.maven.archiva.consume
* under the License.
*/
+import org.apache.archiva.metadata.repository.MetadataRepository;
+import org.apache.archiva.metadata.repository.RepositorySession;
import org.apache.archiva.repository.events.RepositoryListener;
import org.apache.commons.io.FileUtils;
import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
-import org.apache.maven.archiva.model.ArchivaArtifact;
import org.apache.maven.archiva.repository.ManagedRepositoryContent;
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
import org.easymock.MockControl;
@@ -30,6 +31,9 @@ import org.easymock.MockControl;
import java.io.File;
import java.io.IOException;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
/**
*/
public abstract class AbstractRepositoryPurgeTest
@@ -43,15 +47,20 @@ public abstract class AbstractRepository
public static final int TEST_DAYS_OLDER = 30;
- public static final String PATH_TO_BY_DAYS_OLD_ARTIFACT = "org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar";
+ public static final String PATH_TO_BY_DAYS_OLD_ARTIFACT =
+ "org/apache/maven/plugins/maven-install-plugin/2.2-SNAPSHOT/maven-install-plugin-2.2-20061118.060401-2.jar";
- public static final String PATH_TO_BY_DAYS_OLD_METADATA_DRIVEN_ARTIFACT = "org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.jar";
+ public static final String PATH_TO_BY_DAYS_OLD_METADATA_DRIVEN_ARTIFACT =
+ "org/codehaus/plexus/plexus-utils/1.4.3-SNAPSHOT/plexus-utils-1.4.3-20070113.163208-4.jar";
- public static final String PATH_TO_BY_RETENTION_COUNT_ARTIFACT = "org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar";
+ public static final String PATH_TO_BY_RETENTION_COUNT_ARTIFACT =
+ "org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT/jruby-rake-plugin-1.0RC1-20070504.153317-1.jar";
- public static final String PATH_TO_BY_RETENTION_COUNT_POM = "org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom";
+ public static final String PATH_TO_BY_RETENTION_COUNT_POM =
+ "org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT/castor-anttasks-1.1.2-20070506.163513-2.pom";
- public static final String PATH_TO_TEST_ORDER_OF_DELETION = "org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar";
+ public static final String PATH_TO_TEST_ORDER_OF_DELETION =
+ "org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT/maven-assembly-plugin-1.1.2-20070615.105019-3.jar";
protected static final String RELEASES_TEST_REPO_ID = "releases-test-repo-one";
@@ -67,17 +76,25 @@ public abstract class AbstractRepository
protected RepositoryListener listener;
+ protected RepositorySession repositorySession;
+
+ protected MetadataRepository metadataRepository;
+
@Override
protected void setUp()
throws Exception
{
super.setUp();
-
+
listenerControl = MockControl.createControl( RepositoryListener.class );
listener = (RepositoryListener) listenerControl.getMock();
+
+ repositorySession = mock( RepositorySession.class );
+ metadataRepository = mock( MetadataRepository.class );
+ when( repositorySession.getRepository() ).thenReturn( metadataRepository );
}
-
+
@Override
protected void tearDown()
throws Exception
@@ -98,7 +115,7 @@ public abstract class AbstractRepository
config.setSnapshots( true );
config.setDeleteReleasedSnapshots( true );
config.setRetentionCount( TEST_RETENTION_COUNT );
-
+
return config;
}
@@ -107,7 +124,7 @@ public abstract class AbstractRepository
{
if ( repo == null )
{
- repo = (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class, "default" );
+ repo = (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class, "default" );
repo.setRepository( getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ) );
}
@@ -123,7 +140,7 @@ public abstract class AbstractRepository
{
assertTrue( "File should exist: " + path, new File( path ).exists() );
}
-
+
protected File getTestRepoRoot()
{
return getTestFile( "target/test-" + getName() + "/" + TEST_REPO_ID );
@@ -135,16 +152,11 @@ public abstract class AbstractRepository
File testDir = getTestRepoRoot();
FileUtils.deleteDirectory( testDir );
FileUtils.copyDirectory( getTestFile( "target/test-classes/" + TEST_REPO_ID ), testDir );
-
+
File releasesTestDir = getTestFile( "target/test-" + getName() + "/" + RELEASES_TEST_REPO_ID );
FileUtils.deleteDirectory( releasesTestDir );
FileUtils.copyDirectory( getTestFile( "target/test-classes/" + RELEASES_TEST_REPO_ID ), releasesTestDir );
-
- return testDir.getAbsolutePath();
- }
- protected ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String type )
- {
- return new ArchivaArtifact( groupId, artifactId, version, null, type, TEST_REPO_ID );
+ return testDir.getAbsolutePath();
}
}
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java?rev=1053542&r1=1053541&r2=1053542&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java Wed Dec 29 06:14:04 2010
@@ -30,6 +30,7 @@ import org.easymock.MockControl;
import java.io.File;
import java.util.Collections;
+import java.util.List;
/**
@@ -43,29 +44,32 @@ public class CleanupReleasedSnapshotsRep
public static final String PATH_TO_RELEASED_SNAPSHOT_IN_DIFF_REPO =
"org/apache/archiva/released-artifact-in-diff-repo/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar";
-
- public static final String PATH_TO_HIGHER_SNAPSHOT_EXISTS_IN_SAME_REPO = "org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar";
- public static final String PATH_TO_RELEASED_SNAPSHOT_IN_SAME_REPO = "org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar";
-
+ public static final String PATH_TO_HIGHER_SNAPSHOT_EXISTS_IN_SAME_REPO =
+ "org/apache/maven/plugins/maven-source-plugin/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar";
+
+ public static final String PATH_TO_RELEASED_SNAPSHOT_IN_SAME_REPO =
+ "org/apache/maven/plugins/maven-plugin-plugin/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar";
+
@Override
protected void setUp()
throws Exception
{
super.setUp();
-
+
MetadataTools metadataTools = (MetadataTools) lookup( MetadataTools.class );
- RepositoryContentFactory factory = (RepositoryContentFactory) lookup( RepositoryContentFactory.class, "cleanup-released-snapshots");
-
- archivaConfiguration =
- (ArchivaConfiguration) lookup( ArchivaConfiguration.class, "cleanup-released-snapshots" );
+ RepositoryContentFactory factory = (RepositoryContentFactory) lookup( RepositoryContentFactory.class,
+ "cleanup-released-snapshots" );
+
+ archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.class,
+ "cleanup-released-snapshots" );
listenerControl = MockControl.createControl( RepositoryListener.class );
-
+
listener = (RepositoryListener) listenerControl.getMock();
- repoPurge =
- new CleanupReleasedSnapshotsRepositoryPurge( getRepository(), metadataTools, archivaConfiguration, factory,
- Collections.singletonList( listener ) );
+ List<RepositoryListener> listeners = Collections.singletonList( listener );
+ repoPurge = new CleanupReleasedSnapshotsRepositoryPurge( getRepository(), metadataTools, archivaConfiguration,
+ factory, repositorySession, listeners );
}
public void testReleasedSnapshotsExistsInSameRepo()
@@ -74,20 +78,20 @@ public class CleanupReleasedSnapshotsRep
Configuration config = archivaConfiguration.getConfiguration();
config.removeManagedRepository( config.findManagedRepositoryById( TEST_REPO_ID ) );
config.addManagedRepository( getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ) );
-
- String repoRoot = prepareTestRepos();
+
+ String repoRoot = prepareTestRepos();
// test listeners for the correct artifacts
- listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-plugin-plugin",
- "2.3-SNAPSHOT", "maven-plugin-plugin-2.3-SNAPSHOT.jar" );
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.apache.maven.plugins",
+ "maven-plugin-plugin", "2.3-SNAPSHOT", "maven-plugin-plugin-2.3-SNAPSHOT.jar" );
listenerControl.replay();
-
+
repoPurge.process( PATH_TO_RELEASED_SNAPSHOT_IN_SAME_REPO );
-
+
listenerControl.verify();
String projectRoot = repoRoot + "/org/apache/maven/plugins/maven-plugin-plugin";
-
+
// check if the snapshot was removed
assertDeleted( projectRoot + "/2.3-SNAPSHOT" );
assertDeleted( projectRoot + "/2.3-SNAPSHOT/maven-plugin-plugin-2.3-SNAPSHOT.jar" );
@@ -111,19 +115,19 @@ public class CleanupReleasedSnapshotsRep
// check if metadata file was updated
File artifactMetadataFile = new File( projectRoot + "/maven-metadata.xml" );
-
+
String metadataXml = FileUtils.readFileToString( artifactMetadataFile, null );
-
- String expectedVersions = "<expected><versions><version>2.2</version>" +
- "<version>2.3</version></versions></expected>";
-
+
+ String expectedVersions =
+ "<expected><versions><version>2.2</version>" + "<version>2.3</version></versions></expected>";
+
XMLAssert.assertXpathEvaluatesTo( "2.3", "//metadata/versioning/release", metadataXml );
XMLAssert.assertXpathEvaluatesTo( "2.3", "//metadata/versioning/latest", metadataXml );
XMLAssert.assertXpathsEqual( "//expected/versions/version", expectedVersions,
"//metadata/versioning/versions/version", metadataXml );
XMLAssert.assertXpathEvaluatesTo( "20070315032817", "//metadata/versioning/lastUpdated", metadataXml );
}
-
+
public void testNonArtifactFile()
throws Exception
{
@@ -149,25 +153,26 @@ public class CleanupReleasedSnapshotsRep
public void testReleasedSnapshotsExistsInDifferentRepo()
throws Exception
- {
+ {
Configuration config = archivaConfiguration.getConfiguration();
config.removeManagedRepository( config.findManagedRepositoryById( TEST_REPO_ID ) );
config.addManagedRepository( getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ) );
config.addManagedRepository( getRepoConfiguration( RELEASES_TEST_REPO_ID, RELEASES_TEST_REPO_NAME ) );
-
- String repoRoot = prepareTestRepos();
+
+ String repoRoot = prepareTestRepos();
// test listeners for the correct artifacts
- listener.deleteArtifact( getRepository().getId(), "org.apache.archiva", "released-artifact-in-diff-repo",
- "1.0-SNAPSHOT", "released-artifact-in-diff-repo-1.0-SNAPSHOT.jar" );
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.apache.archiva",
+ "released-artifact-in-diff-repo", "1.0-SNAPSHOT",
+ "released-artifact-in-diff-repo-1.0-SNAPSHOT.jar" );
listenerControl.replay();
-
+
repoPurge.process( PATH_TO_RELEASED_SNAPSHOT_IN_DIFF_REPO );
listenerControl.verify();
-
+
String projectRoot = repoRoot + "/org/apache/archiva/released-artifact-in-diff-repo";
-
+
// check if the snapshot was removed
assertDeleted( projectRoot + "/1.0-SNAPSHOT" );
assertDeleted( projectRoot + "/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.jar" );
@@ -177,38 +182,38 @@ public class CleanupReleasedSnapshotsRep
assertDeleted( projectRoot + "/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.pom.md5" );
assertDeleted( projectRoot + "/1.0-SNAPSHOT/released-artifact-in-diff-repo-1.0-SNAPSHOT.pom.sha1" );
- String releasesProjectRoot =
- getTestFile( "target/test-" + getName() + "/releases-test-repo-one" ).getAbsolutePath() +
- "/org/apache/archiva/released-artifact-in-diff-repo";
-
+ String releasesProjectRoot = getTestFile(
+ "target/test-" + getName() + "/releases-test-repo-one" ).getAbsolutePath() +
+ "/org/apache/archiva/released-artifact-in-diff-repo";
+
// check if the released version was not removed
- assertExists( releasesProjectRoot + "/1.0" );
+ assertExists( releasesProjectRoot + "/1.0" );
assertExists( releasesProjectRoot + "/1.0/released-artifact-in-diff-repo-1.0.jar" );
assertExists( releasesProjectRoot + "/1.0/released-artifact-in-diff-repo-1.0.jar.md5" );
assertExists( releasesProjectRoot + "/1.0/released-artifact-in-diff-repo-1.0.jar.sha1" );
assertExists( releasesProjectRoot + "/1.0/released-artifact-in-diff-repo-1.0.pom" );
assertExists( releasesProjectRoot + "/1.0/released-artifact-in-diff-repo-1.0.pom.md5" );
- assertExists( releasesProjectRoot + "/1.0/released-artifact-in-diff-repo-1.0.pom.sha1" );
+ assertExists( releasesProjectRoot + "/1.0/released-artifact-in-diff-repo-1.0.pom.sha1" );
}
public void testHigherSnapshotExistsInSameRepo()
throws Exception
- {
+ {
Configuration config = archivaConfiguration.getConfiguration();
config.removeManagedRepository( config.findManagedRepositoryById( TEST_REPO_ID ) );
config.addManagedRepository( getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ) );
-
+
String repoRoot = prepareTestRepos();
// test listeners for the correct artifacts - no deletions
listenerControl.replay();
-
+
repoPurge.process( CleanupReleasedSnapshotsRepositoryPurgeTest.PATH_TO_HIGHER_SNAPSHOT_EXISTS_IN_SAME_REPO );
listenerControl.verify();
-
+
String projectRoot = repoRoot + "/org/apache/maven/plugins/maven-source-plugin";
-
+
// check if the snapshot was not removed
assertExists( projectRoot + "/2.0.3-SNAPSHOT" );
assertExists( projectRoot + "/2.0.3-SNAPSHOT/maven-source-plugin-2.0.3-SNAPSHOT.jar" );
@@ -231,10 +236,10 @@ public class CleanupReleasedSnapshotsRep
File artifactMetadataFile = new File( projectRoot + "/maven-metadata.xml" );
String metadataXml = FileUtils.readFileToString( artifactMetadataFile, null );
-
+
String expectedVersions = "<expected><versions><version>2.0.3-SNAPSHOT</version>" +
- "<version>2.0.4-SNAPSHOT</version></versions></expected>";
-
+ "<version>2.0.4-SNAPSHOT</version></versions></expected>";
+
XMLAssert.assertXpathEvaluatesTo( "2.0.4-SNAPSHOT", "//metadata/versioning/latest", metadataXml );
XMLAssert.assertXpathsEqual( "//expected/versions/version", expectedVersions,
"//metadata/versioning/versions/version", metadataXml );
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java?rev=1053542&r1=1053541&r2=1053542&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java Wed Dec 29 06:14:04 2010
@@ -19,12 +19,15 @@ package org.apache.maven.archiva.consume
* under the License.
*/
+import org.apache.archiva.repository.events.RepositoryListener;
import org.apache.commons.lang.time.DateUtils;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Collections;
+import java.util.List;
/**
*/
@@ -46,11 +49,10 @@ public class DaysOldRepositoryPurgeTest
public void testByLastModified()
throws Exception
{
- repoPurge =
- new DaysOldRepositoryPurge( getRepository(),
- getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ).getDaysOlder(),
- getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ).getRetentionCount(),
- Collections.singletonList( listener ) );
+ ManagedRepositoryConfiguration repoConfiguration = getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME );
+ repoPurge = new DaysOldRepositoryPurge( getRepository(), repoConfiguration.getDaysOlder(),
+ repoConfiguration.getRetentionCount(), repositorySession,
+ Collections.singletonList( listener ) );
String repoRoot = prepareTestRepos();
@@ -59,14 +61,16 @@ public class DaysOldRepositoryPurgeTest
setLastModified( projectRoot + "/2.2-SNAPSHOT/", OLD_TIMESTAMP );
// test listeners for the correct artifacts
- listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-install-plugin",
- "2.2-SNAPSHOT", "maven-install-plugin-2.2-SNAPSHOT.jar" );
- listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-install-plugin",
- "2.2-SNAPSHOT", "maven-install-plugin-2.2-SNAPSHOT.pom" );
- listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-install-plugin",
- "2.2-20061118.060401-2", "maven-install-plugin-2.2-20061118.060401-2.jar" );
- listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-install-plugin",
- "2.2-20061118.060401-2", "maven-install-plugin-2.2-20061118.060401-2.pom" );
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.apache.maven.plugins",
+ "maven-install-plugin", "2.2-SNAPSHOT", "maven-install-plugin-2.2-SNAPSHOT.jar" );
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.apache.maven.plugins",
+ "maven-install-plugin", "2.2-SNAPSHOT", "maven-install-plugin-2.2-SNAPSHOT.pom" );
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.apache.maven.plugins",
+ "maven-install-plugin", "2.2-20061118.060401-2",
+ "maven-install-plugin-2.2-20061118.060401-2.jar" );
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.apache.maven.plugins",
+ "maven-install-plugin", "2.2-20061118.060401-2",
+ "maven-install-plugin-2.2-20061118.060401-2.pom" );
listenerControl.replay();
repoPurge.process( PATH_TO_BY_DAYS_OLD_ARTIFACT );
@@ -106,10 +110,10 @@ public class DaysOldRepositoryPurgeTest
public void testOrderOfDeletion()
throws Exception
{
- repoPurge =
- new DaysOldRepositoryPurge( getRepository(), getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ).getDaysOlder(),
- getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ).getRetentionCount(),
- Collections.singletonList( listener ) );
+ ManagedRepositoryConfiguration repoConfiguration = getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME );
+ List<RepositoryListener> listeners = Collections.singletonList( listener );
+ repoPurge = new DaysOldRepositoryPurge( getRepository(), repoConfiguration.getDaysOlder(),
+ repoConfiguration.getRetentionCount(), repositorySession, listeners );
String repoRoot = prepareTestRepos();
@@ -118,10 +122,12 @@ public class DaysOldRepositoryPurgeTest
setLastModified( projectRoot + "/1.1.2-SNAPSHOT/", OLD_TIMESTAMP );
// test listeners for the correct artifacts
- listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-assembly-plugin",
- "1.1.2-20070427.065136-1", "maven-assembly-plugin-1.1.2-20070427.065136-1.jar" );
- listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-assembly-plugin",
- "1.1.2-20070427.065136-1", "maven-assembly-plugin-1.1.2-20070427.065136-1.pom" );
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.apache.maven.plugins",
+ "maven-assembly-plugin", "1.1.2-20070427.065136-1",
+ "maven-assembly-plugin-1.1.2-20070427.065136-1.jar" );
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.apache.maven.plugins",
+ "maven-assembly-plugin", "1.1.2-20070427.065136-1",
+ "maven-assembly-plugin-1.1.2-20070427.065136-1.pom" );
listenerControl.replay();
repoPurge.process( PATH_TO_TEST_ORDER_OF_DELETION );
@@ -154,11 +160,10 @@ public class DaysOldRepositoryPurgeTest
public void testMetadataDrivenSnapshots()
throws Exception
{
- repoPurge =
- new DaysOldRepositoryPurge( getRepository(),
- getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ).getDaysOlder(),
- getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ).getRetentionCount(),
- Collections.singletonList( listener ) );
+ ManagedRepositoryConfiguration repoConfiguration = getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME );
+ List<RepositoryListener> listeners = Collections.singletonList( listener );
+ repoPurge = new DaysOldRepositoryPurge( getRepository(), repoConfiguration.getDaysOlder(),
+ repoConfiguration.getRetentionCount(), repositorySession, listeners );
String repoRoot = prepareTestRepos();
@@ -185,9 +190,9 @@ public class DaysOldRepositoryPurgeTest
}
// test listeners for the correct artifacts
- listener.deleteArtifact( getRepository().getId(), "org.codehaus.plexus", "plexus-utils",
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.codehaus.plexus", "plexus-utils",
"1.4.3-20070113.163208-4", "plexus-utils-1.4.3-20070113.163208-4.jar" );
- listener.deleteArtifact( getRepository().getId(), "org.codehaus.plexus", "plexus-utils",
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.codehaus.plexus", "plexus-utils",
"1.4.3-20070113.163208-4", "plexus-utils-1.4.3-20070113.163208-4.pom" );
listenerControl.replay();
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java?rev=1053542&r1=1053541&r2=1053542&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.java Wed Dec 29 06:14:04 2010
@@ -19,6 +19,8 @@ package org.apache.maven.archiva.consume
* under the License.
*/
+import org.apache.archiva.metadata.repository.RepositorySessionFactory;
+import org.apache.archiva.metadata.repository.TestRepositorySessionFactory;
import org.apache.commons.io.FileUtils;
import org.apache.maven.archiva.common.utils.BaseFile;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
@@ -62,13 +64,12 @@ public class RepositoryPurgeConsumerTest
FileTypes fileTypes = (FileTypes) lookup( FileTypes.class );
fileTypes.afterConfigurationChange( null, "repositoryScanning.fileTypes", null );
- KnownRepositoryContentConsumer repoPurgeConsumer =
- (KnownRepositoryContentConsumer) lookup( KnownRepositoryContentConsumer.class, "repository-purge" );
+ KnownRepositoryContentConsumer repoPurgeConsumer = (KnownRepositoryContentConsumer) lookup(
+ KnownRepositoryContentConsumer.class, "repository-purge" );
File repoLocation = getTestFile( "target/test-" + getName() + "/test-repo" );
- File localFile =
- new File( repoLocation, path );
+ File localFile = new File( repoLocation, path );
ConsumerWantsFilePredicate predicate = new ConsumerWantsFilePredicate();
BaseFile baseFile = new BaseFile( repoLocation, localFile );
@@ -83,16 +84,15 @@ public class RepositoryPurgeConsumerTest
File[] contents = dir.listFiles();
for ( int i = 0; i < contents.length; i++ )
{
- contents[i].setLastModified( 1179382029 );
+ contents[i].setLastModified( 1179382029 );
}
}
public void testConsumerByRetentionCount()
throws Exception
{
- KnownRepositoryContentConsumer repoPurgeConsumer =
- (KnownRepositoryContentConsumer) lookup( KnownRepositoryContentConsumer.class,
- "repo-purge-consumer-by-retention-count" );
+ KnownRepositoryContentConsumer repoPurgeConsumer = (KnownRepositoryContentConsumer) lookup(
+ KnownRepositoryContentConsumer.class, "repo-purge-consumer-by-retention-count" );
ManagedRepositoryConfiguration repoConfiguration = getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME );
repoConfiguration.setDaysOlder( 0 ); // force days older off to allow retention count purge to execute.
@@ -141,8 +141,8 @@ public class RepositoryPurgeConsumerTest
private void addRepoToConfiguration( String configHint, ManagedRepositoryConfiguration repoConfiguration )
throws Exception
{
- ArchivaConfiguration archivaConfiguration =
- (ArchivaConfiguration) lookup( ArchivaConfiguration.class, configHint );
+ ArchivaConfiguration archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.class,
+ configHint );
Configuration configuration = archivaConfiguration.getConfiguration();
configuration.removeManagedRepository( configuration.findManagedRepositoryById( repoConfiguration.getId() ) );
configuration.addManagedRepository( repoConfiguration );
@@ -151,9 +151,8 @@ public class RepositoryPurgeConsumerTest
public void testConsumerByDaysOld()
throws Exception
{
- KnownRepositoryContentConsumer repoPurgeConsumer =
- (KnownRepositoryContentConsumer) lookup( KnownRepositoryContentConsumer.class,
- "repo-purge-consumer-by-days-old" );
+ KnownRepositoryContentConsumer repoPurgeConsumer = (KnownRepositoryContentConsumer) lookup(
+ KnownRepositoryContentConsumer.class, "repo-purge-consumer-by-days-old" );
ManagedRepositoryConfiguration repoConfiguration = getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME );
repoConfiguration.setDaysOlder( TEST_DAYS_OLDER );
@@ -182,7 +181,7 @@ public class RepositoryPurgeConsumerTest
assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom" );
assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.md5" );
assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070513.034619-5.pom.sha1" );
-
+
assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070510.010101-4.jar" );
assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070510.010101-4.jar.md5" );
assertExists( projectRoot + "/2.2-SNAPSHOT/maven-install-plugin-2.2-20070510.010101-4.jar.sha1" );
@@ -206,9 +205,8 @@ public class RepositoryPurgeConsumerTest
public void testReleasedSnapshotsWereNotCleaned()
throws Exception
{
- KnownRepositoryContentConsumer repoPurgeConsumer =
- (KnownRepositoryContentConsumer) lookup( KnownRepositoryContentConsumer.class,
- "repo-purge-consumer-by-retention-count" );
+ KnownRepositoryContentConsumer repoPurgeConsumer = (KnownRepositoryContentConsumer) lookup(
+ KnownRepositoryContentConsumer.class, "repo-purge-consumer-by-retention-count" );
ManagedRepositoryConfiguration repoConfiguration = getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME );
repoConfiguration.setDeleteReleasedSnapshots( false ); // Set to NOT delete released snapshots.
@@ -218,7 +216,8 @@ public class RepositoryPurgeConsumerTest
String repoRoot = prepareTestRepos();
- repoPurgeConsumer.processFile( CleanupReleasedSnapshotsRepositoryPurgeTest.PATH_TO_RELEASED_SNAPSHOT_IN_SAME_REPO );
+ repoPurgeConsumer.processFile(
+ CleanupReleasedSnapshotsRepositoryPurgeTest.PATH_TO_RELEASED_SNAPSHOT_IN_SAME_REPO );
// check if the snapshot wasn't removed
String projectRoot = repoRoot + "/org/apache/maven/plugins/maven-plugin-plugin";
@@ -247,9 +246,8 @@ public class RepositoryPurgeConsumerTest
public void testReleasedSnapshotsWereCleaned()
throws Exception
{
- KnownRepositoryContentConsumer repoPurgeConsumer =
- (KnownRepositoryContentConsumer) lookup( KnownRepositoryContentConsumer.class,
- "repo-purge-consumer-by-days-old" );
+ KnownRepositoryContentConsumer repoPurgeConsumer = (KnownRepositoryContentConsumer) lookup(
+ KnownRepositoryContentConsumer.class, "repo-purge-consumer-by-days-old" );
ManagedRepositoryConfiguration repoConfiguration = getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME );
repoConfiguration.setDeleteReleasedSnapshots( true );
@@ -259,7 +257,8 @@ public class RepositoryPurgeConsumerTest
String repoRoot = prepareTestRepos();
- repoPurgeConsumer.processFile( CleanupReleasedSnapshotsRepositoryPurgeTest.PATH_TO_RELEASED_SNAPSHOT_IN_SAME_REPO );
+ repoPurgeConsumer.processFile(
+ CleanupReleasedSnapshotsRepositoryPurgeTest.PATH_TO_RELEASED_SNAPSHOT_IN_SAME_REPO );
String projectRoot = repoRoot + "/org/apache/maven/plugins/maven-plugin-plugin";
@@ -285,4 +284,14 @@ public class RepositoryPurgeConsumerTest
"//metadata/versioning/versions/version", metadataXml );
XMLAssert.assertXpathEvaluatesTo( "20070315032817", "//metadata/versioning/lastUpdated", metadataXml );
}
+
+ @Override
+ protected void setUp()
+ throws Exception
+ {
+ super.setUp();
+
+ TestRepositorySessionFactory factory = (TestRepositorySessionFactory) lookup( RepositorySessionFactory.class );
+ factory.setRepository( metadataRepository );
+ }
}
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java?rev=1053542&r1=1053541&r2=1053542&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java Wed Dec 29 06:14:04 2010
@@ -1,7 +1,5 @@
package org.apache.maven.archiva.consumers.core.repository;
-import java.util.Collections;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -11,7 +9,7 @@ import java.util.Collections;
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
@@ -21,24 +19,27 @@ import java.util.Collections;
* under the License.
*/
+import org.apache.archiva.repository.events.RepositoryListener;
+import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
+
+import java.util.Collections;
+import java.util.List;
+
/**
* Test RetentionsCountRepositoryPurgeTest
- *
*/
public class RetentionCountRepositoryPurgeTest
extends AbstractRepositoryPurgeTest
{
-
protected void setUp()
throws Exception
{
super.setUp();
- repoPurge =
- new RetentionCountRepositoryPurge(
- getRepository(),
- getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME ).getRetentionCount(),
- Collections.singletonList( listener ) );
+ ManagedRepositoryConfiguration repoConfiguration = getRepoConfiguration( TEST_REPO_ID, TEST_REPO_NAME );
+ List<RepositoryListener> listeners = Collections.singletonList( listener );
+ repoPurge = new RetentionCountRepositoryPurge( getRepository(), repoConfiguration.getRetentionCount(),
+ repositorySession, listeners );
}
/**
@@ -50,18 +51,18 @@ public class RetentionCountRepositoryPur
String repoRoot = prepareTestRepos();
// test listeners for the correct artifacts
- listener.deleteArtifact( getRepository().getId(), "org.jruby.plugins", "jruby-rake-plugin",
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.jruby.plugins", "jruby-rake-plugin",
"1.0RC1-20070504.153317-1", "jruby-rake-plugin-1.0RC1-20070504.153317-1.jar" );
- listener.deleteArtifact( getRepository().getId(), "org.jruby.plugins", "jruby-rake-plugin",
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.jruby.plugins", "jruby-rake-plugin",
"1.0RC1-20070504.153317-1", "jruby-rake-plugin-1.0RC1-20070504.153317-1.pom" );
- listener.deleteArtifact( getRepository().getId(), "org.jruby.plugins", "jruby-rake-plugin",
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.jruby.plugins", "jruby-rake-plugin",
"1.0RC1-20070504.160758-2", "jruby-rake-plugin-1.0RC1-20070504.160758-2.jar" );
- listener.deleteArtifact( getRepository().getId(), "org.jruby.plugins", "jruby-rake-plugin",
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.jruby.plugins", "jruby-rake-plugin",
"1.0RC1-20070504.160758-2", "jruby-rake-plugin-1.0RC1-20070504.160758-2.pom" );
listenerControl.replay();
-
+
repoPurge.process( PATH_TO_BY_RETENTION_COUNT_ARTIFACT );
-
+
listenerControl.verify();
String versionRoot = repoRoot + "/org/jruby/plugins/jruby-rake-plugin/1.0RC1-SNAPSHOT";
@@ -106,18 +107,18 @@ public class RetentionCountRepositoryPur
String repoRoot = prepareTestRepos();
// test listeners for the correct artifacts
- listener.deleteArtifact( getRepository().getId(), "org.codehaus.castor", "castor-anttasks",
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.codehaus.castor", "castor-anttasks",
"1.1.2-20070427.065136-1", "castor-anttasks-1.1.2-20070427.065136-1.jar" );
- listener.deleteArtifact( getRepository().getId(), "org.codehaus.castor", "castor-anttasks",
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.codehaus.castor", "castor-anttasks",
"1.1.2-20070427.065136-1", "castor-anttasks-1.1.2-20070427.065136-1.pom" );
listenerControl.replay();
-
+
repoPurge.process( PATH_TO_BY_RETENTION_COUNT_POM );
-
+
listenerControl.verify();
String versionRoot = repoRoot + "/org/codehaus/castor/castor-anttasks/1.1.2-SNAPSHOT";
-
+
// assert if removed from repo
assertDeleted( versionRoot + "/castor-anttasks-1.1.2-20070427.065136-1.jar" );
assertDeleted( versionRoot + "/castor-anttasks-1.1.2-20070427.065136-1.jar.md5" );
@@ -154,19 +155,20 @@ public class RetentionCountRepositoryPur
String repoRoot = prepareTestRepos();
// test listeners for the correct artifacts
- listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-assembly-plugin",
- "1.1.2-20070427.065136-1", "maven-assembly-plugin-1.1.2-20070427.065136-1.jar" );
- listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-assembly-plugin",
- "1.1.2-20070427.065136-1", "maven-assembly-plugin-1.1.2-20070427.065136-1.pom" );
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.apache.maven.plugins",
+ "maven-assembly-plugin", "1.1.2-20070427.065136-1",
+ "maven-assembly-plugin-1.1.2-20070427.065136-1.jar" );
+ listener.deleteArtifact( metadataRepository, getRepository().getId(), "org.apache.maven.plugins",
+ "maven-assembly-plugin", "1.1.2-20070427.065136-1",
+ "maven-assembly-plugin-1.1.2-20070427.065136-1.pom" );
listenerControl.replay();
-
+
repoPurge.process( PATH_TO_TEST_ORDER_OF_DELETION );
listenerControl.verify();
- String versionRoot = repoRoot +
- "/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT";
-
+ String versionRoot = repoRoot + "/org/apache/maven/plugins/maven-assembly-plugin/1.1.2-SNAPSHOT";
+
assertDeleted( versionRoot + "/maven-assembly-plugin-1.1.2-20070427.065136-1.jar" );
assertDeleted( versionRoot + "/maven-assembly-plugin-1.1.2-20070427.065136-1.jar.sha1" );
assertDeleted( versionRoot + "/maven-assembly-plugin-1.1.2-20070427.065136-1.jar.md5" );
Modified: archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.xml
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.xml?rev=1053542&r1=1053541&r2=1053542&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.xml (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/RepositoryPurgeConsumerTest.xml Wed Dec 29 06:14:04 2010
@@ -42,6 +42,9 @@
<role>org.apache.maven.archiva.configuration.FileTypes</role>
<role-hint>retention-count</role-hint>
</requirement>
+ <requirement>
+ <role>org.apache.archiva.metadata.repository.RepositorySessionFactory</role>
+ </requirement>
</requirements>
<configuration>
<id>repository-purge</id>
@@ -125,6 +128,9 @@
<role>org.apache.maven.archiva.configuration.FileTypes</role>
<role-hint>days-old</role-hint>
</requirement>
+ <requirement>
+ <role>org.apache.archiva.metadata.repository.RepositorySessionFactory</role>
+ </requirement>
</requirements>
<configuration>
<id>repository-purge</id>
@@ -185,5 +191,9 @@
</requirement>
</requirements>
</component>
+ <component>
+ <role>org.apache.archiva.metadata.repository.RepositorySessionFactory</role>
+ <implementation>org.apache.archiva.metadata.repository.TestRepositorySessionFactory</implementation>
+ </component>
</components>
</component-set>
Modified: archiva/trunk/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/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java?rev=1053542&r1=1053541&r2=1053542&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java (original)
+++ archiva/trunk/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java Wed Dec 29 06:14:04 2010
@@ -24,8 +24,11 @@ import org.apache.archiva.metadata.model
import org.apache.archiva.metadata.model.ProjectVersionMetadata;
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.metadata.repository.RepositorySessionFactory;
import org.apache.archiva.metadata.repository.storage.RepositoryStorage;
+import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataInvalidException;
+import org.apache.archiva.metadata.repository.storage.RepositoryStorageMetadataNotFoundException;
import org.apache.maven.archiva.common.utils.VersionUtil;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.ConfigurationNames;
@@ -81,9 +84,11 @@ public class ArchivaMetadataCreationCons
private List<String> includes = new ArrayList<String>();
/**
+ * FIXME: can be of other types
+ *
* @plexus.requirement
*/
- private MetadataRepository metadataRepository;
+ private RepositorySessionFactory repositorySessionFactory;
/**
* FIXME: this needs to be configurable based on storage type - and could also be instantiated per repo. Change to a
@@ -149,31 +154,35 @@ public class ArchivaMetadataCreationCons
project.setId( artifact.getProject() );
String projectVersion = VersionUtil.getBaseVersion( artifact.getVersion() );
- // FIXME: maybe not too efficient since it may have already been read and stored for this artifact
- ProjectVersionMetadata versionMetadata = null;
+
+ RepositorySession repositorySession = repositorySessionFactory.createSession();
try
{
- versionMetadata = repositoryStorage.readProjectVersionMetadata( repoId, artifact.getNamespace(),
- artifact.getProject(), projectVersion );
- }
- catch ( MetadataResolutionException e )
- {
- log.warn( "Error occurred resolving POM for artifact: " + path + "; message: " + e.getMessage() );
- }
+ MetadataRepository metadataRepository = repositorySession.getRepository();
- boolean createVersionMetadata = false;
- if ( versionMetadata == null )
- {
- log.warn( "Missing or invalid POM for artifact: " + path + "; creating empty metadata" );
- versionMetadata = new ProjectVersionMetadata();
- versionMetadata.setId( projectVersion );
- versionMetadata.setIncomplete( true );
- createVersionMetadata = true;
- }
+ boolean createVersionMetadata = false;
+
+ // FIXME: maybe not too efficient since it may have already been read and stored for this artifact
+ ProjectVersionMetadata versionMetadata = null;
+ try
+ {
+ versionMetadata = repositoryStorage.readProjectVersionMetadata( repoId, artifact.getNamespace(),
+ artifact.getProject(), projectVersion );
+ }
+ catch ( RepositoryStorageMetadataNotFoundException e )
+ {
+ log.warn( "Missing or invalid POM for artifact: " + path + "; creating empty metadata" );
+
+ versionMetadata = new ProjectVersionMetadata();
+ versionMetadata.setId( projectVersion );
+ versionMetadata.setIncomplete( true );
+ createVersionMetadata = true;
+ }
+ catch ( RepositoryStorageMetadataInvalidException e )
+ {
+ log.warn( "Error occurred resolving POM for artifact: " + path + "; message: " + e.getMessage() );
+ }
- try
- {
- // FIXME: transaction
// read the metadata and update it if it is newer or doesn't exist
artifact.setWhenGathered( whenGathered );
metadataRepository.updateArtifact( repoId, project.getNamespace(), project.getId(), projectVersion,
@@ -184,10 +193,16 @@ public class ArchivaMetadataCreationCons
versionMetadata );
}
metadataRepository.updateProject( repoId, project );
+ repositorySession.save();
}
catch ( MetadataRepositoryException e )
{
log.warn( "Error occurred persisting metadata for artifact: " + path + "; message: " + e.getMessage(), e );
+ repositorySession.revert();
+ }
+ finally
+ {
+ repositorySession.close();
}
}