mirror of https://github.com/apache/archiva.git
[MRM-1505] api to configure ManagedRepositories : integrate it in webapp for delete action.
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1163444 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
8b766739ad
commit
0887d40cd8
|
@ -193,6 +193,7 @@ public class DefaultArchivaConfiguration
|
|||
}
|
||||
|
||||
Configuration config = new ConfigurationRegistryReader().read( subset );
|
||||
|
||||
config.getRepositoryGroups();
|
||||
config.getRepositoryGroupsAsMap();
|
||||
if ( !config.getRepositories().isEmpty() )
|
||||
|
|
|
@ -263,7 +263,12 @@ public class DefaultManagedRepositoryAdmin
|
|||
}
|
||||
|
||||
|
||||
public Boolean deleteManagedRepository( String repositoryId, AuditInformation auditInformation )
|
||||
// FIXME delete stagedRepo if exists !!!!
|
||||
// find it tru :
|
||||
// stagingRepository =
|
||||
// archivaConfiguration.getConfiguration().findManagedRepositoryById( repoid + "-stage" );
|
||||
public Boolean deleteManagedRepository( String repositoryId, AuditInformation auditInformation,
|
||||
boolean deleteContent )
|
||||
throws RepositoryAdminException
|
||||
{
|
||||
Configuration config = archivaConfiguration.getConfiguration();
|
||||
|
@ -282,6 +287,7 @@ public class DefaultManagedRepositoryAdmin
|
|||
{
|
||||
MetadataRepository metadataRepository = repositorySession.getRepository();
|
||||
metadataRepository.removeRepository( repository.getId() );
|
||||
log.debug( "call repositoryStatisticsManager.deleteStatistics" );
|
||||
repositoryStatisticsManager.deleteStatistics( metadataRepository, repository.getId() );
|
||||
repositorySession.save();
|
||||
}
|
||||
|
@ -304,14 +310,19 @@ public class DefaultManagedRepositoryAdmin
|
|||
throw new RepositoryAdminException( "Error saving configuration for delete action" + e.getMessage() );
|
||||
}
|
||||
|
||||
// TODO could be async ? as directory can be huge
|
||||
File dir = new File( repository.getLocation() );
|
||||
if ( !FileUtils.deleteQuietly( dir ) )
|
||||
if ( deleteContent )
|
||||
{
|
||||
throw new RepositoryAdminException( "Cannot delete repository " + dir );
|
||||
// TODO could be async ? as directory can be huge
|
||||
File dir = new File( repository.getLocation() );
|
||||
if ( !FileUtils.deleteQuietly( dir ) )
|
||||
{
|
||||
throw new RepositoryAdminException( "Cannot delete repository " + dir );
|
||||
}
|
||||
}
|
||||
|
||||
List<ProxyConnectorConfiguration> proxyConnectors = config.getProxyConnectors();
|
||||
// olamy: copy list for reading as a unit test in webapp fail with ConcurrentModificationException
|
||||
List<ProxyConnectorConfiguration> proxyConnectors =
|
||||
new ArrayList<ProxyConnectorConfiguration>( config.getProxyConnectors() );
|
||||
for ( ProxyConnectorConfiguration proxyConnector : proxyConnectors )
|
||||
{
|
||||
if ( StringUtils.equals( proxyConnector.getSourceRepoId(), repository.getId() ) )
|
||||
|
@ -408,6 +419,7 @@ public class DefaultManagedRepositoryAdmin
|
|||
saveConfiguration( this.archivaConfiguration.getConfiguration() );
|
||||
if ( resetStats )
|
||||
{
|
||||
log.debug( "call repositoryStatisticsManager.deleteStatistics" );
|
||||
repositoryStatisticsManager.deleteStatistics( repositorySession.getRepository(),
|
||||
managedRepository.getId() );
|
||||
repositorySession.save();
|
||||
|
@ -450,7 +462,8 @@ public class DefaultManagedRepositoryAdmin
|
|||
AuditInformation auditInformation )
|
||||
{
|
||||
User user = auditInformation == null ? null : auditInformation.getUser();
|
||||
AuditEvent event = new AuditEvent( repositoryId, user == null ? "null" : user.getUsername(), resource, action );
|
||||
AuditEvent event =
|
||||
new AuditEvent( repositoryId, user == null ? "null" : (String) user.getPrincipal(), resource, action );
|
||||
event.setRemoteIP( auditInformation == null ? "null" : auditInformation.getRemoteAddr() );
|
||||
|
||||
for ( AuditListener listener : auditListeners )
|
||||
|
@ -604,4 +617,34 @@ public class DefaultManagedRepositoryAdmin
|
|||
{
|
||||
this.roleManager = roleManager;
|
||||
}
|
||||
|
||||
public RepositoryStatisticsManager getRepositoryStatisticsManager()
|
||||
{
|
||||
return repositoryStatisticsManager;
|
||||
}
|
||||
|
||||
public void setRepositoryStatisticsManager( RepositoryStatisticsManager repositoryStatisticsManager )
|
||||
{
|
||||
this.repositoryStatisticsManager = repositoryStatisticsManager;
|
||||
}
|
||||
|
||||
public RepositorySessionFactory getRepositorySessionFactory()
|
||||
{
|
||||
return repositorySessionFactory;
|
||||
}
|
||||
|
||||
public void setRepositorySessionFactory( RepositorySessionFactory repositorySessionFactory )
|
||||
{
|
||||
this.repositorySessionFactory = repositorySessionFactory;
|
||||
}
|
||||
|
||||
public List<AuditListener> getAuditListeners()
|
||||
{
|
||||
return auditListeners;
|
||||
}
|
||||
|
||||
public void setAuditListeners( List<AuditListener> auditListeners )
|
||||
{
|
||||
this.auditListeners = auditListeners;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,6 @@ package org.apache.archiva.admin.repository.managed;
|
|||
|
||||
import org.apache.archiva.admin.AuditInformation;
|
||||
import org.apache.archiva.admin.repository.RepositoryAdminException;
|
||||
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
@ -37,7 +36,7 @@ public interface ManagedRepositoryAdmin
|
|||
ManagedRepository getManagedRepository( String repositoryId )
|
||||
throws RepositoryAdminException;
|
||||
|
||||
Boolean deleteManagedRepository( String repositoryId, AuditInformation auditInformation )
|
||||
Boolean deleteManagedRepository( String repositoryId, AuditInformation auditInformation, boolean deleteContent )
|
||||
throws RepositoryAdminException;
|
||||
|
||||
Boolean addManagedRepository( ManagedRepository managedRepository, boolean needStageRepo,
|
||||
|
|
|
@ -102,7 +102,7 @@ public class ManagedRepositoryAdminTest
|
|||
assertTrue(
|
||||
roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, "test-new-one" ) );
|
||||
|
||||
managedRepositoryAdmin.deleteManagedRepository( "test-new-one", getFakeAuditInformation() );
|
||||
managedRepositoryAdmin.deleteManagedRepository( "test-new-one", getFakeAuditInformation(), false );
|
||||
|
||||
repos = managedRepositoryAdmin.getManagedRepositories();
|
||||
assertNotNull( repos );
|
||||
|
@ -169,7 +169,7 @@ public class ManagedRepositoryAdminTest
|
|||
assertTrue(
|
||||
roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, "test-new-one" ) );
|
||||
|
||||
managedRepositoryAdmin.deleteManagedRepository( repo.getId(), getFakeAuditInformation() );
|
||||
managedRepositoryAdmin.deleteManagedRepository( repo.getId(), getFakeAuditInformation(), false );
|
||||
|
||||
assertFalse(
|
||||
roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, "test-new-one" ) );
|
||||
|
@ -211,7 +211,16 @@ public class ManagedRepositoryAdminTest
|
|||
|
||||
User getFakeUser()
|
||||
{
|
||||
SimpleUser user = new SimpleUser();
|
||||
SimpleUser user = new SimpleUser()
|
||||
{
|
||||
@Override
|
||||
public Object getPrincipal()
|
||||
{
|
||||
return "root";
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
user.setUsername( "root" );
|
||||
user.setFullName( "The top user" );
|
||||
return user;
|
||||
|
|
|
@ -60,7 +60,7 @@ public interface RepositoriesService
|
|||
@GET
|
||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||
@RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
|
||||
Boolean deleteManagedRepository( @PathParam( "repositoryId" ) String repositoryId )
|
||||
Boolean deleteManagedRepository( @PathParam( "repositoryId" ) String repositoryId, boolean deleteContent )
|
||||
throws Exception;
|
||||
|
||||
|
||||
|
@ -69,7 +69,7 @@ public interface RepositoriesService
|
|||
@Consumes( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
|
||||
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN } )
|
||||
@RedbackAuthorization( permission = ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION )
|
||||
Boolean addManagedRepository( ManagedRepository managedRepository)
|
||||
Boolean addManagedRepository( ManagedRepository managedRepository )
|
||||
throws Exception;
|
||||
|
||||
|
||||
|
|
|
@ -138,11 +138,11 @@ public class DefaultRepositoriesService
|
|||
return null;
|
||||
}
|
||||
|
||||
public Boolean deleteManagedRepository( String repoId )
|
||||
public Boolean deleteManagedRepository( String repoId, boolean deleteContent )
|
||||
throws Exception
|
||||
{
|
||||
|
||||
return managedRepositoryAdmin.deleteManagedRepository( repoId, getAuditInformation() );
|
||||
return managedRepositoryAdmin.deleteManagedRepository( repoId, getAuditInformation(), deleteContent );
|
||||
}
|
||||
|
||||
public List<RemoteRepository> getRemoteRepositories()
|
||||
|
|
|
@ -118,7 +118,7 @@ public class RepositoriesServiceTest
|
|||
ManagedRepository repo = getTestManagedRepository();
|
||||
if ( service.getManagedRepository( repo.getId() ) != null )
|
||||
{
|
||||
service.deleteManagedRepository( repo.getId() );
|
||||
service.deleteManagedRepository( repo.getId(), true );
|
||||
assertNull( service.getManagedRepository( repo.getId() ) );
|
||||
}
|
||||
service.addManagedRepository( repo );
|
||||
|
@ -135,7 +135,7 @@ public class RepositoriesServiceTest
|
|||
ManagedRepository repo = getTestManagedRepository();
|
||||
if ( service.getManagedRepository( repo.getId() ) != null )
|
||||
{
|
||||
service.deleteManagedRepository( repo.getId() );
|
||||
service.deleteManagedRepository( repo.getId(), true );
|
||||
assertNull( service.getManagedRepository( repo.getId() ) );
|
||||
}
|
||||
service.addManagedRepository( repo );
|
||||
|
|
|
@ -19,10 +19,9 @@ package org.apache.maven.archiva.web.action;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.opensymphony.xwork2.ActionContext;
|
||||
import com.opensymphony.xwork2.ActionSupport;
|
||||
import com.opensymphony.xwork2.interceptor.ParameterNameAware;
|
||||
import org.apache.archiva.admin.AuditInformation;
|
||||
import org.apache.archiva.audit.AuditEvent;
|
||||
import org.apache.archiva.audit.AuditListener;
|
||||
import org.apache.archiva.audit.Auditable;
|
||||
|
@ -31,6 +30,7 @@ import org.apache.commons.lang.StringUtils;
|
|||
import org.apache.maven.archiva.security.ArchivaXworkUser;
|
||||
import org.apache.struts2.ServletActionContext;
|
||||
import org.apache.struts2.interceptor.SessionAware;
|
||||
import org.codehaus.plexus.redback.users.User;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
|
@ -40,6 +40,7 @@ import javax.inject.Inject;
|
|||
import javax.inject.Named;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -181,4 +182,179 @@ public abstract class AbstractActionSupport
|
|||
return beans;
|
||||
}
|
||||
|
||||
|
||||
protected AuditInformation getAuditInformation()
|
||||
{
|
||||
AuditInformation auditInformation = new AuditInformation( new SimpleUser( getPrincipal() ), getRemoteAddr() );
|
||||
|
||||
return auditInformation;
|
||||
}
|
||||
|
||||
/**
|
||||
* dummy information for audit events
|
||||
* @since 1.4
|
||||
*/
|
||||
private static class SimpleUser
|
||||
implements User
|
||||
{
|
||||
|
||||
private String principal;
|
||||
|
||||
protected SimpleUser( String principal )
|
||||
{
|
||||
this.principal = principal;
|
||||
}
|
||||
|
||||
public Object getPrincipal()
|
||||
{
|
||||
return this.principal;
|
||||
}
|
||||
|
||||
public String getUsername()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setUsername( String name )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public String getFullName()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setFullName( String name )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public String getEmail()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setEmail( String address )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public String getPassword()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setPassword( String rawPassword )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public String getEncodedPassword()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setEncodedPassword( String encodedPassword )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public Date getLastPasswordChange()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setLastPasswordChange( Date passwordChangeDate )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public List<String> getPreviousEncodedPasswords()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setPreviousEncodedPasswords( List<String> encodedPasswordList )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void addPreviousEncodedPassword( String encodedPassword )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public boolean isPermanent()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setPermanent( boolean permanent )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public boolean isLocked()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setLocked( boolean locked )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public boolean isPasswordChangeRequired()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setPasswordChangeRequired( boolean changeRequired )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public boolean isValidated()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setValidated( boolean valid )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public int getCountFailedLoginAttempts()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
public void setCountFailedLoginAttempts( int count )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public Date getAccountCreationDate()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setAccountCreationDate( Date date )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public Date getLastLoginDate()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setLastLoginDate( Date date )
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ import org.codehaus.redback.rest.services.RedbackRequestInformation;
|
|||
import javax.inject.Inject;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -127,16 +128,6 @@ public abstract class AbstractRepositoriesAdminAction
|
|||
}
|
||||
|
||||
|
||||
protected AuditInformation getAuditInformation()
|
||||
{
|
||||
RedbackRequestInformation redbackRequestInformation = RedbackAuthenticationThreadLocal.get();
|
||||
User user = redbackRequestInformation == null ? null : redbackRequestInformation.getUser();
|
||||
String remoteAddr = redbackRequestInformation == null ? "null" : redbackRequestInformation.getRemoteAddr();
|
||||
AuditInformation auditInformation = new AuditInformation( user, remoteAddr);
|
||||
|
||||
return auditInformation;
|
||||
}
|
||||
|
||||
public ManagedRepositoryAdmin getManagedRepositoryAdmin()
|
||||
{
|
||||
return managedRepositoryAdmin;
|
||||
|
@ -146,4 +137,5 @@ public abstract class AbstractRepositoriesAdminAction
|
|||
{
|
||||
this.managedRepositoryAdmin = managedRepositoryAdmin;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -20,29 +20,17 @@ package org.apache.maven.archiva.web.action.admin.repositories;
|
|||
*/
|
||||
|
||||
import com.opensymphony.xwork2.Preparable;
|
||||
import org.apache.archiva.audit.AuditEvent;
|
||||
import org.apache.archiva.metadata.repository.MetadataRepository;
|
||||
import org.apache.archiva.metadata.repository.MetadataRepositoryException;
|
||||
import org.apache.archiva.metadata.repository.RepositorySession;
|
||||
import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager;
|
||||
import org.apache.archiva.admin.repository.RepositoryAdminException;
|
||||
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.codehaus.plexus.redback.role.RoleManagerException;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Controller;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* DeleteManagedRepositoryAction
|
||||
*
|
||||
* @version $Id$
|
||||
* plexus.component role="com.opensymphony.xwork2.Action" role-hint="deleteManagedRepositoryAction" instantiation-strategy="per-lookup"
|
||||
* plexus.component role="com.opensymphony.xwork2.Action" role-hint="deleteManagedRepositoryAction" instantiation-strategy="per-lookup"
|
||||
*/
|
||||
@Controller( "deleteManagedRepositoryAction" )
|
||||
@Scope( "prototype" )
|
||||
|
@ -50,18 +38,17 @@ public class DeleteManagedRepositoryAction
|
|||
extends AbstractManagedRepositoriesAction
|
||||
implements Preparable
|
||||
{
|
||||
|
||||
/**
|
||||
* FIXME we must manipulate beans from repo admin api
|
||||
* The model for this action.
|
||||
*/
|
||||
private ManagedRepositoryConfiguration repository;
|
||||
|
||||
private ManagedRepositoryConfiguration stagingRepository;
|
||||
|
||||
private String repoid;
|
||||
|
||||
/**
|
||||
* plexus.requirement
|
||||
*/
|
||||
@Inject
|
||||
private RepositoryStatisticsManager repositoryStatisticsManager;
|
||||
|
||||
public void prepare()
|
||||
{
|
||||
if ( StringUtils.isNotBlank( repoid ) )
|
||||
|
@ -103,103 +90,22 @@ public class DeleteManagedRepositoryAction
|
|||
return ERROR;
|
||||
}
|
||||
|
||||
String result;
|
||||
String result = SUCCESS;
|
||||
|
||||
RepositorySession repositorySession = repositorySessionFactory.createSession();
|
||||
try
|
||||
{
|
||||
Configuration configuration = archivaConfiguration.getConfiguration();
|
||||
if ( attachedStagingRepo != null )
|
||||
{
|
||||
cleanupRepositoryData( attachedStagingRepo, repositorySession );
|
||||
removeRepository( repoid + "-stage", configuration );
|
||||
triggerAuditEvent( repoid + "-stage", null, AuditEvent.DELETE_MANAGED_REPO );
|
||||
|
||||
}
|
||||
cleanupRepositoryData( existingRepository, repositorySession );
|
||||
removeRepository( repoid, configuration );
|
||||
triggerAuditEvent( repoid, null, AuditEvent.DELETE_MANAGED_REPO );
|
||||
result = saveConfiguration( configuration );
|
||||
|
||||
if ( result.equals( SUCCESS ) )
|
||||
{
|
||||
if ( deleteContents )
|
||||
{
|
||||
if ( attachedStagingRepo != null )
|
||||
{
|
||||
removeContents( attachedStagingRepo );
|
||||
}
|
||||
removeContents( existingRepository );
|
||||
}
|
||||
}
|
||||
getManagedRepositoryAdmin().deleteManagedRepository( existingRepository.getId(), getAuditInformation(),
|
||||
deleteContents );
|
||||
}
|
||||
catch ( IOException e )
|
||||
catch ( RepositoryAdminException e )
|
||||
{
|
||||
addActionError(
|
||||
"Unable to delete repository, content may already be partially removed: " + e.getMessage() );
|
||||
result = ERROR;
|
||||
}
|
||||
catch ( RoleManagerException e )
|
||||
{
|
||||
addActionError(
|
||||
"Unable to delete repository, content may already be partially removed: " + e.getMessage() );
|
||||
result = ERROR;
|
||||
}
|
||||
catch ( MetadataRepositoryException e )
|
||||
{
|
||||
addActionError(
|
||||
"Unable to delete repository, content may already be partially removed: " + e.getMessage() );
|
||||
result = ERROR;
|
||||
}
|
||||
finally
|
||||
{
|
||||
repositorySession.close();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private void cleanupRepositoryData( ManagedRepositoryConfiguration cleanupRepository,
|
||||
RepositorySession repositorySession )
|
||||
throws RoleManagerException, MetadataRepositoryException
|
||||
{
|
||||
removeRepositoryRoles( cleanupRepository );
|
||||
MetadataRepository metadataRepository = repositorySession.getRepository();
|
||||
cleanupDatabase( metadataRepository, cleanupRepository.getId() );
|
||||
repositoryStatisticsManager.deleteStatistics( metadataRepository, cleanupRepository.getId() );
|
||||
// TODO: delete all content for a repository from the content API?
|
||||
repositorySession.save();
|
||||
|
||||
List<ProxyConnectorConfiguration> proxyConnectors = getProxyConnectors();
|
||||
for ( ProxyConnectorConfiguration proxyConnector : proxyConnectors )
|
||||
{
|
||||
if ( StringUtils.equals( proxyConnector.getSourceRepoId(), cleanupRepository.getId() ) )
|
||||
{
|
||||
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( MetadataRepository metadataRepository, String repoId )
|
||||
throws MetadataRepositoryException
|
||||
{
|
||||
metadataRepository.removeRepository( repoId );
|
||||
}
|
||||
|
||||
public ManagedRepositoryConfiguration getRepository()
|
||||
{
|
||||
return repository;
|
||||
|
@ -219,9 +125,4 @@ public class DeleteManagedRepositoryAction
|
|||
{
|
||||
this.repoid = repoid;
|
||||
}
|
||||
|
||||
public void setRepositoryStatisticsManager( RepositoryStatisticsManager repositoryStatisticsManager )
|
||||
{
|
||||
this.repositoryStatisticsManager = repositoryStatisticsManager;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,6 +20,8 @@ package org.apache.maven.archiva.web.action.admin.repositories;
|
|||
*/
|
||||
|
||||
import com.opensymphony.xwork2.Action;
|
||||
import org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin;
|
||||
import org.apache.archiva.admin.repository.managed.ManagedRepositoryAdmin;
|
||||
import org.apache.archiva.audit.AuditEvent;
|
||||
import org.apache.archiva.audit.AuditListener;
|
||||
import org.apache.archiva.metadata.repository.MetadataRepository;
|
||||
|
@ -38,9 +40,12 @@ import org.apache.maven.archiva.web.action.AbstractActionTestCase;
|
|||
import org.apache.maven.archiva.web.action.AuditEventArgumentsMatcher;
|
||||
import org.codehaus.plexus.redback.role.RoleManager;
|
||||
import org.codehaus.plexus.redback.role.RoleManagerException;
|
||||
import org.codehaus.plexus.redback.users.User;
|
||||
import org.codehaus.plexus.redback.users.jdo.JdoUser;
|
||||
import org.codehaus.plexus.registry.RegistryException;
|
||||
import org.codehaus.redback.integration.interceptor.SecureActionBundle;
|
||||
import org.codehaus.redback.integration.interceptor.SecureActionException;
|
||||
import org.codehaus.redback.rest.services.RedbackRequestInformation;
|
||||
import org.easymock.MockControl;
|
||||
|
||||
import java.io.File;
|
||||
|
@ -103,7 +108,6 @@ public class DeleteManagedRepositoryActionTest
|
|||
|
||||
repositoryStatisticsManagerControl = MockControl.createControl( RepositoryStatisticsManager.class );
|
||||
repositoryStatisticsManager = (RepositoryStatisticsManager) repositoryStatisticsManagerControl.getMock();
|
||||
action.setRepositoryStatisticsManager( repositoryStatisticsManager );
|
||||
|
||||
metadataRepositoryControl = MockControl.createControl( MetadataRepository.class );
|
||||
metadataRepository = (MetadataRepository) metadataRepositoryControl.getMock();
|
||||
|
@ -111,11 +115,18 @@ public class DeleteManagedRepositoryActionTest
|
|||
|
||||
respositorySession = mock( RepositorySession.class );
|
||||
when( respositorySession.getRepository() ).thenReturn( metadataRepository );
|
||||
//TestRepositorySessionFactory factory = (TestRepositorySessionFactory) lookup( RepositorySessionFactory.class );
|
||||
|
||||
TestRepositorySessionFactory factory = new TestRepositorySessionFactory();
|
||||
factory.setRepositorySession( respositorySession );
|
||||
action.setRepositorySessionFactory( factory );
|
||||
|
||||
( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setArchivaConfiguration( archivaConfiguration );
|
||||
( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRoleManager( roleManager );
|
||||
( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRepositoryStatisticsManager(
|
||||
repositoryStatisticsManager );
|
||||
( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setRepositorySessionFactory( factory );
|
||||
action.setManagedRepositoryAdmin( getManagedRepositoryAdmin() );
|
||||
|
||||
metadataRepositoryControl.replay();
|
||||
}
|
||||
|
||||
|
@ -229,6 +240,8 @@ public class DeleteManagedRepositoryActionTest
|
|||
control.setMatcher( new AuditEventArgumentsMatcher() );
|
||||
control.replay();
|
||||
action.setAuditListeners( Arrays.asList( listener ) );
|
||||
|
||||
( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() ).setAuditListeners( Arrays.asList( listener ) );
|
||||
return control;
|
||||
}
|
||||
|
||||
|
@ -438,4 +451,9 @@ public class DeleteManagedRepositoryActionTest
|
|||
roleManager.removeTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID );
|
||||
roleManagerControl.replay();
|
||||
}
|
||||
|
||||
protected ManagedRepositoryAdmin getManagedRepositoryAdmin()
|
||||
{
|
||||
return applicationContext.getBean( ManagedRepositoryAdmin.class );
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,6 +44,10 @@
|
|||
<level value="error"/>
|
||||
</logger>
|
||||
|
||||
<logger name="org.apache.archiva.admin.repository.managed">
|
||||
<level value="debug"/>
|
||||
</logger>
|
||||
|
||||
<root>
|
||||
<priority value ="info" />
|
||||
<appender-ref ref="console" />
|
||||
|
|
Loading…
Reference in New Issue