You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by oc...@apache.org on 2010/08/01 05:04:06 UTC

svn commit: r981121 - in /archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src: main/java/org/apache/maven/archiva/web/action/ main/java/org/apache/maven/archiva/web/action/admin/repositories/ main/webapp/WEB-INF/jsp/ main/we...

Author: oching
Date: Sun Aug  1 03:04:06 2010
New Revision: 981121

URL: http://svn.apache.org/viewvc?rev=981121&view=rev
Log:
[MRM-1397] reflect in the staging repo changes made in the configuration of the managed repo it is attached to
submitted by Patti Arachchige Eshan Sudharaka

Modified:
    archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/MergeAction.java
    archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java
    archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java
    archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp
    archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/mergeExcludeConflicts.jsp
    archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
    archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java

Modified: archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/MergeAction.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/MergeAction.java?rev=981121&r1=981120&r2=981121&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/MergeAction.java (original)
+++ archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/MergeAction.java Sun Aug  1 03:04:06 2010
@@ -33,6 +33,9 @@ import org.apache.maven.archiva.configur
 import org.apache.maven.archiva.configuration.ArchivaConfiguration;
 
 import java.util.List;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
 
 /**
  * @plexus.component role="com.opensymphony.xwork2.Action" role-hint="mergeAction" instantiation-strategy="per-lookup"
@@ -71,6 +74,8 @@ public class MergeAction
 
     private List<ArtifactMetadata> conflictSourceArtifacts;
 
+    private List<ArtifactMetadata> conflictSourceArtifactsToBeDisplayed;
+
     public String getConflicts()
     {
         targetRepoId = repoid + "-stage";
@@ -165,6 +170,7 @@ public class MergeAction
         targetRepoId = repoid + "-stage";
         conflictSourceArtifacts = repositoryMerger.getConflictsartifacts( targetRepoId, repoid );
         this.repository = new ManagedRepositoryConfiguration();
+        setConflictSourceArtifactsToBeDisplayed( conflictSourceArtifacts );
     }
 
     public String getTargetRepoId()
@@ -196,5 +202,29 @@ public class MergeAction
     {
         this.conflictSourceArtifacts = conflictSourceArtifacts;
     }
+
+      public  List<ArtifactMetadata> getConflictSourceArtifactsToBeDisplayed()
+    {
+        return conflictSourceArtifactsToBeDisplayed;
+    }
+
+    public void setConflictSourceArtifactsToBeDisplayed( List<ArtifactMetadata> conflictSourceArtifacts )
+        throws Exception
+    {
+        this.conflictSourceArtifactsToBeDisplayed = new ArrayList<ArtifactMetadata>();
+       HashMap<String, ArtifactMetadata> map = new HashMap<String, ArtifactMetadata>();
+        for ( ArtifactMetadata metadata : conflictSourceArtifacts )
+        {
+                String metadataId = metadata.getNamespace() + metadata.getProject() + metadata.getProjectVersion() + metadata.getVersion();
+                map.put( metadataId, metadata );
+        }
+        Iterator iterator = map.keySet().iterator();
+
+        while ( iterator.hasNext() )
+        {
+            conflictSourceArtifactsToBeDisplayed.add( map.get(iterator.next() ));
+        }
+
+    }
 }
 

Modified: archiva/branches/archiva-MRM-980/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/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java?rev=981121&r1=981120&r2=981121&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java (original)
+++ archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java Sun Aug  1 03:04:06 2010
@@ -45,6 +45,8 @@ public class DeleteManagedRepositoryActi
 {
     private ManagedRepositoryConfiguration repository;
 
+    private ManagedRepositoryConfiguration stagingRepository;
+
     private String repoid;
 
     /**
@@ -62,6 +64,7 @@ public class DeleteManagedRepositoryActi
         if ( StringUtils.isNotBlank( repoid ) )
         {
             this.repository = archivaConfiguration.getConfiguration().findManagedRepositoryById( repoid );
+            this.stagingRepository = archivaConfiguration.getConfiguration().findManagedRepositoryById( repoid +"-stage");
         }
     }
 
@@ -87,8 +90,9 @@ public class DeleteManagedRepositoryActi
     }
 
     private String deleteRepository( boolean deleteContents )
-    {   
+    {
         ManagedRepositoryConfiguration existingRepository = repository;
+        ManagedRepositoryConfiguration attachedStagingRepo = stagingRepository;
         if ( existingRepository == null )
         {
             addActionError( "A repository with that id does not exist" );
@@ -103,12 +107,23 @@ public class DeleteManagedRepositoryActi
             cleanupRepositoryData( existingRepository );
             removeRepository( repoid, configuration );
             triggerAuditEvent( repoid, null, AuditEvent.DELETE_MANAGED_REPO );
+            if(attachedStagingRepo !=null)
+            {
+                cleanupRepositoryData( attachedStagingRepo );
+                removeRepository( repoid +"-stage", configuration );
+                triggerAuditEvent(repoid +"-stage", null, AuditEvent.DELETE_MANAGED_REPO );
+
+            }
             result = saveConfiguration( configuration );
 
             if ( result.equals( SUCCESS ) )
             {
                 if ( deleteContents )
                 {
+                    if(attachedStagingRepo !=null)
+                    {
+                        removeContents( attachedStagingRepo );
+                    }
                     removeContents( existingRepository );
                 }
             }
@@ -154,7 +169,7 @@ public class DeleteManagedRepositoryActi
                 {
                     archivaConfiguration.getConfiguration().findRepositoryGroupById( repoGroup ).removeRepository( cleanupRepository.getId() );
                 }
-            }            
+            }
         }
     }
 

Modified: archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java?rev=981121&r1=981120&r2=981121&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java (original)
+++ archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryAction.java Sun Aug  1 03:04:06 2010
@@ -47,6 +47,8 @@ public class EditManagedRepositoryAction
      */
     private ManagedRepositoryConfiguration repository;
 
