You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ev...@apache.org on 2008/08/07 21:38:56 UTC

svn commit: r683689 [6/7] - in /continuum/branches/continuum-refactoring-evenisse: ./ continuum-api/ continuum-api/src/main/java/org/apache/continuum/dao/ continuum-api/src/main/java/org/apache/continuum/purge/ continuum-api/src/main/java/org/apache/co...

Added: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/RepositoryPurgeConfigurationDaoImpl.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/RepositoryPurgeConfigurationDaoImpl.java?rev=683689&view=auto
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/RepositoryPurgeConfigurationDaoImpl.java (added)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/RepositoryPurgeConfigurationDaoImpl.java Thu Aug  7 12:38:49 2008
@@ -0,0 +1,131 @@
+package org.apache.continuum.dao;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.continuum.model.repository.RepositoryPurgeConfiguration;
+import org.apache.maven.continuum.store.ContinuumStoreException;
+
+import javax.jdo.Extent;
+import javax.jdo.PersistenceManager;
+import javax.jdo.Query;
+import javax.jdo.Transaction;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ * @plexus.component role="org.apache.continuum.dao.RepositoryPurgeConfigurationDao"
+ */
+public class RepositoryPurgeConfigurationDaoImpl
+    extends AbstractDao
+    implements RepositoryPurgeConfigurationDao
+{
+    public List<RepositoryPurgeConfiguration> getAllRepositoryPurgeConfigurations()
+    {
+        return getAllObjectsDetached( RepositoryPurgeConfiguration.class );
+    }
+
+    public List<RepositoryPurgeConfiguration> getRepositoryPurgeConfigurationsBySchedule( int scheduleId )
+    {
+        PersistenceManager pm = getPersistenceManager();
+
+        Transaction tx = pm.currentTransaction();
+
+        try
+        {
+            tx.begin();
+
+            Extent extent = pm.getExtent( RepositoryPurgeConfiguration.class, true );
+
+            Query query = pm.newQuery( extent );
+
+            query.declareParameters( "int scheduleId" );
+
+            query.setFilter( "this.schedule.id == scheduleId" );
+
+            List result = (List) query.execute( new Integer( scheduleId ) );
+
+            return result == null ? Collections.EMPTY_LIST : (List) pm.detachCopyAll( result );
+        }
+        finally
+        {
+            tx.commit();
+
+            rollback( tx );
+        }
+    }
+
+    public List<RepositoryPurgeConfiguration> getRepositoryPurgeConfigurationsByLocalRepository( int repositoryId )
+    {
+        PersistenceManager pm = getPersistenceManager();
+
+        Transaction tx = pm.currentTransaction();
+
+        try
+        {
+            tx.begin();
+
+            Extent extent = pm.getExtent( RepositoryPurgeConfiguration.class, true );
+
+            Query query = pm.newQuery( extent );
+
+            query.declareParameters( "int repositoryId" );
+
+            query.setFilter( "this.repository.id == repositoryId" );
+
+            List result = (List) query.execute( new Integer( repositoryId ) );
+
+            return result == null ? Collections.EMPTY_LIST : (List) pm.detachCopyAll( result );
+        }
+        finally
+        {
+            tx.commit();
+
+            rollback( tx );
+        }
+    }
+
+    public RepositoryPurgeConfiguration getRepositoryPurgeConfiguration( int configurationId )
+        throws ContinuumStoreException
+    {
+        return (RepositoryPurgeConfiguration) getObjectById( RepositoryPurgeConfiguration.class, configurationId );
+    }
+
+    public RepositoryPurgeConfiguration addRepositoryPurgeConfiguration(
+        RepositoryPurgeConfiguration purgeConfiguration )
+        throws ContinuumStoreException
+    {
+        return (RepositoryPurgeConfiguration) addObject( purgeConfiguration );
+    }
+
+    public void updateRepositoryPurgeConfiguration( RepositoryPurgeConfiguration purgeConfiguration )
+        throws ContinuumStoreException
+    {
+        updateObject( purgeConfiguration );
+    }
+
+    public void removeRepositoryPurgeConfiguration( RepositoryPurgeConfiguration purgeConfiguration )
+        throws ContinuumStoreException
+    {
+        removeObject( purgeConfiguration );
+    }
+
+}

Propchange: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/RepositoryPurgeConfigurationDaoImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/main/java/org/apache/continuum/dao/RepositoryPurgeConfigurationDaoImpl.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTestCase.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTestCase.java?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTestCase.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/java/org/apache/maven/continuum/store/AbstractContinuumStoreTestCase.java Thu Aug  7 12:38:49 2008
@@ -20,12 +20,18 @@
  */
 
 import org.apache.continuum.dao.DaoUtils;
+import org.apache.continuum.dao.DirectoryPurgeConfigurationDao;
 import org.apache.continuum.dao.InstallationDao;
+import org.apache.continuum.dao.LocalRepositoryDao;
 import org.apache.continuum.dao.ProfileDao;
 import org.apache.continuum.dao.ProjectDao;
 import org.apache.continuum.dao.ProjectGroupDao;
+import org.apache.continuum.dao.RepositoryPurgeConfigurationDao;
 import org.apache.continuum.dao.ScheduleDao;
 import org.apache.continuum.dao.SystemConfigurationDao;
+import org.apache.continuum.model.repository.DirectoryPurgeConfiguration;
+import org.apache.continuum.model.repository.LocalRepository;
+import org.apache.continuum.model.repository.RepositoryPurgeConfiguration;
 import org.apache.maven.continuum.installation.InstallationService;
 import org.apache.maven.continuum.model.project.BuildDefinition;
 import org.apache.maven.continuum.model.project.BuildResult;
@@ -41,9 +47,9 @@
 import org.apache.maven.continuum.model.system.Installation;
 import org.apache.maven.continuum.model.system.Profile;
 import org.apache.maven.continuum.model.system.SystemConfiguration;
-import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory;
 import org.codehaus.plexus.jdo.JdoFactory;
+import org.codehaus.plexus.spring.PlexusInSpringTestCase;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -55,10 +61,16 @@
  * Base class for tests using the continuum store.
  */
 public abstract class AbstractContinuumStoreTestCase
