You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ct...@apache.org on 2009/05/17 18:14:24 UTC

svn commit: r775693 [1/5] - in /continuum/branches/continuum-1.3.x: continuum-api/src/main/java/org/apache/continuum/builder/distributed/ continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/ continuum-api/src/main/java/org/apac...

Author: ctan
Date: Sun May 17 16:14:22 2009
New Revision: 775693

URL: http://svn.apache.org/viewvc?rev=775693&view=rev
Log:
[CONTINUUM-2188] fixed build order of unrelated but inter-dependent projects in the same group. projects within the same group will target the same build queue for parallel builds and the same build agent for distributed builds.
[CONTINUUM-2174] show current task and queues when distributed build is enabled


Added:
    continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/builder/distributed/DistributedBuildService.java   (with props)
    continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallDistributedBuildQueue.java   (with props)
    continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/taskqueue/
    continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/taskqueue/DefaultOverallDistributedBuildQueue.java   (with props)
    continuum/branches/continuum-1.3.x/continuum-builder/src/main/resources/META-INF/spring-context.xml   (with props)
    continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/builder/distributed/DefaultDistributedBuildService.java   (with props)
    continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/builder/distributed/util/
    continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/builder/distributed/util/DistributedBuildUtil.java   (with props)
Removed:
    continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/deferred/
    continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/overall/
Modified:
    continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/DistributedBuildManager.java
    continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java
    continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java
    continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallBuildQueue.java
    continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java
    continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/manager/TaskQueueManager.java
    continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java
    continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java
    continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/CreateBuildProjectTaskAction.java
    continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/BuildContext.java
    continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/BuildContextManager.java
    continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/DefaultBuildContextManager.java
    continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/PrepareBuildProjectsTask.java
    continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutor.java
    continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/BuildAgentTaskQueueManager.java
    continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/DefaultBuildAgentTaskQueueManager.java
    continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java
    continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-webapp/pom.xml
    continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
    continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/utils/ContinuumBuildConstant.java
    continuum/branches/continuum-1.3.x/continuum-builder/src/main/resources/META-INF/plexus/components.xml
    continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/builder/distributed/manager/DefaultDistributedBuildManager.java
    continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java
    continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueue.java
    continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
    continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java
    continuum/branches/continuum-1.3.x/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java
    continuum/branches/continuum-1.3.x/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java
    continuum/branches/continuum-1.3.x/continuum-core/src/test/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueueTest.java
    continuum/branches/continuum-1.3.x/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/BuildProjectTaskExecutorTest.java
    continuum/branches/continuum-1.3.x/continuum-core/src/test/java/org/apache/maven/continuum/buildqueue/BuildQueueTest.java
    continuum/branches/continuum-1.3.x/continuum-distributed/continuum-distributed-master/continuum-distributed-master-server/src/main/java/org/apache/continuum/distributed/transport/master/MasterBuildAgentTransportServer.java
    continuum/branches/continuum-1.3.x/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-api/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportService.java
    continuum/branches/continuum-1.3.x/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-client/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportClient.java
    continuum/branches/continuum-1.3.x/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-server/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportServer.java
    continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java
    continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/continuum/web/startup/ContinuumStartup.java
    continuum/branches/continuum-1.3.x/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/QueuesAction.java
    continuum/branches/continuum-1.3.x/continuum-webapp/src/main/mdo/view-models.mdo
    continuum/branches/continuum-1.3.x/continuum-webapp/src/main/resources/localization/Continuum.properties
    continuum/branches/continuum-1.3.x/continuum-webapp/src/main/resources/struts.xml
    continuum/branches/continuum-1.3.x/continuum-webapp/src/main/webapp/WEB-INF/applicationContext.xml
    continuum/branches/continuum-1.3.x/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildQueueView.jsp
    continuum/branches/continuum-1.3.x/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/viewDistributedBuilds.jsp

Added: continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/builder/distributed/DistributedBuildService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/builder/distributed/DistributedBuildService.java?rev=775693&view=auto
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/builder/distributed/DistributedBuildService.java (added)
+++ continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/builder/distributed/DistributedBuildService.java Sun May 17 16:14:22 2009
@@ -0,0 +1,30 @@
+package org.apache.continuum.builder.distributed;
+
+import java.util.Map;
+
+import org.apache.maven.continuum.ContinuumException;
+
+public interface DistributedBuildService
+{
+    String ROLE = DistributedBuildService.class.getName();
+
+    void prepareBuildFinished( Map<String, Object> context )
+        throws ContinuumException;
+
+    boolean shouldBuild( Map<String, Object> context );
+
+    void startPrepareBuild( Map<String, Object> context )
+        throws ContinuumException;
+
+    void startProjectBuild( int projectId )
+        throws ContinuumException;
+    
+    void updateBuildResult( Map<String, Object> context )
+        throws ContinuumException;
+
+    void updateProject( Map<String, Object> context )
+        throws ContinuumException;
+
+    Map<String, String> getEnvironments( int buildDefinitionId, String installationType )
+        throws ContinuumException;
+}

Propchange: continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/builder/distributed/DistributedBuildService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/builder/distributed/DistributedBuildService.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/DistributedBuildManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/DistributedBuildManager.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/DistributedBuildManager.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/builder/distributed/manager/DistributedBuildManager.java Sun May 17 16:14:22 2009
@@ -22,7 +22,7 @@
 import java.util.List;
 import java.util.Map;
 
-import org.apache.continuum.builder.distributed.executor.DistributedBuildTaskQueueExecutor;
+import org.apache.continuum.taskqueue.BuildProjectTask;
 import org.apache.continuum.taskqueue.PrepareBuildProjectsTask;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.system.Installation;
