You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by oc...@apache.org on 2008/06/02 08:51:22 UTC

svn commit: r662342 - in /archiva/trunk/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/

Author: oching
Date: Sun Jun  1 23:51:21 2008
New Revision: 662342

URL: http://svn.apache.org/viewvc?rev=662342&view=rev
Log:
[MRM-823]
-remove repo in group when repo is removed

Modified:
    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/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java

Modified: archiva/trunk/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/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java?rev=662342&r1=662341&r2=662342&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java Sun Jun  1 23:51:21 2008
@@ -41,6 +41,7 @@
 
 import java.io.IOException;
 import java.util.List;
+import java.util.Map;
 
 /**
  * DeleteManagedRepositoryAction
@@ -140,14 +141,9 @@
         throws RoleManagerException, ArchivaDatabaseException
     {
         removeRepositoryRoles( cleanupRepository );
-
-        // TODO: [MRM-382] Remove index from artifacts of deleted managed repositories.
-
-        // [MRM-265] After removing a managed repository - Browse/Search still see it
         cleanupDatabase( cleanupRepository.getId() );
         cleanupScanStats( cleanupRepository.getId() );
-
-        // [MRM-520] Proxy Connectors are not deleted with the deletion of a Repository.
+        
         List<ProxyConnectorConfiguration> proxyConnectors = getProxyConnectors();
         for ( ProxyConnectorConfiguration proxyConnector : proxyConnectors )
         {
@@ -156,6 +152,19 @@
                 archivaConfiguration.getConfiguration().removeProxyConnector( proxyConnector );
             }
         }
+
+        Map<String, List<String>> repoToGroupMap = archivaConfiguration.getConfiguration().getRepositoryToGroupMap();
+        if( repoToGroupMap != null )
+        {
+            if( repoToGroupMap.containsKey( cleanupRepository.getId() ) )
+            {
+                List<String> repoGroups = repoToGroupMap.get( cleanupRepository.getId() );
+                for( String repoGroup : repoGroups )
+                {
+                    archivaConfiguration.getConfiguration().findRepositoryGroupById( repoGroup ).removeRepository( cleanupRepository.getId() );
+                }
+            }            
+        }
     }
 
     private void cleanupDatabase( String repoId )

Modified: archiva/trunk/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/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java?rev=662342&r1=662341&r2=662342&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java Sun Jun  1 23:51:21 2008
@@ -26,6 +26,7 @@
 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration;
 import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration;
+import org.apache.maven.archiva.configuration.RepositoryGroupConfiguration;
 import org.apache.maven.archiva.model.ArchivaProjectModel;
 import org.apache.maven.archiva.security.ArchivaRoleConstants;
 import org.codehaus.plexus.redback.role.RoleManager;
@@ -37,7 +38,9 @@
 import org.easymock.MockControl;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Collections;
+import java.util.List;
 
 /**
  * DeleteManagedRepositoryActionTest 
@@ -128,7 +131,7 @@
     {    	
         prepareRoleManagerMock();
         
-        Configuration configuration = prepDeletionTest( createRepository(), 3 );                
+        Configuration configuration = prepDeletionTest( createRepository(), 4 );                
         
         String status = action.deleteEntry();        
                 
@@ -144,7 +147,7 @@
     {
         prepareRoleManagerMock();
         
-        Configuration configuration = prepDeletionTest( createRepository(), 3 );              
+        Configuration configuration = prepDeletionTest( createRepository(), 4 );              
         
         String status = action.deleteContents();
                
@@ -158,7 +161,7 @@
     public void testDeleteRepositoryAndAssociatedProxyConnectors()
         throws Exception
     {
-        Configuration configuration = prepDeletionTest( createRepository(), 4 );
+        Configuration configuration = prepDeletionTest( createRepository(), 5 );
         configuration.addRemoteRepository( createRemoteRepository( "codehaus", "http://repository.codehaus.org" ) );
         configuration.addRemoteRepository( createRemoteRepository( "java.net", "http://dev.java.net/maven2" ) );
         configuration.addProxyConnector( createProxyConnector( REPO_ID, "codehaus" ) );
@@ -190,6 +193,27 @@
 
         assertTrue( location.exists() );
     }
+    
+    public void testDeleteRepositoryAndReposUnderRepoGroup()
+        throws Exception
+    {
+        Configuration configuration = prepDeletionTest( createRepository(), 5 );
+        List<String> repoIds = new ArrayList<String>();
+        repoIds.add( REPO_ID );
+        configuration.addRepositoryGroup( createRepoGroup( repoIds, "repo.group" ) );
+
+        prepareRoleManagerMock();
+
+        assertEquals( 1, configuration.getRepositoryGroups().size() );
+        
+        String status = action.deleteContents();
+        assertEquals( Action.SUCCESS, status );
+
+        assertTrue( configuration.getManagedRepositories().isEmpty() );
+        assertEquals( 0, ( ( RepositoryGroupConfiguration ) configuration.getRepositoryGroups().get( 0 ) ).getRepositories().size() );
+
+        assertFalse( location.exists() );
+    }
 
     private Configuration prepDeletionTest( ManagedRepositoryConfiguration originalRepository, int expectCountGetConfig )
         throws RegistryException, IndeterminateConfigurationException
@@ -276,6 +300,15 @@
         return connector;
     }
 
+    private RepositoryGroupConfiguration createRepoGroup( List<String> repoIds, String repoGroupId )
+    {
+        RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration();
+        repoGroup.setId( repoGroupId );
+        repoGroup.setRepositories( repoIds );
+        
+        return repoGroup;
+    }
+    
     private void prepareRoleManagerMock()
         throws RoleManagerException
     {