-    extends PlexusTestCase
+    extends PlexusInSpringTestCase
 {
     protected DaoUtils daoUtilsImpl;
 
+    protected DirectoryPurgeConfigurationDao directoryPurgeConfigurationDao;
+
+    protected LocalRepositoryDao localRepositoryDao;
+
+    protected RepositoryPurgeConfigurationDao repositoryPurgeConfigurationDao;
+
     protected InstallationDao installationDao;
 
     protected ProfileDao profileDao;
@@ -105,8 +117,23 @@
 
     protected ScmResult testCheckoutResult1;
 
+    protected LocalRepository testLocalRepository1;
+
+    protected LocalRepository testLocalRepository2;
+
+    protected LocalRepository testLocalRepository3;
+
+    protected RepositoryPurgeConfiguration testRepoPurgeConfiguration1;
+
+    protected RepositoryPurgeConfiguration testRepoPurgeConfiguration2;
+
+    protected RepositoryPurgeConfiguration testRepoPurgeConfiguration3;
+
+    protected DirectoryPurgeConfiguration testDirectoryPurgeConfig;
+
     private SystemConfiguration systemConfiguration;
 
+    @Override
     protected void setUp()
         throws Exception
     {
@@ -114,6 +141,14 @@
 
         createStore();
 
+        directoryPurgeConfigurationDao =
+            (DirectoryPurgeConfigurationDao) lookup( DirectoryPurgeConfigurationDao.class.getName() );
+
+        localRepositoryDao = (LocalRepositoryDao) lookup( LocalRepositoryDao.class.getName() );
+
+        repositoryPurgeConfigurationDao =
+            (RepositoryPurgeConfigurationDao) lookup( RepositoryPurgeConfigurationDao.class.getName() );
+
         installationDao = (InstallationDao) lookup( InstallationDao.class.getName() );
 
         profileDao = (ProfileDao) lookup( ProfileDao.class.getName() );
@@ -137,10 +172,53 @@
         throws Exception
     {
         // Setting up test data
-        defaultProjectGroup =
-            createTestProjectGroup( "Default Group", "The Default Group", "org.apache.maven.test.default" );
+        testLocalRepository1 = createTestLocalRepository( "name1", "location1", "layout1" );
+
+        LocalRepository localRepository1 = createTestLocalRepository( testLocalRepository1 );
+        if ( addToStore )
+        {
+            localRepository1 = localRepositoryDao.addLocalRepository( localRepository1 );
+            testLocalRepository1.setId( localRepository1.getId() );
+        }
+        else
+        {
+            localRepository1.setId( 1 );
+            testLocalRepository1.setId( 1 );
+        }
+
+        testLocalRepository2 = createTestLocalRepository( "name2", "location2", "layout2" );
+
+        LocalRepository localRepository2 = createTestLocalRepository( testLocalRepository2 );
+        if ( addToStore )
+        {
+            localRepository2 = localRepositoryDao.addLocalRepository( localRepository2 );
+            testLocalRepository2.setId( localRepository2.getId() );
+        }
+        else
+        {
+            localRepository2.setId( 2 );
+            testLocalRepository2.setId( 2 );
+        }
+
+        testLocalRepository3 = createTestLocalRepository( "name3", "location3", "layout3" );
+
+        LocalRepository localRepository3 = createTestLocalRepository( testLocalRepository3 );
+        if ( addToStore )
+        {
+            localRepository3 = localRepositoryDao.addLocalRepository( localRepository3 );
+            testLocalRepository3.setId( localRepository3.getId() );
+        }
+        else
+        {
+            localRepository3.setId( 3 );
+            testLocalRepository3.setId( 3 );
+        }
 
-        testProjectGroup2 = createTestProjectGroup( "test group 2", "test group 2 desc", "test group 2 groupId" );
+        defaultProjectGroup = createTestProjectGroup( "Default Group", "The Default Group",
+                                                      "org.apache.maven.test.default", localRepository1 );
+
+        testProjectGroup2 =
+            createTestProjectGroup( "test group 2", "test group 2 desc", "test group 2 groupId", localRepository2 );
 
         testProject1 = createTestProject( "artifactId1", 1, "description1", defaultProjectGroup.getGroupId(), "name1",
                                           "scmUrl1", 1, "url1", "version1", "workingDirectory1" );
@@ -307,6 +385,54 @@
             profile3.setId( 3 );
         }
 
+        testRepoPurgeConfiguration1 =
+            createTestRepositoryPurgeConfiguration( true, 5, 50, false, schedule2, true, localRepository1 );
+        if ( addToStore )
+        {
+            testRepoPurgeConfiguration1 =
+                repositoryPurgeConfigurationDao.addRepositoryPurgeConfiguration( testRepoPurgeConfiguration1 );
+        }
+        else
+        {
+            testRepoPurgeConfiguration1.setId( 1 );
+        }
+
+        testRepoPurgeConfiguration2 =
+            createTestRepositoryPurgeConfiguration( false, 10, 200, true, schedule1, true, localRepository2 );
+        if ( addToStore )
+        {
+            testRepoPurgeConfiguration2 =
+                repositoryPurgeConfigurationDao.addRepositoryPurgeConfiguration( testRepoPurgeConfiguration2 );
+        }
+        else
+        {
+            testRepoPurgeConfiguration2.setId( 2 );
+        }
+
+        testRepoPurgeConfiguration3 =
+            createTestRepositoryPurgeConfiguration( false, 10, 200, true, schedule2, true, localRepository1 );
+        if ( addToStore )
+        {
+            testRepoPurgeConfiguration3 =
+                repositoryPurgeConfigurationDao.addRepositoryPurgeConfiguration( testRepoPurgeConfiguration3 );
+        }
+        else
+        {
+            testRepoPurgeConfiguration3.setId( 3 );
+        }
+
+        testDirectoryPurgeConfig =
+            createTestDirectoryPurgeConfiguration( "location1", "directoryType1", true, 10, 50, schedule2, true );
+        if ( addToStore )
+        {
+            testDirectoryPurgeConfig =
+                directoryPurgeConfigurationDao.addDirectoryPurgeConfiguration( testDirectoryPurgeConfig );
+        }
+        else
+        {
+            testDirectoryPurgeConfig.setId( 1 );
+        }
+
         BuildDefinition testGroupBuildDefinition1 =
             createTestBuildDefinition( "arguments1", "buildFile1", "goals1", profile1, schedule2, false, false );
         BuildDefinition testGroupBuildDefinition2 =
@@ -461,6 +587,7 @@
         }
     }
 
+    @Override
     protected void tearDown()
         throws Exception
     {
@@ -847,15 +974,18 @@
 
     protected static ProjectGroup createTestProjectGroup( ProjectGroup group )
     {
-        return createTestProjectGroup( group.getName(), group.getDescription(), group.getGroupId() );
+        return createTestProjectGroup( group.getName(), group.getDescription(), group.getGroupId(),
+                                       group.getLocalRepository() );
     }
 
-    protected static ProjectGroup createTestProjectGroup( String name, String description, String groupId )
+    protected static ProjectGroup createTestProjectGroup( String name, String description, String groupId,
+                                                          LocalRepository repository )
     {
         ProjectGroup group = new ProjectGroup();
         group.setName( name );
         group.setDescription( description );
         group.setGroupId( groupId );
+        group.setLocalRepository( repository );
         return group;
     }
 
@@ -1111,6 +1241,127 @@
         return developer;
     }
 
