Author: olamy
Date: Tue Aug 30 22:49:42 2011
New Revision: 1163444
URL: http://svn.apache.org/viewvc?rev=1163444&view=rev
Log:
[MRM-1505] api to configure ManagedRepositories : integrate it in webapp for
delete action.
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdmin.java
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdminTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractActionSupport.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java
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
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/log4j.xml
archiva/trunk/pom.xml
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java?rev=1163444&r1=1163443&r2=1163444&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/java/org/apache/maven/archiva/configuration/DefaultArchivaConfiguration.java
Tue Aug 30 22:49:42 2011
@@ -193,6 +193,7 @@ public class DefaultArchivaConfiguration
}
Configuration config = new ConfigurationRegistryReader().read( subset
);
+
config.getRepositoryGroups();
config.getRepositoryGroupsAsMap();
if ( !config.getRepositories().isEmpty() )
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java?rev=1163444&r1=1163443&r2=1163444&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
Tue Aug 30 22:49:42 2011
@@ -263,7 +263,12 @@ public class DefaultManagedRepositoryAdm
}
- 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 DefaultManagedRepositoryAdm
{
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 DefaultManagedRepositoryAdm
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 DefaultManagedRepositoryAdm
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 DefaultManagedRepositoryAdm
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 DefaultManagedRepositoryAdm
{
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;
+ }
}
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdmin.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdmin.java?rev=1163444&r1=1163443&r2=1163444&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdmin.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/main/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdmin.java
Tue Aug 30 22:49:42 2011
@@ -21,7 +21,6 @@ package org.apache.archiva.admin.reposit
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,
Modified:
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdminTest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdminTest.java?rev=1163444&r1=1163443&r2=1163444&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdminTest.java
(original)
+++
archiva/trunk/archiva-modules/archiva-base/archiva-repository-admin/src/test/java/org/apache/archiva/admin/repository/managed/ManagedRepositoryAdminTest.java
Tue Aug 30 22:49:42 2011
@@ -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;
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java?rev=1163444&r1=1163443&r2=1163444&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/services/RepositoriesService.java
Tue Aug 30 22:49:42 2011
@@ -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;
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java?rev=1163444&r1=1163443&r2=1163444&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
Tue Aug 30 22:49:42 2011
@@ -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()
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java?rev=1163444&r1=1163443&r2=1163444&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/services/RepositoriesServiceTest.java
Tue Aug 30 22:49:42 2011
@@ -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 );
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractActionSupport.java
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractActionSupport.java?rev=1163444&r1=1163443&r2=1163444&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractActionSupport.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractActionSupport.java
Tue Aug 30 22:49:42 2011
@@ -19,10 +19,9 @@ package org.apache.maven.archiva.web.act
* 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.StringUti
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 AbstractActionSupp
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 )
+ {
+
+ }
+ }
+
+
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.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/AbstractRepositoriesAdminAction.java?rev=1163444&r1=1163443&r2=1163444&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractRepositoriesAdminAction.java
Tue Aug 30 22:49:42 2011
@@ -41,6 +41,7 @@ import org.codehaus.redback.rest.service
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 AbstractRepositori
}
- 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 AbstractRepositori
{
this.managedRepositoryAdmin = managedRepositoryAdmin;
}
+
}
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=1163444&r1=1163443&r2=1163444&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
Tue Aug 30 22:49:42 2011
@@ -20,29 +20,17 @@ package org.apache.maven.archiva.web.act
*/
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 DeleteManagedRepositoryActi
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 DeleteManagedRepositoryActi
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 );
- }
- }
- }
- catch ( IOException 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;
+ getManagedRepositoryAdmin().deleteManagedRepository(
existingRepository.getId(), getAuditInformation(),
+
deleteContents );
}
- catch ( MetadataRepositoryException e )
+ catch ( RepositoryAdminException 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 DeleteManagedRepositoryActi
{
this.repoid = repoid;
}
-
- public void setRepositoryStatisticsManager( RepositoryStatisticsManager
repositoryStatisticsManager )
- {
- this.repositoryStatisticsManager = repositoryStatisticsManager;
- }
}
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=1163444&r1=1163443&r2=1163444&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
Tue Aug 30 22:49:42 2011
@@ -20,6 +20,8 @@ package org.apache.maven.archiva.web.act
*/
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.acti
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 DeleteManagedRepositoryActi
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 DeleteManagedRepositoryActi
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 DeleteManagedRepositoryActi
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 DeleteManagedRepositoryActi
roleManager.removeTemplatedRole(
ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID );
roleManagerControl.replay();
}
+
+ protected ManagedRepositoryAdmin getManagedRepositoryAdmin()
+ {
+ return applicationContext.getBean( ManagedRepositoryAdmin.class );
+ }
}
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/log4j.xml
URL:
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/log4j.xml?rev=1163444&r1=1163443&r2=1163444&view=diff
==============================================================================
---
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/log4j.xml
(original)
+++
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/resources/log4j.xml
Tue Aug 30 22:49:42 2011
@@ -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" />
Modified: archiva/trunk/pom.xml
URL:
http://svn.apache.org/viewvc/archiva/trunk/pom.xml?rev=1163444&r1=1163443&r2=1163444&view=diff
==============================================================================
--- archiva/trunk/pom.xml (original)
+++ archiva/trunk/pom.xml Tue Aug 30 22:49:42 2011
@@ -1458,7 +1458,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
- <version>2.3.1</version>
+ <version>2.3.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>