+    private ManagedRepositoryConfiguration stagingRepository;
+
     private String repoid;
 
     private final String action = "editRepository";
@@ -63,6 +65,7 @@ public class EditManagedRepositoryAction
         if ( StringUtils.isNotBlank( repoid ) )
         {
             repository = archivaConfiguration.getConfiguration().findManagedRepositoryById( repoid );
+            stagingRepository = archivaConfiguration.getConfiguration().findManagedRepositoryById( repoid + "-stage" );
         }
         else if ( repository != null )
         {
@@ -92,7 +95,6 @@ public class EditManagedRepositoryAction
     {
         ManagedRepositoryConfiguration existingConfig =
             archivaConfiguration.getConfiguration().findManagedRepositoryById( repository.getId() );
-
         boolean resetStats = false;
 
         // check if the location was changed
@@ -117,6 +119,10 @@ public class EditManagedRepositoryAction
 
         // We are in edit mode, remove the old repository configuration.
         removeRepository( repository.getId(), configuration );
+        if ( stagingRepository != null )
+        {
+            removeRepository( stagingRepository.getId(), configuration );
+        }
 
         // Save the repository configuration.
         String result;
@@ -126,15 +132,23 @@ public class EditManagedRepositoryAction
             triggerAuditEvent( repository.getId(), null, AuditEvent.MODIFY_MANAGED_REPO );
             addRepositoryRoles( repository );
 
+            //update changes of the staging repo
             if ( stageNeeded )
             {
-                ManagedRepositoryConfiguration stagingRepository = getStageRepoConfig();
-//                if(new File( stagingRepository.getLocation()).exists())
+
+                stagingRepository = getStageRepoConfig( configuration );
                 addRepository( stagingRepository, configuration );
-                triggerAuditEvent( stagingRepository.getId(), null, AuditEvent.ADD_MANAGED_REPO );
                 addRepositoryRoles( stagingRepository );
 
             }
+            //delete staging repo when we dont need it
+            if ( !stageNeeded )
+            {
+                stagingRepository = getStageRepoConfig(configuration);
+                removeRepository( stagingRepository.getId(), configuration );
+                removeContents( stagingRepository );
+                removeRepositoryRoles( stagingRepository );
+            }
 
             result = saveConfiguration( configuration );
             if ( resetStats )
@@ -156,9 +170,27 @@ public class EditManagedRepositoryAction
         return result;
     }
 
-    private ManagedRepositoryConfiguration getStageRepoConfig()
+    private ManagedRepositoryConfiguration getStageRepoConfig( Configuration configuration )
+    {
+        for ( ManagedRepositoryConfiguration repoConf : configuration.getManagedRepositories() )
+        {
+            if ( repoConf.getId().equals( repository.getId() + "-stage" ) )
+            {
+                stagingRepository = repoConf;
+                removeRepository( repoConf .getId() , configuration);
+                updateStagingRepository( stagingRepository );
+                return stagingRepository;
+            }
+        }
+
+        stagingRepository = new ManagedRepositoryConfiguration();
+        updateStagingRepository( stagingRepository );
+
+        return stagingRepository;
+    }
+
+    private void updateStagingRepository( ManagedRepositoryConfiguration stagingRepository )
     {
-        ManagedRepositoryConfiguration stagingRepository = new ManagedRepositoryConfiguration();
         stagingRepository.setId( repository.getId() + "-stage" );
         stagingRepository.setLayout( repository.getLayout() );
         stagingRepository.setName( repository.getName() + "-stage" );
@@ -174,9 +206,8 @@ public class EditManagedRepositoryAction
         stagingRepository.setRetentionCount( repository.getRetentionCount() );
         stagingRepository.setScanned( repository.isScanned() );
         stagingRepository.setSnapshots( repository.isSnapshots() );
-        return stagingRepository;
     }
-    
+
     @Override
     public void validate()
     {
@@ -191,7 +222,7 @@ public class EditManagedRepositoryAction
     private void resetStatistics()
     {
         repositoryStatisticsManager.deleteStatistics( repository.getId() );
-	}
+    }
 
     public String getRepoid()
     {
@@ -232,4 +263,14 @@ public class EditManagedRepositoryAction
     {
         this.repositoryStatisticsManager = repositoryStatisticsManager;
     }
+
+    public ManagedRepositoryConfiguration getStagingRepository()
+    {
+        return stagingRepository;
+    }
+
+    public void setStagingRepository( ManagedRepositoryConfiguration stagingRepository )
+    {
+        this.stagingRepository = stagingRepository;
+    }
 }

Modified: archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp?rev=981121&r1=981120&r2=981121&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp (original)
+++ archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/editRepository.jsp Sun Aug  1 03:04:06 2010
@@ -39,7 +39,17 @@
     <s:hidden name="repository.id"/>
     <s:label label="ID" name="repository.id" />
     <%@ include file="/WEB-INF/jsp/admin/include/repositoryForm.jspf" %>
-    <s:checkbox name="stageNeeded" value="stageNeeded" label="Create stage repository"/>
+
+    <c:set var="stats" value="${stagingRepository == null}"/>
+     <jsp:useBean id="stats" type="java.lang.Boolean" scope="page"/>
+     <c:if
+      test='<%= !stats.booleanValue() %>'>
+      <s:checkbox name="stageNeeded" value="true" label="Create stage repository"/>
+     </c:if>
+     <c:if
+      test='<%= stats.booleanValue() %>'>
+      <s:checkbox name="stageNeeded" value="false" label="Create stage repository"/>
+     </c:if>
     <s:submit value="Update Repository"/>
   </s:form>
 

Modified: archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/mergeExcludeConflicts.jsp
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/mergeExcludeConflicts.jsp?rev=981121&r1=981120&r2=981121&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/mergeExcludeConflicts.jsp (original)
+++ archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/mergeExcludeConflicts.jsp Sun Aug  1 03:04:06 2010
@@ -54,10 +54,11 @@
             <strong>WARNING: The following are the artifacts in conflict.</strong>
           </p>
         </div>
-        <c:forEach items="${conflictSourceArtifacts}" var="artifact">
+        <c:forEach items="${conflictSourceArtifactsToBeDisplayed}" var="artifact">
           <tr>
             <td>Artifact Id :</td>
-            <td><code>${artifact.id}</code></td>
+            <%--<td><code>${artifact.id}</code></td>--%>
+            <td align="left"> <code>${artifact.namespace} ${" "} ${artifact.project}  ${" "} ${artifact.version}</code></td>
           </tr>
         </c:forEach>
         <tr>

Modified: archiva/branches/archiva-MRM-980/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/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java?rev=981121&r1=981120&r2=981121&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java (original)
+++ archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java Sun Aug  1 03:04:06 2010
@@ -48,7 +48,7 @@ import java.util.Collections;
 import java.util.List;
 
 /**
- * DeleteManagedRepositoryActionTest 
+ * DeleteManagedRepositoryActionTest
  *
  * @version $Id$
  */
@@ -64,7 +64,7 @@ public class DeleteManagedRepositoryActi
     private MockControl archivaConfigurationControl;
 
     private ArchivaConfiguration archivaConfiguration;
-    
+
     private static final String REPO_ID = "repo-ident";
 
     private File location;
@@ -79,11 +79,11 @@ public class DeleteManagedRepositoryActi
         super.setUp();
 
         action = new DeleteManagedRepositoryAction();
-        
+
         archivaConfigurationControl = MockControl.createControl( ArchivaConfiguration.class );
         archivaConfiguration = (ArchivaConfiguration) archivaConfigurationControl.getMock();
         action.setArchivaConfiguration( archivaConfiguration );
-        
+
         roleManagerControl = MockControl.createControl( RoleManager.class );
         roleManager = (RoleManager) roleManagerControl.getMock();
         action.setRoleManager( roleManager );
@@ -122,6 +122,11 @@ public class DeleteManagedRepositoryActi
 
         archivaConfiguration.getConfiguration();
         archivaConfigurationControl.setReturnValue( configuration );
+
+         Configuration stageRepoConfiguration = new Configuration();
+        stageRepoConfiguration.addManagedRepository( createSatingRepository() );
+        archivaConfigurationControl.setReturnValue( stageRepoConfiguration );
+
         archivaConfigurationControl.replay();
 
         action.setRepoid( REPO_ID );
@@ -131,10 +136,10 @@ public class DeleteManagedRepositoryActi
         ManagedRepositoryConfiguration repository = action.getRepository();
         assertNotNull( repository );
         assertRepositoryEquals( repository, createRepository() );
-        
+
         String status = action.execute();
         assertEquals( Action.SUCCESS, status );
-                
+
         repository = action.getRepository();
         assertRepositoryEquals( repository, createRepository() );
         assertEquals( Collections.singletonList( originalRepository ), configuration.getManagedRepositories() );
@@ -148,7 +153,7 @@ public class DeleteManagedRepositoryActi
         repositoryStatisticsManagerControl.replay();
 
         prepareRoleManagerMock();
-        
+
         Configuration configuration = prepDeletionTest( createRepository(), 4 );
 
         MockControl control = mockAuditListeners();
@@ -196,15 +201,15 @@ public class DeleteManagedRepositoryActi
         repositoryStatisticsManagerControl.replay();
 
         prepareRoleManagerMock();
-        
-        Configuration configuration = prepDeletionTest( createRepository(), 4 );              
-        
+
+        Configuration configuration = prepDeletionTest( createRepository(), 4 );
+
         MockControl control = mockAuditListeners();
 
         MockControl metadataRepositoryControl = mockMetadataRepository();
 
         String status = action.deleteContents();
-        
+
         assertEquals( Action.SUCCESS, status );
 
         assertTrue( configuration.getManagedRepositories().isEmpty() );
@@ -215,7 +220,7 @@ public class DeleteManagedRepositoryActi
         control.verify();
         metadataRepositoryControl.verify();
     }