+    protected static LocalRepository createTestLocalRepository( LocalRepository repository )
+    {
+        return createTestLocalRepository( repository.getName(), repository.getLocation(), repository.getLayout() );
+    }
+
+    protected static LocalRepository createTestLocalRepository( String name, String location, String layout )
+    {
+        LocalRepository repository = new LocalRepository();
+        repository.setName( name );
+        repository.setLocation( location );
+        repository.setLayout( layout );
+        return repository;
+    }
+
+    protected static RepositoryPurgeConfiguration createTestRepositoryPurgeConfiguration(
+        RepositoryPurgeConfiguration purgeConfig )
+    {
+        return createTestRepositoryPurgeConfiguration( purgeConfig.isDeleteAll(), purgeConfig.getRetentionCount(),
+                                                       purgeConfig.getDaysOlder(),
+                                                       purgeConfig.isDeleteReleasedSnapshots(),
+                                                       purgeConfig.getSchedule(), purgeConfig.isEnabled(),
+                                                       purgeConfig.getRepository() );
+    }
+
+    protected static RepositoryPurgeConfiguration createTestRepositoryPurgeConfiguration( boolean deleteAllArtifacts,
+                                                                                          int retentionCount,
+                                                                                          int daysOlder,
+                                                                                          boolean deleteReleasedSnapshots,
+                                                                                          Schedule schedule,
+                                                                                          boolean enabled,
+                                                                                          LocalRepository repository )
+    {
+        RepositoryPurgeConfiguration purgeConfig = new RepositoryPurgeConfiguration();
+        purgeConfig.setDeleteAll( deleteAllArtifacts );
+        purgeConfig.setEnabled( enabled );
+        purgeConfig.setRetentionCount( retentionCount );
+        purgeConfig.setDaysOlder( daysOlder );
+        purgeConfig.setDeleteReleasedSnapshots( deleteReleasedSnapshots );
+        purgeConfig.setSchedule( schedule );
+        purgeConfig.setRepository( repository );
+        return purgeConfig;
+    }
+
+    protected static DirectoryPurgeConfiguration createTestDirectoryPurgeConfiguration(
+        DirectoryPurgeConfiguration purgeConfig )
+    {
+        return createTestDirectoryPurgeConfiguration( purgeConfig.getLocation(), purgeConfig.getDirectoryType(),
+                                                      purgeConfig.isDeleteAll(), purgeConfig.getRetentionCount(),
+                                                      purgeConfig.getDaysOlder(), purgeConfig.getSchedule(),
+                                                      purgeConfig.isEnabled() );
+    }
+
+    protected static DirectoryPurgeConfiguration createTestDirectoryPurgeConfiguration( String location,
+                                                                                        String directoryType,
+                                                                                        boolean deleteAllDirectories,
+                                                                                        int retentionCount,
+                                                                                        int daysOlder,
+                                                                                        Schedule schedule,
+                                                                                        boolean enabled )
+    {
+        DirectoryPurgeConfiguration purgeConfig = new DirectoryPurgeConfiguration();
+        purgeConfig.setDaysOlder( daysOlder );
+        purgeConfig.setDeleteAll( deleteAllDirectories );
+        purgeConfig.setDirectoryType( directoryType );
+        purgeConfig.setEnabled( enabled );
+        purgeConfig.setLocation( location );
+        purgeConfig.setRetentionCount( retentionCount );
+        purgeConfig.setSchedule( schedule );
+        return purgeConfig;
+    }
+
+    protected static void assertLocalRepositoryEquals( LocalRepository expectedRepository,
+                                                       LocalRepository actualRepository )
+    {
+        assertEquals( expectedRepository, actualRepository );
+        if ( expectedRepository != null )
+        {
+            assertNotSame( expectedRepository, actualRepository );
+            assertEquals( "compare local repository - id", expectedRepository.getId(), actualRepository.getId() );
+            assertEquals( "compare local repository - name", expectedRepository.getName(), actualRepository.getName() );
+            assertEquals( "compare local repository - location", expectedRepository.getLocation(),
+                          actualRepository.getLocation() );
+            assertEquals( "compare local repository - layout", expectedRepository.getLayout(),
+                          actualRepository.getLayout() );
+        }
+    }
+
+    protected static void assertRepositoryPurgeConfigurationEquals( RepositoryPurgeConfiguration expectedConfig,
+                                                                    RepositoryPurgeConfiguration actualConfig )
+    {
+        assertEquals( "compare repository purge configuration - id", expectedConfig.getId(), actualConfig.getId() );
+        assertEquals( "compare repository purge configuration - deleteAll", expectedConfig.isDeleteAll(),
+                      actualConfig.isDeleteAll() );
+        assertEquals( "compare repository purge configuration - retentionCount", expectedConfig.getRetentionCount(),
+                      actualConfig.getRetentionCount() );
+        assertEquals( "compare repository purge configuration - daysOlder", expectedConfig.getDaysOlder(),
+                      actualConfig.getDaysOlder() );
+        assertEquals( "compare repository purge configuration - deleteReleasedSnapshots",
+                      expectedConfig.isDeleteReleasedSnapshots(), actualConfig.isDeleteReleasedSnapshots() );
+        assertEquals( "compare repository purge configuration - enabled", expectedConfig.isEnabled(),
+                      actualConfig.isEnabled() );
+    }
+
+    protected static void assertDirectoryPurgeConfigurationEquals( DirectoryPurgeConfiguration expectedConfig,
+                                                                   DirectoryPurgeConfiguration actualConfig )
+    {
+        assertEquals( "compare directory purge configuration - id", expectedConfig.getId(), actualConfig.getId() );
+        assertEquals( "compare directory purge configuration - location", expectedConfig.getLocation(),
+                      actualConfig.getLocation() );
+        assertEquals( "compare directory purge configuration - directoryType", expectedConfig.getDirectoryType(),
+                      actualConfig.getDirectoryType() );
+        assertEquals( "compare directory purge configuration - deleteAll", expectedConfig.isDeleteAll(),
+                      actualConfig.isDeleteAll() );
+        assertEquals( "compare directory purge configuration - retentionCount", expectedConfig.getRetentionCount(),
+                      actualConfig.getRetentionCount() );
+        assertEquals( "compare directory purge configuration - daysOlder", expectedConfig.getDaysOlder(),
+                      actualConfig.getDaysOlder() );
+        assertEquals( "compare directory purge configuration - enabled", expectedConfig.isEnabled(),
+                      actualConfig.isEnabled() );
+    }
+
     /**
      * Setup JDO Factory
      *

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/java/org/apache/maven/continuum/store/ContinuumStoreTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/java/org/apache/maven/continuum/store/ContinuumStoreTest.java?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/java/org/apache/maven/continuum/store/ContinuumStoreTest.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/java/org/apache/maven/continuum/store/ContinuumStoreTest.java Thu Aug  7 12:38:49 2008
@@ -22,6 +22,9 @@
 import org.apache.continuum.dao.BuildDefinitionDao;
 import org.apache.continuum.dao.BuildDefinitionTemplateDao;
 import org.apache.continuum.dao.BuildResultDao;
+import org.apache.continuum.model.repository.DirectoryPurgeConfiguration;
+import org.apache.continuum.model.repository.LocalRepository;
+import org.apache.continuum.model.repository.RepositoryPurgeConfiguration;
 import org.apache.maven.continuum.execution.ContinuumBuildExecutorConstants;
 import org.apache.maven.continuum.installation.InstallationService;
 import org.apache.maven.continuum.model.project.BuildDefinition;
@@ -72,7 +75,8 @@
         String name = "testAddProjectGroup";
         String description = "testAddProjectGroup description";
         String groupId = "org.apache.maven.continuum.test";
-        ProjectGroup group = createTestProjectGroup( name, description, groupId );
+        LocalRepository repository = localRepositoryDao.getLocalRepository( testLocalRepository3.getId() );
+        ProjectGroup group = createTestProjectGroup( name, description, groupId, repository );
 
         ProjectGroup copy = createTestProjectGroup( group );
         projectGroupDao.addProjectGroup( group );
@@ -80,6 +84,7 @@
 
         ProjectGroup retrievedGroup = projectGroupDao.getProjectGroup( group.getId() );
         assertProjectGroupEquals( copy, retrievedGroup );
+        assertLocalRepositoryEquals( testLocalRepository3, retrievedGroup.getLocalRepository() );
     }
 
     public void testGetProjectGroup()
@@ -87,6 +92,7 @@
     {
         ProjectGroup retrievedGroup = projectGroupDao.getProjectGroupWithProjects( defaultProjectGroup.getId() );
         assertProjectGroupEquals( defaultProjectGroup, retrievedGroup );
+        assertLocalRepositoryEquals( testLocalRepository1, retrievedGroup.getLocalRepository() );
 
         List projects = retrievedGroup.getProjects();
         assertEquals( "Check number of projects", 2, projects.size() );
@@ -137,7 +143,7 @@
 
         ProjectGroup retrievedGroup = projectGroupDao.getProjectGroup( testProjectGroup2.getId() );
         assertProjectGroupEquals( copy, retrievedGroup );
-
+        assertLocalRepositoryEquals( testLocalRepository2, retrievedGroup.getLocalRepository() );
     }
 
     public void testUpdateUndetachedGroup()
@@ -175,11 +181,13 @@
             if ( group.getId() == testProjectGroup2.getId() )
             {
                 assertProjectGroupEquals( testProjectGroup2, group );
+                assertLocalRepositoryEquals( testLocalRepository2, group.getLocalRepository() );
                 assertTrue( "check no projects", projects.isEmpty() );
             }
             else if ( group.getId() == defaultProjectGroup.getId() )
             {
                 assertProjectGroupEquals( defaultProjectGroup, group );
+                assertLocalRepositoryEquals( testLocalRepository1, group.getLocalRepository() );
                 assertEquals( "Check number of projects", 2, projects.size() );
                 assertTrue( "Check existence of project 1", projects.contains( testProject1 ) );
                 assertTrue( "Check existence of project 2", projects.contains( testProject2 ) );
@@ -1105,6 +1113,142 @@
         assertEquals( 1, buildDefinitionTemplateDao.getAllBuildDefinitionTemplate().size() );
     }
 
+    public void testAddLocalRepository()
+        throws Exception
+    {
+        String name = "testAddLocalRepository";
+        String directory = "testAddLocalRepositoryDirectory";
+        String layout = "default";
+
+        LocalRepository repository = createTestLocalRepository( name, directory, layout );
+
+        LocalRepository copy = createTestLocalRepository( repository );
+        localRepositoryDao.addLocalRepository( repository );
+        copy.setId( repository.getId() );
+
+        LocalRepository retrievedRepository = localRepositoryDao.getLocalRepository( repository.getId() );
+        assertLocalRepositoryEquals( copy, retrievedRepository );
+    }
+
+    public void testRemoveLocalRepository()
+        throws Exception
+    {
+        LocalRepository repository = localRepositoryDao.getLocalRepositoryByName( testLocalRepository2.getName() );
+
+        ProjectGroup projectGroup = projectGroupDao.getProjectGroupByGroupId( testProjectGroup2.getGroupId() );
+        assertLocalRepositoryEquals( testLocalRepository2, projectGroup.getLocalRepository() );
+        projectGroup.setLocalRepository( null );
+
+        ProjectGroup copy = createTestProjectGroup( projectGroup );
+        projectGroupDao.updateProjectGroup( projectGroup );
+
+        projectGroup = projectGroupDao.getProjectGroup( testProjectGroup2.getId() );
+        assertNull( "check local repository", projectGroup.getLocalRepository() );
+
+        List<RepositoryPurgeConfiguration> repoPurgeList =
+            repositoryPurgeConfigurationDao.getRepositoryPurgeConfigurationsByLocalRepository( repository.getId() );
+
+        assertEquals( "check # repo purge config", 1, repoPurgeList.size() );
+        repositoryPurgeConfigurationDao.removeRepositoryPurgeConfiguration( repoPurgeList.get( 0 ) );
+        localRepositoryDao.removeLocalRepository( repository );
+
+        List<LocalRepository> localRepositories = localRepositoryDao.getAllLocalRepositories();
+        assertEquals( "check # local repositories", 2, localRepositories.size() );
+        assertFalse( "check not there", localRepositories.contains( repository ) );
+    }
+
+    public void testGetAllLocalRepositories()
+        throws Exception
+    {
+        List<LocalRepository> localRepositories = localRepositoryDao.getAllLocalRepositories();
+
+        assertEquals( "check # local repositories", 3, localRepositories.size() );
+        assertLocalRepositoryEquals( testLocalRepository1, localRepositories.get( 0 ) );
+        assertLocalRepositoryEquals( testLocalRepository2, localRepositories.get( 1 ) );
+        assertLocalRepositoryEquals( testLocalRepository3, localRepositories.get( 2 ) );
+    }
+
+    public void testAddRepositoryPurgeConfiguration()
+        throws Exception
+    {
+        LocalRepository repository = localRepositoryDao.getLocalRepository( testLocalRepository3.getId() );
+        Schedule schedule = scheduleDao.getSchedule( testSchedule1.getId() );
+
+        RepositoryPurgeConfiguration repoPurge =
+            createTestRepositoryPurgeConfiguration( true, 2, 100, false, schedule, true, repository );
+
+        RepositoryPurgeConfiguration copy = createTestRepositoryPurgeConfiguration( repoPurge );
+        repositoryPurgeConfigurationDao.addRepositoryPurgeConfiguration( repoPurge );
+        copy.setId( repoPurge.getId() );
+
+        RepositoryPurgeConfiguration retrieved =
+            repositoryPurgeConfigurationDao.getRepositoryPurgeConfiguration( repoPurge.getId() );
+        assertRepositoryPurgeConfigurationEquals( copy, retrieved );
+        assertLocalRepositoryEquals( testLocalRepository3, retrieved.getRepository() );
+        assertScheduleEquals( testSchedule1, retrieved.getSchedule() );
+    }
+
+    public void testRemoveRepositoryPurgeConfiguration()
+        throws Exception
+    {
+        RepositoryPurgeConfiguration repoPurge =
+            repositoryPurgeConfigurationDao.getRepositoryPurgeConfiguration( testRepoPurgeConfiguration2.getId() );
+        repositoryPurgeConfigurationDao.removeRepositoryPurgeConfiguration( repoPurge );
+
+        List<RepositoryPurgeConfiguration> repoPurgeList =
+            repositoryPurgeConfigurationDao.getAllRepositoryPurgeConfigurations();
+        assertEquals( "check # repo purge configurations", 2, repoPurgeList.size() );
+        assertFalse( "check not there", repoPurgeList.contains( repoPurge ) );
+    }
+
+    public void testAddDirectoryPurgeConfiguration()
+        throws Exception
+    {
+        String location = "release-directory";
+        String directoryType = "release";
+
+        Schedule schedule = scheduleDao.getSchedule( testSchedule1.getId() );
+        DirectoryPurgeConfiguration dirPurge =
+            createTestDirectoryPurgeConfiguration( location, directoryType, false, 2, 100, schedule, true );
+
+        DirectoryPurgeConfiguration copy = createTestDirectoryPurgeConfiguration( dirPurge );
+        directoryPurgeConfigurationDao.addDirectoryPurgeConfiguration( dirPurge );
+        copy.setId( dirPurge.getId() );
+
+        DirectoryPurgeConfiguration retrieved =
+            directoryPurgeConfigurationDao.getDirectoryPurgeConfiguration( dirPurge.getId() );
+        assertDirectoryPurgeConfigurationEquals( copy, retrieved );
+        assertScheduleEquals( testSchedule1, retrieved.getSchedule() );
+    }
+
+    public void testRemoveDirectoryPurgeConfiguration()
+        throws Exception
+    {
+        DirectoryPurgeConfiguration dirPurge =
+            directoryPurgeConfigurationDao.getDirectoryPurgeConfiguration( testDirectoryPurgeConfig.getId() );
+        directoryPurgeConfigurationDao.removeDirectoryPurgeConfiguration( dirPurge );
+
+        List<DirectoryPurgeConfiguration> dirPurgeList =
+            directoryPurgeConfigurationDao.getAllDirectoryPurgeConfigurations();
+        assertEquals( "check #  dir purge configurations", 0, dirPurgeList.size() );
+    }
+
+    public void testGetPurgeConfigurationsBySchedule()
+        throws Exception
+    {
+        List<RepositoryPurgeConfiguration> repoPurgeList =
+            repositoryPurgeConfigurationDao.getRepositoryPurgeConfigurationsBySchedule( testSchedule2.getId() );
+        List<DirectoryPurgeConfiguration> dirPurgeList =
+            directoryPurgeConfigurationDao.getDirectoryPurgeConfigurationsBySchedule( testSchedule2.getId() );
+
+        assertEquals( "check # repo purge configurations", 2, repoPurgeList.size() );
+        assertEquals( "check # dir purge configurations", 1, dirPurgeList.size() );
+
+        assertRepositoryPurgeConfigurationEquals( testRepoPurgeConfiguration1, repoPurgeList.get( 0 ) );
+        assertRepositoryPurgeConfigurationEquals( testRepoPurgeConfiguration3, repoPurgeList.get( 1 ) );
+        assertDirectoryPurgeConfigurationEquals( testDirectoryPurgeConfig, dirPurgeList.get( 0 ) );
+    }
+
     // ----------------------------------------------------------------------
     //  HELPER METHODS
     // ----------------------------------------------------------------------
@@ -1160,6 +1304,7 @@
         checkProjectFetchGroup( project, false, false, false, false );
     }
 
+    @Override
     protected void setUp()
         throws Exception
     {

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/resources/org/apache/maven/continuum/store/ContinuumStoreTest.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/resources/org/apache/maven/continuum/store/ContinuumStoreTest.xml?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/resources/org/apache/maven/continuum/store/ContinuumStoreTest.xml (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-store/src/test/resources/org/apache/maven/continuum/store/ContinuumStoreTest.xml Thu Aug  7 12:38:49 2008
@@ -60,5 +60,12 @@
         </otherProperties>
       </configuration>
     </component>
+
+    <component>
+      <role>org.codehaus.plexus.logging.LoggerManager</role>
+      <implementation>org.codehaus.plexus.logging.slf4j.Slf4jLoggerManager</implementation>
+      <lifecycle-handler>basic</lifecycle-handler>
+    </component>
+
   </components>
 </component-set>

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/pom.xml?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/pom.xml (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/pom.xml Thu Aug  7 12:38:49 2008
@@ -276,16 +276,13 @@
   </build>
   <dependencies>
     <dependency>
-      <groupId>org.apache.continuum</groupId>
-      <artifactId>continuum-configuration</artifactId>
-    </dependency>
-    <dependency>
       <groupId>org.codehaus.plexus.registry</groupId>
       <artifactId>plexus-registry-api</artifactId>
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus.registry</groupId>
       <artifactId>plexus-registry-commons</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.shared</groupId>
@@ -327,17 +324,12 @@
       <groupId>opensymphony</groupId>
       <artifactId>sitemesh</artifactId>
       <version>2.2.1</version>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.extremecomponents</groupId>
       <artifactId>extremecomponents</artifactId>
       <version>1.0.1</version>
-      <exclusions>
-        <exclusion>
-          <groupId>commons-collections</groupId>
-          <artifactId>commons-collections</artifactId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
@@ -347,6 +339,7 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.derby</groupId>
@@ -361,80 +354,103 @@
       <groupId>commons-fileupload</groupId>
       <artifactId>commons-fileupload</artifactId>
       <version>1.2.1</version>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>taglibs</groupId>
       <artifactId>standard</artifactId>
       <version>1.1.2</version>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>jstl</artifactId>
       <version>1.1.2</version>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-bazaar</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-clearcase</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-cvsjava</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-cvsexe</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-hg</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-local</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-perforce</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-starteam</artifactId>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.scm</groupId>
+      <artifactId>maven-scm-provider-svn-commons</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-svnexe</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-synergy</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>maven-scm-provider-vss</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.continuum</groupId>
       <artifactId>continuum-notifier-irc</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.continuum</groupId>
       <artifactId>continuum-notifier-jabber</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.continuum</groupId>
       <artifactId>continuum-notifier-msn</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.continuum</groupId>
       <artifactId>continuum-notifier-wagon</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.continuum</groupId>
       <artifactId>continuum-xmlrpc-server</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.apache.continuum</groupId>
@@ -486,26 +502,14 @@
     <dependency>
       <groupId>org.codehaus.plexus.redback</groupId>
       <artifactId>redback-taglib</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>net.sf.ehcache</groupId>
       <artifactId>ehcache</artifactId>
+      <scope>runtime</scope>
     </dependency>    
     <dependency>
-      <groupId>org.codehaus.plexus</groupId>
-      <artifactId>plexus-jdo2</artifactId>
-      <exclusions>
-        <exclusion>
-          <groupId>xerces</groupId>
-          <artifactId>xercesImpl</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>xerces</groupId>
-          <artifactId>xmlParserAPIs</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
       <groupId>geronimo-spec</groupId>
       <artifactId>geronimo-spec-jta</artifactId>
       <version>1.0.1B-rc2</version>
@@ -514,6 +518,7 @@
     <dependency>
       <groupId>jpox</groupId>
       <artifactId>jpox</artifactId>
+      <scope>runtime</scope>
       <exclusions>
         <!-- targeting JDK 1.4 we don't need this -->
         <exclusion>
@@ -526,12 +531,6 @@
       <groupId>commons-lang</groupId>
       <artifactId>commons-lang</artifactId>
     </dependency>
-    <!-- 3.2 is required by plexus-registry -->
-    <dependency>
-      <groupId>commons-collections</groupId>
-      <artifactId>commons-collections</artifactId>
-      <version>3.2</version>
-    </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-spring</artifactId>
@@ -539,15 +538,17 @@
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-mail-sender-javamail</artifactId>
+      <scope>runtime</scope>
     </dependency>
     <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-web</artifactId>
     </dependency>
     <dependency>
-      <groupId>commons-configuration</groupId>
-      <artifactId>commons-configuration</artifactId>
-    </dependency>    
+      <groupId>jmock</groupId>
+      <artifactId>jmock</artifactId>
+      <scope>test</scope>
+    </dependency>
     <dependency>
       <groupId>javax.mail</groupId>
       <artifactId>mail</artifactId>

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/continuum/web/startup/ContinuumStartup.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/continuum/web/startup/ContinuumStartup.java?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/continuum/web/startup/ContinuumStartup.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/continuum/web/startup/ContinuumStartup.java Thu Aug  7 12:38:49 2008
@@ -75,6 +75,9 @@
 
         TaskQueueExecutor rollbackRelease = (TaskQueueExecutor) wac.getBean( PlexusToSpringUtils
             .buildSpringId( TaskQueueExecutor.class, "rollback-release" ) );        
+        
+        TaskQueueExecutor purge = (TaskQueueExecutor) wac.getBean( PlexusToSpringUtils
+            .buildSpringId( TaskQueueExecutor.class, "purge" ) );
     }
 
 }

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectGroupAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectGroupAction.java?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectGroupAction.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectGroupAction.java Thu Aug  7 12:38:49 2008
@@ -20,7 +20,10 @@
  */
 
 import java.util.Iterator;
+import java.util.List;
 
+import org.apache.continuum.model.repository.LocalRepository;
+import org.apache.continuum.repository.RepositoryServiceException;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
@@ -40,7 +43,19 @@
     private String groupId;
 
     private String description;
-
+    
+    private int repositoryId;
+    
+    private List<LocalRepository> repositories;
+
+    public void prepare()
+        throws Exception
+    {
+        super.prepare();
+        
+        repositories = getContinuum().getRepositoryService().getAllLocalRepositories();
+    }
+    
     public void validate()
     {
         clearErrorsAndMessages();
@@ -109,6 +124,21 @@
         projectGroup.setGroupId( groupId );
 
         projectGroup.setDescription( description );
+        
+        try
+        {
+            if ( repositoryId > 0 )
+            {
+                LocalRepository repository = getContinuum().getRepositoryService().getLocalRepository( repositoryId );
+                projectGroup.setLocalRepository( repository );
+            }
+        }
+        catch ( RepositoryServiceException e )
+        {
+            getLogger().error( "Error adding project group" + e.getLocalizedMessage() );
+            
+            return ERROR;
+        }
 
         try
         {
@@ -168,4 +198,24 @@
     {
         this.name = name;
     }
+    
+    public int getRepositoryId()
+    {
+        return repositoryId;
+    }
+    
+    public void setRepositoryId( int repositoryId )
+    {
+        this.repositoryId = repositoryId;
+    }
+    
+    public List<LocalRepository> getRepositories()
+    {
+        return repositories;
+    }
+    
+    public void setRepositories( List<LocalRepository> repositories )
+    {
+        this.repositories = repositories;
+    }
 }

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/GroupSummaryAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/GroupSummaryAction.java?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/GroupSummaryAction.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/GroupSummaryAction.java Thu Aug  7 12:38:49 2008
@@ -21,7 +21,6 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
 
 import org.apache.maven.continuum.ContinuumException;
@@ -61,6 +60,12 @@
                 groupModel.setGroupId( projectGroup.getGroupId() );
                 groupModel.setName( projectGroup.getName() );
                 groupModel.setDescription( projectGroup.getDescription() );
+                
+                if ( projectGroup.getLocalRepository() != null )
+                {
+                    groupModel.setRepositoryId( projectGroup.getLocalRepository().getId() );
+                    groupModel.setRepositoryName( projectGroup.getLocalRepository().getName() );
+                }
 
                 //TODO: Create a summary jpox request so code will be more simple and performance will be better
                 Collection<Project> projects = projectGroup.getProjects();

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java Thu Aug  7 12:38:49 2008
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import org.apache.continuum.model.repository.LocalRepository;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.BuildDefinition;
 import org.apache.maven.continuum.model.project.BuildResult;
@@ -114,6 +115,10 @@
     
     private String url;
 
+    private int repositoryId;
+    
+    private List<LocalRepository> repositories;
+    
     public String summary()
         throws ContinuumException
     {
@@ -291,7 +296,7 @@
         name = projectGroup.getName();
 
         description = projectGroup.getDescription();
-
+        
         projectList = projectGroup.getProjects();
 
         if ( projectList != null )
@@ -316,11 +321,22 @@
             projectGroups.put( new Integer( pg.getId() ), pg.getName() );
         }
 
+        if ( projectGroup.getLocalRepository() != null)
+        {
+            repositoryId = projectGroup.getLocalRepository().getId();
+        }
+        else
+        {
+            repositoryId = -1;
+        }
+        
+        repositories = getContinuum().getRepositoryService().getAllLocalRepositories();
+        
         return SUCCESS;
     }
 
     public String save()
