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 2009/12/08 05:02:18 UTC

svn commit: r888245 - in /archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src: main/java/org/apache/maven/archiva/web/action/admin/repositories/ test/java/org/apache/maven/archiva/web/action/admin/repositories/ test/resources/org/a...

Author: brett
Date: Tue Dec  8 04:02:18 2009
New Revision: 888245

URL: http://svn.apache.org/viewvc?rev=888245&view=rev
Log:
[MRM-1293] remove use of repository content statistics from the managed repository deletion

Removed:
    archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoriesActionTest.xml
    archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.xml
Modified:
    archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java
    archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java
    archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
    archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java

Modified: archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.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/DeleteManagedRepositoryAction.java?rev=888245&r1=888244&r2=888245&view=diff
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java (original)
+++ archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java Tue Dec  8 04:02:18 2009
@@ -24,18 +24,17 @@
 import java.util.Map;
 
 import com.opensymphony.xwork2.Preparable;
+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.configuration.ProxyConnectorConfiguration;
-import org.apache.maven.archiva.database.ArchivaDAO;
 import org.apache.maven.archiva.database.ArchivaDatabaseException;
+import org.apache.maven.archiva.database.ArtifactDAO;
 import org.apache.maven.archiva.database.Constraint;
 import org.apache.maven.archiva.database.ObjectNotFoundException;
 import org.apache.maven.archiva.database.constraints.ArtifactsByRepositoryConstraint;
-import org.apache.maven.archiva.database.constraints.RepositoryContentStatisticsByRepositoryConstraint;
 import org.apache.maven.archiva.model.ArchivaArtifact;
-import org.apache.maven.archiva.model.RepositoryContentStatistics;
 import org.apache.maven.archiva.repository.audit.AuditEvent;
 import org.codehaus.plexus.redback.role.RoleManagerException;
 
@@ -56,7 +55,12 @@
     /**
      * @plexus.requirement role-hint="jdo"
      */
-    private ArchivaDAO archivaDAO;
+    private ArtifactDAO artifactDao;
+
+    /**
+     * @plexus.requirement
+     */
+    private RepositoryStatisticsManager repositoryStatisticsManager;
 
     public void prepare()
     {
@@ -96,7 +100,7 @@
             return ERROR;
         }
 