@@ -31,25 +31,13 @@
 {
     String ROLE = DistributedBuildManager.class.getName();
 
-    void cancelDistributedBuild( String buildAgentUrl, int projectGroupId, String scmRootAddress )
-        throws ContinuumException;
-
-    void updateBuildResult( Map<String, Object> context )
-        throws ContinuumException;
-
-    void prepareBuildFinished( Map<String, Object> context )
-        throws ContinuumException;
-
-    void startProjectBuild( int projectId )
-        throws ContinuumException;
-
-    void startPrepareBuild( Map<String, Object> context )
+    void cancelDistributedBuild( String buildAgentUrl, int projectGroupId, int scmRootId )
         throws ContinuumException;
 
     void reload()
         throws ContinuumException;
 
-    void removeAgentFromTaskQueueExecutor( String buildAgentUrl )
+    void removeDistributedBuildQueueOfAgent( String buildAgentUrl )
         throws ContinuumException;
 
     boolean isBuildAgentBusy( String buildAgentUrl );
@@ -57,24 +45,34 @@
     List<Installation> getAvailableInstallations( String buildAgentUrl )
         throws ContinuumException;
 
-    Map<String, PrepareBuildProjectsTask> getDistributedBuildProjects();
-
-    Map<String, Object> getBuildResult( int projectId )
+    Map<String, List<PrepareBuildProjectsTask>> getProjectsInPrepareBuildQueue()
         throws ContinuumException;
 
-    Map<String, String> getEnvironments( int buildDefinitionId, String installationType )
+    Map<String, List<BuildProjectTask>> getProjectsInBuildQueue()
         throws ContinuumException;
 
-    void updateProject( Map<String, Object> context )
+    Map<String, Object> getBuildResult( int projectId )
         throws ContinuumException;
 
-    boolean shouldBuild( Map<String, Object> context );
-
-    Map<String, DistributedBuildTaskQueueExecutor> getTaskQueueExecutors();
-
     String generateWorkingCopyContent( int projectId, String directory, String baseUrl, String imagesBaseUrl )
         throws ContinuumException;
 
     String getFileContent( int projectId, String directory, String filename )
         throws ContinuumException;
-}
+
+    void prepareBuildProjects( Map<Integer, Integer> projectsBuildDefinitionsMap, int trigger, int projectGroupId, 
+                               String projectGroupName, String scmRootAddress, int scmRootId )
+        throws ContinuumException;
+ 
+    void removeFromDistributedBuildQueue( int projectGroupId, int scmRootId )
+        throws ContinuumException;
+ 
+    void removeFromDistributedBuildQueue( int[] hashCodes )
+        throws ContinuumException;
+ 
+    Map<String, PrepareBuildProjectsTask> getProjectsCurrentlyPreparingBuild()
+        throws ContinuumException;
+
+    Map<String, BuildProjectTask> getProjectsCurrentlyBuilding()
+        throws ContinuumException;
+}
\ No newline at end of file

Modified: continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/buildmanager/BuildsManager.java Sun May 17 16:14:22 2009
@@ -45,10 +45,11 @@
      * @param projectsBuildDefinitionsMap
      * @param trigger
      * @param scmResultMap                TODO
+     * @param projectGroupId
      * @throws BuildManagerException
      */
     void buildProjects( List<Project> projects, Map<Integer, BuildDefinition> projectsBuildDefinitionsMap, int trigger,
-                        Map<Integer, ScmResult> scmResultMap )
+                        Map<Integer, ScmResult> scmResultMap, int projectGroupId )
         throws BuildManagerException;
 
     /**
@@ -61,10 +62,11 @@
      * @param projectName
      * @param trigger
      * @param scmResult       TODO
+     * @param projectGroupId
      * @throws BuildManagerException
      */
     void buildProject( int projectId, BuildDefinition buildDefinition, String projectName, int trigger,
-                       ScmResult scmResult )
+                       ScmResult scmResult, int projectGroupId )
         throws BuildManagerException;
 
     /**
@@ -161,9 +163,11 @@
      * @param buildDefinitionId
      * @param trigger
      * @param projectName
+     * @param projectGroupId
      * @throws BuildManagerException
      */
-    void removeProjectFromBuildQueue( int projectId, int buildDefinitionId, int trigger, String projectName )
+    void removeProjectFromBuildQueue( int projectId, int buildDefinitionId, int trigger, String projectName,
+                                      int projectGroupId )
         throws BuildManagerException;
 
     // TODO: should we throw an exception when one of the projects cannot be removed?

Modified: continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/BuildProjectTask.java Sun May 17 16:14:22 2009
@@ -49,8 +49,10 @@
 
     private ScmResult scmResult;
 
+    int projectGroupId;
+
     public BuildProjectTask( int projectId, int buildDefinitionId, int trigger, String projectName,
-                             String buildDefinitionLabel, ScmResult scmResult )
+                             String buildDefinitionLabel, ScmResult scmResult, int projectGroupId )
     {
         this.projectId = projectId;
 
@@ -65,6 +67,8 @@
         this.buildDefinitionLabel = buildDefinitionLabel;
 
         this.scmResult = scmResult;
+
+        this.projectGroupId = projectGroupId;
     }
 
     public int getProjectId()
@@ -112,6 +116,11 @@
         return scmResult;
     }
 
+    public int getProjectGroupId()
+    {
+        return projectGroupId;
+    }
+
     public boolean equals( Object obj )
     {
         if ( obj == null )

Modified: continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallBuildQueue.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallBuildQueue.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallBuildQueue.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallBuildQueue.java Sun May 17 16:14:22 2009
@@ -215,10 +215,12 @@
      * @param buildDefinitionId
      * @param trigger
      * @param projectName
+     * @param projectGroupId
      * @return
      * @throws TaskQueueException TODO
      */
-    boolean removeProjectFromBuildQueue( int projectId, int buildDefinitionId, int trigger, String projectName )
+    boolean removeProjectFromBuildQueue( int projectId, int buildDefinitionId, int trigger, String projectName,
+                                         int projectGroupId )
         throws TaskQueueException;
 
     /**

Added: continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallDistributedBuildQueue.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallDistributedBuildQueue.java?rev=775693&view=auto
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallDistributedBuildQueue.java (added)
+++ continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallDistributedBuildQueue.java Sun May 17 16:14:22 2009
@@ -0,0 +1,37 @@
+package org.apache.continuum.taskqueue;
+
+import java.util.List;
+
+import org.apache.continuum.builder.distributed.executor.DistributedBuildTaskQueueExecutor;
+import org.codehaus.plexus.taskqueue.Task;
+import org.codehaus.plexus.taskqueue.TaskQueue;
+import org.codehaus.plexus.taskqueue.TaskQueueException;
+
+public interface OverallDistributedBuildQueue
+{
+    String getBuildAgentUrl();
+
+    void setBuildAgentUrl( String buildAgentUrl );
+
+    TaskQueue getDistributedBuildQueue();
+
+    void addToDistributedBuildQueue( Task distributedBuildTask )
+        throws TaskQueueException;
+
+    List<PrepareBuildProjectsTask> getProjectsInQueue()
+        throws TaskQueueException;
+
+    boolean isInDistributedBuildQueue( int projectGroupId, int scmRootId )
+        throws TaskQueueException;
+
+    void removeFromDistributedBuildQueue( int projectGroupId, int scmRootId )
+        throws TaskQueueException;
+
+    void removeFromDistributedBuildQueue( int[] hashCodes )
+        throws TaskQueueException;
+
+    void removeFromDistributedBuildQueueByHashCode( int hashCode )
+        throws TaskQueueException;
+
+    DistributedBuildTaskQueueExecutor getDistributedBuildTaskQueueExecutor();
+}

Propchange: continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallDistributedBuildQueue.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/OverallDistributedBuildQueue.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/PrepareBuildProjectsTask.java Sun May 17 16:14:22 2009
@@ -85,6 +85,11 @@
         return scmRootAddress;
     }
 
+    public int getProjectScmRootId()
+    {
+        return projectScmRootId;
+    }
+
     public int hashCode()
     {
         return this.projectGroupId + this.projectScmRootId + this.trigger;

Modified: continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/manager/TaskQueueManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/manager/TaskQueueManager.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/manager/TaskQueueManager.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-api/src/main/java/org/apache/continuum/taskqueue/manager/TaskQueueManager.java Sun May 17 16:14:22 2009
@@ -19,9 +19,6 @@
  * under the License.
  */
 
-import java.util.List;
-
-import org.apache.continuum.taskqueue.PrepareBuildProjectsTask;
 import org.codehaus.plexus.taskqueue.TaskQueue;;
 
 /**
@@ -31,16 +28,8 @@
 {
     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 @@
     boolean releaseInProgress()
         throws TaskQueueManagerException;
 
-    void removeFromDistributedBuildQueue( int projectGroupId, String scmRootAddress )
-        throws TaskQueueManagerException;
-  
     /**
      * Remove local repository from the purge queue
      * 
@@ -108,7 +94,4 @@
      */
     void removeRepositoryFromPurgeQueue( int repositoryId )
         throws TaskQueueManagerException;
-
-    void removeTasksFromDistributedBuildQueueWithHashCodes( int[] hashCodes )
-        throws TaskQueueManagerException;
 }