-        throws ContinuumException
+        throws Exception
     {
         try
         {
@@ -384,7 +400,17 @@
         }
 
         projectGroup.setDescription( description );
-
+        
+        if ( repositoryId > 0 )
+        {
+            LocalRepository repository = getContinuum().getRepositoryService().getLocalRepository( repositoryId );
+            projectGroup.setLocalRepository( repository );
+        }
+        else
+        {
+            projectGroup.setLocalRepository( null );
+        }
+        
         getContinuum().updateProjectGroup( projectGroup );
 
         Iterator keys = projects.keySet().iterator();
@@ -864,4 +890,24 @@
 	{
 		this.url = url;
 	}
+	
+	public int getRepositoryId()
+	{
+	    return repositoryId;
+	}
+	
+	public void setRepositoryId( int repositoryId )
+	{
+	    this.repositoryId = repositoryId;
+	}
+	
+	public List<LocalRepository> getRepositories()
+	{
+	    return repositories;
+	}
+	
+	public void setRepositories( List<LocalRepository> repositories )
+	{
+	    this.repositories = repositories;
+	}
 }

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java Thu Aug  7 12:38:49 2008
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import org.apache.continuum.model.repository.LocalRepository;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.release.ContinuumReleaseManager;
@@ -112,12 +113,16 @@
 
         ContinuumReleaseManager releaseManager = getContinuum().getReleaseManager();
 
