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
{