-    
+
     public void testDeleteRepositoryAndAssociatedProxyConnectors()
         throws Exception
     {
@@ -230,11 +235,11 @@ public class DeleteManagedRepositoryActi
         prepareRoleManagerMock();
 
         assertEquals( 1, configuration.getProxyConnectors().size() );
-        
+
         MockControl control = mockAuditListeners();
         MockControl metadataRepositoryControl = mockMetadataRepository();
         String status = action.deleteContents();
-        
+
         assertEquals( Action.SUCCESS, status );
 
         assertTrue( configuration.getManagedRepositories().isEmpty() );
@@ -246,7 +251,7 @@ public class DeleteManagedRepositoryActi
         control.verify();
         metadataRepositoryControl.verify();
     }
-    
+
     public void testDeleteRepositoryCancelled()
         throws Exception
     {
@@ -254,7 +259,7 @@ public class DeleteManagedRepositoryActi
 
         ManagedRepositoryConfiguration originalRepository = createRepository();
         Configuration configuration = prepDeletionTest( originalRepository, 3 );
-                
+
         String status = action.execute();
         assertEquals( Action.SUCCESS, status );
 
@@ -266,36 +271,8 @@ public class DeleteManagedRepositoryActi
 
         repositoryStatisticsManagerControl.verify();
     }