-        String result = SUCCESS;
+        String result;
 
         try
         {
@@ -138,7 +142,7 @@
     {
         removeRepositoryRoles( cleanupRepository );
         cleanupDatabase( cleanupRepository.getId() );
-        cleanupScanStats( cleanupRepository.getId() );
+        repositoryStatisticsManager.deleteStatistics( cleanupRepository.getId() );
         // TODO: delete all content for a repository from the content API?
 
         List<ProxyConnectorConfiguration> proxyConnectors = getProxyConnectors();
@@ -169,14 +173,14 @@
     {
         Constraint constraint = new ArtifactsByRepositoryConstraint( repoId );
 
-        List<ArchivaArtifact> artifacts = archivaDAO.getArtifactDAO().queryArtifacts( constraint );
+        List<ArchivaArtifact> artifacts = artifactDao.queryArtifacts( constraint );
 
         for ( ArchivaArtifact artifact : artifacts )
         {
             log.info( "Removing artifact " + artifact + " from the database." );
             try
             {
-                archivaDAO.getArtifactDAO().deleteArtifact( artifact );
+                artifactDao.deleteArtifact( artifact );
 
             }
             catch ( ObjectNotFoundException oe )
@@ -192,19 +196,6 @@
         }
     }
 
-    private void cleanupScanStats( String repoId )
-        throws ArchivaDatabaseException
-    {
-        List<RepositoryContentStatistics> results =
-            archivaDAO.getRepositoryContentStatisticsDAO().queryRepositoryContentStatistics(
-            new RepositoryContentStatisticsByRepositoryConstraint( repoId ) );
-
-        for ( RepositoryContentStatistics stats : results )
-        {
-            archivaDAO.getRepositoryContentStatisticsDAO().deleteRepositoryContentStatistics( stats );
-        }
-    }
-
     public ManagedRepositoryConfiguration getRepository()
     {
         return repository;
@@ -225,13 +216,13 @@
         this.repoid = repoid;
     }
 
-    public void setArchivaDAO( ArchivaDAO archivaDAO )
+    public void setRepositoryStatisticsManager( RepositoryStatisticsManager repositoryStatisticsManager )
     {
-        this.archivaDAO = archivaDAO;
+        this.repositoryStatisticsManager = repositoryStatisticsManager;
     }
 
-    public ArchivaDAO getArchivaDAO()
+    public void setArtifactDao( ArtifactDAO artifactDao )
     {
-        return archivaDAO;
+        this.artifactDao = artifactDao;
     }
 }

Modified: archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.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/AddManagedRepositoryActionTest.java?rev=888245&r1=888244&r2=888245&view=diff
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java (original)
+++ archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java Tue Dec  8 04:02:18 2009
@@ -19,6 +19,9 @@
  * under the License.
  */
 
+import java.io.File;
+import java.util.Collections;
+
 import com.opensymphony.xwork2.Action;
 import org.apache.commons.io.FileUtils;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
@@ -26,14 +29,11 @@
 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 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.util.Collections;
-
 /**
  * AddManagedRepositoryActionTest 
  *
@@ -68,7 +68,7 @@
     {
         super.setUp();
 
-        action = (AddManagedRepositoryAction) lookup( Action.class.getName(), "addManagedRepositoryAction" );
+        action = new AddManagedRepositoryAction();
 
         archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class );
         archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock();

Modified: archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.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/DeleteManagedRepositoryActionTest.java?rev=888245&r1=888244&r2=888245&view=diff
==============================================================================
--- archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java (original)
+++ archiva/branches/MRM-1025/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java Tue Dec  8 04:02:18 2009
@@ -25,6 +25,7 @@
 import java.util.List;
 
 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.IndeterminateConfigurationException;
@@ -63,6 +64,10 @@
 
     private File location;
 
+    private MockControl repositoryStatisticsManagerControl;
+
+    private RepositoryStatisticsManager repositoryStatisticsManager;
+
     @Override
     protected String getPlexusConfigLocation()
     {
@@ -74,7 +79,7 @@
     {
         super.setUp();
 
-        action = (DeleteManagedRepositoryAction) lookup( Action.class.getName(), "deleteManagedRepositoryAction" );
+        action = new DeleteManagedRepositoryAction();
         
         archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class );
         archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock();
@@ -83,7 +88,13 @@
         roleManagerControl = MockControl.createControl( RoleManager.class );
         roleManager = (RoleManager) roleManagerControl.getMock();
         action.setRoleManager( roleManager );
-        location = getTestFile( "target/test/location" );          
+        location = getTestFile( "target/test/location" );
+
+        repositoryStatisticsManagerControl = MockControl.createControl( RepositoryStatisticsManager.class );
+        repositoryStatisticsManager = (RepositoryStatisticsManager) repositoryStatisticsManagerControl.getMock();
+        action.setRepositoryStatisticsManager( repositoryStatisticsManager );
+
+        action.setArtifactDao( new ArtifactDAOStub() );
     }
 
     public void testSecureActionBundle()
@@ -126,7 +137,11 @@
 
     public void testDeleteRepositoryKeepContent()
         throws Exception
-    {    	
+    {
+        // even when we keep the content, we don't keep the metadata at this point
+        repositoryStatisticsManager.deleteStatistics( REPO_ID );
+        repositoryStatisticsManagerControl.replay();
+
         prepareRoleManagerMock();
         
         Configuration configuration = prepDeletionTest( createRepository(), 4 );                
@@ -138,11 +153,16 @@
         assertTrue( configuration.getManagedRepositories().isEmpty() );
 
         assertTrue( location.exists() );
+
+        repositoryStatisticsManagerControl.verify();
     }
 
     public void testDeleteRepositoryDeleteContent()
         throws Exception
     {
+        repositoryStatisticsManager.deleteStatistics( REPO_ID );
+        repositoryStatisticsManagerControl.replay();
+
         prepareRoleManagerMock();
         
         Configuration configuration = prepDeletionTest( createRepository(), 4 );              
@@ -154,11 +174,16 @@
         assertTrue( configuration.getManagedRepositories().isEmpty() );
 
         assertFalse( location.exists() );
+
+        repositoryStatisticsManagerControl.verify();
     }
     
     public void testDeleteRepositoryAndAssociatedProxyConnectors()
         throws Exception
     {
+        repositoryStatisticsManager.deleteStatistics( REPO_ID );
+        repositoryStatisticsManagerControl.replay();
+
         Configuration configuration = prepDeletionTest( createRepository(), 5 );
         configuration.addRemoteRepository( createRemoteRepository( "codehaus", "http://repository.codehaus.org" ) );
         configuration.addRemoteRepository( createRemoteRepository( "java.net", "http://dev.java.net/maven2" ) );
@@ -175,11 +200,15 @@
         assertEquals( 0, configuration.getProxyConnectors().size() );
 
         assertFalse( location.exists() );
+
+        repositoryStatisticsManagerControl.verify();
     }
     
     public void testDeleteRepositoryCancelled()
         throws Exception
     {
+        repositoryStatisticsManagerControl.replay();
+
         ManagedRepositoryConfiguration originalRepository = createRepository();
         Configuration configuration = prepDeletionTest( originalRepository, 3 );
         String status = action.execute();
@@ -190,11 +219,16 @@
         assertEquals( Collections.singletonList( originalRepository ), configuration.getManagedRepositories() );
 
         assertTrue( location.exists() );
+
+        repositoryStatisticsManagerControl.verify();
     }
     
     public void testDeleteRepositoryAndReposUnderRepoGroup()
         throws Exception
     {
+        repositoryStatisticsManager.deleteStatistics( REPO_ID );
+        repositoryStatisticsManagerControl.replay();
+
         Configuration configuration = prepDeletionTest( createRepository(), 5 );
         List<String> repoIds = new ArrayList<String>();
         repoIds.add( REPO_ID );
@@ -211,6 +245,8 @@
         assertEquals( 0, ( ( RepositoryGroupConfiguration ) configuration.getRepositoryGroups().get( 0 ) ).getRepositories().size() );
 
         assertFalse( location.exists() );
+
+        repositoryStatisticsManagerControl.verify();
     }
 
     private Configuration prepDeletionTest( ManagedRepositoryConfiguration originalRepository, int expectCountGetConfig )

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=888245&r1=888244&r2=888245&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 Tue Dec  8 04:02:18 2009
@@ -68,7 +68,7 @@
     {
         super.setUp();
 
-        action = (EditManagedRepositoryAction) lookup( Action.class.getName(), "editManagedRepositoryAction" );
+        action = new EditManagedRepositoryAction();
 
         archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class );
         archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock();