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

svn commit: r941625 [2/24] - in /continuum/branches/continuum-flat-multi-module: ./ continuum-api/ continuum-api/src/main/java/org/apache/continuum/builder/distributed/ continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/ conti...

Propchange: continuum/branches/continuum-flat-multi-module/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu May  6 09:23:13 2010
@@ -1,4 +1,4 @@
 /continuum/branches/continuum-1.2.x:690684,690689-690799,698449-698533,698817-698819,699529,700250,700273,700936,705894,705910,708339,722279,722624,723119,723487,724016,724024,725845,726103,726239,726462
-/continuum/branches/continuum-1.3.x:766106,766120-766121,766641,766645,766669,766977,767397,767792,767796,768222
+/continuum/branches/continuum-1.3.x:760767-900271,915354,915760,915848-915864,916073-916074
 /continuum/branches/continuum-distributed-builds:713270-734307
 /continuum/tags/continuum-1.2.3:733253

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/pom.xml?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/pom.xml (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/pom.xml Thu May  6 09:23:13 2010
@@ -21,7 +21,7 @@ under the License.
   <parent>
     <artifactId>continuum</artifactId>
     <groupId>org.apache.continuum</groupId>
-    <version>1.4.0-SNAPSHOT</version>
+    <version>1.4.1-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>continuum-api</artifactId>
@@ -32,6 +32,10 @@ under the License.
       <artifactId>continuum-model</artifactId>
     </dependency>
     <dependency>
+      <groupId>org.apache.continuum</groupId>
+      <artifactId>continuum-buildagent-api</artifactId>
+    </dependency>
+    <dependency>
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
     </dependency>

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/DistributedBuildManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/DistributedBuildManager.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/DistributedBuildManager.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/DistributedBuildManager.java Thu May  6 09:23:13 2010
@@ -22,8 +22,12 @@ package org.apache.continuum.builder.dis
 import java.util.List;
 import java.util.Map;
 
-import org.apache.continuum.builder.distributed.executor.DistributedBuildTaskQueueExecutor;
+import org.apache.continuum.buildagent.NoBuildAgentException;
+import org.apache.continuum.buildagent.NoBuildAgentInGroupException;
+import org.apache.continuum.model.project.ProjectScmRoot;
+import org.apache.continuum.taskqueue.BuildProjectTask;
 import org.apache.continuum.taskqueue.PrepareBuildProjectsTask;
+import org.apache.continuum.utils.build.BuildTrigger;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.system.Installation;
 
@@ -31,50 +35,69 @@ public interface DistributedBuildManager
 {
     String ROLE = DistributedBuildManager.class.getName();
 
-    void cancelDistributedBuild( String buildAgentUrl, int projectGroupId, String scmRootAddress )
+    void cancelDistributedBuild( String buildAgentUrl )
         throws ContinuumException;
 
-    void updateBuildResult( Map<String, Object> context )
+    void reload()
         throws ContinuumException;
 
-    void prepareBuildFinished( Map<String, Object> context )
+    void removeDistributedBuildQueueOfAgent( String buildAgentUrl )
         throws ContinuumException;
 
-    void startProjectBuild( int projectId )
+    boolean isBuildAgentBusy( String buildAgentUrl );
+
+    List<Installation> getAvailableInstallations( String buildAgentUrl )
         throws ContinuumException;
 
-    void startPrepareBuild( Map<String, Object> context )
+    Map<String, List<PrepareBuildProjectsTask>> getProjectsInPrepareBuildQueue()
         throws ContinuumException;
 
-    void reload()
+    Map<String, List<BuildProjectTask>> getProjectsInBuildQueue()
         throws ContinuumException;
 
-    void removeAgentFromTaskQueueExecutor( String buildAgentUrl )
+    Map<String, Object> getBuildResult( int projectId )
         throws ContinuumException;
 
-    boolean isBuildAgentBusy( String buildAgentUrl );
+    String generateWorkingCopyContent( int projectId, String directory, String baseUrl, String imagesBaseUrl )
+        throws ContinuumException;
 
-    List<Installation> getAvailableInstallations( String buildAgentUrl )
+    String getFileContent( int projectId, String directory, String filename )
         throws ContinuumException;
 
-    Map<String, PrepareBuildProjectsTask> getDistributedBuildProjects();
+    void prepareBuildProjects( Map<Integer, Integer> projectsBuildDefinitionsMap, BuildTrigger buildTrigger, int projectGroupId,  
+                               String projectGroupName, String scmRootAddress, int scmRootId, List<ProjectScmRoot> scmRoots )
+        throws ContinuumException, NoBuildAgentException, NoBuildAgentInGroupException;
 
-    Map<String, Object> getBuildResult( int projectId )
+    Map<String, PrepareBuildProjectsTask> getProjectsCurrentlyPreparingBuild()
         throws ContinuumException;
 
-    Map<String, String> getEnvironments( int buildDefinitionId, String installationType )
+    Map<String, BuildProjectTask> getProjectsCurrentlyBuilding()
         throws ContinuumException;
 
-    void updateProject( Map<String, Object> context )
+    void removeFromPrepareBuildQueue( String buildAgnetUrl, int projectGroupId, int scmRootId )
         throws ContinuumException;
 
-    boolean shouldBuild( Map<String, Object> context );
+    void removeFromPrepareBuildQueue( List<String> hashCodes )
+        throws ContinuumException;
 
-    Map<String, DistributedBuildTaskQueueExecutor> getTaskQueueExecutors();
+    void removeFromBuildQueue( String buildAgentUrl, int projectId, int buildDefinitionId )
+        throws ContinuumException;
 
-    String generateWorkingCopyContent( int projectId, String directory, String baseUrl, String imagesBaseUrl )
+    void removeFromBuildQueue( List<String> hashCodes )
         throws ContinuumException;
 
-    String getFileContent( int projectId, String directory, String filename )
+    boolean isAgentAvailable( String buildAgentUrl )
+        throws ContinuumException;
+
+    boolean isProjectInAnyPrepareBuildQueue( int projectId, int buildDefinitionId )
+        throws ContinuumException;
+
+    boolean isProjectInAnyBuildQueue( int projectId, int buildDefinitionId )
+        throws ContinuumException;
+
+    boolean isProjectCurrentlyPreparingBuild( int projectId, int buildDefinitionId )
+        throws ContinuumException;
+
+    boolean isProjectCurrentlyBuilding( int projectId, int buildDefinitionId )
         throws ContinuumException;
-}
+}
\ No newline at end of file

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java Thu May  6 09:23:13 2010
@@ -25,6 +25,8 @@ import java.util.Map;
 
 import org.apache.continuum.taskqueue.BuildProjectTask;
 import org.apache.continuum.taskqueue.CheckOutTask;
+import org.apache.continuum.taskqueue.PrepareBuildProjectsTask;
+import org.apache.continuum.utils.build.BuildTrigger;
 import org.apache.maven.continuum.model.project.BuildDefinition;
 import org.apache.maven.continuum.model.project.BuildQueue;
 import org.apache.maven.continuum.model.project.Project;
@@ -43,12 +45,13 @@ public interface BuildsManager
      *
      * @param projects
      * @param projectsBuildDefinitionsMap
-     * @param trigger
+     * @param buildTrigger
      * @param scmResultMap                TODO
+     * @param projectGroupId
      * @throws BuildManagerException
      */
