Modified: 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp
URL: 
http://svn.apache.org/viewvc/archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp?rev=1185127&r1=1185126&r2=1185127&view=diff
==============================================================================
--- 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp
 (original)
+++ 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/jsp/admin/repositories.jsp
 Mon Oct 17 12:34:20 2011
@@ -271,21 +271,13 @@
     <archiva:copy-paste-snippet object="${repository}" wrapper="toggle" />
   </td>
 </tr>
-
-
-  <c:set var="str" value="${repository.id}" />
-  <jsp:useBean id="str" type="java.lang.String" scope="page"/>
-  <c:set var="location" value="${repository.location}"/>
-  <jsp:useBean id="location" type="java.lang.String" scope="page"/>
-
-  <%-- TODO: fix this hard coding - make stage repository configuration more 
transparent than the actual ManagedRepositoryConfiguration --%>
-  <c:if test='<%= new File (new File(location ).getParent() ,str + "-stage" 
).exists()%>'>
-     <tr>
-       <th>
-         stage repository location
-       </th>
+<c:if test="${repository.stagingRequired}">
+  <tr>
+    <th>
+      Stage repository location
+    </th>
     <td>
-      ${repository.location}${'-stage'}
+      ${repository.stagingLocation}
     </td>
   </tr>
   <redback:ifAuthorized permission="archiva-merge-repository" 
resource="${repository.id}">
@@ -294,22 +286,12 @@
     <td>
       <s:form action="merge" theme="simple">
         <s:hidden name="repoid" value="%{#attr.repository.id}"/>
-        <%--<s:hidden name="repository" value="%{repository}"/>--%>
-        <table>
-          <tr>
-            <td><s:submit id="Merge" value="Merge"/></td>
-          </tr>
-        </table>
+        <s:submit id="Merge" value="Merge"/>
       </s:form>
     </td>
   </tr>
   </redback:ifAuthorized>
-
-
-  </c:if>
-
-
-
+</c:if>
 </table>
 
 </div>

Modified: 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/UploadActionTest.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/UploadActionTest.java?rev=1185127&r1=1185126&r2=1185127&view=diff
==============================================================================
--- 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/UploadActionTest.java
 (original)
+++ 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/UploadActionTest.java
 Mon Oct 17 12:34:20 2011
@@ -846,6 +846,8 @@ public class UploadActionTest
         verifyProjectMetadataChecksums( repoLocation );
     }
 
+    // FIXME STAGE: test staging pushes it to the right place
+
     ManagedRepository getManagedRepository()
     {
         return new BeanReplicator().replicateBean( this.managedRepository, 
ManagedRepository.class );

Modified: 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java?rev=1185127&r1=1185126&r2=1185127&view=diff
==============================================================================
--- 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
 (original)
+++ 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java
 Mon Oct 17 12:34:20 2011
@@ -181,15 +181,6 @@ public class DeleteManagedRepositoryActi
         archivaConfiguration.getConfiguration();
         archivaConfigurationControl.setReturnValue( configuration );
 
-        Configuration stageRepoConfiguration = new Configuration();
-        stageRepoConfiguration.addManagedRepository( createStagingRepository() 
);
-        archivaConfigurationControl.setReturnValue( stageRepoConfiguration );
-
-
-        archivaConfiguration.getConfiguration();
-        archivaConfigurationControl.setReturnValue( configuration );
-
-
         archivaConfigurationControl.replay();
 
         action.setRepoid( REPO_ID );
@@ -344,13 +335,6 @@ public class DeleteManagedRepositoryActi
         archivaConfiguration.getConfiguration();
         archivaConfigurationControl.setReturnValue( configuration, 
expectCountGetConfig );
 
-        Configuration stageRepoConfiguration = new Configuration();
-        stageRepoConfiguration.addManagedRepository( createStagingRepository() 
);
-        archivaConfigurationControl.setReturnValue( stageRepoConfiguration );
-
-        archivaConfiguration.save( configuration );
-
-        // save for staging repo delete
         archivaConfiguration.save( configuration );
 
         archivaConfigurationControl.replay();
@@ -410,23 +394,6 @@ public class DeleteManagedRepositoryActi
         return r;
     }
 