Modified: continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-api/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentService.java Sun May 17 16:14:22 2009
@@ -33,7 +33,7 @@
     Map<String, Object> getBuildResult( int projectId )
         throws ContinuumBuildAgentException;
 
-    int getProjectCurrentlyBuilding()
+    Map<String, Object> getProjectCurrentlyBuilding()
         throws ContinuumBuildAgentException;
 
     void cancelBuild()
@@ -80,4 +80,18 @@
 
     void releaseRollback( String releaseId, int projectId )
         throws ContinuumBuildAgentException;
+
+    List<Map<String, Object>> getProjectsInPrepareBuildQueue()
+        throws ContinuumBuildAgentException;
+
+    List<Map<String, Object>> getProjectsInBuildQueue()
+        throws ContinuumBuildAgentException;
+
+    int getBuildSizeOfAgent()
+        throws ContinuumBuildAgentException;
+
+    Map<String, Object> getProjectCurrentlyPreparingBuild()
+        throws ContinuumBuildAgentException;
+
+    boolean isProjectGroupInQueue( int projectGroupId );
 }

Modified: continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/ContinuumBuildAgentServiceImpl.java Sun May 17 16:14:22 2009
@@ -40,6 +40,7 @@
 import org.apache.continuum.buildagent.taskqueue.manager.BuildAgentTaskQueueManager;
 import org.apache.continuum.buildagent.utils.ContinuumBuildAgentUtil;
 import org.apache.continuum.buildagent.utils.WorkingCopyContentGenerator;
+import org.apache.continuum.taskqueue.BuildProjectTask;
 import org.apache.continuum.taskqueue.manager.TaskQueueManagerException;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.BuildResult;
@@ -175,7 +176,18 @@
     {
         Map<String, Object> result = new HashMap<String, Object>();
 
-        if ( projectId == getProjectCurrentlyBuilding() )
+        int currentBuildId = 0;
+
+        try
+        {
+            currentBuildId = buildAgentTaskQueueManager.getIdOfProjectCurrentlyBuilding();
+        }
+        catch ( TaskQueueManagerException e )
+        {
+            throw new ContinuumBuildAgentException( e.getMessage(), e );
+        }
+
+        if ( projectId == currentBuildId )
         {
             BuildContext buildContext = buildContextManager.getBuildContext( projectId );
 
@@ -235,19 +247,6 @@
         return result;
     }
 
-    public int getProjectCurrentlyBuilding()
-        throws ContinuumBuildAgentException
-    {
-        try
-        {
-            return buildAgentTaskQueueManager.getCurrentProjectInBuilding();
-        }
-        catch ( TaskQueueManagerException e )
-        {
-            throw new ContinuumBuildAgentException( e.getMessage(), e );
-        }
-    }
-
     public void cancelBuild()
         throws ContinuumBuildAgentException
     {
@@ -570,6 +569,187 @@
         }
     }
 
