Author: olamy
Date: Tue Aug 30 15:23:55 2011
New Revision: 1163258

URL: http://svn.apache.org/viewvc?rev=1163258&view=rev
Log:
[MRM-1504] new repository admin module : start using it in webapp module for 
add.

Modified:
    
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
    
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-web/archiva-webapp/pom.xml
    
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/AddManagedRepositoryAction.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoryActionTest.java
    
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo?rev=1163258&r1=1163257&r2=1163258&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-configuration/src/main/mdo/configuration.mdo
 Tue Aug 30 15:23:55 2011
@@ -415,6 +415,37 @@
           <defaultValue>default</defaultValue>
         </field>
       </fields>
+      <codeSegments>
+        <codeSegment>
+          <version>1.0.0+</version>
+            <code><![CDATA[
+            public int hashCode()
+            {
+                int result = 17;
+                result = 37 * result + ( id != null ? id.hashCode() : 0 );
+                return result;
+            }
+
+            public boolean equals( Object other )
+            {
+                if ( this == other )
+                {
+                    return true;
+                }
+
+                if ( !( other instanceof AbstractRepositoryConfiguration ) )
+                {
+                    return false;
+                }
+
+                AbstractRepositoryConfiguration that = 
(AbstractRepositoryConfiguration) other;
+                boolean result = true;
+                result = result && ( getId() == null ? that.getId() == null : 
getId().equals( that.getId() ) );
+                return result;
+            }
+       ]]></code>
+        </codeSegment>
+      </codeSegments>
     </class>
     <class>
       <name>RemoteRepositoryConfiguration</name>

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=1163258&r1=1163257&r2=1163258&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 15:23:55 2011
@@ -108,7 +108,7 @@ public class DefaultManagedRepositoryAdm
 
         for ( ManagedRepositoryConfiguration repoConfig : managedRepoConfigs )
         {
-            // TODO staging repo too
+            // TODO add staging repo too
             ManagedRepository repo =
                 new ManagedRepository( repoConfig.getId(), 
repoConfig.getName(), repoConfig.getLocation(),
                                        repoConfig.getLayout(), 
repoConfig.isSnapshots(), repoConfig.isReleases(),
@@ -179,7 +179,7 @@ public class DefaultManagedRepositoryAdm
             }
         }
 
-        // FIXME checKid non empty
+        // FIXME checkId non empty
 
         if ( !GenericValidator.matchRegexp( repoId, 
REPOSITORY_ID_VALID_EXPRESSION ) )
         {
@@ -583,4 +583,25 @@ public class DefaultManagedRepositoryAdm
 
         log.debug( "removed user roles associated with repository {}", repoId 
);
     }
+
+
+    public ArchivaConfiguration getArchivaConfiguration()
+    {
+        return archivaConfiguration;
+    }
+
+    public void setArchivaConfiguration( ArchivaConfiguration 
archivaConfiguration )
+    {
+        this.archivaConfiguration = archivaConfiguration;
+    }
+
+    public RoleManager getRoleManager()
+    {
+        return roleManager;
+    }
+
+    public void setRoleManager( RoleManager roleManager )
+    {
+        this.roleManager = roleManager;
+    }
 }

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=1163258&r1=1163257&r2=1163258&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 15:23:55 2011
@@ -21,6 +21,7 @@ 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;
 
@@ -48,5 +49,4 @@ public interface ManagedRepositoryAdmin
                                      AuditInformation auditInformation )
         throws RepositoryAdminException;
 