-    
-    public void testDeleteRepositoryAndReposUnderRepoGroup()
-        throws Exception
-    {
-        repositoryStatisticsManager.deleteStatistics( REPO_ID );
-        repositoryStatisticsManagerControl.replay();
-
-        Configuration configuration = prepDeletionTest( createRepository(), 5 );
-        List<String> repoIds = new ArrayList<String>();
-        repoIds.add( REPO_ID );
-        configuration.addRepositoryGroup( createRepoGroup( repoIds, "repo.group" ) );
-
-        prepareRoleManagerMock();
-
-        assertEquals( 1, configuration.getRepositoryGroups().size() );
-        
-        MockControl control = mockAuditListeners();
-        MockControl metadataRepositoryControl = mockMetadataRepository();
-        String status = action.deleteContents();
-        assertEquals( Action.SUCCESS, status );
-
-        assertTrue( configuration.getManagedRepositories().isEmpty() );
-        assertEquals( 0, configuration.getRepositoryGroups().get( 0 ).getRepositories().size() );
 
-        assertFalse( location.exists() );
 
-        repositoryStatisticsManagerControl.verify();
-        control.verify();
-        metadataRepositoryControl.verify();
-    }
 
     private Configuration prepDeletionTest( ManagedRepositoryConfiguration originalRepository, int expectCountGetConfig )
         throws RegistryException, IndeterminateConfigurationException
