Return-Path: Delivered-To: apmail-archiva-commits-archive@www.apache.org Received: (qmail 927 invoked from network); 7 Dec 2009 23:28:26 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 7 Dec 2009 23:28:26 -0000 Received: (qmail 79479 invoked by uid 500); 7 Dec 2009 23:28:26 -0000 Delivered-To: apmail-archiva-commits-archive@archiva.apache.org Received: (qmail 79406 invoked by uid 500); 7 Dec 2009 23:28:26 -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 79397 invoked by uid 99); 7 Dec 2009 23:28:25 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 07 Dec 2009 23:28:25 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.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; Mon, 07 Dec 2009 23:28:21 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2202E23889E4; Mon, 7 Dec 2009 23:28:00 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r888185 - in /archiva/branches/MRM-1025/archiva-modules: archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/ archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ ... Date: Mon, 07 Dec 2009 23:27:59 -0000 To: commits@archiva.apache.org From: brett@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20091207232800.2202E23889E4@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: brett Date: Mon Dec 7 23:27:58 2009 New Revision: 888185 URL: http://svn.apache.org/viewvc?rev=888185&view=rev Log: [MRM-1293] adjust the EditManagedRepositoryAction to delete statistics when the repository location changes. Modified: archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java archiva/branches/MRM-1025/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/TestRepositoryStatisticsManager.java archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManager.java archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java Modified: archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java?rev=888185&r1=888184&r2=888185&view=diff ============================================================================== --- archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java (original) +++ archiva/branches/MRM-1025/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java Mon Dec 7 23:27:58 2009 @@ -118,4 +118,9 @@ { //To change body of implemented methods use File | Settings | File Templates. } + + public void removeMetadataFacets( String repositoryId, String facetId ) + { + //To change body of implemented methods use File | Settings | File Templates. + } } Modified: archiva/branches/MRM-1025/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/TestRepositoryStatisticsManager.java URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/TestRepositoryStatisticsManager.java?rev=888185&r1=888184&r2=888185&view=diff ============================================================================== --- archiva/branches/MRM-1025/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/TestRepositoryStatisticsManager.java (original) +++ archiva/branches/MRM-1025/archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/TestRepositoryStatisticsManager.java Mon Dec 7 23:27:58 2009 @@ -46,6 +46,11 @@ stats.add( repositoryStatistics ); } + public void deleteStatistics( String repositoryId ) + { + repoStats.remove( repositoryId ); + } + private List getStatsList( String repositoryId ) { List stats = repoStats.get( repositoryId ); Modified: archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java?rev=888185&r1=888184&r2=888185&view=diff ============================================================================== --- archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java (original) +++ archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java Mon Dec 7 23:27:58 2009 @@ -21,19 +21,13 @@ import java.io.File; import java.io.IOException; -import java.util.List; import com.opensymphony.xwork2.Preparable; import com.opensymphony.xwork2.Validateable; +import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager; import org.apache.commons.lang.StringUtils; import org.apache.maven.archiva.configuration.Configuration; import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.database.RepositoryContentStatisticsDAO; -import org.apache.maven.archiva.database.constraints.RepositoryContentStatisticsByRepositoryConstraint; -import org.apache.maven.archiva.model.RepositoryContentStatistics; import org.apache.maven.archiva.repository.audit.AuditEvent; import org.codehaus.plexus.redback.role.RoleManagerException; import org.codehaus.plexus.scheduler.CronExpressionValidator; @@ -58,9 +52,9 @@ private final String action = "editRepository"; /** - * @plexus.requirement role-hint="jdo" + * @plexus.requirement */ - private ArchivaDAO archivaDAO; + private RepositoryStatisticsManager repositoryStatisticsManager; public void prepare() { @@ -145,16 +139,6 @@ addActionError( "Role Manager Exception: " + e.getMessage() ); result = ERROR; } - catch ( ObjectNotFoundException e ) - { - addActionError( e.getMessage() ); - result = ERROR; - } - catch ( ArchivaDatabaseException e ) - { - addActionError( e.getMessage() ); - result = ERROR; - } return result; } @@ -171,20 +155,8 @@ } private void resetStatistics() - throws ObjectNotFoundException, ArchivaDatabaseException { - RepositoryContentStatisticsDAO repoContentStatsDao = archivaDAO.getRepositoryContentStatisticsDAO(); - - List contentStats = repoContentStatsDao.queryRepositoryContentStatistics( - new RepositoryContentStatisticsByRepositoryConstraint( repository.getId() ) ); - - if ( contentStats != null ) - { - for ( RepositoryContentStatistics stats : contentStats ) - { - repoContentStatsDao.deleteRepositoryContentStatistics( stats ); - } - } + repositoryStatisticsManager.deleteStatistics( repository.getId() ); } public String getRepoid() @@ -212,10 +184,8 @@ return action; } - // for testing - - public void setArchivaDAO( ArchivaDAO archivaDao ) + public void setRepositoryStatisticsManager( RepositoryStatisticsManager repositoryStatisticsManager ) { - this.archivaDAO = archivaDao; + this.repositoryStatisticsManager = repositoryStatisticsManager; } } Modified: archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java?rev=888185&r1=888184&r2=888185&view=diff ============================================================================== --- archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java (original) +++ archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java Mon Dec 7 23:27:58 2009 @@ -19,28 +19,22 @@ * under the License. */ +import java.io.File; +import java.io.IOException; +import java.util.Collections; + import com.opensymphony.xwork2.Action; +import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager; import org.apache.maven.archiva.configuration.ArchivaConfiguration; import org.apache.maven.archiva.configuration.Configuration; import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.RepositoryContentStatisticsDAO; -import org.apache.maven.archiva.database.constraints.RepositoryContentStatisticsByRepositoryConstraint; -import org.apache.maven.archiva.model.RepositoryContentStatistics; import org.apache.maven.archiva.security.ArchivaRoleConstants; import org.codehaus.plexus.redback.role.RoleManager; +import org.codehaus.plexus.spring.PlexusInSpringTestCase; import org.codehaus.redback.integration.interceptor.SecureActionBundle; import org.codehaus.redback.integration.interceptor.SecureActionException; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; import org.easymock.MockControl; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; - /** * EditManagedRepositoryActionTest * @@ -59,14 +53,6 @@ private ArchivaConfiguration archivaConfiguration; - private MockControl archivaDaoControl; - - private ArchivaDAO archivaDao; - - private MockControl repoContentStatsDaoControl; - - private RepositoryContentStatisticsDAO repoContentStatsDao; - private static final String REPO_ID = "repo-ident"; private File location; @@ -92,13 +78,6 @@ roleManager = (RoleManager) roleManagerControl.getMock(); action.setRoleManager( roleManager ); location = getTestFile( "target/test/location" ); - - archivaDaoControl = MockControl.createControl( ArchivaDAO.class ); - archivaDao = (ArchivaDAO) archivaDaoControl.getMock(); - action.setArchivaDAO( archivaDao ); - - repoContentStatsDaoControl = MockControl.createControl( RepositoryContentStatisticsDAO.class ); - repoContentStatsDao = (RepositoryContentStatisticsDAO) repoContentStatsDaoControl.getMock(); } public void testSecureActionBundle() @@ -204,24 +183,15 @@ archivaConfigurationControl.replay(); - archivaDaoControl.expectAndReturn( archivaDao.getRepositoryContentStatisticsDAO(), repoContentStatsDao ); - - archivaDaoControl.replay(); - - repoContentStatsDao.queryRepositoryContentStatistics( - new RepositoryContentStatisticsByRepositoryConstraint( REPO_ID ) ); - repoContentStatsDaoControl.setMatcher( MockControl.ALWAYS_MATCHER ); + MockControl repositoryStatisticsManagerControl = MockControl.createControl( RepositoryStatisticsManager.class ); + RepositoryStatisticsManager repositoryStatisticsManager = + (RepositoryStatisticsManager) repositoryStatisticsManagerControl.getMock(); + action.setRepositoryStatisticsManager( repositoryStatisticsManager ); - List repoStats = createRepositoryContentStatisticsList(); - repoContentStatsDaoControl.setReturnValue( repoStats ); + repositoryStatisticsManager.deleteStatistics( REPO_ID ); - repoContentStatsDao.deleteRepositoryContentStatistics( repoStats.get( 0 ) ); - repoContentStatsDaoControl.setVoidCallable(); - repoContentStatsDao.deleteRepositoryContentStatistics( repoStats.get( 1 ) ); - repoContentStatsDaoControl.setVoidCallable(); + repositoryStatisticsManagerControl.replay(); - repoContentStatsDaoControl.replay(); - action.setRepoid( REPO_ID ); action.prepare(); assertEquals( REPO_ID, action.getRepoid() ); @@ -236,8 +206,7 @@ roleManagerControl.verify(); archivaConfigurationControl.verify(); - archivaDaoControl.verify(); - repoContentStatsDaoControl.verify(); + repositoryStatisticsManagerControl.verify(); } private void assertRepositoryEquals( ManagedRepositoryConfiguration expectedRepository, @@ -288,30 +257,4 @@ repository.setScanned( false ); repository.setDeleteReleasedSnapshots( true ); } - - private List createRepositoryContentStatisticsList() - { - List repoStatsList = new ArrayList(); - - repoStatsList.add( createRepositoryContentStatistics() ); - repoStatsList.add( createRepositoryContentStatistics() ); - - return repoStatsList; - } - - private RepositoryContentStatistics createRepositoryContentStatistics() - { - RepositoryContentStatistics repoStats = new RepositoryContentStatistics(); - repoStats.setRepositoryId( REPO_ID ); - repoStats.setDuration( 1000 ); - repoStats.setTotalArtifactCount( 100 ); - repoStats.setTotalSize( 10 ); - repoStats.setTotalFileCount( 10 ); - repoStats.setTotalProjectCount( 2 ); - repoStats.setTotalGroupCount( 1 ); - repoStats.setNewFileCount( 3 ); - repoStats.setWhenGathered( new Date( System.currentTimeMillis() ) ); - - return repoStats; - } } Modified: archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java?rev=888185&r1=888184&r2=888185&view=diff ============================================================================== --- archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java (original) +++ archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java Mon Dec 7 23:27:58 2009 @@ -118,4 +118,9 @@ { //To change body of implemented methods use File | Settings | File Templates. } + + public void removeMetadataFacets( String repositoryId, String facetId ) + { + //To change body of implemented methods use File | Settings | File Templates. + } } Modified: archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java?rev=888185&r1=888184&r2=888185&view=diff ============================================================================== --- archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java (original) +++ archiva/branches/MRM-1025/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java Mon Dec 7 23:27:58 2009 @@ -54,4 +54,6 @@ MetadataFacet getMetadataFacet( String repositoryId, String facetId, String name ); void addMetadataFacet( String repositoryId, String facetId, String name, MetadataFacet metadataFacet ); + + void removeMetadataFacets( String repositoryId, String facetId ); } Modified: archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java?rev=888185&r1=888184&r2=888185&view=diff ============================================================================== --- archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java (original) +++ archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java Mon Dec 7 23:27:58 2009 @@ -49,6 +49,7 @@ import org.apache.archiva.metadata.model.ProjectVersionReference; import org.apache.archiva.metadata.model.Scm; import org.apache.archiva.metadata.repository.MetadataRepository; +import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -296,6 +297,19 @@ } } + public void removeMetadataFacets( String repositoryId, String facetId ) + { + try + { + FileUtils.deleteDirectory( getMetadataDirectory( repositoryId, facetId ) ); + } + catch ( IOException e ) + { + // TODO! + e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. + } + } + private File getMetadataDirectory( String repositoryId, String facetId ) { return new File( this.directory, repositoryId + "/.meta/" + facetId ); Modified: archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java?rev=888185&r1=888184&r2=888185&view=diff ============================================================================== --- archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java (original) +++ archiva/branches/MRM-1025/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java Mon Dec 7 23:27:58 2009 @@ -160,6 +160,35 @@ assertTrue( facets.isEmpty() ); } + public void testRemoveFacets() + { + List facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); + assertTrue( facets.isEmpty() ); + + repository.removeMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); + + facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); + assertTrue( facets.isEmpty() ); + } + + public void testRemoveFacetsWhenEmpty() + { + repository.addMetadataFacet( TEST_REPO_ID, TEST_FACET_ID, TEST_NAME, new TestMetadataFacet( TEST_VALUE ) ); + + List facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); + assertFalse( facets.isEmpty() ); + + repository.removeMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); + + facets = repository.getMetadataFacets( TEST_REPO_ID, TEST_FACET_ID ); + assertTrue( facets.isEmpty() ); + } + + public void testRemoveFacetsWhenUnknown() + { + repository.removeMetadataFacets( TEST_REPO_ID, UNKNOWN ); + } + private static class TestMetadataFacet implements MetadataFacet { Modified: archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java?rev=888185&r1=888184&r2=888185&view=diff ============================================================================== --- archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java (original) +++ archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/DefaultRepositoryStatisticsManager.java Mon Dec 7 23:27:58 2009 @@ -73,6 +73,11 @@ repositoryStatistics ); } + public void deleteStatistics( String repositoryId ) + { + metadataRepository.removeMetadataFacets( repositoryId, RepositoryStatistics.FACET_ID ); + } + public void setMetadataRepository( MetadataRepository metadataRepository ) { this.metadataRepository = metadataRepository; Modified: archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManager.java URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManager.java?rev=888185&r1=888184&r2=888185&view=diff ============================================================================== --- archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManager.java (original) +++ archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/main/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManager.java Mon Dec 7 23:27:58 2009 @@ -24,4 +24,6 @@ RepositoryStatistics getLastStatistics( String repositoryId ); void addStatisticsAfterScan( String repositoryId, RepositoryStatistics repositoryStatistics ); + + void deleteStatistics( String repositoryId ); } Modified: archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java URL: http://svn.apache.org/viewvc/archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java?rev=888185&r1=888184&r2=888185&view=diff ============================================================================== --- archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java (original) +++ archiva/branches/MRM-1025/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java Mon Dec 7 23:27:58 2009 @@ -113,24 +113,17 @@ Date current = new Date(); Date startTime = new Date( current.getTime() - 12345 ); - RepositoryStatistics stats = new RepositoryStatistics(); - stats.setScanStartTime( startTime ); - stats.setScanEndTime( current ); - stats.setTotalArtifactFileSize( 1400032000L ); - stats.setNewFileCount( 45 ); - stats.setTotalArtifactCount( 10412 ); - stats.setTotalProjectCount( 2036 ); - stats.setTotalGroupCount( 531 ); - stats.setTotalFileCount( 56345 ); + RepositoryStatistics stats1 = createTestStats( startTime, current ); String startTimeAsString = DefaultRepositoryStatisticsManager.SCAN_TIMESTAMP.format( startTime ); - metadataRepository.addMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, startTimeAsString, stats ); + metadataRepository.addMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, startTimeAsString, stats1 ); metadataRepositoryControl.expectAndReturn( metadataRepository.getMetadataFacets( TEST_REPO_ID, RepositoryStatistics.FACET_ID ), Arrays.asList( startTimeAsString ) ); metadataRepositoryControl.expectAndReturn( metadataRepository.getMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, startTimeAsString ), - stats ); + stats1 ); + RepositoryStatistics stats = stats1; metadataRepositoryControl.replay(); @@ -149,4 +142,77 @@ metadataRepositoryControl.verify(); } + + public void testDeleteStats() + { + Date current = new Date(); + + Date startTime1 = new Date( current.getTime() - 12345 ); + RepositoryStatistics stats1 = createTestStats( startTime1, new Date( current.getTime() - 6000 ) ); + String startTimeAsString1 = DefaultRepositoryStatisticsManager.SCAN_TIMESTAMP.format( startTime1 ); + metadataRepository.addMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, startTimeAsString1, stats1 ); + + Date startTime2 = new Date( current.getTime() - 3000 ); + RepositoryStatistics stats2 = createTestStats( startTime2, current ); + String startTimeAsString2 = DefaultRepositoryStatisticsManager.SCAN_TIMESTAMP.format( startTime2 ); + metadataRepository.addMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, startTimeAsString2, stats2 ); + + metadataRepositoryControl.expectAndReturn( + metadataRepository.getMetadataFacets( TEST_REPO_ID, RepositoryStatistics.FACET_ID ), + Arrays.asList( startTimeAsString1, startTimeAsString2 ) ); + metadataRepositoryControl.expectAndReturn( + metadataRepository.getMetadataFacet( TEST_REPO_ID, RepositoryStatistics.FACET_ID, startTimeAsString2 ), + stats2 ); + + metadataRepository.removeMetadataFacets( TEST_REPO_ID, RepositoryStatistics.FACET_ID ); + + metadataRepositoryControl.expectAndReturn( + metadataRepository.getMetadataFacets( TEST_REPO_ID, RepositoryStatistics.FACET_ID ), + Collections.emptyList() ); + + metadataRepositoryControl.replay(); + + repositoryStatisticsManager.addStatisticsAfterScan( TEST_REPO_ID, stats1 ); + repositoryStatisticsManager.addStatisticsAfterScan( TEST_REPO_ID, stats2 ); + + assertNotNull( repositoryStatisticsManager.getLastStatistics( TEST_REPO_ID ) ); + + repositoryStatisticsManager.deleteStatistics( TEST_REPO_ID ); + + assertNull( repositoryStatisticsManager.getLastStatistics( TEST_REPO_ID ) ); + + metadataRepositoryControl.verify(); + } + + public void testDeleteStatsWhenEmpty() + { + metadataRepositoryControl.expectAndReturn( + metadataRepository.getMetadataFacets( TEST_REPO_ID, RepositoryStatistics.FACET_ID ), + Collections.emptyList(), 2 ); + metadataRepository.removeMetadataFacets( TEST_REPO_ID, RepositoryStatistics.FACET_ID ); + + metadataRepositoryControl.replay(); + + assertNull( repositoryStatisticsManager.getLastStatistics( TEST_REPO_ID ) ); + + repositoryStatisticsManager.deleteStatistics( TEST_REPO_ID ); + + assertNull( repositoryStatisticsManager.getLastStatistics( TEST_REPO_ID ) ); + + metadataRepositoryControl.verify(); + } + + private RepositoryStatistics createTestStats( Date startTime, Date endTime ) + { + RepositoryStatistics stats = new RepositoryStatistics(); + stats.setScanStartTime( startTime ); + stats.setScanEndTime( endTime ); + stats.setTotalArtifactFileSize( 1400032000L ); + stats.setNewFileCount( 45 ); + stats.setTotalArtifactCount( 10412 ); + stats.setTotalProjectCount( 2036 ); + stats.setTotalGroupCount( 531 ); + stats.setTotalFileCount( 56345 ); + return stats; + } }