+    public int getBuildSizeOfAgent()
+    {
+        int size = 0;
+        
+        try
+        {
+            if ( buildAgentTaskQueueManager.getCurrentProjectInBuilding() != null )
+            {
+                size++;
+            }
+
+            if ( buildAgentTaskQueueManager.getCurrentProjectInPrepareBuild() != null )
+            {
+                size++;
+            }
+
+            size = size + buildAgentTaskQueueManager.getProjectsInBuildQueue().size();
+
+            for ( PrepareBuildProjectsTask task : buildAgentTaskQueueManager.getProjectsInPrepareBuildQueue() )
+            {
+                size = size + task.getBuildContexts().size();
+            }
+        }
+        catch ( TaskQueueManagerException e )
+        {
+            log.error( "Error occurred while getting build size of agent" );
+        }
+
+        return size;
+    }
+
+    public List<Map<String, Object>> getProjectsInPrepareBuildQueue()
+        throws ContinuumBuildAgentException
+    {
+        try
+        {
+            List<Map<String, Object>> projects = new ArrayList<Map<String, Object>>();
+
+            for ( PrepareBuildProjectsTask task : buildAgentTaskQueueManager.getProjectsInPrepareBuildQueue() )
+            {
+                Map<String, Object> map = new HashMap<String, Object>();
+                map.put( ContinuumBuildAgentUtil.KEY_PROJECT_GROUP_ID, new Integer( task.getProjectGroupId() ) );
+                map.put( ContinuumBuildAgentUtil.KEY_SCM_ROOT_ID, new Integer( task.getScmRootId() ) );
+                map.put( ContinuumBuildAgentUtil.KEY_SCM_ROOT_ADDRESS, task.getScmRootAddress() );
+                map.put( ContinuumBuildAgentUtil.KEY_TRIGGER, new Integer( task.getTrigger() ) );
+
+                projects.add( map );
+            }
+
+            return projects;
+        }
+        catch( TaskQueueManagerException e )
+        {
+            log.error( "Error occurred while retrieving projects in prepare build queue", e );
+            throw new ContinuumBuildAgentException( "Error occurred while retrieving projects in prepare build queue", e );
+        }
+    }
+
+    public List<Map<String, Object>> getProjectsInBuildQueue()
+        throws ContinuumBuildAgentException
+    {
+        try
+        {
+            List<Map<String, Object>> projects = new ArrayList<Map<String, Object>>();
+
+            for ( BuildProjectTask task : buildAgentTaskQueueManager.getProjectsInBuildQueue() )
+            {
+                Map<String, Object> map = new HashMap<String, Object>();
+                map.put( ContinuumBuildAgentUtil.KEY_PROJECT_ID, new Integer( task.getProjectId() ) );
+                map.put( ContinuumBuildAgentUtil.KEY_BUILD_DEFINITION_ID, new Integer( task.getBuildDefinitionId() ) );
+                map.put( ContinuumBuildAgentUtil.KEY_TRIGGER, new Integer( task.getTrigger() ) );
+                map.put( ContinuumBuildAgentUtil.KEY_PROJECT_GROUP_ID, new Integer( task.getProjectGroupId() ) );
+                map.put( ContinuumBuildAgentUtil.KEY_BUILD_DEFINITION_LABEL, task.getBuildDefinitionLabel() );
+
+                projects.add( map );
+            }
+
+            return projects;
+        }
+        catch( TaskQueueManagerException e )
+        {
+            log.error( "Error occurred while retrieving projects in build queue", e );
+            throw new ContinuumBuildAgentException( "Error occurred while retrieving projects in build queue", e );
+        }
+    }
+
+    public Map<String, Object> getProjectCurrentlyPreparingBuild()
+        throws ContinuumBuildAgentException
+    {
+        try
+        {
+            Map<String, Object> project = new HashMap<String, Object>();
+
+            PrepareBuildProjectsTask task = buildAgentTaskQueueManager.getCurrentProjectInPrepareBuild();
+
+            if ( task != null )
+            {
+                project.put( ContinuumBuildAgentUtil.KEY_PROJECT_GROUP_ID, new Integer( task.getProjectGroupId() ) );
+                project.put( ContinuumBuildAgentUtil.KEY_SCM_ROOT_ID, new Integer( task.getScmRootId() ) );
+                project.put( ContinuumBuildAgentUtil.KEY_SCM_ROOT_ADDRESS, task.getScmRootAddress() );
+                project.put( ContinuumBuildAgentUtil.KEY_TRIGGER, task.getTrigger() );
+            }
+
+            return project;
+        }
+        catch ( TaskQueueManagerException e )
+        {
+            log.error( "Error occurred while retrieving current project in prepare build", e );
+            throw new ContinuumBuildAgentException( "Error occurred while retrieving current project in prepare build", e );
+        }
+    }
+
+    public Map<String, Object> getProjectCurrentlyBuilding()
+        throws ContinuumBuildAgentException
+    {
+        try
+        {
+            Map<String, Object> project = new HashMap<String, Object>();
+
+            BuildProjectTask task = buildAgentTaskQueueManager.getCurrentProjectInBuilding();
+
+            if ( task != null )
+            {
+                project.put( ContinuumBuildAgentUtil.KEY_PROJECT_ID, new Integer( task.getProjectId() ) );
+                project.put( ContinuumBuildAgentUtil.KEY_BUILD_DEFINITION_ID, new Integer( task.getBuildDefinitionId() ) );
+                project.put( ContinuumBuildAgentUtil.KEY_TRIGGER, new Integer( task.getTrigger() ) );
+                project.put( ContinuumBuildAgentUtil.KEY_PROJECT_GROUP_ID, new Integer( task.getProjectGroupId() ) );
+                project.put( ContinuumBuildAgentUtil.KEY_BUILD_DEFINITION_LABEL, task.getBuildDefinitionLabel() );
+            }
+
+            return project;
+        }
+        catch ( TaskQueueManagerException e )
+        {
+            log.error( "Error occurred while retrieving current project in building", e );
+            throw new ContinuumBuildAgentException( "Error occurred while retrieving current project in building", e );
+        }
+    }
+
+    public boolean isProjectGroupInQueue( int projectGroupId )
+    {
+        try
+        {
+            PrepareBuildProjectsTask currentPrepareBuildTask = buildAgentTaskQueueManager.getCurrentProjectInPrepareBuild();
+
+            if ( currentPrepareBuildTask != null && currentPrepareBuildTask.getProjectGroupId() == projectGroupId )
+            {
+                return true;
+            }
+
+            BuildProjectTask currentBuildTask = buildAgentTaskQueueManager.getCurrentProjectInBuilding();
+
+            if ( currentBuildTask != null && currentBuildTask.getProjectGroupId() == projectGroupId )
+            {
+                return true;
+            }
+
+            for ( PrepareBuildProjectsTask task : buildAgentTaskQueueManager.getProjectsInPrepareBuildQueue() )
+            {
+                if ( task.getProjectGroupId() == projectGroupId )
+                {
+                    return true;
+                }
+            }
+
+            for ( BuildProjectTask task : buildAgentTaskQueueManager.getProjectsInBuildQueue() )
+            {
+                if ( task.getProjectGroupId() == projectGroupId )
+                {
+                    return true;
+                }
+            }
+        }
+        catch ( TaskQueueManagerException e )
+        {
+            log.error( "Error while checking if project group " + projectGroupId + " is queued in agent", e);
+        }
+
+        return false;
+    }
+
     private void processProject( String workingDirectory, String pomFilename, boolean autoVersionSubmodules,
                                  List<Map<String, String>> projects )
         throws Exception
@@ -641,6 +821,7 @@
             context.setProjectGroupId( ContinuumBuildAgentUtil.getProjectGroupId( map ) );
             context.setProjectGroupName( ContinuumBuildAgentUtil.getProjectGroupName( map ) );
             context.setScmRootAddress( ContinuumBuildAgentUtil.getScmRootAddress( map ) );
+            context.setScmRootId( ContinuumBuildAgentUtil.getScmRootId( map ) );
             context.setProjectName( ContinuumBuildAgentUtil.getProjectName( map ) );
             context.setProjectState( ContinuumBuildAgentUtil.getProjectState( map ) );
             context.setTrigger( ContinuumBuildAgentUtil.getTrigger( map ) );
@@ -650,11 +831,12 @@
             context.setLatestUpdateDate( ContinuumBuildAgentUtil.getLatestUpdateDate( map ) );
             context.setBuildAgentUrl( ContinuumBuildAgentUtil.getBuildAgentUrl( map ) );
             context.setMaxExecutionTime( ContinuumBuildAgentUtil.getMaxExecutionTime( map ) );
+            context.setBuildDefinitionLabel( ContinuumBuildAgentUtil.getBuildDefinitionLabel( map ) );
 
             buildContext.add( context );
         }
 
-        buildContextManager.setBuildContextList( buildContext );
+        buildContextManager.addBuildContexts( buildContext );
 
         return buildContext;
     }
@@ -726,7 +908,7 @@
         {
             BuildContext context = buildContexts.get( 0 );
             return new PrepareBuildProjectsTask( buildContexts, context.getTrigger(), context.getProjectGroupId(),
-                                                 context.getScmRootAddress() );
+                                                 context.getScmRootAddress(), context.getScmRootId() );
         }
         else
         {

Modified: continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/CreateBuildProjectTaskAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/CreateBuildProjectTaskAction.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/CreateBuildProjectTaskAction.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/action/CreateBuildProjectTaskAction.java Sun May 17 16:14:22 2009
@@ -55,8 +55,8 @@
         {
             BuildProjectTask buildProjectTask =
                 new BuildProjectTask( buildContext.getProjectId(), buildContext.getBuildDefinitionId(),
-                                      buildContext.getTrigger(), buildContext.getProjectName(), "",
-                                      buildContext.getScmResult() );
+                                      buildContext.getTrigger(), buildContext.getProjectName(), buildContext.getBuildDefinitionLabel(),
+                                      buildContext.getScmResult(), buildContext.getProjectGroupId() );
             buildProjectTask.setMaxExecutionTime( buildContext.getMaxExecutionTime() * 1000 );
 
             try
@@ -79,23 +79,6 @@
                     "Error while checking if project " + buildContext.getProjectId() + " is in build queue", e );
             }
         }