-    private ManagedRepositoryConfiguration createStagingRepository()
-    {
-        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();

Modified: 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java?rev=1185127&r1=1185126&r2=1185127&view=diff
==============================================================================
--- 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java
 (original)
+++ 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/web/action/admin/repositories/EditManagedRepositoryActionTest.java
 Mon Oct 17 12:34:20 2011
@@ -154,9 +154,6 @@ public class EditManagedRepositoryAction
 
         archivaConfiguration.getConfiguration();
         archivaConfigurationControl.setReturnValue( configuration );
-        Configuration stageRepoConfiguration = new Configuration();
-        stageRepoConfiguration.addManagedRepository( createStagingRepository() 
);
-        archivaConfigurationControl.setReturnValue( stageRepoConfiguration );
 
         archivaConfigurationControl.replay();
 
@@ -180,8 +177,6 @@ public class EditManagedRepositoryAction
     public void testEditRepository()
         throws Exception
     {
-        String stageRepoId = REPO_ID + "-stage";
-
         roleManager.templatedRoleExists( 
ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID );
         roleManagerControl.setReturnValue( false );
         roleManager.createTemplatedRole( 
ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID );
@@ -192,16 +187,6 @@ public class EditManagedRepositoryAction
         roleManager.createTemplatedRole( 
ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID );
         roleManagerControl.setVoidCallable();
 
-        roleManager.templatedRoleExists( 
ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, stageRepoId );
-        roleManagerControl.setReturnValue( false );
-        roleManager.createTemplatedRole( 
ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, stageRepoId );
-        roleManagerControl.setVoidCallable();
-
-        roleManager.templatedRoleExists( 
ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, stageRepoId );
-        roleManagerControl.setReturnValue( false );
-        roleManager.createTemplatedRole( 
ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, stageRepoId );
-        roleManagerControl.setVoidCallable();
-
         roleManagerControl.replay();
 
         registry.getString( "appserver.base", "${appserver.base}" );
@@ -223,13 +208,6 @@ public class EditManagedRepositoryAction
         repositoryTaskScheduler.queueTask( task );
         repositoryTaskSchedulerControl.setVoidCallable();
 
-        RepositoryTask stageTask = new RepositoryTask();
-        stageTask.setRepositoryId( stageRepoId );
-        repositoryTaskScheduler.isProcessingRepositoryTask( stageRepoId );
-        repositoryTaskSchedulerControl.setReturnValue( false );
-        repositoryTaskScheduler.queueTask( stageTask );
-        repositoryTaskSchedulerControl.setVoidCallable();
-
         repositoryTaskSchedulerControl.replay();
 
         Configuration configuration = createConfigurationForEditing( 
createRepository() );
@@ -241,9 +219,6 @@ public class EditManagedRepositoryAction
         archivaConfigurationControl.setReturnValue( configuration );
         archivaConfigurationControl.setReturnValue( configuration );
 
-        Configuration stageRepoConfiguration = new Configuration();
-        stageRepoConfiguration.addManagedRepository( createStagingRepository() 
);
-        archivaConfigurationControl.setReturnValue( stageRepoConfiguration );
         archivaConfigurationControl.setReturnValue( configuration );
         archivaConfigurationControl.setReturnValue( configuration );
 
@@ -260,6 +235,7 @@ public class EditManagedRepositoryAction
         ManagedRepository repository = action.getRepository();
         populateRepository( repository );
         repository.setName( "new repo name" );
+        repository.setStagingRequired( true );
 
         MockControl repositoryStatisticsManagerControl = 
MockControl.createControl( RepositoryStatisticsManager.class );
         RepositoryStatisticsManager repositoryStatisticsManager =
@@ -269,10 +245,10 @@ public class EditManagedRepositoryAction
         // no deletion
         repositoryStatisticsManagerControl.replay();
 
+        // STAGE FIXME: hardcoded ID
         new File( "target/test/" + REPO_ID + "-stage" ).mkdirs();
 
         action.setRepository( repository );
-        action.setStageNeeded( true );
         String status = action.commit();
         assertEquals( Action.SUCCESS, status );
 
@@ -301,6 +277,7 @@ public class EditManagedRepositoryAction
         roleManager.createTemplatedRole( 
ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, REPO_ID );
         roleManagerControl.setVoidCallable();
 
+        // STAGE FIXME: hardcoded ID
         roleManager.templatedRoleExists( 
ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID + "-stage" );
         roleManagerControl.setReturnValue( false );
         roleManager.createTemplatedRole( 
ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, REPO_ID + "-stage" );
@@ -345,16 +322,9 @@ public class EditManagedRepositoryAction
 
         archivaConfigurationControl.setReturnValue( buildEasyConfiguration() );
 
-        Configuration stageRepoConfiguration = buildEasyConfiguration();
-        stageRepoConfiguration.addManagedRepository( createStagingRepository() 
);
-        archivaConfigurationControl.setReturnValue( stageRepoConfiguration );
-
-        archivaConfigurationControl.setReturnValue( configuration );
         archivaConfigurationControl.setReturnValue( configuration );
 
         archivaConfiguration.save( configuration );
-        configuration.addManagedRepository( 
stageRepoConfiguration.getManagedRepositories().get( 0 ) );
-        archivaConfiguration.save( configuration );
         archivaConfiguration.save( configuration );
 
         archivaConfigurationControl.replay();
@@ -367,9 +337,11 @@ public class EditManagedRepositoryAction
         repositoryStatisticsManager.deleteStatistics( metadataRepository, 
REPO_ID );
         repositoryStatisticsManagerControl.replay();
 
+        // STAGE FIXME: hardcoded ID
         new File( "target/test/location/" + REPO_ID + "-stage" ).mkdirs();
 
-        action.setStageNeeded( true );
+        // FIXME: stage setting needed
+//        action.setStageNeeded( true );
         action.setRepoid( REPO_ID );
         action.prepare();
         assertEquals( REPO_ID, action.getRepoid() );
@@ -599,29 +571,4 @@ public class EditManagedRepositoryAction
         populateRepository( r );
         return r;
     }
-
-    private ManagedRepositoryConfiguration createStagingRepository()
-        throws IOException
-    {
-        ManagedRepositoryConfiguration r = new 
ManagedRepositoryConfiguration();
-        r.setId( REPO_ID + "-stage" );
-        populateStagingRepository( r );
-        return r;
-    }
-
-    private void populateStagingRepository( ManagedRepositoryConfiguration 
repository )
-        throws IOException
-    {
-        repository.setId( REPO_ID + "-stage" );
-        repository.setName( "repo name" );
-        repository.setLocation( "${appserver.base}/location" );
-        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 );
-    }
 }