-    void buildProjects( List<Project> projects, Map<Integer, BuildDefinition> projectsBuildDefinitionsMap, int trigger,
-                        Map<Integer, ScmResult> scmResultMap )
+	void buildProjects( List<Project> projects, Map<Integer, BuildDefinition> projectsBuildDefinitionsMap,
+			            BuildTrigger buildTrigger, Map<Integer, ScmResult> scmResultMap, int projectGroupId )
         throws BuildManagerException;
 
     /**
@@ -59,25 +62,27 @@ public interface BuildsManager
      * @param projectId
      * @param buildDefinition
      * @param projectName
-     * @param trigger
+     * @param buildTrigger
      * @param scmResult       TODO
+     * @param projectGroupId
      * @throws BuildManagerException
      */
-    void buildProject( int projectId, BuildDefinition buildDefinition, String projectName, int trigger,
-                       ScmResult scmResult )
+	void buildProject( int projectId, BuildDefinition buildDefinition, String projectName, BuildTrigger buildTrigger,
+                       ScmResult scmResult, int projectGroupId )
         throws BuildManagerException;
 
     /**
      * Adds the projects in the prepare-build-queue.
      *
      * @param projectsBuildDefinitionsMap
-     * @param trigger
+     * @param buildTrigger
      * @param projectGroupId              TODO
      * @param scmRootAddress              TODO
+     * @param scmRootId
      * @throws BuildManagerException
      */
-    void prepareBuildProjects( Map<Integer, Integer> projectsBuildDefinitionsMap, int trigger, int projectGroupId,
-                               String projectGroupName, String scmRootAddress, int scmRootId )
+	void prepareBuildProjects( Map<Integer, Integer> projectsBuildDefinitionsMap, BuildTrigger buildTrigger,
+			                   int projectGroupId, String projectGroupName, String scmRootAddress, int scmRootId )
         throws BuildManagerException;
 
     /**
@@ -87,15 +92,13 @@ public interface BuildsManager
      * @param projectId
      * @param projectName
      * @param workingDirectory
-     * @param scmRootUrl TODO
      * @param scmUsername
      * @param scmPassword
      * @param defaultBuildDefinition
-     * @param subProjects TODO
      * @throws BuildManagerException
      */
-    void checkoutProject( int projectId, String projectName, File workingDirectory, String scmRootUrl,
-                          String scmUsername, String scmPassword, BuildDefinition defaultBuildDefinition, List<Project> subProjects )
+    void checkoutProject( int projectId, String projectName, File workingDirectory, String scmUsername,
+                          String scmPassword, BuildDefinition defaultBuildDefinition )
         throws BuildManagerException;
 
     /**
@@ -161,11 +164,13 @@ public interface BuildsManager
      *
      * @param projectId
      * @param buildDefinitionId
-     * @param trigger
+     * @param buildTrigger
      * @param projectName
+     * @param projectGroupId
      * @throws BuildManagerException
      */
-    void removeProjectFromBuildQueue( int projectId, int buildDefinitionId, int trigger, String projectName )
+    void removeProjectFromBuildQueue( int projectId, int buildDefinitionId, BuildTrigger buildTrigger,
+    		                          String projectName, int projectGroupId )
         throws BuildManagerException;
 
     // TODO: should we throw an exception when one of the projects cannot be removed?
@@ -340,4 +345,68 @@ void removeProjectsFromPrepareBuildQueue
      * @return
      */
     boolean isBuildInProgress();
+
+    /**
+     * Checks if at least one of the projects is currently building.
+     * @param projectIds
+     * @return
+     * @throws BuildManagerException
+     */
+    boolean isAnyProjectCurrentlyBuilding( int[] projectIds )
+        throws BuildManagerException;
+
+    /**
+     * Checks whether project is currently being checked out.
+     * 
+     * @param projectId
+     * @return
+     * @throws BuildManagerException
+     */
+    boolean isProjectCurrentlyBeingCheckedOut( int projectId )
+        throws BuildManagerException;
+
+    /**
+     * Checks whether project is currently preparing build
+     * 
+     * @param projectId
+     * @return
+     * @throws BuildManagerException
+     */
+    boolean isProjectCurrentlyPreparingBuild( int projectId )
+        throws BuildManagerException;
+
+    /**
+     * Return currently preparing build project.
+     * @return
+     * @throws BuildManagerException
+     */
+    PrepareBuildProjectsTask getCurrentProjectInPrepareBuild()
+        throws BuildManagerException;
+
+    /**
+     * Return all projects in prepare build queue.
+     * @return
+     * @throws BuildManagerException
+     */
+    List<PrepareBuildProjectsTask> getProjectsInPrepareBuildQueue()
+        throws BuildManagerException;
+
+    /**
+     * Remove a project from a prepare build queue.
+     * @param projectGroupId
+     * @param scmRootId
+     * @return
+     * @throws BuildManagerException
+     */
+    boolean removeProjectFromPrepareBuildQueue( int projectGroupId, int scmRootId )
+        throws BuildManagerException;
+
+    /**
+     * Removes a set of projects using the specified hashcodes from the prepare build queues.
+     *
+     * @param hashcodes
+     * @throws BuildManagerException
+     */
+    void removeProjectsFromPrepareBuildQueueWithHashCodes( int[] hashCodes )
+        throws BuildManagerException;
 }

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/BuildResultDao.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/BuildResultDao.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/BuildResultDao.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/BuildResultDao.java Thu May  6 09:23:13 2010
@@ -19,13 +19,13 @@ package org.apache.continuum.dao;
  * under the License.
  */
 
+import java.util.List;
+import java.util.Map;
+
 import org.apache.maven.continuum.model.project.BuildResult;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.store.ContinuumStoreException;
 
-import java.util.List;
-import java.util.Map;
-
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
@@ -45,30 +45,52 @@ public interface BuildResultDao
 
     BuildResult getLatestBuildResultForProject( int projectId );
 
+    BuildResult getLatestBuildResultForProjectWithDetails( int projectId );
+
     BuildResult getLatestBuildResultForBuildDefinition( int projectId, int buildDefinitionId );
 
-    List<BuildResult> getBuildResultsInSuccessForProject( int projectId, long fromDate );
+    BuildResult getLatestBuildResultInSuccess( int projectId );
+
+    BuildResult getPreviousBuildResultInSuccess( int projectId, int buildResultId )
+        throws ContinuumStoreException;
 
     long getNbBuildResultsForProject( int projectId );
 
+    /**
+     * Returns the list of build results between the fromdate and the buildResult defined by its toBuildResultId
+     *
+     * @param projectId       The project id
+     * @param fromDate        the from date
+     * @param tobuildResultId the build result id
+     * @return the list of build results
+     */
+    List<BuildResult> getBuildResultsForProjectWithDetails( int projectId, long fromDate, int tobuildResultId );
+
+    /**
+     * Returns the number of build results in success since fromDate
+     *
+     * @param projectId The project id
+     * @param fromDate  The from date
+     * @return the number of build results
+     */
+    long getNbBuildResultsInSuccessForProject( int projectId, long fromDate );
+
     List<BuildResult> getBuildResultsForProject( int projectId );
 
     List<BuildResult> getBuildResultsForProject( int projectId, long startIndex, long endIndex );
 
     /**
-     * @since 1.2
      * @param projectId
-     * @param startIndex
+     * @param startId
      * @return the returned list will contains all BuildResult for this project after the startId
+     * @since 1.2
      */
     List<BuildResult> getBuildResultsForProjectFromId( int projectId, long startId )
-        throws ContinuumStoreException;   
-    
-    List<BuildResult> getBuildResultsForProject( int projectId, long fromDate );
+        throws ContinuumStoreException;
 
     Map<Integer, BuildResult> getLatestBuildResultsByProjectGroupId( int projectGroupId );
 
-    Map<Integer, BuildResult> getLatestBuildResults();
+    Map<Integer, BuildResult> getBuildResultsInSuccessByProjectGroupId( int projectGroupId );
 
     List<BuildResult> getBuildResultByBuildNumber( int projectId, int buildNumber );
 
@@ -77,9 +99,5 @@ public interface BuildResultDao
     List<BuildResult> getBuildResultsByBuildDefinition( int projectId, int buildDefinitionId, long startIndex,
                                                         long endIndex );
 
-    Map<Integer, BuildResult> getBuildResultsInSuccess();
-
-    Map<Integer, BuildResult> getBuildResultsInSuccessByProjectGroupId( int projectGroupId );
-
     List<BuildResult> getAllBuildsForAProjectByDate( int projectId );
 }

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/DirectoryPurgeConfigurationDao.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/DirectoryPurgeConfigurationDao.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/DirectoryPurgeConfigurationDao.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/DirectoryPurgeConfigurationDao.java Thu May  6 09:23:13 2010
@@ -34,6 +34,8 @@ public interface DirectoryPurgeConfigura
 
     List<DirectoryPurgeConfiguration> getDirectoryPurgeConfigurationsBySchedule( int scheduleId );
 
+    List<DirectoryPurgeConfiguration> getEnableDirectoryPurgeConfigurationsBySchedule( int scheduleId );
+    
     List<DirectoryPurgeConfiguration> getDirectoryPurgeConfigurationsByLocation( String location );
 
     List<DirectoryPurgeConfiguration> getDirectoryPurgeConfigurationsByType( String type );

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/ProjectDao.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/ProjectDao.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/ProjectDao.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/ProjectDao.java Thu May  6 09:23:13 2010
@@ -19,12 +19,14 @@ package org.apache.continuum.dao;
  * under the License.
  */
 
+import org.apache.continuum.model.project.ProjectGroupSummary;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.store.ContinuumObjectNotFoundException;
 import org.apache.maven.continuum.store.ContinuumStoreException;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
@@ -63,8 +65,6 @@ public interface ProjectDao
     List<Project> getProjectsInGroupWithDependencies( int projectGroupId )
         throws ContinuumStoreException;
 
-    List<Project> getAllProjectsWithAllDetails();
-
     Project getProjectWithAllDetails( int projectId )
         throws ContinuumStoreException;
 
@@ -79,4 +79,6 @@ public interface ProjectDao
 
     Project getProjectWithDependencies( int projectId )
         throws ContinuumStoreException;
+
+    Map<Integer, ProjectGroupSummary> getProjectsSummary();
 }

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/RepositoryPurgeConfigurationDao.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/RepositoryPurgeConfigurationDao.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/RepositoryPurgeConfigurationDao.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/dao/RepositoryPurgeConfigurationDao.java Thu May  6 09:23:13 2010
@@ -33,6 +33,8 @@ public interface RepositoryPurgeConfigur
     List<RepositoryPurgeConfiguration> getAllRepositoryPurgeConfigurations();
 
     List<RepositoryPurgeConfiguration> getRepositoryPurgeConfigurationsBySchedule( int scheduleId );
+    
+    List<RepositoryPurgeConfiguration> getEnableRepositoryPurgeConfigurationsBySchedule( int scheduleId );
 
     List<RepositoryPurgeConfiguration> getRepositoryPurgeConfigurationsByLocalRepository( int repositoryId );
 

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/purge/PurgeConfigurationService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/purge/PurgeConfigurationService.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/purge/PurgeConfigurationService.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/purge/PurgeConfigurationService.java Thu May  6 09:23:13 2010
@@ -60,6 +60,8 @@ public interface PurgeConfigurationServi
     
     List<RepositoryPurgeConfiguration> getRepositoryPurgeConfigurationsBySchedule( int scheduleId );
     
+    List<RepositoryPurgeConfiguration> getEnableRepositoryPurgeConfigurationsBySchedule( int scheduleId );
+    
     List<RepositoryPurgeConfiguration> getRepositoryPurgeConfigurationsByRepository( int repositoryId );
     
     List<RepositoryPurgeConfiguration> getAllRepositoryPurgeConfigurations();
@@ -80,6 +82,8 @@ public interface PurgeConfigurationServi
     
     List<DirectoryPurgeConfiguration> getDirectoryPurgeConfigurationsBySchedule( int scheduleId );
     
+    List<DirectoryPurgeConfiguration> getEnableDirectoryPurgeConfigurationsBySchedule( int scheduleId );
+    
     List<DirectoryPurgeConfiguration> getDirectoryPurgeConfigurationsByLocation( String location );
     
     List<DirectoryPurgeConfiguration> getAllDirectoryPurgeConfigurations();

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/release/distributed/manager/DistributedReleaseManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/release/distributed/manager/DistributedReleaseManager.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/release/distributed/manager/DistributedReleaseManager.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/release/distributed/manager/DistributedReleaseManager.java Thu May  6 09:23:13 2010
@@ -38,7 +38,7 @@ public interface DistributedReleaseManag
         throws ContinuumReleaseException, BuildAgentConfigurationException;
 
     String releasePrepare( Project project, Properties releaseProperties, Map<String, String> releaseVersion, 
-                           Map<String, String> developmentVersion, Map<String, String> environments )
+                           Map<String, String> developmentVersion, Map<String, String> environments, String username )
         throws ContinuumReleaseException, BuildAgentConfigurationException;
 
     ReleaseResult getReleaseResult( String releaseId )
@@ -53,11 +53,11 @@ public interface DistributedReleaseManag
     String getPreparedReleaseName( String releaseId )
         throws ContinuumReleaseException;
 
-    void releasePerform( int projectId, String releaseId, String goals, String arguments, boolean useReleaseProfile, LocalRepository repository )
+    void releasePerform( int projectId, String releaseId, String goals, String arguments, boolean useReleaseProfile, LocalRepository repository, String username )
         throws ContinuumReleaseException, BuildAgentConfigurationException;
 
-    void releasePerformFromScm( int projectId, String goals, String arguments, boolean useReleaseProfile, LocalRepository repository, 
-                                String scmUrl, String scmUsername, String scmPassword, String scmTag, String scmTagBase, Map environments )
+    String releasePerformFromScm( int projectId, String goals, String arguments, boolean useReleaseProfile, LocalRepository repository, 
+                                  String scmUrl, String scmUsername, String scmPassword, String scmTag, String scmTagBase, Map environments, String username )
         throws ContinuumReleaseException, BuildAgentConfigurationException;
 
     void releaseRollback( String releaseId, int projectId )
@@ -68,4 +68,6 @@ public interface DistributedReleaseManag
 
     List<Map<String, Object>> getAllReleasesInProgress()
         throws ContinuumReleaseException, BuildAgentConfigurationException;
+    
+    String getDefaultBuildagent( int projectId );
 }
\ No newline at end of file

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java Thu May  6 09:23:13 2010
@@ -21,6 +21,7 @@ package org.apache.continuum.taskqueue;
 
 import java.io.Serializable;
 
+import org.apache.continuum.utils.build.BuildTrigger;
 import org.apache.maven.continuum.model.scm.ScmResult;
 import org.codehaus.plexus.taskqueue.Task;
 
@@ -39,7 +40,7 @@ public class BuildProjectTask
 
     private final long timestamp;
 
-    private final int trigger;
+    private BuildTrigger buildTrigger;
 
     private long maxExecutionTime;
 
@@ -49,8 +50,10 @@ public class BuildProjectTask
 
     private ScmResult scmResult;
 
-    public BuildProjectTask( int projectId, int buildDefinitionId, int trigger, String projectName,
-                             String buildDefinitionLabel, ScmResult scmResult )
+    int projectGroupId;
+
+    public BuildProjectTask( int projectId, int buildDefinitionId, BuildTrigger buildTrigger, String projectName,
+                             String buildDefinitionLabel, ScmResult scmResult, int projectGroupId )
     {
         this.projectId = projectId;
 
@@ -58,13 +61,15 @@ public class BuildProjectTask
 
         this.timestamp = System.currentTimeMillis();
 
-        this.trigger = trigger;
+        this.buildTrigger = buildTrigger;
 
         this.projectName = projectName;
 
         this.buildDefinitionLabel = buildDefinitionLabel;
 
         this.scmResult = scmResult;
+
+        this.projectGroupId = projectGroupId;
     }
 
     public int getProjectId()
@@ -82,9 +87,14 @@ public class BuildProjectTask
         return timestamp;
     }
 
-    public int getTrigger()
+    public BuildTrigger getBuildTrigger()
+    {
+    	return buildTrigger;
+    }
+    
+    public void setBuildTrigger( BuildTrigger buildTrigger )
     {
-        return trigger;
+        this.buildTrigger = buildTrigger;
     }
 
     public void setMaxExecutionTime( long maxExecutionTime )
@@ -112,6 +122,11 @@ public class BuildProjectTask
         return scmResult;
     }
 
+    public int getProjectGroupId()
+    {
+        return projectGroupId;
+    }
+
     public boolean equals( Object obj )
     {
         if ( obj == null )
@@ -129,12 +144,12 @@ public class BuildProjectTask
         BuildProjectTask buildProjectTask = (BuildProjectTask) obj;
         return buildProjectTask.getBuildDefinitionId() == this.getBuildDefinitionId() &&
             buildProjectTask.getProjectId() == this.getProjectId() &&
-            buildProjectTask.getTrigger() == this.getTrigger();
+            buildProjectTask.getBuildTrigger().getTrigger() == this.buildTrigger.getTrigger();
     }
 
     public int hashCode()
     {
-        return this.getBuildDefinitionId() + this.getProjectId() + this.getTrigger();
+    	return this.getBuildDefinitionId() + this.getProjectId() + this.buildTrigger.getTrigger();
     }
 
     public int getHashCode()

Propchange: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu May  6 09:23:13 2010
@@ -1,3 +1,3 @@
 /continuum/branches/continuum-1.2.x/continuum-api/src/main/java/org/apache/maven/continuum/buildqueue/BuildProjectTask.java:690684,690689-690799,698449-698533,698817-698819,699529,700250,700273,700936,705894,705910,708339,722279,722624,723119,723487,724016,724024
-/continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java:766106,766120-766121,766641,766645,766669,766977,767397,767792,767796,768222
+/continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java:760767-900271,915354,915760,915848-915864,916073-916074
 /continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/buildqueue/BuildProjectTask.java:713270-724659

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java Thu May  6 09:23:13 2010
@@ -20,9 +20,7 @@ package org.apache.continuum.taskqueue;
  */
 
 import java.io.File;
-import java.util.List;
 
-import org.apache.maven.continuum.model.project.Project;
 import org.codehaus.plexus.taskqueue.Task;
 
 /**
@@ -41,13 +39,9 @@ public class CheckOutTask
     private final String scmUserName;
 
     private final String scmPassword;
-    
-    private final String scmRootUrl;
-    
-    private final List<Project> projectsWithCommonScmRoot;
 
     public CheckOutTask( int projectId, File workingDirectory, String projectName, String scmUserName,
-                         String scmPassword, String scmRootUrl, List<Project> projectsWithCommonScmRoot )
+                         String scmPassword )
     {
         this.projectId = projectId;
 
@@ -58,10 +52,6 @@ public class CheckOutTask
         this.scmUserName = scmUserName;
 
         this.scmPassword = scmPassword;
-        
-        this.scmRootUrl = scmRootUrl;
-        
-        this.projectsWithCommonScmRoot = projectsWithCommonScmRoot;
     }
 
     public int getProjectId()
@@ -100,14 +90,4 @@ public class CheckOutTask
     {
         return this.hashCode();
     }
-
-    public String getScmRootUrl()
-    {
-        return scmRootUrl;
-    }
-
-    public List<Project> getProjectsWithCommonScmRoot()
-    {
-        return projectsWithCommonScmRoot;
-    }
 }

Propchange: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu May  6 09:23:13 2010
@@ -1,3 +1,3 @@
 /continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTask.java:690684,690689-690799,698449-698533,698817-698819,699529,700250,700273,700936,705894,705910,708339,722279,722624,723119,723487,724016,724024
-/continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java:766106,766120-766121,766641,766645,766669,766977,767397,767792,767796,768222
+/continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/CheckOutTask.java:760767-900271,915354,915760,915848-915864,916073-916074
 /continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTask.java:713270-724659

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallBuildQueue.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallBuildQueue.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallBuildQueue.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallBuildQueue.java Thu May  6 09:23:13 2010
@@ -21,6 +21,7 @@ package org.apache.continuum.taskqueue;
 
 import java.util.List;
 
+import org.apache.continuum.utils.build.BuildTrigger;
 import org.codehaus.plexus.taskqueue.TaskQueue;
 import org.codehaus.plexus.taskqueue.TaskQueueException;
 import org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor;
@@ -213,12 +214,14 @@ public interface OverallBuildQueue
      *
      * @param projectId
      * @param buildDefinitionId
-     * @param trigger
+     * @param buildTrigger
      * @param projectName
+     * @param projectGroupId
      * @return
      * @throws TaskQueueException TODO
      */
-    boolean removeProjectFromBuildQueue( int projectId, int buildDefinitionId, int trigger, String projectName )
+    boolean removeProjectFromBuildQueue( int projectId, int buildDefinitionId, BuildTrigger buildTrigger,
+    		                             String projectName, int projectGroupId )
         throws TaskQueueException;
 
     /**

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java Thu May  6 09:23:13 2010
@@ -21,6 +21,7 @@ package org.apache.continuum.taskqueue;
 
 import java.util.Map;
 
+import org.apache.continuum.utils.build.BuildTrigger;
 import org.codehaus.plexus.taskqueue.Task;
 
 public class PrepareBuildProjectsTask
@@ -28,7 +29,7 @@ public class PrepareBuildProjectsTask
 {
     private final Map<Integer, Integer> projectsBuildDefinitionsMap;
 
-    private final int trigger;
+    private BuildTrigger buildTrigger;
 
     private final int projectGroupId;
 
@@ -38,11 +39,11 @@ public class PrepareBuildProjectsTask
 
     private final int projectScmRootId;
 
-    public PrepareBuildProjectsTask( Map<Integer, Integer> projectsBuildDefinitionsMap, int trigger, int projectGroupId,
+    public PrepareBuildProjectsTask( Map<Integer, Integer> projectsBuildDefinitionsMap, BuildTrigger buildTrigger, int projectGroupId,
                                      String projectGroupName, String scmRootAddress, int projectScmRootId )
     {
         this.projectsBuildDefinitionsMap = projectsBuildDefinitionsMap;
-        this.trigger = trigger;
+        this.buildTrigger = buildTrigger;
         this.projectGroupId = projectGroupId;
         this.projectGroupName = projectGroupName;
         this.scmRootAddress = scmRootAddress;
@@ -60,9 +61,9 @@ public class PrepareBuildProjectsTask
         return projectsBuildDefinitionsMap;
     }
 
-    public int getTrigger()
+    public BuildTrigger getBuildTrigger()
     {
-        return trigger;
+    	return buildTrigger;
     }
 
     public int getHashCode()
@@ -85,8 +86,13 @@ public class PrepareBuildProjectsTask
         return scmRootAddress;
     }
 
+    public int getProjectScmRootId()
+    {
+        return projectScmRootId;
+    }
+
     public int hashCode()
     {
-        return this.projectGroupId + this.projectScmRootId + this.trigger;
+    	return this.projectGroupId + this.projectScmRootId + this.buildTrigger.getTrigger();
     }
 }

Propchange: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu May  6 09:23:13 2010
@@ -1,2 +1,2 @@
 /continuum/branches/continuum-1.2.x/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTask.java:690684,690689-690799,698449-698533,698817-698819,699529,700250,700273,700936,705894,705910,708339
-/continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java:766106,766120-766121,766641,766645,766669,766977,767397,767792,767796,768222
+/continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java:760767-900271,915354,915760,915848-915864,916073-916074

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/manager/TaskQueueManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/manager/TaskQueueManager.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/manager/TaskQueueManager.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/continuum/taskqueue/manager/TaskQueueManager.java Thu May  6 09:23:13 2010
@@ -19,9 +19,6 @@ package org.apache.continuum.taskqueue.m
  * under the License.
  */
 
-import java.util.List;
-
-import org.apache.continuum.taskqueue.PrepareBuildProjectsTask;
 import org.codehaus.plexus.taskqueue.TaskQueue;;
 
 /**
@@ -31,16 +28,8 @@ public interface TaskQueueManager
 {
     String ROLE = TaskQueueManager.class.getName();
 
-    TaskQueue getDistributedBuildQueue();
-
-    List<PrepareBuildProjectsTask> getDistributedBuildProjectsInQueue()
-        throws TaskQueueManagerException;
-
     TaskQueue getPurgeQueue();
 
-    boolean isInDistributedBuildQueue( int projectGroupId, String scmRootAddress )
-        throws TaskQueueManagerException;
-
     boolean isInPurgeQueue( int purgeConfigurationId )
         throws TaskQueueManagerException;
 
@@ -77,9 +66,6 @@ public interface TaskQueueManager
     boolean releaseInProgress()
         throws TaskQueueManagerException;
 
-    void removeFromDistributedBuildQueue( int projectGroupId, String scmRootAddress )
-        throws TaskQueueManagerException;
-  
     /**
      * Remove local repository from the purge queue
      * 
@@ -108,7 +94,4 @@ public interface TaskQueueManager
      */
     void removeRepositoryFromPurgeQueue( int repositoryId )
         throws TaskQueueManagerException;
-
-    void removeTasksFromDistributedBuildQueueWithHashCodes( int[] hashCodes )
-        throws TaskQueueManagerException;
 }

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java Thu May  6 09:23:13 2010
@@ -24,8 +24,11 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.continuum.buildagent.NoBuildAgentException;
+import org.apache.continuum.buildagent.NoBuildAgentInGroupException;
 import org.apache.continuum.builder.distributed.manager.DistributedBuildManager;
 import org.apache.continuum.buildmanager.BuildsManager;
+import org.apache.continuum.model.project.ProjectGroupSummary;
 import org.apache.continuum.model.project.ProjectScmRoot;
 import org.apache.continuum.model.release.ContinuumReleaseResult;
 import org.apache.continuum.purge.ContinuumPurgeManager;
@@ -33,6 +36,7 @@ import org.apache.continuum.purge.PurgeC
 import org.apache.continuum.release.distributed.manager.DistributedReleaseManager;
 import org.apache.continuum.repository.RepositoryService;
 import org.apache.continuum.taskqueue.manager.TaskQueueManager;
+import org.apache.continuum.utils.build.BuildTrigger;
 import org.apache.maven.continuum.builddefinition.BuildDefinitionService;
 import org.apache.maven.continuum.configuration.ConfigurationService;
 import org.apache.maven.continuum.installation.InstallationService;
@@ -64,13 +68,6 @@ public interface Continuum
     public ProjectGroup getProjectGroup( int projectGroupId )
         throws ContinuumException;
 
-    /**
-     * Get all {@link ProjectGroup}s and their {@link Project}s
-     *
-     * @return {@link Collection} &lt;{@link ProjectGroup}>
-     */
-    public Collection<ProjectGroup> getAllProjectGroupsWithProjects();
-
     public List<ProjectGroup> getAllProjectGroupsWithBuildDetails();
 
     public List<ProjectGroup> getAllProjectGroups();
@@ -117,6 +114,7 @@ public interface Continuum
      * @throws ContinuumException
      * @deprecated
      */
+    @Deprecated
     void checkoutProject( int projectId )
         throws ContinuumException;
 
@@ -126,11 +124,6 @@ public interface Continuum
     Project getProjectWithBuildDetails( int projectId )
         throws ContinuumException;
 
-    List<Project> getAllProjectsWithAllDetails( int start, int end );
-
-    Collection<Project> getAllProjects( int start, int end )
-        throws ContinuumException;
-
     Collection<Project> getProjects()
         throws ContinuumException;
 
@@ -141,19 +134,14 @@ public interface Continuum
 
     Map<Integer, BuildResult> getLatestBuildResults( int projectGroupId );
 
-    Map<Integer, BuildResult> getLatestBuildResults();
-
     Map<Integer, BuildResult> getBuildResultsInSuccess( int projectGroupId );
 
-    Map<Integer, BuildResult> getBuildResultsInSuccess();
+    Map<Integer, ProjectGroupSummary> getProjectsSummaryByGroups();
 
     // ----------------------------------------------------------------------
     // Building
     // ----------------------------------------------------------------------
 
-    List<Project> getProjectsInBuildOrder()
-        throws ContinuumException;
-
     /**
      * take a collection of projects and sort for order
      *
@@ -162,44 +150,41 @@ public interface Continuum
      */
     List<Project> getProjectsInBuildOrder( Collection<Project> projects );
 
-    void buildProjects()
-        throws ContinuumException;
-
-    void buildProjectsWithBuildDefinition( int buildDefinitionId )
-        throws ContinuumException;
+    void buildProjects( String username )
+        throws ContinuumException, NoBuildAgentException, NoBuildAgentInGroupException;
 
     void buildProjectsWithBuildDefinition( List<Project> projects, List<BuildDefinition> bds )
-        throws ContinuumException;
+        throws ContinuumException, NoBuildAgentException, NoBuildAgentInGroupException;
 
     void buildProjectsWithBuildDefinition( List<Project> projects, int buildDefinitionId )
-        throws ContinuumException;
+        throws ContinuumException, NoBuildAgentException, NoBuildAgentInGroupException;
 
-    void buildProjects( int trigger )
-        throws ContinuumException;
+    void buildProjects( BuildTrigger buildTrigger )
+        throws ContinuumException, NoBuildAgentException, NoBuildAgentInGroupException;
 
-    void buildProjects( int trigger, int buildDefinitionId )
-        throws ContinuumException;
+    void buildProjects( BuildTrigger buildTrigger, int buildDefinitionId )
+        throws ContinuumException, NoBuildAgentException, NoBuildAgentInGroupException;
 
     void buildProjects( Schedule schedule )
         throws ContinuumException;
 
-    void buildProject( int projectId )
-        throws ContinuumException;
+    void buildProject( int projectId, String username )
+        throws ContinuumException, NoBuildAgentException, NoBuildAgentInGroupException;
 
-    void buildProject( int projectId, int trigger )
-        throws ContinuumException;
+    void buildProject( int projectId, BuildTrigger buildTrigger )
+        throws ContinuumException, NoBuildAgentException, NoBuildAgentInGroupException;
 
-    void buildProjectWithBuildDefinition( int projectId, int buildDefinitionId )
-        throws ContinuumException;
+    void buildProjectWithBuildDefinition( int projectId, int buildDefinitionId, BuildTrigger buildTrigger )
+        throws ContinuumException, NoBuildAgentException, NoBuildAgentInGroupException;
 
