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<RepositoryStatistics> getStatsList( String repositoryId )
{
List<RepositoryStatistics> 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<RepositoryContentStatistics> 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<RepositoryContentStatistics> 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<RepositoryContentStatistics>
createRepositoryContentStatisticsList()
- {
- List<RepositoryContentStatistics> repoStatsList = new
ArrayList<RepositoryContentStatistics>();
-
- 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<String> 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<String> 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;
+ }
}