-
-        try
-        {
-            boolean stop = false;
-            while ( !stop )
-            {
-                if ( buildAgentTaskQueueManager.getCurrentProjectInBuilding() <= 0 &&
-                    !buildAgentTaskQueueManager.hasBuildTaskInQueue() )
-                {
-                    stop = true;
-                }
-            }
-        }
-        catch ( TaskQueueManagerException e )
-        {
-            throw new ContinuumException( e.getMessage(), e );
-        }
     }
 
 }

Modified: continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/BuildContext.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/BuildContext.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/BuildContext.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/BuildContext.java Sun May 17 16:14:22 2009
@@ -39,6 +39,8 @@
 
     private int buildDefinitionId;
 
+    private String buildDefinitionLabel;
+
     private String buildFile;
 
     private String goals;
@@ -63,6 +65,8 @@
 
     private String scmRootAddress;
 
+    private int scmRootId;
+
     private Map<String, Object> actionContext;
 
     private ScmResult scmResult;
@@ -350,4 +354,24 @@
     {
         return maxExecutionTime;
     }
+
+    public void setScmRootId( int scmRootId )
+    {
+        this.scmRootId = scmRootId;
+    }
+
+    public int getScmRootId()
+    {
+        return scmRootId;
+    }
+
+    public void setBuildDefinitionLabel( String buildDefinitionLabel )
+    {
+        this.buildDefinitionLabel = buildDefinitionLabel;
+    }
+
+    public String getBuildDefinitionLabel()
+    {
+        return buildDefinitionLabel;
+    }
 }

Modified: continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/BuildContextManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/BuildContextManager.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/BuildContextManager.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/BuildContextManager.java Sun May 17 16:14:22 2009
@@ -30,9 +30,11 @@
 {
     String ROLE = BuildContextManager.class.getName();
 
-    public void setBuildContextList( List<BuildContext> buildContext );
+    public void addBuildContexts( List<BuildContext> buildContextList );
 
-    public List<BuildContext> getBuildContextList();
+    public List<BuildContext> getBuildContexts();
 
     public BuildContext getBuildContext( int projectId );
+
+    public void removeBuildContext( int projectId );
 }
\ No newline at end of file

Modified: continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/DefaultBuildContextManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/DefaultBuildContextManager.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/DefaultBuildContextManager.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/buildcontext/manager/DefaultBuildContextManager.java Sun May 17 16:14:22 2009
@@ -19,7 +19,10 @@
  * under the License.
  */
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.continuum.buildagent.buildcontext.BuildContext;
 
@@ -30,34 +33,50 @@
 public class DefaultBuildContextManager
     implements BuildContextManager
 {
-    public List<BuildContext> buildContexts;
+    public Map<Integer, BuildContext> buildContexts;
 
     public BuildContext getBuildContext( int projectId )
     {
-        BuildContext context = null;
+        if ( buildContexts != null )
+        {
+            return buildContexts.get( projectId );
+        }
+
+        return null;
+    }
+
+    public List<BuildContext> getBuildContexts()
+    {
+        List<BuildContext> bContexts = new ArrayList<BuildContext>();
 
         if ( buildContexts != null )
         {
-            for ( BuildContext item : buildContexts )
-            {
-                if (item.getProjectId() == projectId)
-                {
-                    context = item;
-                    break;
-                }
-            }
+            bContexts.addAll( buildContexts.values() );
         }
 
-        return context;
+        return bContexts;
     }
 
-    public List<BuildContext> getBuildContextList()
+    public void addBuildContexts( List<BuildContext> buildContextList )
     {
-        return buildContexts;
+        if ( buildContexts == null )
+        {
+            buildContexts = new HashMap<Integer, BuildContext>();
+        }
+
+        for ( BuildContext buildContext : buildContextList )
+        {
+            buildContexts.put( buildContext.getProjectId(), buildContext );
+        }
     }
 
-    public void setBuildContextList( List<BuildContext> buildContexts )
+    public void removeBuildContext( int projectId )
     {
-        this.buildContexts = buildContexts;
+        BuildContext buildContext = getBuildContext( projectId );
+
+        if ( buildContext != null )
+        {
+            buildContexts.remove( buildContext );
+        }
     }
 }
\ No newline at end of file

Modified: continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/PrepareBuildProjectsTask.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/PrepareBuildProjectsTask.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/PrepareBuildProjectsTask.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/PrepareBuildProjectsTask.java Sun May 17 16:14:22 2009
@@ -35,13 +35,16 @@
 
     private final String scmRootAddress;
 
+    private final int scmRootId;
+
     public PrepareBuildProjectsTask( List<BuildContext> buildContexts, int trigger, int projectGroupId,
-                                     String scmRootAddress )
+                                     String scmRootAddress, int scmRootId )
     {
         this.buildContexts = buildContexts;
         this.trigger = trigger;
         this.projectGroupId = projectGroupId;
         this.scmRootAddress = scmRootAddress;
+        this.scmRootId = scmRootId;
     }
 
     public long getMaxExecutionTime()
@@ -69,4 +72,14 @@
     {
         return scmRootAddress;
     }
+
+    public int getScmRootId()
+    {
+        return scmRootId;
+    }
+
+    public int getHashCode()
+    {
+        return projectGroupId + scmRootId + trigger;
+    }
 }

Modified: continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutor.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutor.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutor.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/execution/BuildProjectTaskExecutor.java Sun May 17 16:14:22 2009
@@ -239,6 +239,7 @@
         try
         {
             buildAgentManager.returnBuildResult( result );
+            buildContextManager.removeBuildContext( buildContext.getProjectId() );
         }
         catch ( ContinuumException e )
         {

Modified: continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/BuildAgentTaskQueueManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/BuildAgentTaskQueueManager.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/BuildAgentTaskQueueManager.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/BuildAgentTaskQueueManager.java Sun May 17 16:14:22 2009
@@ -19,6 +19,10 @@
  * under the License.
  */
 
+import java.util.List;
+
+import org.apache.continuum.buildagent.taskqueue.PrepareBuildProjectsTask;
+import org.apache.continuum.taskqueue.BuildProjectTask;
 import org.apache.continuum.taskqueue.manager.TaskQueueManagerException;
 import org.codehaus.plexus.taskqueue.TaskQueue;
 
@@ -33,9 +37,15 @@
     void cancelBuild()
         throws TaskQueueManagerException;
 
-    int getCurrentProjectInBuilding()
+    int getIdOfProjectCurrentlyBuilding()
+        throws TaskQueueManagerException;
+
+    BuildProjectTask getCurrentProjectInBuilding()
         throws TaskQueueManagerException;
 
+    PrepareBuildProjectsTask getCurrentProjectInPrepareBuild()
+        throws TaskQueueManagerException;
+    
     boolean hasBuildTaskInQueue()
         throws TaskQueueManagerException;
 
@@ -44,4 +54,12 @@
 
     boolean isInPrepareBuildQueue( int projectGroupId, int trigger, String scmRootAddress )
         throws TaskQueueManagerException;
+
+    List<PrepareBuildProjectsTask> getProjectsInPrepareBuildQueue()
+        throws TaskQueueManagerException;
+
+    List<BuildProjectTask> getProjectsInBuildQueue()
+        throws TaskQueueManagerException;
+
+    //removeProjectFrom
 }

