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>


Reply via email to