Modified: 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java?rev=1185127&r1=1185126&r2=1185127&view=diff
==============================================================================
--- 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
 (original)
+++ 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/archiva/webdav/ArchivaDavResourceFactory.java
 Mon Oct 17 12:34:20 2011
@@ -83,16 +83,16 @@ import org.slf4j.LoggerFactory;
 import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Service;
 
-import javax.annotation.PostConstruct;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+import javax.inject.Named;
+import javax.servlet.http.HttpServletResponse;
 
 /**
  *
@@ -253,10 +253,11 @@ public class ArchivaDavResourceFactory
         }
         else
         {
-            ManagedRepositoryContent managedRepository = null;
+            ManagedRepositoryContent managedRepository;
 
             try
             {
+                // STAGE FIXME: replace with pseudo staging repository when 
needed - good time to switch to new repository API, and probably only use 
config here
                 managedRepository = 
repositoryFactory.getManagedRepositoryContent( archivaLocator.getRepositoryId() 
);
             }
             catch ( RepositoryNotFoundException e )
@@ -315,7 +316,7 @@ public class ArchivaDavResourceFactory
                 }
                 else
                 {
-                    if ( resourcesInAbsolutePath != null && 
resourcesInAbsolutePath.size() > 1 )
+                    if ( resourcesInAbsolutePath.size() > 1 )
                     {
                         // merge the metadata of all repos under group
                         ArchivaRepositoryMetadata mergedMetadata = new 
ArchivaRepositoryMetadata();
@@ -534,16 +535,19 @@ public class ArchivaDavResourceFactory
 
                 // check if target repo is enabled for releases
                 // we suppose that release-artifacts can be deployed only to 
repos enabled for releases
-                if ( managedRepository.getRepository().isReleases() && 
!repositoryRequest.isMetadata( resourcePath )
-                    && !repositoryRequest.isSupportFile( resourcePath ) )
+                // also ignore flag for staging repositories, no harm in 
redeploying there
+                if ( managedRepository.getRepository().isReleases() && 
!repositoryRequest.isMetadata( resourcePath ) &&
+                    !repositoryRequest.isSupportFile( resourcePath ) &&
+                    !managedRepository.getRepository().isStagingRequired() )
                 {
-                    ArtifactReference artifact = null;
+                    ArtifactReference artifact;
                     try
                     {
                         artifact = managedRepository.toArtifactReference( 
resourcePath );
 
                         if ( !VersionUtil.isSnapshot( artifact.getVersion() ) )
                         {
+                            // STAGE FIXME: make sure staging was already 
considered
                             // check if artifact already exists and if 
artifact re-deployment to the repository is allowed
                             if ( managedRepository.hasContent( artifact )
                                 && 
managedRepository.getRepository().isBlockRedeployments() )

Modified: 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/ArchivaDavResourceFactoryTest.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/ArchivaDavResourceFactoryTest.java?rev=1185127&r1=1185126&r2=1185127&view=diff
==============================================================================
--- 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/ArchivaDavResourceFactoryTest.java
 (original)
+++ 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/webdav/ArchivaDavResourceFactoryTest.java
 Mon Oct 17 12:34:20 2011
@@ -141,13 +141,13 @@ public class ArchivaDavResourceFactoryTe
         {
             defaultManagedRepositoryAdmin.addManagedRepository(
                 createManagedRepository( RELEASES_REPO, new File( 
"target/test-classes/" + RELEASES_REPO ).getPath(),
-                                         "default" ), false, null );
+                                         "default" ), null );
         }
         if ( defaultManagedRepositoryAdmin.getManagedRepository( INTERNAL_REPO 
) == null )
         {
             defaultManagedRepositoryAdmin.addManagedRepository(
                 createManagedRepository( INTERNAL_REPO, new File( 
"target/test-classes/" + INTERNAL_REPO ).getPath(),
-                                         "default" ), false, null );
+                                         "default" ), null );
         }
         RepositoryGroup repoGroupConfig = new RepositoryGroup();
         repoGroupConfig.setId( LOCAL_REPO_GROUP );
@@ -335,7 +335,7 @@ public class ArchivaDavResourceFactoryTe
 
         defaultManagedRepositoryAdmin.addManagedRepository(
             createManagedRepository( LOCAL_MIRROR_REPO, new File( 
"target/test-classes/local-mirror" ).getPath(),
-                                     "default" ), false, null );
+                                     "default" ), null );
 
         List<RepositoryGroupConfiguration> repoGroups = new 
ArrayList<RepositoryGroupConfiguration>();
         RepositoryGroupConfiguration repoGroup = new 
RepositoryGroupConfiguration();
@@ -506,7 +506,7 @@ public class ArchivaDavResourceFactoryTe
     {
         defaultManagedRepositoryAdmin.addManagedRepository(
             createManagedRepository( LEGACY_REPO, new File( 
"target/test-classes/" + LEGACY_REPO ).getPath(),
-                                     "legacy" ), false, null );
+                                     "legacy" ), null );
         DavResourceLocator locator =
             new ArchivaDavResourceLocator( "", "/repository/" + LEGACY_REPO + 
"/eclipse/maven-metadata.xml",
                                            LEGACY_REPO, new 
ArchivaDavLocatorFactory() );

Modified: 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java?rev=1185127&r1=1185126&r2=1185127&view=diff
==============================================================================
--- 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java
 (original)
+++ 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java
 Mon Oct 17 12:34:20 2011
@@ -87,8 +87,6 @@ public class AdministrationServiceImpl
 
     private RepositoryMerger repositoryMerger;
 
-    private static final String STAGE = "-stage";
-
     private AuditListener auditListener;
 
     private RepositorySessionFactory repositorySessionFactory;
@@ -360,7 +358,7 @@ public class AdministrationServiceImpl
 
     public Boolean addManagedRepository( String repoId, String layout, String 
name, String location,
                                          boolean blockRedeployments, boolean 
releasesIncluded,
-                                         boolean snapshotsIncluded, boolean 
stageRepoNeeded, String cronExpression,
+                                         boolean snapshotsIncluded, boolean 
stagingRequired, String cronExpression,
                                          int daysOlder, int retentionCount, 
boolean deleteReleasedSnapshots )
         throws Exception
     {
@@ -370,8 +368,8 @@ public class AdministrationServiceImpl
                                                                         
snapshotsIncluded, releasesIncluded,
                                                                         
blockRedeployments, cronExpression, null, false,
                                                                         
daysOlder, retentionCount,
-                                                                        
deleteReleasedSnapshots, false );
-        return managedRepositoryAdmin.addManagedRepository( repository, 
stageRepoNeeded, getAuditInformation() );
+                                                                        
deleteReleasedSnapshots, stagingRequired );
+        return managedRepositoryAdmin.addManagedRepository( repository, 
getAuditInformation() );
 
     }
 
@@ -495,9 +493,7 @@ public class AdministrationServiceImpl
     public boolean merge( String repoId, boolean skipConflicts )
         throws Exception
     {
-        String stagingId = repoId + STAGE;
         org.apache.archiva.admin.model.beans.ManagedRepository repoConfig;
-        org.apache.archiva.admin.model.beans.ManagedRepository stagingConfig;
 
         repoConfig = managedRepositoryAdmin.getManagedRepository( repoId );
 
@@ -509,10 +505,11 @@ public class AdministrationServiceImpl
             MetadataRepository metadataRepository = 
repositorySession.getRepository();
             if ( repoConfig != null )
             {
-                stagingConfig = managedRepositoryAdmin.getManagedRepository( 
stagingId );
-
-                if ( stagingConfig != null )
+                String stagingId = "foo";
+                if ( repoConfig.isStagingRequired() )
                 {
+                    // STAGE FIXME: duplication with webapp - move all 
MergeAction to the staging module and have this
+                    // use it - make sure this gets tested
                     List<ArtifactMetadata> sourceArtifacts = 
metadataRepository.getArtifacts( stagingId );
 
                     if ( repoConfig.isReleases() && !repoConfig.isSnapshots() )
@@ -521,7 +518,7 @@ public class AdministrationServiceImpl
                         if ( skipConflicts )
                         {
                             List<ArtifactMetadata> conflicts =
-                                repositoryMerger.getConflictingArtifacts( 
metadataRepository, repoId, stagingId );
+                                repositoryMerger.getConflictingArtifacts( 
metadataRepository, repoId );
 
                             if ( log.isDebugEnabled() )
                             {
@@ -550,7 +547,7 @@ public class AdministrationServiceImpl
                         if ( skipConflicts )
                         {
                             List<ArtifactMetadata> conflicts =
-                                repositoryMerger.getConflictingArtifacts( 
metadataRepository, repoId, stagingId );
+                                repositoryMerger.getConflictingArtifacts( 
metadataRepository, repoId );
 
                             if ( log.isDebugEnabled() )
                             {
@@ -651,7 +648,6 @@ public class AdministrationServiceImpl
         repositoryMerger.merge( metadataRepository, sourceRepoId, repoid, 
artifactListWithOutSnapShots );
     }
 
-
     // FIXME find a way to get user id and adress
     private AuditInformation getAuditInformation()
     {

Modified: 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImplTest.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImplTest.java?rev=1185127&r1=1185126&r2=1185127&view=diff
==============================================================================
--- 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImplTest.java
 (original)
+++ 
archiva/branches/staging-refactor/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImplTest.java
 Mon Oct 17 12:34:20 2011
@@ -158,8 +158,6 @@ public class AdministrationServiceImplTe
 
     private Registry registry;
 
-    private static final String STAGE = "-stage";
-
     private DefaultManagedRepositoryAdmin managedRepositoryAdmin;
 
     private DefaultRemoteRepositoryAdmin remoteRepositoryAdmin;
@@ -813,6 +811,7 @@ public class AdministrationServiceImplTe
         throws Exception
     {
         archivaConfigControl.expectAndReturn( 
archivaConfig.getConfiguration(), config, 1, 5 );
+        // STAGE FIXME: verify no staging
 
         configControl.expectAndReturn( config.getManagedRepositories(),
                                        Arrays.asList( createManagedRepo( 
"repo", "default", "repo", true, false ) ), 1,
@@ -848,18 +847,18 @@ public class AdministrationServiceImplTe
 
         ManagedRepositoryConfiguration merge = createManagedRepo( "merge", 
"default", "merge", true, true );
         merge.setLocation( "target/test-repository/merge" );
-        ManagedRepositoryConfiguration staging = createStagingRepo( merge );
 
         RepositoryTask task = new RepositoryTask();
         task.setScanAll( true );
 
         archivaConfigControl.expectAndReturn( 
archivaConfig.getConfiguration(), config, 1, 5 );
-        configControl.expectAndReturn( config.getManagedRepositories(), 
Arrays.asList( merge, staging ), 1, 5 );
+        configControl.expectAndReturn( config.getManagedRepositories(), 
Arrays.asList( merge ), 1, 5 );
+        // STAGE FIXME: verify no staging
 
-        metadataRepositoryControl.expectAndReturn( 
metadataRepository.getArtifacts( staging.getId() ), sources );
+//        metadataRepositoryControl.expectAndReturn( 
metadataRepository.getArtifacts( staging.getId() ), sources );
         repositoryMergerControl.expectAndDefaultReturn(
-            repositoryMerger.getConflictingArtifacts( metadataRepository, 
staging.getId(), merge.getId() ), sources );
-        repositoryMerger.merge( metadataRepository, staging.getId(), 
merge.getId() );
+            repositoryMerger.getConflictingArtifacts( metadataRepository, 
merge.getId() ), sources );
+//        repositoryMerger.merge( metadataRepository, staging.getId(), 
merge.getId() );
         repositoryMergerControl.setVoidCallable();
         repositoryTaskSchedulerControl.expectAndReturn( 
repositoryTaskScheduler.isProcessingRepositoryTask( "merge" ),
                                                         false );
@@ -919,15 +918,14 @@ public class AdministrationServiceImplTe
 
         ManagedRepositoryConfiguration repo = createManagedRepo( "repo", 
"default", "repo", true, true );
         repo.setLocation( "target/test-repository/one" );
-        ManagedRepositoryConfiguration staging = createStagingRepo( repo );
 
-        configControl.expectAndReturn( config.getManagedRepositories(), 
Arrays.asList( repo, staging ), 1, 5 );
+        configControl.expectAndReturn( config.getManagedRepositories(), 
Arrays.asList( repo ), 1, 5 );
         archivaConfigControl.expectAndReturn( 
archivaConfig.getConfiguration(), config, 1, 5 );
 
-        metadataRepositoryControl.expectAndReturn( 
metadataRepository.getArtifacts( staging.getId() ), sources );
+        // FIXME STAGE: get sources
         repositoryMergerControl.expectAndDefaultReturn(
-            repositoryMerger.getConflictingArtifacts( metadataRepository, 
staging.getId(), repo.getId() ), conflicts );
-        repositoryMerger.merge( metadataRepository, staging.getId(), 
repo.getId(), artifactsWithOutConflicts );
+            repositoryMerger.getConflictingArtifacts( metadataRepository, 
repo.getId() ), conflicts );
+        repositoryMerger.merge( metadataRepository, null, repo.getId(), 
artifactsWithOutConflicts );
         repositoryMergerControl.setMatcher( MockControl.ALWAYS_MATCHER );
         repositoryMergerControl.setVoidCallable();
         repositoryTaskSchedulerControl.expectAndReturn( 
repositoryTaskScheduler.isProcessingRepositoryTask( "repo" ),
@@ -967,6 +965,7 @@ public class AdministrationServiceImplTe
         String layout = "default";
         String name = projId + " Releases";
         String releaseLocation = "target/test-repository/" + projId + 
".releases";
+        // STAGE FIXME: hardcoded ID
         String stageLocation = releaseLocation + "-stage";
         String appserverBase = "target";
 
@@ -999,6 +998,7 @@ public class AdministrationServiceImplTe
         roleManager.createTemplatedRole( 
ArchivaRoleConstants.TEMPLATE_REPOSITORY_MANAGER, repoId );
         roleManagerControl.setVoidCallable();
 
+        // STAGE FIXME: hardcoded ID
         roleManager.templatedRoleExists( 
ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoId + "-stage" );
         roleManagerControl.setReturnValue( false );
         roleManager.createTemplatedRole( 
ArchivaRoleConstants.TEMPLATE_REPOSITORY_OBSERVER, repoId + "-stage" );
@@ -1033,7 +1033,8 @@ public class AdministrationServiceImplTe
         repositoryTaskScheduler.queueTask( task );
         repositoryTaskSchedulerControl.setVoidCallable();
 
-        //staged repo
+        //STAGE FIXME: hardcoded id
+        String STAGE="-stage";
         repositoryTaskSchedulerControl.expectAndReturn(
             repositoryTaskScheduler.isProcessingRepositoryTask( repoId + STAGE 
), false );
         task = new RepositoryTask();
@@ -1259,19 +1260,6 @@ public class AdministrationServiceImplTe
         return repoConfig;
     }
 
-    private ManagedRepositoryConfiguration createStagingRepo( 
ManagedRepositoryConfiguration repoConfig )
-    {
-        ManagedRepositoryConfiguration stagingRepo = new 
ManagedRepositoryConfiguration();
-        stagingRepo.setId( repoConfig.getId() + STAGE );
-        stagingRepo.setLayout( repoConfig.getLayout() );
-        stagingRepo.setName( repoConfig + STAGE );
-        stagingRepo.setReleases( repoConfig.isReleases() );
-        stagingRepo.setSnapshots( repoConfig.isSnapshots() );
-        stagingRepo.setLocation( repoConfig.getLocation() );
-
-        return stagingRepo;
-    }
-
     private AuditEvent createAuditEvent( ManagedRepositoryConfiguration 
repoConfig )
     {
         AuditEvent auditEvent = new AuditEvent();

Modified: 
archiva/branches/staging-refactor/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/staging-refactor/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java?rev=1185127&r1=1185126&r2=1185127&view=diff
==============================================================================
--- 
archiva/branches/staging-refactor/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java
 (original)
+++ 
archiva/branches/staging-refactor/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMerger.java
 Mon Oct 17 12:34:20 2011
@@ -157,6 +157,7 @@ public class Maven2RepositoryMerger
         // pom file copying
         String fileName = artifactMetadata.getProject() + "-" + 
artifactMetadata.getVersion() + ".pom";
 
+        // STAGE FIXME: don't re-parse and construct the path - use the 
filename we already have
         // pom file copying
         // TODO need to use path translator to get the pom file path
 //        String fileName = artifactMetadata.getProject() + "-" + 
artifactMetadata.getVersion() + ".pom";
@@ -172,10 +173,10 @@ public class Maven2RepositoryMerger
 
         String index = artifactPath.substring( lastIndex + 1 );
         int last = index.lastIndexOf( '.' );
-        File sourcePomFile = new File( sourceRepoPath, artifactPath.substring( 
0, lastIndex ) + "/"
-            + artifactPath.substring( lastIndex + 1 ).substring( 0, last ) + 
".pom" );
-        File targetPomFile = new File( targetRepoPath, artifactPath.substring( 
0, lastIndex ) + "/"
-            + artifactPath.substring( lastIndex + 1 ).substring( 0, last ) + 
".pom" );
+        File sourcePomFile = new File( sourceRepoPath, artifactPath.substring( 
0, lastIndex ) + "/" +
+            artifactPath.substring( lastIndex + 1 ).substring( 0, last ) + 
".pom" );
+        File targetPomFile = new File( targetRepoPath, artifactPath.substring( 
0, lastIndex ) + "/" +
+            artifactPath.substring( lastIndex + 1 ).substring( 0, last ) + 
".pom" );
 
         if ( !targetPomFile.exists() && sourcePomFile.exists() )
         {
@@ -187,15 +188,16 @@ public class Maven2RepositoryMerger
         {
 
             // updating version metadata files
-            File versionMetaDataFileInSourceRepo =
-                pathTranslator.toFile( new File( sourceRepoPath ), 
artifactMetadata.getNamespace(),
-                                       artifactMetadata.getProject(), 
artifactMetadata.getVersion(),
-                                       METADATA_FILENAME );
+            File versionMetaDataFileInSourceRepo = pathTranslator.toFile( new 
File( sourceRepoPath ),
+                                                                          
artifactMetadata.getNamespace(),
+                                                                          
artifactMetadata.getProject(),
+                                                                          
artifactMetadata.getVersion(),
+                                                                          
METADATA_FILENAME );
 
             if ( versionMetaDataFileInSourceRepo.exists() )
             {
-                String relativePathToVersionMetadataFile =
-                    versionMetaDataFileInSourceRepo.getAbsolutePath().split( 
sourceRepoPath )[1];
+                String relativePathToVersionMetadataFile = 
versionMetaDataFileInSourceRepo.getAbsolutePath().split(
+                    sourceRepoPath )[1];
                 File versionMetaDataFileInTargetRepo = new File( 
targetRepoPath, relativePathToVersionMetadataFile );
 
                 if ( !versionMetaDataFileInTargetRepo.exists() )
@@ -215,8 +217,8 @@ public class Maven2RepositoryMerger
 
             if ( projectMetadataFileInSourceRepo.exists() )
             {
-                String relativePathToProjectMetadataFile =
-                    projectMetadataFileInSourceRepo.getAbsolutePath().split( 
sourceRepoPath )[1];
+                String relativePathToProjectMetadataFile = 
projectMetadataFileInSourceRepo.getAbsolutePath().split(
+                    sourceRepoPath )[1];
                 File projectMetadataFileInTargetRepo = new File( 
targetRepoPath, relativePathToProjectMetadataFile );
 
                 if ( !projectMetadataFileInTargetRepo.exists() )
@@ -234,6 +236,7 @@ public class Maven2RepositoryMerger
 
     }
 
+    // TODO: replace with another copy method
     private void copyFile( File sourceFile, File targetFile )
         throws IOException
     {
@@ -332,12 +335,11 @@ public class Maven2RepositoryMerger
         return metadata;
     }
 
-    public List<ArtifactMetadata> getConflictingArtifacts( MetadataRepository 
metadataRepository, String sourceRepo,
-                                                           String targetRepo )
+    public List<ArtifactMetadata> getConflictingArtifacts( MetadataRepository 
metadataRepository, String targetRepo )
         throws Exception
     {
         List<ArtifactMetadata> targetArtifacts = 
metadataRepository.getArtifacts( targetRepo );
-        List<ArtifactMetadata> sourceArtifacts = 
metadataRepository.getArtifacts( sourceRepo );
+        List<ArtifactMetadata> sourceArtifacts = Collections.emptyList(); // 
STAGE FIXME: metadataRepository.getArtifacts( sourceRepo );
         List<ArtifactMetadata> conflictsArtifacts = new 
ArrayList<ArtifactMetadata>();
 
         for ( ArtifactMetadata targetArtifact : targetArtifacts )
@@ -354,9 +356,6 @@ public class Maven2RepositoryMerger
             }
         }
 
-        sourceArtifacts.removeAll( conflictsArtifacts );
-        Filter<ArtifactMetadata> artifactsWithOutConflicts = new 
IncludesFilter<ArtifactMetadata>( sourceArtifacts );
-//        merge( sourceRepo, targetRepo, artifactsWithOutConflicts );
         return conflictsArtifacts;
     }
 
@@ -364,10 +363,10 @@ public class Maven2RepositoryMerger
     {
         boolean isSame = false;
 
-        if ( ( sourceArtifact.getNamespace().equals( 
targetArtifact.getNamespace() ) )
-            && ( sourceArtifact.getProject().equals( 
targetArtifact.getProject() ) )
-            && ( sourceArtifact.getId().equals( targetArtifact.getId() ) )
-            && ( sourceArtifact.getProjectVersion().equals( 
targetArtifact.getProjectVersion() ) ) )
+        if ( ( sourceArtifact.getNamespace().equals( 
targetArtifact.getNamespace() ) ) &&
+            ( sourceArtifact.getProject().equals( targetArtifact.getProject() 
) ) && ( sourceArtifact.getId().equals(
+            targetArtifact.getId() ) ) && ( 
sourceArtifact.getProjectVersion().equals(
+            targetArtifact.getProjectVersion() ) ) )
 
         {
             isSame = true;

Modified: 
archiva/branches/staging-refactor/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMerger.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/staging-refactor/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMerger.java?rev=1185127&r1=1185126&r2=1185127&view=diff
==============================================================================
--- 
archiva/branches/staging-refactor/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMerger.java
 (original)
+++ 
archiva/branches/staging-refactor/archiva-modules/plugins/stage-repository-merge/src/main/java/org/apache/archiva/stagerepository/merge/RepositoryMerger.java
 Mon Oct 17 12:34:20 2011
@@ -34,7 +34,6 @@ public interface RepositoryMerger
                 Filter<ArtifactMetadata> filter )
         throws Exception;
 
-    List<ArtifactMetadata> getConflictingArtifacts( MetadataRepository 
metadataRepository, String sourceRepo,
-                                                    String targetRepo )
+    List<ArtifactMetadata> getConflictingArtifacts( MetadataRepository 
metadataRepository, String targetRepo )
         throws Exception;
 }
\ No newline at end of file

Modified: 
archiva/branches/staging-refactor/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMergerTest.java
URL: 
http://svn.apache.org/viewvc/archiva/branches/staging-refactor/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMergerTest.java?rev=1185127&r1=1185126&r2=1185127&view=diff
==============================================================================
--- 
archiva/branches/staging-refactor/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMergerTest.java
 (original)
+++ 
archiva/branches/staging-refactor/archiva-modules/plugins/stage-repository-merge/src/test/java/org/apache/archiva/stagerepository/merge/Maven2RepositoryMergerTest.java
 Mon Oct 17 12:34:20 2011
@@ -149,8 +149,8 @@ public class Maven2RepositoryMergerTest
         when( metadataRepository.getArtifacts( sourceRepoId ) ).thenReturn( 
sourceRepoArtifactsList );
         when( metadataRepository.getArtifacts( TEST_REPO_ID ) ).thenReturn( 
targetRepoArtifactsList );
 
-        assertEquals( 1, repositoryMerger.getConflictingArtifacts( 
metadataRepository, sourceRepoId,
-                                                                   
TEST_REPO_ID ).size() );
+        // STAGE FIXME: not testing the right thing
+        assertEquals( 1, repositoryMerger.getConflictingArtifacts( 
metadataRepository, TEST_REPO_ID ).size() );
         verify( metadataRepository ).getArtifacts( TEST_REPO_ID );
     }
 


Reply via email to