Modified: continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/DefaultBuildAgentTaskQueueManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/DefaultBuildAgentTaskQueueManager.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/DefaultBuildAgentTaskQueueManager.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/taskqueue/manager/DefaultBuildAgentTaskQueueManager.java Sun May 17 16:14:22 2009
@@ -69,7 +69,7 @@
         return buildAgentBuildQueue;
     }
 
-    public int getCurrentProjectInBuilding()
+    public int getIdOfProjectCurrentlyBuilding()
         throws TaskQueueManagerException
     {
         Task task = getBuildTaskQueueExecutor().getCurrentTask();
@@ -151,6 +151,19 @@
         }
     }
 
+    public TaskQueueExecutor getPrepareBuildTaskQueueExecutor()
+        throws TaskQueueManagerException
+    {
+        try
+        {
+            return (TaskQueueExecutor) container.lookup( TaskQueueExecutor.class, "prepare-build-agent" );
+        }
+        catch ( ComponentLookupException e )
+        {
+            throw new TaskQueueManagerException( e.getMessage(), e );
+        }
+    }
+
     public boolean hasBuildTaskInQueue()
         throws TaskQueueManagerException
     {
@@ -231,9 +244,63 @@
         return false;
     }
 
+    public List<PrepareBuildProjectsTask> getProjectsInPrepareBuildQueue()
+        throws TaskQueueManagerException
+    {
+        try
+        {
+            return buildAgentPrepareBuildQueue.getQueueSnapshot();
+        }
+        catch ( TaskQueueException e )
+        {
+            log.error( "Error occurred while retrieving projects in prepare build queue", e );
+            throw new TaskQueueManagerException( "Error occurred while retrieving projects in prepare build queue", e );
+        }
+    }
+
+    public List<BuildProjectTask> getProjectsInBuildQueue()
+        throws TaskQueueManagerException
+    {
+        try
+        {
+            return buildAgentBuildQueue.getQueueSnapshot();
+        }
+        catch ( TaskQueueException e )
+        {
+            log.error( "Error occurred while retrieving projects in build queue", e );
+            throw new TaskQueueManagerException( "Error occurred while retrieving projects in build queue", e );
+        }
+    }
+
+    public PrepareBuildProjectsTask getCurrentProjectInPrepareBuild()
+        throws TaskQueueManagerException
+    {
+        Task task = getPrepareBuildTaskQueueExecutor().getCurrentTask();
+
+        if ( task != null )
+        {
+            return (PrepareBuildProjectsTask) task;
+        }
+        return null;
+    }
+
+    public BuildProjectTask getCurrentProjectInBuilding()
+        throws TaskQueueManagerException
+    {
+        Task task = getBuildTaskQueueExecutor().getCurrentTask();
+
+        if ( task != null )
+        {
+            return (BuildProjectTask) task;
+        }
+
+        return null;
+    }
+
     public void contextualize( Context context )
         throws ContextException
     {
         container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
     }
+
 }

Modified: continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-core/src/main/java/org/apache/continuum/buildagent/utils/ContinuumBuildAgentUtil.java Sun May 17 16:14:22 2009
@@ -51,6 +51,8 @@
 
     public static final String KEY_BUILD_DEFINITION_ID = "builddefinition-id";
 
+    public static final String KEY_BUILD_DEFINITION_LABEL = "builddefinition-label";
+
     public static final String KEY_TRIGGER = "trigger";
 
     public static final String KEY_EXECUTOR_ID = "executor-id";
@@ -95,6 +97,8 @@
 
     public static final String KEY_SCM_ROOT_ADDRESS = "scm-root-address";
 
+    public static final String KEY_SCM_ROOT_ID = "scm-root-id";
+
     public static final String KEY_SCM_ROOT_STATE = "scm-root-state";
 
     public static final String KEY_CHECKOUT_SCM_RESULT = "checkout-scm-result";
@@ -526,6 +530,16 @@
         return getString( context, KEY_LOCAL_REPOSITORY_LAYOUT, "" );
     }
 
+    public static int getScmRootId( Map<String, Object> context )
+    {
+        return getInteger( context, KEY_SCM_ROOT_ID );
+    }
+
+    public static String getBuildDefinitionLabel( Map<String, Object> context )
+    {
+        return getString( context, KEY_BUILD_DEFINITION_LABEL, "" );
+    }
+
     // ----------------------------------------------------------------------
     //
     // ----------------------------------------------------------------------

Modified: continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-webapp/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-webapp/pom.xml?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-webapp/pom.xml (original)
+++ continuum/branches/continuum-1.3.x/continuum-buildagent/continuum-buildagent-webapp/pom.xml Sun May 17 16:14:22 2009
@@ -91,7 +91,7 @@
           <scanIntervalSeconds>10</scanIntervalSeconds>
           <contextPath>/</contextPath>
           <stopKey>stopkey</stopKey>
-          <stopPort>9192</stopPort>
+          <stopPort>9292</stopPort>
           <jettyEnvXml>${basedir}/src/jetty-env.xml</jettyEnvXml>
           <connectors>
             <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">

Modified: continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/executor/DistributedBuildProjectTaskExecutor.java Sun May 17 16:14:22 2009
@@ -106,7 +106,8 @@
             log.info( "initializing buildContext" );
             List<Map<String, Object>> buildContext =
                 initializeBuildContext( prepareBuildTask.getProjectsBuildDefinitionsMap(),
-                                        prepareBuildTask.getTrigger(), prepareBuildTask.getScmRootAddress() );
+                                        prepareBuildTask.getTrigger(), prepareBuildTask.getScmRootAddress(),
+                                        prepareBuildTask.getProjectScmRootId() );
 
             startTime = System.currentTimeMillis();
             client.buildProjects( buildContext );