+        Project project = getContinuum().getProject( projectId );
+
         //todo should be configurable
         File performDirectory = new File( getContinuum().getConfiguration().getWorkingDirectory(),
                                           "releases-" + System.currentTimeMillis() );
         performDirectory.mkdirs();
-
-        releaseManager.perform( releaseId, performDirectory, goals, useReleaseProfile, listener );
+        
+        LocalRepository repository = project.getProjectGroup().getLocalRepository();
+        
+        releaseManager.perform( releaseId, performDirectory, goals, useReleaseProfile, listener, repository );
 
         return SUCCESS;
     }

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/mdo/view-models.mdo
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/mdo/view-models.mdo?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/mdo/view-models.mdo (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/mdo/view-models.mdo Thu Aug  7 12:38:49 2008
@@ -254,6 +254,21 @@
           <type>int</type>
           <defaultValue>-1</defaultValue>
         </field>
+        <field>
+          <name>repositoryId</name>
+          <version>1.0.0</version>
+          <required>false</required>
+          <description>local repository id of the project group</description>
+          <type>int</type>
+          <defaultValue>-1</defaultValue>
+        </field>
+        <field>
+          <name>repositoryName</name>
+          <version>1.0.0</version>
+          <required>false</required>
+          <description>local repository name of the project group</description>
+          <type>String</type>
+        </field>
       </fields>
     </class>
     <class>

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/resources/META-INF/plexus/application.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/resources/META-INF/plexus/application.xml?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/resources/META-INF/plexus/application.xml (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/resources/META-INF/plexus/application.xml Thu Aug  7 12:38:49 2008
@@ -337,6 +337,11 @@
             <name>org.jpox.rdbms.stringDefaultLength</name>
             <value>255</value>
           </property>
+          <property>
+            <name>org.jpox.autoCreateColumns</name>
+            <value>true</value>
+          </property>
+			
 <!--
           <property>
             <name>org.jpox.identifier.case</name>

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/resources/localization/Continuum.properties
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/resources/localization/Continuum.properties?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/resources/localization/Continuum.properties (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/resources/localization/Continuum.properties Thu Aug  7 12:38:49 2008
@@ -46,6 +46,7 @@
 unselectAll = Unselect All
 sort.descending = Sort Descending
 sort.ascending = Sort Ascending
+purge = Purge
 
 # ----------------------------------------------------------------------
 # Page: Top
@@ -79,6 +80,8 @@
 menu.account.options = My account
 user.edit.account = Edit user info
 menu.administration.queues = Queues
+menu.administration.repositories = Local Repositories
+menu.administration.purge = Purge Configurations
 
 # ----------------------------------------------------------------------
 # Page: error
@@ -144,6 +147,7 @@
 groups.section.title = Project Group:
 groups.manage.label = Manage Group
 groups.confirmation.message = Are you sure you want to delete the project group "{0}"?
+groups.table.repositoryName = Local Repository
 
 # ----------------------------------------------------------------------
 # Page: Project Group
@@ -174,6 +178,7 @@
 projectGroup.buildsStatut.success = Success
 projectGroup.buildDefinition.label = Default Build Definition
 projectGroup.addProject.label = Add New Project
+projectGroup.repository.label = Local Repository
 
 # ----------------------------------------------------------------------
 # Page: Project Group - Members
@@ -818,3 +823,70 @@
 deleteBuildEnv.page.title = Continuum - Delete Build Environment
 deleteBuildEnv.section.title = Delete Build Environment
 deleteBuildEnv.confirmation.message = Are you sure you want to delete Build Environment "{0}" ?
+
+#-----------------------------------------------------------------------
+# Page: Local Repositories
+#-----------------------------------------------------------------------
+repositories.page.title = Continuum - Local Repositories
+repositories.section.title = Local Repositories
+repositories.table.name = Name
+repositories.table.location = Location
+repositories.table.layout = Layout
+
+#-----------------------------------------------------------------------
+# Page: Add/Edit Local Repository
+#-----------------------------------------------------------------------
+repository.page.title = Continuum - Add/Edit Local Repository
+repository.section.title = Add/Edit Local Repository
+repository.name.label = Name
+repository.location.label = Location
+repository.layout.label = Layout
+repository.error.name.unique = Local repository name must be unique
+repository.error.name.cannot.be.spaces = Local repository name cannot be spaces
+repository.error.location.unique = Local repository location must be unique
+repository.error.location.cannot.be.spaces = Local repository location cannot be spaces
+repository.error.save.in.use = Unable to edit local repository because it is currently in use 
+repository.error.remove.in.use = Unable to remove local repository because it is currently in use
+repository.error.purge.in.use = Unable to purge local repository because it is currently in use
+repository.error.remove.default = Cannot remove default local repository.
+
+#-----------------------------------------------------------------------
+# Page: Delete Local Repository
+#-----------------------------------------------------------------------
+deleteRepository.page.title = Continuum - Delete Local Repository
+deleteRepository.section.title = Delete Local Repository
+deleteRepository.confirmation.message = Are you sure you want to delete Local Repository "{0}" ?
+
+#-----------------------------------------------------------------------
+# Page: Purge Configurations
+#-----------------------------------------------------------------------
+purgeConfigs.page.title = Continuum - Purge Configurations
+purgeConfigs.repo.section.title = Repository Purge Configurations
+purgeConfigs.dir.section.title = Directory Purge Configurations
+purgeConfigs.table.repository = Repository
+purgeConfigs.table.description = Description
+purgeConfigs.table.retentionCount = Retention Count
+purgeConfigs.table.schedule = Schedule
+purgeConfigs.table.daysOlder = Days Older
+purgeConfigs.table.deleteAll = Delete All
+purgeConfigs.table.directoryType = Directory Type
+purgeConfigs.table.default = Default
+purgeConfigs.table.enabled = Enabled
+purgeConfigs.table.deleteReleasedSnapshots = Delete Released Snapshots
+
+#-----------------------------------------------------------------------
+# Page: Add/Edit Purge Configuration
+#-----------------------------------------------------------------------
+purgeConfig.page.title = Continuum - Add/Edit Purge Configuration
+purgeConfig.section.title = Add/Edit Purge Configuration
+purgeConfig.repository.label = Repository
+purgeConfig.directoryType.label = Directory Type
+purgeConfig.retentionCount.label = Retention Count
+purgeConfig.daysOlder.label = Days Older
+purgeConfig.deleteAll.label = Delete All
+purgeConfig.deleteReleasedSnapshots.label = Delete Released Snapshots
+purgeConfig.defaultPurge.label = Is it Default?
+purgeConfig.schedule.label = Schedule
+purgeConfig.description.label = Description
+purgeConfig.enabled.label = Enabled
+purgeConfig.no.repositories = No repositories to purge
\ No newline at end of file

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/resources/xwork.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/resources/xwork.xml?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/resources/xwork.xml (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/resources/xwork.xml Thu Aug  7 12:38:49 2008
@@ -747,6 +747,84 @@
       </result>      
     </action>    
     
+    <!--
+    * Local Repository actions
+    -->
+    
+    <action name="repositoryList" class="localRepository" method="list">
+      <result name="success">/WEB-INF/jsp/admin/localRepositoriesList.jsp</result>
+    </action>
+    
+    <action name="editRepository" class="localRepository" method="input">
+      <result name="error">/WEB-INF/jsp/admin/editLocalRepository.jsp</result>
+      <result name="input">/WEB-INF/jsp/admin/editLocalRepository.jsp</result>
+    </action>
+    
+    <action name="saveRepository" class="localRepository" method="save">
+      <result name="error">/WEB-INF/jsp/admin/editLocalRepository.jsp</result>
+      <result name="input">/WEB-INF/jsp/admin/editLocalRepository.jsp</result>
+      <result name="success" type="redirect-action">
+        <param name="actionName">repositoryList</param>
+      </result>
+    </action>
+    
+    <action name="removeRepository" class="localRepository" method="remove">
+      <result name="error" type="redirect-action">
+        <param name="actionName">repositoryList</param>
+        <param name="errorMessage">${message}</param>
+      </result>
+      <result name="confirm">/WEB-INF/jsp/admin/confirmDeleteLocalRepository.jsp</result>
+      <result name="success" type="redirect-action">
+        <param name="actionName">repositoryList</param>
+      </result>
+    </action>
+    
+    <action name="purgeRepository" class="localRepository" method="doPurge">
+      <result name="success" type="redirect-action">
+        <param name="actionName">repositoryList</param>
+      </result>
+      <result name="error" type="redirect-action">
+        <param name="actionName">repositoryList</param>
+        <param name="errorMessage">${message}</param>
+      </result>
+    </action>
+    
+    <!--
+    * Purge actions
+    -->
+    
+    <action name="purgeConfigList" class="purgeConfiguration" method="list">
+      <result name="success">/WEB-INF/jsp/admin/purgeConfigurationsList.jsp</result>
+    </action>
+    
+    <action name="editPurgeConfig" class="purgeConfiguration" method="input">
+      <result name="error">/WEB-INF/jsp/admin/editPurgeConfiguration.jsp</result>
+      <result name="input">/WEB-INF/jsp/admin/editPurgeConfiguration.jsp</result>
+    </action>
+    
+    <action name="savePurgeConfig" class="purgeConfiguration" method="save">
+      <result name="input">/WEB-INF/jsp/admin/editPurgeConfiguration.jsp</result>
+      <result name="success" type="redirect-action">
+        <param name="actionName">purgeConfigList</param>
+      </result>
+    </action>
+    
+    <action name="removePurgeConfig" class="purgeConfiguration" method="remove">
+      <result name="success" type="redirect-action">
+        <param name="actionName">purgeConfigList</param>
+      </result>
+    </action>
+    
+    <action name="doPurge" class="purgeConfiguration" method="purge">
+      <result name="success" type="redirect-action">
+        <param name="actionName">purgeConfigList</param>
+      </result>
+      <result name="error" type="redirect-action">
+        <param name="actionName">purgeConfigList</param>
+        <param name="errorMessage">${message}</param>
+      </result>
+    </action>
+    
   </package>
 
   <package name="component" extends="default">
@@ -934,6 +1012,6 @@
       <result name="input">/WEB-INF/jsp/notifier/notifierWagon.jsp</result>
       <result name="success" type="chain">projectGroupNotifier</result>
     </action>
-
+    
   </package>
 </xwork>

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/groupSummary.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/groupSummary.jsp?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/groupSummary.jsp (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/groupSummary.jsp Thu Aug  7 12:38:49 2008
@@ -57,6 +57,17 @@
           <a href="<ww:url  action="projectGroupSummary" namespace="/"><ww:param name="projectGroupId" value="%{'${group.id}'}"/></ww:url>">${group.name}</a>
         </ec:column>
         <ec:column property="groupId" title="groups.table.groupId" width="20%"/>
+        <ec:column property="repositoryName" title="groups.table.repositoryName" width="20%">
+          <redback:ifAuthorized permission="continuum-manage-repositories">
+            <ww:url id="editRepositoryUrl" action="editRepository" namespace="/admin" includeParams="none">
+              <ww:param name="repository.id">${pageScope.group.repositoryId}</ww:param>
+            </ww:url>
+            <ww:a href="%{editRepositoryUrl}">${pageScope.group.repositoryName}</ww:a> 
+          </redback:ifAuthorized>
+          <redback:elseAuthorized>
+            ${pageScope.group.repositoryName}
+          </redback:elseAuthorized>
+        </ec:column>
         <ec:column property="numSuccesses" title="&nbsp;" format="0" width="2%" style="text-align: right" headerClass="calcHeaderSucces" calc="total" calcTitle="groups.table.summary"/>
         <ec:column property="numFailures" title="&nbsp;" format="0" width="2%" style="text-align: right" headerClass="calcHeaderFailure" calc="total" />
         <ec:column property="numErrors" title="&nbsp;" format="0" width="2%" style="text-align: right" headerClass="calcHeaderError" calc="total"/>

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp Thu Aug  7 12:38:49 2008
@@ -82,12 +82,28 @@
   </redback:ifAuthorized>
 
 
-  <redback:ifAnyAuthorized permissions="continuum-manage-build-templates,continuum-manage-schedules,continuum-manage-configuration,continuum-manage-users,continuum-manage-installations,continuum-manage-profiles,continuum-view-queues">
+  <redback:ifAnyAuthorized permissions="continuum-manage-build-templates,continuum-manage-schedules,continuum-manage-configuration,continuum-manage-users,continuum-manage-installations,continuum-manage-profiles,continuum-view-queues,continuum-manage-repositories,continuum-manage-purging">
     <div id="projectmenu" class="toolgroup">
       <div class="label">
         <ww:text name="menu.administration"/>
       </div>
       <div>
+        <redback:ifAuthorized permission="continuum-manage-repositories">
+          <ww:url id="repositoryListUrl" action="repositoryList" namespace="/admin" includeParams="none"/>
+          <div class="body">
+            <ww:a href="%{repositoryListUrl}">
+              <ww:text name="menu.administration.repositories"/>
+            </ww:a>
+          </div>
+        </redback:ifAuthorized>
+        <redback:ifAuthorized permission="continuum-manage-purging">
+          <ww:url id="purgeConfigListUrl" action="purgeConfigList" namespace="/admin" includeParams="none"/>
+          <div class="body">
+            <ww:a href="%{purgeConfigListUrl}">
+              <ww:text name="menu.administration.purge"/>
+            </ww:a>
+          </div>
+        </redback:ifAuthorized>
         <redback:ifAuthorized permission="continuum-manage-schedules">
           <ww:url id="scheduleUrl" namespace="/" action="schedules" includeParams="none"/>
           <div class="body">

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupAdd.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupAdd.jsp?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupAdd.jsp (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupAdd.jsp Thu Aug  7 12:38:49 2008
@@ -44,6 +44,8 @@
                 <ww:textfield label="%{getText('projectGroup.name.label')}" name="name"  required="true"/>
                 <ww:textfield label="%{getText('projectGroup.groupId.label')}" name="groupId" required="true"/>
                 <ww:textfield label="%{getText('projectGroup.description.label')}" name="description"/>
+                <ww:select label="%{getText('projectGroup.repository.label')}" name="repositoryId" list="repositories"
+                		   listKey="id" listValue="name"/>
               </tbody>
             </table>
             <div class="functnbar3">

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupEdit.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupEdit.jsp?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupEdit.jsp (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupEdit.jsp Thu Aug  7 12:38:49 2008
@@ -50,6 +50,8 @@
                 <ww:textfield label="%{getText('projectGroup.name.label')}" name="name" required="true" disabled="%{projectInCOQueue}"/>
                 <c1:data label="%{getText('projectGroup.groupId.label')}" name="projectGroup.groupId"/>
                 <ww:textfield label="%{getText('projectGroup.description.label')}" name="description" disabled="%{projectInCOQueue}"/>
+                <ww:select label="%{getText('projectGroup.repository.label')}" name="repositoryId" list="repositories" 
+                           listKey="id" listValue="name"/> 
               </tbody>
             </table>
             

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupSummary.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupSummary.jsp?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupSummary.jsp (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/main/webapp/WEB-INF/jsp/projectGroupSummary.jsp Thu Aug  7 12:38:49 2008
@@ -88,6 +88,7 @@
         <c1:data label="%{getText('projectGroup.name.label')}" name="projectGroup.name"/>
         <c1:data label="%{getText('projectGroup.groupId.label')}" name="projectGroup.groupId"/>
         <c1:data label="%{getText('projectGroup.description.label')}" name="projectGroup.description"/>
+        <c1:data label="%{getText('projectGroup.repository.label')}" name="projectGroup.localRepository.name"/>
         <c:if test="${url != null}">
             <ww:url id="projectHomepageUrl" value="${url}" includeContext="false" includeParams="none"/>
         	<c1:data label="%{getText('projectGroup.url.label')}" name="url" valueLink="%{'${projectHomepageUrl}'}"/>  

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/ContinuumActionLoggingTest.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/ContinuumActionLoggingTest.java?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/ContinuumActionLoggingTest.java (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-webapp/src/test/java/org/apache/maven/continuum/web/action/ContinuumActionLoggingTest.java Thu Aug  7 12:38:49 2008
@@ -19,8 +19,6 @@
  * under the License.
  */
 
-import org.codehaus.plexus.PlexusTestCase;
-
 import java.io.BufferedOutputStream;
 import java.io.FileOutputStream;
 import java.io.FilterOutputStream;
@@ -28,6 +26,8 @@
 import java.io.OutputStream;
 import java.io.PrintStream;
 
+import org.codehaus.plexus.spring.PlexusInSpringTestCase;
+
 /**
  * TestContinuumActionLogging:
  *
@@ -35,7 +35,7 @@
  * @version $Id$
  */
 public class ContinuumActionLoggingTest
-    extends PlexusTestCase
+    extends PlexusInSpringTestCase
 {
 
     StringBuffer testOutput = new StringBuffer();

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-xmlrpc/continuum-xmlrpc-backup/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-xmlrpc/continuum-xmlrpc-backup/pom.xml?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-xmlrpc/continuum-xmlrpc-backup/pom.xml (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-xmlrpc/continuum-xmlrpc-backup/pom.xml Thu Aug  7 12:38:49 2008
@@ -30,6 +30,11 @@
   <dependencies>
     <dependency>
       <groupId>org.apache.continuum</groupId>
+      <artifactId>continuum-xmlrpc-api</artifactId>
+      <version>${project.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.continuum</groupId>
       <artifactId>continuum-xmlrpc-client</artifactId>
       <version>${project.version}</version>
     </dependency>
@@ -88,4 +93,4 @@
       </plugin>
     </plugins>
   </build>
-</project>
\ No newline at end of file
+</project>

Modified: continuum/branches/continuum-refactoring-evenisse/continuum-xmlrpc/continuum-xmlrpc-server/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/continuum-xmlrpc/continuum-xmlrpc-server/pom.xml?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/continuum-xmlrpc/continuum-xmlrpc-server/pom.xml (original)
+++ continuum/branches/continuum-refactoring-evenisse/continuum-xmlrpc/continuum-xmlrpc-server/pom.xml Thu Aug  7 12:38:49 2008
@@ -50,6 +50,11 @@
     </dependency>
     <dependency>
       <groupId>org.codehaus.plexus</groupId>
+      <artifactId>plexus-container-default</artifactId>
+      <version>1.0-alpha-20</version>
+    </dependency>
+    <dependency>
+      <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-xwork-integration</artifactId>
     </dependency>
     <dependency>

Modified: continuum/branches/continuum-refactoring-evenisse/maven-continuum-plugin/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-refactoring-evenisse/maven-continuum-plugin/pom.xml?rev=683689&r1=683688&r2=683689&view=diff
==============================================================================
--- continuum/branches/continuum-refactoring-evenisse/maven-continuum-plugin/pom.xml (original)
+++ continuum/branches/continuum-refactoring-evenisse/maven-continuum-plugin/pom.xml Thu Aug  7 12:38:49 2008
@@ -35,6 +35,10 @@
     </dependency>
     <dependency>
       <groupId>org.apache.continuum</groupId>
+      <artifactId>continuum-xmlrpc-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.continuum</groupId>
       <artifactId>continuum-xmlrpc-client</artifactId>
     </dependency>
     <dependency>
@@ -43,4 +47,4 @@
       <version>2.0</version>
     </dependency>
   </dependencies>
-</project>
\ No newline at end of file
+</project>