@@ -307,6 +284,11 @@ public class DeleteManagedRepositoryActi
         archivaConfiguration.getConfiguration();
         archivaConfigurationControl.setReturnValue( configuration, expectCountGetConfig );
 
+        Configuration stageRepoConfiguration = new Configuration();
+        stageRepoConfiguration.addManagedRepository( createSatingRepository() );
+        archivaConfigurationControl.setReturnValue( stageRepoConfiguration );
+
+
         archivaConfiguration.save( configuration );
         archivaConfigurationControl.replay();
 
@@ -363,16 +345,33 @@ public class DeleteManagedRepositoryActi
         return r;
     }
 
+    private ManagedRepositoryConfiguration createSatingRepository()
+    {
+        ManagedRepositoryConfiguration r = new ManagedRepositoryConfiguration();
+        r.setId( REPO_ID +"-stage" );
+        r.setName( "repo name" );
+        r.setLocation( location.getAbsolutePath() );
+        r.setLayout( "default" );
+        r.setRefreshCronExpression( "* 0/5 * * * ?" );
+        r.setDaysOlder( 0 );
+        r.setRetentionCount( 0 );
+        r.setReleases( true );
+        r.setSnapshots( true );
+        r.setScanned( false );
+        r.setDeleteReleasedSnapshots( false );
+        return r;
+    }
+
     private RemoteRepositoryConfiguration createRemoteRepository(String id, String url)
     {
         RemoteRepositoryConfiguration r = new RemoteRepositoryConfiguration();
         r.setId( id );
         r.setUrl( url );
         r.setLayout( "default" );
-        
+
         return r;
     }
-    
+
     private ProxyConnectorConfiguration createProxyConnector( String managedRepoId, String remoteRepoId )
     {
         ProxyConnectorConfiguration connector = new ProxyConnectorConfiguration();
@@ -387,10 +386,10 @@ public class DeleteManagedRepositoryActi
         RepositoryGroupConfiguration repoGroup = new RepositoryGroupConfiguration();
         repoGroup.setId( repoGroupId );
         repoGroup.setRepositories( repoIds );
-        
+
         return repoGroup;
     }
-    
+
     private void prepareRoleManagerMock()
         throws RoleManagerException
     {

Modified: archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java
URL: http://svn.apache.org/viewvc/archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java?rev=981121&r1=981120&r2=981121&view=diff
==============================================================================
--- archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java (original)
+++ archiva/branches/archiva-MRM-980/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java Sun Aug  1 03:04:06 2010
@@ -95,6 +95,10 @@ public class EditManagedRepositoryAction
 
         archivaConfiguration.getConfiguration();
         archivaConfigurationControl.setReturnValue( configuration );
+        Configuration stageRepoConfiguration = new Configuration();
+        stageRepoConfiguration.addManagedRepository( createStagingRepository() );
+        archivaConfigurationControl.setReturnValue( stageRepoConfiguration );
+
         archivaConfigurationControl.replay();
 
         action.setRepoid( REPO_ID );
@@ -116,10 +120,18 @@ public class EditManagedRepositoryAction
     {
         roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID );
         roleManagerControl.setReturnValue( false );
+
+         roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID +"-stage" );
+        roleManagerControl.setReturnValue( false );
+
         roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID );
         roleManagerControl.setVoidCallable();
         roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID );
         roleManagerControl.setReturnValue( false );
+
+        roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID +"-stage");
+        roleManagerControl.setReturnValue( false );
+
         roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID );
         roleManagerControl.setVoidCallable();
 
@@ -128,6 +140,10 @@ public class EditManagedRepositoryAction
         Configuration configuration = createConfigurationForEditing( createRepository() );
         archivaConfiguration.getConfiguration();
         archivaConfigurationControl.setReturnValue( configuration );
+
+        Configuration stageRepoConfiguration = new Configuration();
+        stageRepoConfiguration.addManagedRepository( createStagingRepository() );
+        archivaConfigurationControl.setReturnValue( stageRepoConfiguration );
         archivaConfigurationControl.setReturnValue( configuration );
         archivaConfigurationControl.setReturnValue( configuration );
 
@@ -167,10 +183,18 @@ public class EditManagedRepositoryAction
     {
         roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID );
         roleManagerControl.setReturnValue( false );
+
+        roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID +"-stage");
+        roleManagerControl.setReturnValue( false );
+
         roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID );
         roleManagerControl.setVoidCallable();
         roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID );
         roleManagerControl.setReturnValue( false );
+
+        roleManager.templatedRoleExists( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID +"-stage");
+        roleManagerControl.setReturnValue( false );
+
         roleManager.createTemplatedRole( ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID );
         roleManagerControl.setVoidCallable();
 
@@ -179,6 +203,11 @@ public class EditManagedRepositoryAction
         Configuration configuration = createConfigurationForEditing( createRepository() );
         archivaConfiguration.getConfiguration();
         archivaConfigurationControl.setReturnValue( configuration );
+        Configuration stageRepoConfiguration = new Configuration();
+        stageRepoConfiguration.addManagedRepository( createStagingRepository() );
+        archivaConfigurationControl.setReturnValue( stageRepoConfiguration );
+
+
         archivaConfigurationControl.setReturnValue( configuration );
         archivaConfigurationControl.setReturnValue( configuration );
 
@@ -230,9 +259,11 @@ public class EditManagedRepositoryAction
     }
 
     private Configuration createConfigurationForEditing( ManagedRepositoryConfiguration repositoryConfiguration )
+        throws Exception
     {
         Configuration configuration = new Configuration();
         configuration.addManagedRepository( repositoryConfiguration );
+//        configuration.addManagedRepository( createStagingRepository() );
         return configuration;
     }
 
@@ -245,6 +276,15 @@ public class EditManagedRepositoryAction
         return r;
     }
 
+    private ManagedRepositoryConfiguration createStagingRepository()
+        throws IOException
+    {
+        ManagedRepositoryConfiguration r = new ManagedRepositoryConfiguration();
+        r.setId( REPO_ID + "-stage" );
+        populateStagingRepository( r );
+        return r;
+    }
+
     private void populateRepository( ManagedRepositoryConfiguration repository )
         throws IOException
     {
@@ -260,4 +300,19 @@ public class EditManagedRepositoryAction
         repository.setScanned( false );
         repository.setDeleteReleasedSnapshots( true );
     }
+    private void populateStagingRepository( ManagedRepositoryConfiguration repository )
+        throws IOException
+    {
+        repository.setId( REPO_ID + "-stage");
+        repository.setName( "repo name" );
+        repository.setLocation( location.getCanonicalPath() );
+        repository.setLayout( "default" );
+        repository.setRefreshCronExpression( "* 0/5 * * * ?" );
+        repository.setDaysOlder( 31 );
+        repository.setRetentionCount( 20 );
+        repository.setReleases( true );
+        repository.setSnapshots( true );
+        repository.setScanned( false );
+        repository.setDeleteReleasedSnapshots( true );
+    }
 }