@@ -126,7 +127,7 @@
     }
 
     private List<Map<String, Object>> initializeBuildContext( Map<Integer, Integer> projectsAndBuildDefinitions,
-                                                              int trigger, String scmRootAddress )
+                                                              int trigger, String scmRootAddress, int scmRootId )
         throws ContinuumException
     {
         List<Map<String, Object>> buildContext = new ArrayList<Map<String, Object>>();
@@ -152,6 +153,7 @@
 
                 context.put( ContinuumBuildConstant.KEY_PROJECT_GROUP_ID, project.getProjectGroup().getId() );
                 context.put( ContinuumBuildConstant.KEY_PROJECT_GROUP_NAME, project.getProjectGroup().getName() );
+                context.put( ContinuumBuildConstant.KEY_SCM_ROOT_ID, scmRootId );
                 context.put( ContinuumBuildConstant.KEY_SCM_ROOT_ADDRESS, scmRootAddress );
                 context.put( ContinuumBuildConstant.KEY_PROJECT_ID, project.getId() );
                 context.put( ContinuumBuildConstant.KEY_PROJECT_NAME, project.getName() );
@@ -196,6 +198,13 @@
                 }
 
                 context.put( ContinuumBuildConstant.KEY_BUILD_DEFINITION_ID, buildDefinitionId );
+                String buildDefinitionLabel = buildDef.getDescription();
+                if ( StringUtils.isEmpty( buildDefinitionLabel ) )
+                {
+                    buildDefinitionLabel = buildDef.getGoals();
+                }
+                context.put( ContinuumBuildConstant.KEY_BUILD_DEFINITION_LABEL, buildDefinitionLabel );
+                
                 context.put( ContinuumBuildConstant.KEY_BUILD_FILE, buildDef.getBuildFile() );
                 context.put( ContinuumBuildConstant.KEY_GOALS, buildDef.getGoals() );
 

Added: continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/taskqueue/DefaultOverallDistributedBuildQueue.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/taskqueue/DefaultOverallDistributedBuildQueue.java?rev=775693&view=auto
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/taskqueue/DefaultOverallDistributedBuildQueue.java (added)
+++ continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/taskqueue/DefaultOverallDistributedBuildQueue.java Sun May 17 16:14:22 2009
@@ -0,0 +1,139 @@
+package org.apache.continuum.builder.distributed.taskqueue;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.apache.continuum.builder.distributed.executor.DistributedBuildTaskQueueExecutor;
+import org.apache.continuum.builder.distributed.executor.ThreadedDistributedBuildTaskQueueExecutor;
+import org.apache.continuum.taskqueue.OverallDistributedBuildQueue;
+import org.apache.continuum.taskqueue.PrepareBuildProjectsTask;
+import org.codehaus.plexus.taskqueue.Task;
+import org.codehaus.plexus.taskqueue.TaskQueue;
+import org.codehaus.plexus.taskqueue.TaskQueueException;
+
+public class DefaultOverallDistributedBuildQueue
+    implements OverallDistributedBuildQueue
+{
+    private String buildAgentUrl;
+
+    private DistributedBuildTaskQueueExecutor distributedBuildTaskQueueExecutor;
+
+    public void addToDistributedBuildQueue( Task distributedBuildTask )
+        throws TaskQueueException
+    {
+        getDistributedBuildQueue().put( distributedBuildTask );
+    }
+
+    public String getBuildAgentUrl()
+    {
+        return buildAgentUrl;
+    }
+
+    public TaskQueue getDistributedBuildQueue()
+    {
+        return ( (ThreadedDistributedBuildTaskQueueExecutor) distributedBuildTaskQueueExecutor ).getQueue();
+    }
+
+    public DistributedBuildTaskQueueExecutor getDistributedBuildTaskQueueExecutor()
+    {
+        return distributedBuildTaskQueueExecutor;
+    }
+
+    public List<PrepareBuildProjectsTask> getProjectsInQueue()
+        throws TaskQueueException
+    {
+        return getDistributedBuildQueue().getQueueSnapshot();
+    }
+
+    public boolean isInDistributedBuildQueue( int projectGroupId, int scmRootId )
+        throws TaskQueueException
+    {
+        List<PrepareBuildProjectsTask> tasks = getProjectsInQueue();
+
+        for ( PrepareBuildProjectsTask task : tasks )
+        {
+            if ( task != null )
+            {
+                if ( task.getProjectGroupId() == projectGroupId && 
+                     task.getProjectScmRootId() == scmRootId )
+                {
+                    return true;
+                }
+            }
+        }
+
+        return false;
+    }
+
+    public void removeFromDistributedBuildQueue( int projectGroupId, int scmRootId )
+        throws TaskQueueException
+    {
+        List<PrepareBuildProjectsTask> tasks = getProjectsInQueue();
+
+        for ( PrepareBuildProjectsTask task : tasks )
+        {
+            if ( task != null )
+            {
+                if ( task.getProjectGroupId() == projectGroupId && 
+                     task.getProjectScmRootId() == scmRootId )
+                {
+                    getDistributedBuildQueue().remove( task );
+                    return;
+                }
+            }
+        }
+    }
+
+    public void removeFromDistributedBuildQueue( int[] hashCodes )
+        throws TaskQueueException
+    {
+        List<PrepareBuildProjectsTask> tasks = getProjectsInQueue();
+
+        List<PrepareBuildProjectsTask> tasksToRemove = new ArrayList<PrepareBuildProjectsTask>();
+
+        for ( PrepareBuildProjectsTask task : tasks )
+        {
+            if ( task != null )
+            {
+                if ( ArrayUtils.contains( hashCodes, task.getHashCode() ) )
+                {
+                    tasksToRemove.add( task );
+                }
+            }
+        }
+
+        if ( !tasksToRemove.isEmpty() )
+        {
+            getDistributedBuildQueue().removeAll( tasksToRemove );
+        }
+    }
+
+    public void removeFromDistributedBuildQueueByHashCode( int hashCode )
+        throws TaskQueueException
+    {
+        List<PrepareBuildProjectsTask> tasks = getProjectsInQueue();
+
+        for ( PrepareBuildProjectsTask task : tasks )
+        {
+            if ( task != null )
+            {
+                if ( task.getHashCode() == hashCode )
+                {
+                    getDistributedBuildQueue().remove( task );
+                    return;
+                }
+            }
+        }
+    }
+
+    public void setBuildAgentUrl( String buildAgentUrl )
+    {
+        this.buildAgentUrl = buildAgentUrl;
+    }
+
+    public void setDistributedBuildTaskQueueExecutor( DistributedBuildTaskQueueExecutor distributedBuildTaskQueueExecutor )
+    {
+        this.distributedBuildTaskQueueExecutor = distributedBuildTaskQueueExecutor;
+    }
+}

Propchange: continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/taskqueue/DefaultOverallDistributedBuildQueue.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/distributed/taskqueue/DefaultOverallDistributedBuildQueue.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/utils/ContinuumBuildConstant.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/utils/ContinuumBuildConstant.java?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/utils/ContinuumBuildConstant.java (original)
+++ continuum/branches/continuum-1.3.x/continuum-builder/src/main/java/org/apache/continuum/builder/utils/ContinuumBuildConstant.java Sun May 17 16:14:22 2009
@@ -37,6 +37,8 @@
 
     public static final String KEY_BUILD_DEFINITION_ID = "builddefinition-id";
 