-
 }

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/pom.xml
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/pom.xml?rev=1163258&r1=1163257&r2=1163258&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/pom.xml (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/pom.xml Tue Aug 30 
15:23:55 2011
@@ -276,7 +276,6 @@
     <dependency>
       <groupId>org.codehaus.redback</groupId>
       <artifactId>redback-rest-services</artifactId>
-      <scope>runtime</scope>
       <exclusions>
         <exclusion>
           <groupId>commons-logging</groupId>

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=1163258&r1=1163257&r2=1163258&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 15:23:55 2011
@@ -19,6 +19,8 @@ package org.apache.maven.archiva.web.act
  * under the License.
  */
 
+import org.apache.archiva.admin.AuditInformation;
+import org.apache.archiva.admin.repository.managed.ManagedRepositoryAdmin;
 import org.apache.archiva.audit.Auditable;
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 import org.apache.maven.archiva.configuration.Configuration;
@@ -28,10 +30,13 @@ import org.apache.maven.archiva.configur
 import org.apache.maven.archiva.security.ArchivaRoleConstants;
 import org.apache.maven.archiva.web.action.AbstractActionSupport;
 import org.codehaus.plexus.redback.rbac.Resource;
+import org.codehaus.plexus.redback.users.User;
 import org.codehaus.plexus.registry.RegistryException;
 import org.codehaus.redback.integration.interceptor.SecureAction;
 import org.codehaus.redback.integration.interceptor.SecureActionBundle;
 import org.codehaus.redback.integration.interceptor.SecureActionException;
+import org.codehaus.redback.rest.services.RedbackAuthenticationThreadLocal;
+import org.codehaus.redback.rest.services.RedbackRequestInformation;
 
 import javax.inject.Inject;
 import java.io.IOException;
@@ -56,6 +61,9 @@ public abstract class AbstractRepositori
     @Inject
     protected ArchivaConfiguration archivaConfiguration;
 
+    @Inject
+    private ManagedRepositoryAdmin managedRepositoryAdmin;
+
     public ArchivaConfiguration getArchivaConfiguration()
     {
         return archivaConfiguration;
@@ -117,4 +125,25 @@ public abstract class AbstractRepositori
         return new ArrayList<ProxyConnectorConfiguration>(
             archivaConfiguration.getConfiguration().getProxyConnectors() );
     }
+
+
+    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;
+    }
+
+    public void setManagedRepositoryAdmin( ManagedRepositoryAdmin 
managedRepositoryAdmin )
+    {
+        this.managedRepositoryAdmin = managedRepositoryAdmin;
+    }
 }

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.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/AddManagedRepositoryAction.java?rev=1163258&r1=1163257&r2=1163258&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryAction.java
 Tue Aug 30 15:23:55 2011
@@ -21,25 +21,23 @@ package org.apache.maven.archiva.web.act
 
 import com.opensymphony.xwork2.Preparable;
 import com.opensymphony.xwork2.Validateable;
-import org.apache.archiva.audit.AuditEvent;
+import org.apache.archiva.admin.repository.RepositoryAdminException;
+import org.apache.archiva.admin.repository.managed.ManagedRepository;
+import org.apache.archiva.admin.repository.managed.ManagedRepositoryAdmin;
 import org.apache.commons.lang.StringUtils;
 import org.apache.maven.archiva.configuration.Configuration;
 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
-import org.codehaus.plexus.redback.role.RoleManagerException;
-import org.codehaus.plexus.taskqueue.TaskQueueException;
 import org.codehaus.redback.components.scheduler.CronExpressionValidator;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Controller;
 
+import javax.inject.Inject;
 import java.io.File;
-import java.io.IOException;
 
 /**
  * AddManagedRepositoryAction
  *
  * @version $Id$
- *          <p/>
- *          plexus.component role="com.opensymphony.xwork2.Action" 
role-hint="addManagedRepositoryAction" instantiation-strategy="per-lookup"
  */
 @Controller( "addManagedRepositoryAction" )
 @Scope( "prototype" )
@@ -48,6 +46,7 @@ public class AddManagedRepositoryAction
     implements Preparable, Validateable
 {
     /**
+     * FIXME we must manipulate beans from repo admin api
      * The model for this action.
      */
     private ManagedRepositoryConfiguration repository;
@@ -93,56 +92,18 @@ public class AddManagedRepositoryAction
 
     private String save()
     {
-        Configuration configuration = archivaConfiguration.getConfiguration();
-
-        String result;
+        String result = SUCCESS;
         try
         {
-            addRepository( repository, configuration );
-            triggerAuditEvent( repository.getId(), null, 
AuditEvent.ADD_MANAGED_REPO );
-            addRepositoryRoles( repository );
-
-            if ( stageNeeded )
-            {
-                ManagedRepositoryConfiguration stagingRepository = 
getStageRepoConfig();
-
-                addRepository( stagingRepository, configuration );
-                triggerAuditEvent( stagingRepository.getId(), null, 
AuditEvent.ADD_MANAGED_REPO );
-                addRepositoryRoles( stagingRepository );
-
-            }
-
-            result = saveConfiguration( configuration );
-            
-            //MRM-1342 Repository statistics report doesn't appear to be 
working correctly
-            //scan repository when adding of repository is successful
-            if ( result.equals( SUCCESS ) )
-            {
-                try
-                {
-                    executeRepositoryScanner( repository.getId() );
-
-                    if ( stageNeeded )
-                    {
-                        ManagedRepositoryConfiguration stagingRepository = 
getStageRepoConfig();
-                        executeRepositoryScanner( stagingRepository.getId() );
-                    }
-                }
-                catch ( TaskQueueException e )
-                {
-                    log.warn( new StringBuilder( "Unable to scan repository [" 
).append( repository.getId() ).append( "]: " ).append(
-                              e.getMessage() ).toString(), e );
-                }
-            }
-        }
-        catch ( RoleManagerException e )
-        {
-            addActionError( "Role Manager Exception: " + e.getMessage() );
-            result = INPUT;
+            ManagedRepository managedRepository =
+                new ManagedRepository( repository.getId(), 
repository.getName(), repository.getLocation(),
+                                       repository.getLayout(), 
repository.isSnapshots(), repository.isReleases(),
+                                       repository.isBlockRedeployments(), 
repository.getRefreshCronExpression() );
+            getManagedRepositoryAdmin().addManagedRepository( 
managedRepository, stageNeeded, getAuditInformation() );
         }
-        catch ( IOException e )
+        catch ( RepositoryAdminException e )
         {
-            addActionError( "Role Manager Exception: " + e.getMessage() );
+            addActionError( "Repository Administration Exception: " + 
e.getMessage() );
             result = INPUT;
         }
 

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoryActionTest.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/AbstractManagedRepositoryActionTest.java?rev=1163258&r1=1163257&r2=1163258&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoryActionTest.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AbstractManagedRepositoryActionTest.java
 Tue Aug 30 15:23:55 2011
@@ -22,6 +22,7 @@ package org.apache.maven.archiva.web.act
 import com.opensymphony.xwork2.validator.ActionValidatorManager;
 import java.io.File;
 
+import org.apache.archiva.admin.repository.managed.ManagedRepositoryAdmin;
 import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration;
 import org.apache.struts2.StrutsSpringTestCase;
 
@@ -121,4 +122,9 @@ public abstract class AbstractManagedRep
 
         return managedRepositoryConfiguration;
     }
+
+    protected ManagedRepositoryAdmin getManagedRepositoryAdmin()
+    {
+        return applicationContext.getBean( ManagedRepositoryAdmin.class );
+    }
 }

Modified: 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.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/AddManagedRepositoryActionTest.java?rev=1163258&r1=1163257&r2=1163258&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/AddManagedRepositoryActionTest.java
 Tue Aug 30 15:23:55 2011
@@ -20,6 +20,7 @@ package org.apache.maven.archiva.web.act
  */
 
 import com.opensymphony.xwork2.Action;
+import 
org.apache.archiva.admin.repository.managed.DefaultManagedRepositoryAdmin;
 import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler;
 import org.apache.archiva.scheduler.repository.RepositoryTask;
 import org.apache.commons.io.FileUtils;
@@ -63,11 +64,12 @@ public class AddManagedRepositoryActionT
     private MockControl registryControl;
 
     private ArchivaConfiguration archivaConfiguration;
-    
+
     private MockControl repositoryTaskSchedulerControl;
-    
+
     private RepositoryArchivaTaskScheduler repositoryTaskScheduler;
 
+
     @Override
     protected void setUp()
         throws Exception
@@ -89,10 +91,14 @@ public class AddManagedRepositoryActionT
         action.setRegistry( registry );
 
         repositoryTaskSchedulerControl = MockClassControl.createControl( 
RepositoryArchivaTaskScheduler.class );
-        repositoryTaskScheduler = ( RepositoryArchivaTaskScheduler ) 
repositoryTaskSchedulerControl.getMock();
+        repositoryTaskScheduler = (RepositoryArchivaTaskScheduler) 
repositoryTaskSchedulerControl.getMock();
         action.setRepositoryTaskScheduler( repositoryTaskScheduler );
-        
+
         location = new File( "target/test/location" );
+        ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() 
).setArchivaConfiguration( archivaConfiguration );
+        ( (DefaultManagedRepositoryAdmin) getManagedRepositoryAdmin() 
).setRoleManager( roleManager );
+        action.setManagedRepositoryAdmin( getManagedRepositoryAdmin() );
+
     }
 
     public void testSecureActionBundle()
@@ -157,7 +163,7 @@ public class AddManagedRepositoryActionT
         registryControl.setReturnValue( "target/test" );
 
         registryControl.replay();
-        
+
         RepositoryTask task = new RepositoryTask();
         task.setRepositoryId( REPO_ID );
         repositoryTaskScheduler.isProcessingRepositoryTask( REPO_ID );


Reply via email to