-    void buildProject( int projectId, int buildDefinitionId, int trigger )
-        throws ContinuumException;
+    void buildProject( int projectId, int buildDefinitionId, BuildTrigger buildTrigger )
+        throws ContinuumException, NoBuildAgentException, NoBuildAgentInGroupException;
 
-    public void buildProjectGroup( int projectGroupId )
-        throws ContinuumException;
+    public void buildProjectGroup( int projectGroupId, BuildTrigger buildTrigger )
+        throws ContinuumException, NoBuildAgentException, NoBuildAgentInGroupException;
 
-    public void buildProjectGroupWithBuildDefinition( int projectGroupId, int buildDefinitionId )
-        throws ContinuumException;
+    public void buildProjectGroupWithBuildDefinition( int projectGroupId, int buildDefinitionId, BuildTrigger buildTrigger )
+        throws ContinuumException, NoBuildAgentException, NoBuildAgentInGroupException;
 
     // ----------------------------------------------------------------------
     // Build information
@@ -337,14 +322,13 @@ public interface Continuum
      * @param useCredentialsCache      whether to use cached scm account credentials or not
      * @param loadRecursiveProjects    if multi modules project record all projects (if false only root project added)
      * @param buildDefintionTemplateId buildDefintionTemplateId
-     * @param checkoutInSingleDirector if multi module project, check out the entire project in a single directory (handle flat multi-modules)
      * @return a holder with the projects, project groups and errors occurred during the project adding
      * @throws ContinuumException
      */
     public ContinuumProjectBuildingResult addMavenTwoProject( String metadataUrl, int projectGroupId,
                                                               boolean checkProtocol, boolean useCredentialsCache,
                                                               boolean loadRecursiveProjects,
-                                                              int buildDefintionTemplateId, boolean checkoutInSingleDirectory )
+                                                              int buildDefintionTemplateId )
         throws ContinuumException;
 
     /**
@@ -438,18 +422,21 @@ public interface Continuum
     /**
      * @deprecated
      */
+    @Deprecated
     List<BuildDefinition> getBuildDefinitions( int projectId )
         throws ContinuumException;
 
     /**
      * @deprecated
      */
+    @Deprecated
     BuildDefinition getBuildDefinition( int projectId, int buildDefinitionId )
         throws ContinuumException;
 
     /**
      * @deprecated
      */
+    @Deprecated
     void removeBuildDefinition( int projectId, int buildDefinitionId )
         throws ContinuumException;
 
@@ -527,6 +514,10 @@ public interface Continuum
     void removeSchedule( int scheduleId )
         throws ContinuumException;
 
+    void activePurgeSchedule( Schedule schedule );
+
+    void activeBuildDefinitionSchedule( Schedule schedule );
+
     // ----------------------------------------------------------------------
     // Working copy
     // ----------------------------------------------------------------------

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/build/settings/SchedulesActivator.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/build/settings/SchedulesActivator.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/build/settings/SchedulesActivator.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/build/settings/SchedulesActivator.java Thu May  6 09:23:13 2010
@@ -48,6 +48,22 @@ public interface SchedulesActivator
      */
     void activateSchedule( Schedule schedule, Continuum continuum )
         throws SchedulesActivationException;
+    
+    /**
+     * Activate schedule only for PurgeConfiguration associated.
+     * 
+     * @throws SchedulesActivationException
+     */
+    void activatePurgeSchedule( Schedule schedule, Continuum continuum )
+        throws SchedulesActivationException;
+
+    /**
+     * Activate schedule only for BuildDefinitions associated.
+     * 
+     * @throws SchedulesActivationException
+     */
+    void activateBuildSchedule( Schedule schedule, Continuum continuum )
+        throws SchedulesActivationException;
 
     /**
      * Unactivate schedule by looking at the scheduling information contained within.
@@ -56,4 +72,18 @@ public interface SchedulesActivator
      */
     void unactivateSchedule( Schedule schedule, Continuum continuum )
         throws SchedulesActivationException;
+
+    /**
+     * Unactivate schedule purgeConfigurations if it is not in a purgeConfiguration.
+     */
+    void unactivateOrphanPurgeSchedule( Schedule schedule )
+        throws SchedulesActivationException;
+
+    /**
+     * Unactivate schedule buildDefinitions if it is not in a buildDefinition.
+     * 
+     * @throws SchedulesActivationException
+     */
+    void unactivateOrphanBuildSchedule( Schedule schedule )
+        throws SchedulesActivationException;
 }

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/execution/ContinuumBuildExecutor.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/execution/ContinuumBuildExecutor.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/execution/ContinuumBuildExecutor.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/execution/ContinuumBuildExecutor.java Thu May  6 09:23:13 2010
@@ -23,9 +23,11 @@ import org.apache.maven.artifact.Artifac
 import org.apache.maven.continuum.model.project.BuildDefinition;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.scm.ChangeSet;
+import org.apache.maven.continuum.model.scm.ScmResult;
 
 import java.io.File;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
@@ -40,7 +42,8 @@ public interface ContinuumBuildExecutor
         throws ContinuumBuildExecutorException;
 
     // TODO: rename to be clearer
-    void updateProjectFromCheckOut( File workingDirectory, Project project, BuildDefinition buildDefinition )
+    void updateProjectFromCheckOut( File workingDirectory, Project project, BuildDefinition buildDefinition,
+                                    ScmResult scmResult )
         throws ContinuumBuildExecutorException;
 
     boolean isBuilding( Project project );
@@ -52,7 +55,7 @@ public interface ContinuumBuildExecutor
         throws ContinuumBuildExecutorException;
 
     //TODO: Move as a plugin
-    void backupTestFiles( Project project, int buildId, String projectScmRootUrl, List<Project> projectsWithCommonScmRoot );
+    void backupTestFiles( Project project, int buildId );
 
     boolean shouldBuild( List<ChangeSet> changes, Project continuumProject, File workingDirectory,
                          BuildDefinition buildDefinition )

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuilder.java Thu May  6 09:23:13 2010
@@ -35,12 +35,12 @@ public interface ContinuumProjectBuilder
         throws ContinuumProjectBuilderException;
 
     ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password,
-                                                              boolean recursiveProjects, boolean checkoutInSingleDirectory )
+                                                              boolean recursiveProjects )
         throws ContinuumProjectBuilderException;
 
     ContinuumProjectBuildingResult buildProjectsFromMetadata( URL url, String username, String password,
                                                               boolean recursiveProjects,
-                                                              BuildDefinitionTemplate buildDefinitionTemplate, boolean checkoutInSingleDirectory )
+                                                              BuildDefinitionTemplate buildDefinitionTemplate )
         throws ContinuumProjectBuilderException;
 
     BuildDefinitionTemplate getDefaultBuildDefinitionTemplate()

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/project/builder/ContinuumProjectBuildingResult.java Thu May  6 09:23:13 2010
@@ -83,6 +83,8 @@ public class ContinuumProjectBuildingRes
 
     public static final String ERROR_UNKNOWN = "add.project.unknown.error";
 
+    public static final String ERROR_DUPLICATE_PROJECTS = "add.project.duplicate.error";
+
     private final List<Project> projects = new ArrayList<Project>();
 
     private final List<ProjectGroup> projectGroups = new ArrayList<ProjectGroup>();
@@ -90,9 +92,7 @@ public class ContinuumProjectBuildingRes
     private final Map<String, String> errors = new HashMap<String, String>();
 
     private static final String LS = System.getProperty( "line.separator" );
-    
-    private Project rootProject;
-    
+
     public void addProject( Project project )
     {
         projects.add( project );
@@ -222,14 +222,4 @@ public class ContinuumProjectBuildingRes
         }
         return message.toString();
     }
-
-    public Project getRootProject()
-    {
-        return rootProject;
-    }
-
-    public void setRootProject( Project rootProject )
-    {
-        this.rootProject = rootProject;
-    }
 }

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManager.java Thu May  6 09:23:13 2010
@@ -81,6 +81,7 @@ public interface ContinuumReleaseManager
      * @param buildDirectory
      * @param goals
      * @param useReleaseProfile
+     * @param listener
      * @throws ContinuumReleaseException
      */
     void perform( String releaseId, File buildDirectory, String goals, String arguments, boolean useReleaseProfile,

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManagerListener.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManagerListener.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManagerListener.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/release/ContinuumReleaseManagerListener.java Thu May  6 09:23:13 2010
@@ -40,4 +40,8 @@ public interface ContinuumReleaseManager
     String getError();
 
     int getState();
+    
+    String getUsername();
+     
+    void setUsername( String username );
 }

Modified: continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/utils/WorkingDirectoryService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/utils/WorkingDirectoryService.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/utils/WorkingDirectoryService.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-api/src/main/java/org/apache/maven/continuum/utils/WorkingDirectoryService.java Thu May  6 09:23:13 2010
@@ -22,7 +22,6 @@ package org.apache.maven.continuum.utils
 import org.apache.maven.continuum.model.project.Project;
 
 import java.io.File;
-import java.util.List;
 
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
@@ -33,6 +32,4 @@ public interface WorkingDirectoryService
     String ROLE = WorkingDirectoryService.class.getName();
 
     File getWorkingDirectory( Project project );
-    
-    File getWorkingDirectory( Project project, String projectScmRootUrl, List<Project> projects );
 }

Modified: continuum/branches/continuum-flat-multi-module/continuum-base/continuum-configuration/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-base/continuum-configuration/pom.xml?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-base/continuum-configuration/pom.xml (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-base/continuum-configuration/pom.xml Thu May  6 09:23:13 2010
@@ -21,7 +21,7 @@ under the License.
   <parent>
     <artifactId>continuum-base</artifactId>
     <groupId>org.apache.continuum</groupId>
-    <version>1.4.0-SNAPSHOT</version>
+    <version>1.4.1-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>continuum-configuration</artifactId>
@@ -36,6 +36,7 @@ under the License.
             <model>src/main/mdo/continuum-configuration.xml</model>
           </models>
           <version>1.1.1</version>
+          <useJava5>true</useJava5>
         </configuration>
         <executions>
           <execution>

Modified: continuum/branches/continuum-flat-multi-module/continuum-base/continuum-configuration/src/main/java/org/apache/continuum/configuration/DefaultContinuumConfiguration.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-base/continuum-configuration/src/main/java/org/apache/continuum/configuration/DefaultContinuumConfiguration.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-base/continuum-configuration/src/main/java/org/apache/continuum/configuration/DefaultContinuumConfiguration.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-base/continuum-configuration/src/main/java/org/apache/continuum/configuration/DefaultContinuumConfiguration.java Thu May  6 09:23:13 2010
@@ -31,6 +31,7 @@ import org.apache.commons.lang.StringUti
 import org.apache.continuum.configuration.model.ContinuumConfigurationModel;
 import org.apache.continuum.configuration.model.io.xpp3.ContinuumConfigurationModelXpp3Reader;
 import org.apache.continuum.configuration.model.io.xpp3.ContinuumConfigurationModelXpp3Writer;
+import org.codehaus.plexus.util.IOUtil;
 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -114,11 +115,12 @@ public class DefaultContinuumConfigurati
     public void reload( File file )
         throws ContinuumConfigurationException
     {
+        FileInputStream fis = null;
         try
         {
+            fis = new FileInputStream( file );
             ContinuumConfigurationModelXpp3Reader configurationXpp3Reader = new ContinuumConfigurationModelXpp3Reader();
-            ContinuumConfigurationModel configuration =
-                configurationXpp3Reader.read( new InputStreamReader( new FileInputStream( file ) ) );
+            ContinuumConfigurationModel configuration = configurationXpp3Reader.read( new InputStreamReader( fis ) );
 
             this.generalConfiguration = new GeneralConfiguration();
 
@@ -208,7 +210,13 @@ public class DefaultContinuumConfigurati
             log.error( e.getMessage(), e );
             throw new RuntimeException( e.getMessage(), e );
         }
-
+        finally
+        {
+            if ( fis != null )
+            {
+                IOUtil.close( fis );
+            }
+        }
     }
 
     public void save( File file )
@@ -308,6 +316,8 @@ public class DefaultContinuumConfigurati
             ContinuumConfigurationModelXpp3Writer writer = new ContinuumConfigurationModelXpp3Writer();
             FileWriter fileWriter = new FileWriter( file );
             writer.write( fileWriter, configurationModel );
+            fileWriter.flush();
+            fileWriter.close();
         }
         catch ( IOException e )
         {

Modified: continuum/branches/continuum-flat-multi-module/continuum-base/continuum-configuration/src/main/mdo/continuum-configuration.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-base/continuum-configuration/src/main/mdo/continuum-configuration.xml?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-base/continuum-configuration/src/main/mdo/continuum-configuration.xml (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-base/continuum-configuration/src/main/mdo/continuum-configuration.xml Thu May  6 09:23:13 2010
@@ -17,7 +17,7 @@
   ~ under the License.
   -->
 
-<model>
+<model xsd.namespace="http://modello.codehaus.org/xsd/modello-1.0.0.xsd">
   <id>continuum-configuration</id>
   <name>ContinuumConfigurationModel</name>
   <description>Continuum Configuration object model.</description>

Modified: continuum/branches/continuum-flat-multi-module/continuum-base/continuum-scm/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-base/continuum-scm/pom.xml?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-base/continuum-scm/pom.xml (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-base/continuum-scm/pom.xml Thu May  6 09:23:13 2010
@@ -21,7 +21,7 @@ under the License.
   <parent>
     <artifactId>continuum-base</artifactId>
     <groupId>org.apache.continuum</groupId>
-    <version>1.4.0-SNAPSHOT</version>
+    <version>1.4.1-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>continuum-scm</artifactId>

Modified: continuum/branches/continuum-flat-multi-module/continuum-base/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-base/pom.xml?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-base/pom.xml (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-base/pom.xml Thu May  6 09:23:13 2010
@@ -21,7 +21,7 @@ under the License.
   <parent>
     <artifactId>continuum</artifactId>
     <groupId>org.apache.continuum</groupId>
-    <version>1.4.0-SNAPSHOT</version>
+    <version>1.4.1-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>continuum-base</artifactId>

Modified: continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-api/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-api/pom.xml?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-api/pom.xml (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-api/pom.xml Thu May  6 09:23:13 2010
@@ -22,7 +22,7 @@ under the License.
   <parent>
     <groupId>org.apache.continuum</groupId>
     <artifactId>continuum-buildagent</artifactId>
-    <version>1.4.0-SNAPSHOT</version>
+    <version>1.4.1-SNAPSHOT</version>
   </parent>
 
   <artifactId>continuum-buildagent-api</artifactId>
@@ -37,7 +37,8 @@ under the License.
           <models>
             <model>src/main/mdo/continuum-buildagent.xml</model>
           </models>
-          <version>1.0.0</version>
+          <useJava5>true</useJava5>
+          <version>1.1.0</version>
         </configuration>
         <executions>
           <execution>

Modified: continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java Thu May  6 09:23:13 2010
@@ -33,7 +33,7 @@ public interface ContinuumBuildAgentServ
     Map<String, Object> getBuildResult( int projectId )
         throws ContinuumBuildAgentException;
 
-    int getProjectCurrentlyBuilding()
+    Map<String, Object> getProjectCurrentlyBuilding()
         throws ContinuumBuildAgentException;
 
     void cancelBuild()
@@ -52,7 +52,7 @@ public interface ContinuumBuildAgentServ
         throws ContinuumBuildAgentException;
 
     String releasePrepare( Map project, Map properties, Map releaseVersion, Map developmentVersion,
-                           Map<String, String> environments )
+                           Map<String, String> environments, String username )
         throws ContinuumBuildAgentException;
 
     Map<String, Object> getReleaseResult( String releaseId )
@@ -67,12 +67,12 @@ public interface ContinuumBuildAgentServ
     String getPreparedReleaseName( String releaseId )
         throws ContinuumBuildAgentException;
 
-    void releasePerform( String releaseId, String goals, String arguments, boolean useReleaseProfile, Map repository )
+    void releasePerform( String releaseId, String goals, String arguments, boolean useReleaseProfile, Map repository, String username )
         throws ContinuumBuildAgentException;
 
     String releasePerformFromScm( String goals, String arguments, boolean useReleaseProfile, Map repository,
                                   String scmUrl, String scmUsername, String scmPassword, String scmTag,
-                                  String scmTagBase, Map<String, String> environments )
+                                  String scmTagBase, Map<String, String> environments, String username )
         throws ContinuumBuildAgentException;
 
     String releaseCleanup( String releaseId )
@@ -80,4 +80,44 @@ public interface ContinuumBuildAgentServ
 
     void releaseRollback( String releaseId, int projectId )
         throws ContinuumBuildAgentException;
+
+    List<Map<String, Object>> getProjectsInPrepareBuildQueue()
+        throws ContinuumBuildAgentException;
+
+    List<Map<String, Object>> getProjectsAndBuildDefinitionsInPrepareBuildQueue()
+        throws ContinuumBuildAgentException;
+
+    List<Map<String, Object>> getProjectsInBuildQueue()
+        throws ContinuumBuildAgentException;
+
+    int getBuildSizeOfAgent()
+        throws ContinuumBuildAgentException;
+
+    Map<String, Object> getProjectCurrentlyPreparingBuild()
+        throws ContinuumBuildAgentException;
+
+    List<Map<String, Object>> getProjectsAndBuildDefinitionsCurrentlyPreparingBuild()
+        throws ContinuumBuildAgentException;
+
+    boolean isProjectGroupInQueue( int projectGroupId );
+
+    boolean isProjectScmRootInQueue( int projectScmRootId, List<Integer> projectIds );
+
+    boolean isProjectCurrentlyBuilding( int projectId );
+
+    boolean isProjectInBuildQueue( int projectId );
+
+    boolean removeFromPrepareBuildQueue( int projectGroupId, int scmRootId )
+        throws ContinuumBuildAgentException;
+
+    void removeFromPrepareBuildQueue( List<String> hashCodes )
+        throws ContinuumBuildAgentException;
+
+    boolean removeFromBuildQueue( int projectId, int builddefinitonId )
+        throws ContinuumBuildAgentException;
+
+    void removeFromBuildQueue( List<String> hashCodes )
+        throws ContinuumBuildAgentException;
+
+    boolean ping();
 }

Modified: continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-api/src/main/mdo/continuum-buildagent.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-api/src/main/mdo/continuum-buildagent.xml?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-api/src/main/mdo/continuum-buildagent.xml (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-api/src/main/mdo/continuum-buildagent.xml Thu May  6 09:23:13 2010
@@ -16,7 +16,7 @@
   ~ specific language governing permissions and limitations
   ~ under the License.
   -->
-<model>
+<model xsd.namespace="http://modello.codehaus.org/xsd/modello-1.0.0.xsd">
   <id>continuum-buildagent</id>
   <name>ContinuumBuildAgentConfigurationModel</name>
   <description>Continuum Build Agent object model.</description>
@@ -55,6 +55,14 @@
             <multiplicity>*</multiplicity>
           </association>
         </field>
+        <field>
+          <name>localRepositories</name>
+          <version>1.1.0+</version>
+          <association>
+            <type>LocalRepository</type>
+            <multiplicity>*</multiplicity>
+          </association>
+        </field>
       </fields>
     </class>
     <class xml.tagName="buildagent-installation">
@@ -83,5 +91,35 @@
         </field>                     
       </fields>
     </class>
+    <class>
+      <name>LocalRepository</name>
+      <version>1.1.0+</version>
+      <fields>
+        <field>
+          <name>name</name>
+          <version>1.1.0+</version>
+          <type>String</type>
+          <required>true</required>
+        </field>
+        <field>
+          <name>location</name>
+          <version>1.1.0+</version>
+          <type>String</type>
+          <required>true</required>
+          <description>
+          The file system location for this repository
+          </description>
+        </field>
+        <field>
+          <name>layout</name>
+          <version>1.1.0+</version>
+          <type>String</type>
+          <defaultValue>default</defaultValue>
+          <description>
+          The layout of the repository. Valid values are "default" and "legacy"
+          </description>
+        </field>
+      </fields>
+    </class>
   </classes>
 </model>
\ No newline at end of file

Modified: continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-core/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-core/pom.xml?rev=941625&r1=941624&r2=941625&view=diff
==============================================================================
--- continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-core/pom.xml (original)
+++ continuum/branches/continuum-flat-multi-module/continuum-buildagent/continuum-buildagent-core/pom.xml Thu May  6 09:23:13 2010
@@ -21,7 +21,7 @@ under the License.
   <parent>
     <groupId>org.apache.continuum</groupId>
     <artifactId>continuum-buildagent</artifactId>
-    <version>1.4.0-SNAPSHOT</version>
+    <version>1.4.1-SNAPSHOT</version>
   </parent>
 
   <artifactId>continuum-buildagent-core</artifactId>
@@ -125,7 +125,39 @@ under the License.
     <dependency>
       <groupId>javax.annotation</groupId>
       <artifactId>jsr250-api</artifactId>
-    </dependency>      
+    </dependency>  
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <scope>test</scope>
+    </dependency>  
+    <dependency>
+      <groupId>org.jmock</groupId>
+      <artifactId>jmock-junit3</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.jmock</groupId>
+      <artifactId>jmock</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>jmock</groupId>
+      <artifactId>jmock</artifactId>
+      <scope>test</scope>
+    </dependency>  
+     <!-- dependency of jmock3 -->
+    <dependency>
+      <groupId>cglib</groupId>
+      <artifactId>cglib-nodep</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <!-- dependency of jmock3 -->
+    <dependency>
+      <groupId>org.objenesis</groupId>
+      <artifactId>objenesis</artifactId>  
+      <scope>test</scope>
+    </dependency>
   </dependencies>
   <build>
     <plugins>
@@ -135,15 +167,24 @@ under the License.
         <executions>
           <execution>
             <id>generate</id>
+            <phase>generate-resources</phase>
             <goals>
               <goal>descriptor</goal>
             </goals>
           </execution>
           <execution>
             <id>merge</id>
+            <phase>process-resources</phase>
             <goals>
               <goal>merge-descriptors</goal>
             </goals>
+            <configuration>
+              <descriptors>
+                <descriptor>${basedir}/src/main/resources/META-INF/plexus/components-fragment.xml</descriptor>
+                <descriptor>${project.build.outputDirectory}/META-INF/plexus/components.xml</descriptor>
+              </descriptors>
+              <output>${project.build.outputDirectory}/META-INF/plexus/components.xml</output>
+            </configuration>
           </execution>
         </executions>
       </plugin>