+    public static final String KEY_BUILD_DEFINITION_LABEL = "builddefinition-label";
+
     public static final String KEY_TRIGGER = "trigger";
 
     public static final String KEY_EXECUTOR_ID = "executor-id";
@@ -83,6 +85,8 @@
 
     public static final String KEY_SCM_ROOT_ADDRESS = "scm-root-address";
 
+    public static final String KEY_SCM_ROOT_ID = "scm-root-id";
+
     public static final String KEY_SCM_ERROR = "scm-error";
 
     public static final String KEY_PROJECT_NAME = "project-name";
@@ -489,6 +493,16 @@
         return getString( context, KEY_BUILD_AGENT_URL );
     }
 
+    public static int getScmRootId( Map<String, Object> context )
+    {
+        return getInteger( context, KEY_SCM_ROOT_ID );
+    }
+
+    public static String getBuildDefinitionLabel( Map<String, Object> context )
+    {
+        return getString( context, KEY_BUILD_DEFINITION_LABEL, "" );
+    }
+
     // ----------------------------------------------------------------------
     //
     // ----------------------------------------------------------------------

Modified: continuum/branches/continuum-1.3.x/continuum-builder/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-builder/src/main/resources/META-INF/plexus/components.xml?rev=775693&r1=775692&r2=775693&view=diff
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-builder/src/main/resources/META-INF/plexus/components.xml (original)
+++ continuum/branches/continuum-1.3.x/continuum-builder/src/main/resources/META-INF/plexus/components.xml Sun May 17 16:14:22 2009
@@ -31,102 +31,10 @@
       <role-hint>distributed-build-project</role-hint>
       <implementation>org.codehaus.plexus.taskqueue.DefaultTaskQueue</implementation>
       <lifecycle-handler>plexus-configurable</lifecycle-handler>
-    </component>
-
-    <component>
-      <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
-      <role-hint>distributed-build-project-deferred</role-hint>
-      <implementation>org.codehaus.plexus.taskqueue.DefaultTaskQueue</implementation>
-      <lifecycle-handler>plexus-configurable</lifecycle-handler>
-    </component>
-
-    <component>
-      <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
-      <role-hint>distributed-build-project-per-agent</role-hint>
-      <implementation>org.codehaus.plexus.taskqueue.DefaultTaskQueue</implementation>
-      <lifecycle-handler>plexus-configurable</lifecycle-handler>
       <instantiation-strategy>per-lookup</instantiation-strategy>
     </component>
 
     <component>
-      <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
-      <role-hint>distributed-build-project-overall</role-hint>
-      <implementation>org.apache.continuum.builder.distributed.executor.overall.DistributedBuildProjectTaskExecutorOverall</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.continuum.configuration.ConfigurationService</role>
-          <role-hint>default</role-hint>
-        </requirement>
-        <requirement>
-          <role>org.apache.continuum.dao.ProjectDao</role>
-        </requirement>
-        <requirement>
-          <role>org.apache.continuum.dao.BuildDefinitionDao</role>
-        </requirement>
-        <requirement>
-          <role>org.apache.continuum.builder.distributed.manager.DistributedBuildManager</role>
-        </requirement>
-        <requirement>
-          <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
-          <role-hint>distributed-build-project-deferred</role-hint>
-          <field-name>deferredTaskQueue</field-name>
-        </requirement>
-      </requirements>
-    </component>
-
-    <component>
-      <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
-      <role-hint>distributed-build-project-overall</role-hint>
-      <implementation>org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor</implementation>
-      <instantiation-strategy>singleton</instantiation-strategy>
-      <requirements>
-        <requirement>
-          <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
-          <role-hint>distributed-build-project-overall</role-hint>
-        </requirement>
-        <requirement>
-          <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
-          <role-hint>distributed-build-project</role-hint>
-        </requirement>
-      </requirements>
-      <configuration>
-        <name>distributed-build-project-overall</name>
-      </configuration>
-    </component>
-
-    <component>
-      <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
-      <role-hint>distributed-build-project-deferred</role-hint>
-      <implementation>org.apache.continuum.builder.distributed.executor.deferred.DistributedBuildProjectTaskExecutorDeferred</implementation>
-      <requirements>
-        <requirement>
-          <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
-          <role-hint>distributed-build-project</role-hint>
-        </requirement>
-      </requirements>
-    </component>
-
-    <component>
-      <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
-      <role-hint>distributed-build-project-deferred</role-hint>
-      <implementation>org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor</implementation>
-      <instantiation-strategy>singleton</instantiation-strategy>
-      <requirements>
-        <requirement>
-          <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
-          <role-hint>distributed-build-project-deferred</role-hint>
-        </requirement>
-        <requirement>
-          <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
-          <role-hint>distributed-build-project-deferred</role-hint>
-        </requirement>
-      </requirements>
-      <configuration>
-        <name>distributed-build-project-deferred</name>
-      </configuration>
-    </component>    
-
-    <component>
       <role>org.apache.continuum.builder.distributed.executor.DistributedBuildTaskExecutor</role>
       <role-hint>distributed-build-project</role-hint>
       <implementation>org.apache.continuum.builder.distributed.executor.DistributedBuildProjectTaskExecutor</implementation>
@@ -155,7 +63,7 @@
 	  <requirements>
         <requirement>
           <role>org.codehaus.plexus.taskqueue.TaskQueue</role>
-          <role-hint>distributed-build-project-per-agent</role-hint>
+          <role-hint>distributed-build-project</role-hint>
         </requirement>
         <requirement>
           <role>org.apache.continuum.builder.distributed.executor.DistributedBuildTaskExecutor</role>

Added: continuum/branches/continuum-1.3.x/continuum-builder/src/main/resources/META-INF/spring-context.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-1.3.x/continuum-builder/src/main/resources/META-INF/spring-context.xml?rev=775693&view=auto
==============================================================================
--- continuum/branches/continuum-1.3.x/continuum-builder/src/main/resources/META-INF/spring-context.xml (added)
+++ continuum/branches/continuum-1.3.x/continuum-builder/src/main/resources/META-INF/spring-context.xml Sun May 17 16:14:22 2009
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:aop="http://www.springframework.org/schema/aop"
+	xmlns:util="http://www.springframework.org/schema/util"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
+		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">
+
+  <bean name="overallDistributedBuildQueue" 
+  		class="org.apache.continuum.builder.distributed.taskqueue.DefaultOverallDistributedBuildQueue" scope="prototype" autowire="byName">
+     <property name="distributedBuildTaskQueueExecutor" ref="distributedBuildTaskQueueExecutor#distributed-build-project"/>
+  </bean>
+</beans>
\ No newline at end of file

Propchange: continuum/branches/continuum-1.3.x/continuum-builder/src/main/resources/META-INF/spring-context.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: continuum/branches/continuum-1.3.x/continuum-builder/src/main/resources/META-INF/spring-context.xml
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision