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 2008/12/17 09:43:54 UTC
svn commit: r727315 - in /continuum/branches/continuum-parallel-builds:
continuum-core/src/main/java/org/apache/continuum/buildmanager/
continuum-core/src/main/java/org/apache/continuum/taskqueueexecutor/
continuum-core/src/main/java/org/apache/maven/c...
Author: oching
Date: Wed Dec 17 00:43:54 2008
New Revision: 727315
URL: http://svn.apache.org/viewvc?rev=727315&view=rev
Log:
additional fixes for parallel builds impl
Modified:
continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java
continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/continuum/taskqueueexecutor/ParallelBuildsThreadedTaskQueueExecutor.java
continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java
continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java
continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java
continuum/branches/continuum-parallel-builds/continuum-core/src/main/resources/META-INF/plexus/components.xml
continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/QueuesAction.java
Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java?rev=727315&r1=727314&r2=727315&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java Wed Dec 17 00:43:54 2008
@@ -107,6 +107,11 @@
e.getMessage() );
}
+ List<BuildQueue> buildQueues = buildDefinition.getSchedule().getBuildQueues();
+ for( BuildQueue buildQueue : buildQueues )
+ {
+ log.info( "[Build Project]++++++build queue : " + buildQueue.getId() + " - " + buildQueue.getName() );
+ }
OverallBuildQueue overallBuildQueue =
getOverallBuildQueue( projectId, BUILD_QUEUE, buildDefinition.getSchedule().getBuildQueues() );
@@ -120,7 +125,8 @@
new BuildProjectTask( projectId, buildDefinition.getId(), trigger, projectName, buildDefinitionLabel );
try
{
- log.info( "Queueing project '" + projectId + "' in build queue '" + overallBuildQueue.getName() + "'");
+ log.info( "++++++[Build] Project '" + projectName + "' added to overall build queue '" + overallBuildQueue.getName() +
+ "'." );
overallBuildQueue.addToBuildQueue( buildTask );
}
catch ( TaskQueueException e )
@@ -155,18 +161,26 @@
if ( firstProjectId != 0 )
{
BuildDefinition buildDef = projectsBuildDefinitionsMap.get( firstProjectId );
+ List<BuildQueue> buildQueues = buildDef.getSchedule().getBuildQueues();
+ for( BuildQueue buildQueue : buildQueues )
+ {
+ log.info( "[Build Projects]++++++BUILD QUEUE from projectsBuildDefinitionsMap : " +
+ buildQueue.getId() + " - " + buildQueue.getName() );
+ }
+
OverallBuildQueue overallBuildQueue =
getOverallBuildQueue( firstProjectId, BUILD_QUEUE, buildDef.getSchedule().getBuildQueues() );
- ;
if ( overallBuildQueue != null )
- {
+ {
for ( Project project : projects )
{
try
{
- if ( isInQueue( project.getId(), BUILD_QUEUE, -1 ) )
+ if ( isInQueue( project.getId(), BUILD_QUEUE, projectsBuildDefinitionsMap.get( project.getId() ).getId() ) )
{
+ log.warn( "Project '" + project.getId() + "' - '" + project.getName() +
+ "' is already in build queue." );
continue;
}
}
@@ -190,6 +204,9 @@
try
{
+ log.info( "++++++[Build Projects] Project '" + project.getId() + "' - '" + project.getName() +
+ "' added to overall build queue '" + overallBuildQueue.getName() + "'." );
+
overallBuildQueue.addToBuildQueue( buildTask );
}
catch ( TaskQueueException e )
@@ -320,11 +337,19 @@
OverallBuildQueue overallBuildQueue =
getOverallBuildQueue( projectId, CHECKOUT_QUEUE, defaultBuildDefinition.getSchedule().getBuildQueues() );
-
+
+ List<BuildQueue> buildQueues = defaultBuildDefinition.getSchedule().getBuildQueues();
+ for( BuildQueue buildQueue : buildQueues )
+ {
+ log.info( "++++++build queue : " + buildQueue.getId() + " - " + buildQueue.getName() );
+ }
+
CheckOutTask checkoutTask =
new CheckOutTask( projectId, workingDirectory, projectName, scmUsername, scmPassword );
try
{
+ log.info( "++++++[Checkout] Project '" + projectName + "' added to overall build queue '" + overallBuildQueue.getName() +
+ "'." );
overallBuildQueue.addToCheckoutQueue( checkoutTask );
}
catch ( TaskQueueException e )
@@ -911,8 +936,7 @@
try
{
for ( BuildQueue buildQueue : buildQueues )
- {
- log.info( "BUILD QUEUE : " + buildQueue.getId() + " : " + buildQueue.getName() );
+ {
OverallBuildQueue overallBuildQueue = overallBuildQueues.get( buildQueue.getId() );
if ( overallBuildQueue != null )
{
@@ -926,8 +950,6 @@
taskQueue = overallBuildQueue.getCheckoutQueue();
}
- log.info( "SIZE OF TASK QUEUE :: " + taskQueue.getQueueSnapshot().size() );
-
if ( idx == 0 )
{
size = taskQueue.getQueueSnapshot().size();
@@ -960,8 +982,6 @@
for( Integer key : keySet )
{
OverallBuildQueue overallBuildQueue = overallBuildQueues.get( key );
- log.info( "OVERALLBUILD QUEUE :: " + overallBuildQueue.getId() + " : "
- + overallBuildQueue.getName() );
if( overallBuildQueue.getName().equals( ConfigurationService.DEFAULT_BUILD_QUEUE_NAME ) )
{
return overallBuildQueue;
@@ -993,7 +1013,6 @@
(OverallBuildQueue) container.lookup( OverallBuildQueue.class );
defaultOverallBuildQueue.setId( defaultBuildQueue.getId() );
defaultOverallBuildQueue.setName( defaultBuildQueue.getName() );
- //defaultOverallBuildQueue.setContainer( container );
overallBuildQueues.put( defaultOverallBuildQueue.getId(), defaultOverallBuildQueue );
}
Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/continuum/taskqueueexecutor/ParallelBuildsThreadedTaskQueueExecutor.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/continuum/taskqueueexecutor/ParallelBuildsThreadedTaskQueueExecutor.java?rev=727315&r1=727314&r2=727315&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/continuum/taskqueueexecutor/ParallelBuildsThreadedTaskQueueExecutor.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/continuum/taskqueueexecutor/ParallelBuildsThreadedTaskQueueExecutor.java Wed Dec 17 00:43:54 2008
@@ -282,7 +282,8 @@
{
log.info( "Starting task executor, thread name '" + name + "'." );
- this.executorService = Executors.newSingleThreadExecutor();
+ //this.executorService = Executors.newSingleThreadExecutor();
+ this.executorService = Executors.newCachedThreadPool();
executorRunnable = new ExecutorRunnable();
Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java?rev=727315&r1=727314&r2=727315&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/buildcontroller/DefaultBuildController.java Wed Dec 17 00:43:54 2008
@@ -57,6 +57,7 @@
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
* @plexus.component role="org.apache.maven.continuum.buildcontroller.BuildController" role-hint="default"
+ * instantiation-strategy="per-lookup"
*/
public class DefaultBuildController
extends AbstractLogEnabled
Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java?rev=727315&r1=727314&r2=727315&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java Wed Dec 17 00:43:54 2008
@@ -28,6 +28,7 @@
import org.apache.maven.continuum.execution.ContinuumBuildExecutor;
import org.apache.maven.continuum.execution.manager.BuildExecutorManager;
import org.apache.maven.continuum.model.project.BuildDefinition;
+import org.apache.maven.continuum.model.project.BuildQueue;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.project.ContinuumProjectState;
import org.apache.maven.continuum.store.ContinuumStoreException;
@@ -64,10 +65,19 @@
List<Project> projectsToBeBuilt = new ArrayList<Project>();
int trigger = AbstractContinuumAction.getTrigger( context );
+ getLogger().info( "\n--------- create build project tasks action ---------" );
+
// update state of each project first
for( Project project : projects )
{
+ getLogger().info( "##### project : " + project.getId() + " - " + project.getName() );
BuildDefinition buildDefinition = projectsBuildDefinitionsMap.get( project.getId() );
+ List<BuildQueue> buildQueues = buildDefinition.getSchedule().getBuildQueues();
+ for( BuildQueue buildQueue : buildQueues )
+ {
+ getLogger().info( "##### build queue : " + buildQueue.getId() + " - " + buildQueue.getName() );
+ }
+
if ( parallelBuildsManager.isInAnyBuildQueue( project.getId(), buildDefinition.getId() ) )
{
return;
Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java?rev=727315&r1=727314&r2=727315&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/CheckOutTaskExecutor.java Wed Dec 17 00:43:54 2008
@@ -36,7 +36,7 @@
* @author <a href="mailto:trygvis@inamo.no">Trygve Laugstøl</a>
* @version $Id$
* @plexus.component role="org.codehaus.plexus.taskqueue.execution.TaskExecutor"
- * role-hint="check-out-project"
+ * role-hint="check-out-project" instantiation-strategy="per-lookup"
*/
public class CheckOutTaskExecutor
extends AbstractLogEnabled
@@ -59,6 +59,8 @@
public void executeTask( Task t )
throws TaskExecutionException
{
+ getLogger().info( "Checkout task executor.." );
+
CheckOutTask task = (CheckOutTask) t;
int projectId = task.getProjectId();
Modified: continuum/branches/continuum-parallel-builds/continuum-core/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-core/src/main/resources/META-INF/plexus/components.xml?rev=727315&r1=727314&r2=727315&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-core/src/main/resources/META-INF/plexus/components.xml (original)
+++ continuum/branches/continuum-parallel-builds/continuum-core/src/main/resources/META-INF/plexus/components.xml Wed Dec 17 00:43:54 2008
@@ -63,9 +63,11 @@
<requirement>
<role>org.apache.maven.continuum.buildcontroller.BuildController</role>
</requirement>
+ <!--
<requirement>
<role>org.apache.continuum.taskqueue.manager.TaskQueueManager</role>
</requirement>
+ -->
</requirements>
</component>
Modified: continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java?rev=727315&r1=727314&r2=727315&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java Wed Dec 17 00:43:54 2008
@@ -22,19 +22,16 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.Iterator;
import java.util.List;
import org.apache.continuum.dao.BuildQueueDao;
import org.apache.maven.continuum.ContinuumException;
-import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.BuildQueue;
import org.apache.maven.continuum.model.project.Schedule;
import org.apache.maven.continuum.store.ContinuumStoreException;
import org.apache.maven.continuum.web.exception.AuthenticationRequiredException;
import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
-import org.apache.maven.model.Build;
import com.opensymphony.xwork2.Preparable;
@@ -162,8 +159,7 @@
description = schedule.getDescription();
name = schedule.getName();
delay = schedule.getDelay();
- maxJobExecutionTime = schedule.getMaxJobExecutionTime();
-
+ maxJobExecutionTime = schedule.getMaxJobExecutionTime();
}
else
{
@@ -222,8 +218,28 @@
schedule.setDescription( description );
schedule.setName( name );
schedule.setMaxJobExecutionTime( maxJobExecutionTime );
-
- schedule.setBuildQueues( getBuildQueuesFromSelectedBuildQueues() );
+
+ // remove old build queues
+ /*List<BuildQueue> existingBuildQueues = schedule.getBuildQueues();
+ for( BuildQueue buildQueue : existingBuildQueues )
+ {
+ schedule.removeBuildQueue( buildQueue );
+ }
+ */
+ for ( String buildQueueId : buildQueueIds )
+ {
+ try
+ {
+ BuildQueue buildQueue = buildQueueDao.getBuildQueueByName( buildQueueId ) ;
+ schedule.addBuildQueue( buildQueue );
+ }
+ catch ( ContinuumStoreException e)
+ {
+ addActionError( e.getMessage() );
+ }
+ }
+
+ //schedule.setBuildQueues( getBuildQueuesFromSelectedBuildQueues() );
return schedule;
}
@@ -295,17 +311,18 @@
}
private List<BuildQueue> getBuildQueuesFromSelectedBuildQueues()
- {
+ {
if ( this.buildQueueIds == null )
{
return Collections.EMPTY_LIST;
}
- List<BuildQueue> selectedBuildQueue = new ArrayList<BuildQueue>();
+
+ List<BuildQueue> selectedBuildQueue = new ArrayList<BuildQueue>();
for ( String buildQueueId : buildQueueIds )
- {
+ {
try
{
- BuildQueue buildQueue = buildQueueDao.getBuildQueueByName( buildQueueId ) ;
+ BuildQueue buildQueue = buildQueueDao.getBuildQueueByName( buildQueueId ) ;
}
catch ( ContinuumStoreException e)
{
Modified: continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/QueuesAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/QueuesAction.java?rev=727315&r1=727314&r2=727315&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/QueuesAction.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/QueuesAction.java Wed Dec 17 00:43:54 2008
@@ -26,8 +26,7 @@
import java.util.Set;
import org.apache.commons.lang.ArrayUtils;
-import org.apache.continuum.buildmanager.BuildsManager;
-import org.apache.continuum.taskqueue.manager.TaskQueueManager;
+import org.apache.continuum.buildmanager.BuildManagerException;
import org.apache.maven.continuum.buildqueue.BuildProjectTask;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.scm.queue.CheckOutTask;
@@ -37,7 +36,6 @@
import org.codehaus.plexus.logging.LogEnabled;
import org.codehaus.plexus.redback.rbac.Resource;
import org.codehaus.plexus.taskqueue.Task;
-import org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor;
import org.codehaus.redback.integration.interceptor.SecureAction;
import org.codehaus.redback.integration.interceptor.SecureActionBundle;
import org.codehaus.redback.integration.interceptor.SecureActionException;
@@ -52,24 +50,15 @@
extends AbstractBuildQueueAction
implements SecureAction, LogEnabled
{
- /**
- * @plexus.requirement role-hint='build-project'
- */
- private TaskQueueExecutor taskQueueExecutor;
-
private BuildProjectTask currentBuildProjectTask;
private List<BuildProjectTask> buildProjectTasks;
private List<String> selectedBuildTaskHashCodes;
-
- /**
- * @plexus.requirement role-hint='check-out-project'
- */
- private TaskQueueExecutor checkoutTaskQueueExecutor;
-
+
private CheckOutTask currentCheckOutTask;
+ // retain! can be used for parallel builds
private List<CheckOutTask> currentCheckOutTasks;
private List<String> selectedCheckOutTaskHashCodes;
@@ -85,15 +74,8 @@
/**
* @plexus.requirement
*/
- private TaskQueueManager taskQueueManager;
-
- // TODO: deng parallel builds
-
- /**
- * @plexus.requirement role-hint="parallel"
- */
- private BuildsManager parallelBuildsManager;
-
+ //private TaskQueueManager taskQueueManager;
+
private List<BuildProjectTask> currentBuildProjectTasks = new ArrayList<BuildProjectTask>();
private Map<String, List<BuildProjectTask>> buildsInQueue = new HashMap<String, List<BuildProjectTask>>();
@@ -106,7 +88,7 @@
public String cancelCurrent()
throws Exception
- {
+ {
try
{
checkManageQueuesAuthorization();
@@ -144,7 +126,7 @@
return REQUIRES_AUTHENTICATION;
}
- parallelBuildsManager.removeProjectFromCheckoutQueue( projectId );
+ getContinuum().getBuildsManager().removeProjectFromCheckoutQueue( projectId );
//taskQueueManager.removeProjectFromCheckoutQueue( projectId );
return SUCCESS;
}
@@ -166,7 +148,16 @@
return REQUIRES_AUTHENTICATION;
}
- cancelCheckout( projectId );
+ try
+ {
+ cancelCheckout( projectId );
+ }
+ catch ( BuildManagerException e )
+ {
+ addActionError( e.getMessage() );
+ return ERROR;
+ }
+
return SUCCESS;
}
@@ -174,14 +165,14 @@
throws Exception
{
// current builds
- for( Task task : parallelBuildsManager.getCurrentBuilds() )
+ for( Task task : getContinuum().getBuildsManager().getCurrentBuilds() )
{
BuildProjectTask buildTask = (BuildProjectTask) task;
this.currentBuildProjectTasks.add( buildTask );
}
// queued builds
- Map<String, List<Task>> builds = parallelBuildsManager.getProjectsInBuildQueues();
+ Map<String, List<Task>> builds = getContinuum().getBuildsManager().getProjectsInBuildQueues();
Set<String> keySet = builds.keySet();
List<BuildProjectTask> buildTasks = new ArrayList<BuildProjectTask>();
for( String key : keySet )
@@ -195,14 +186,14 @@
}
// current checkouts
- for( Task task : parallelBuildsManager.getCurrentCheckouts() )
+ for( Task task : getContinuum().getBuildsManager().getCurrentCheckouts() )
{
CheckOutTask checkoutTask = (CheckOutTask) task;
this.currentCheckOutTasks.add( checkoutTask );
}
// queued checkouts
- Map<String, List<Task>> checkouts = parallelBuildsManager.getProjectsInCheckoutQueues();
+ Map<String, List<Task>> checkouts = getContinuum().getBuildsManager().getProjectsInCheckoutQueues();
keySet = builds.keySet();
List<CheckOutTask> checkoutTasks = new ArrayList<CheckOutTask>();
for( String key : keySet )
@@ -215,14 +206,6 @@
checkoutsInQueue.put( key, checkoutTasks );
}
- //this.setCurrentBuildProjectTask( (BuildProjectTask) taskQueueExecutor.getCurrentTask() );
- //this.setBuildProjectTasks( taskQueueManager.getProjectsInBuildQueue() );
-
- /*this.setCurrentBuildProjectTask( (BuildProjectTask) taskQueueExecutor.getCurrentTask() );
- this.setBuildProjectTasks( taskQueueManager.getProjectsInBuildQueue() );
-
- this.setCurrentCheckOutTask( (CheckOutTask) checkoutTaskQueueExecutor.getCurrentTask() );
- this.setCurrentCheckOutTasks( taskQueueManager.getCheckOutTasksInQueue() );*/
return SUCCESS;
}
@@ -244,7 +227,7 @@
return REQUIRES_AUTHENTICATION;
}
- parallelBuildsManager.removeProjectFromBuildQueue( projectId, buildDefinitionId, trigger, projectName );
+ getContinuum().getBuildsManager().removeProjectFromBuildQueue( projectId, buildDefinitionId, trigger, projectName );
Project project = getContinuum().getProject( projectId );
project.setState( project.getOldState() );
getContinuum().updateProject( project );
@@ -270,9 +253,9 @@
return REQUIRES_AUTHENTICATION;
}
- // TODO: deng parallel builds
- // - implement delete with hashcodes in parallel builds manager! how to do this???
- taskQueueManager.removeProjectsFromBuildingQueueWithHashCodes( listToIntArray(this.getSelectedBuildTaskHashCodes()) );
+ getContinuum().getBuildsManager().removeProjectsFromBuildQueueWithHashcodes(
+ listToIntArray( this.getSelectedBuildTaskHashCodes() ) );
+ //taskQueueManager.removeProjectsFromBuildingQueueWithHashCodes( listToIntArray(this.getSelectedBuildTaskHashCodes()) );
return SUCCESS;
}
@@ -293,11 +276,12 @@
addActionError( e.getMessage() );
return REQUIRES_AUTHENTICATION;
}
+
+ //taskQueueManager
+ // .removeTasksFromCheckoutQueueWithHashCodes( listToIntArray( this.getSelectedCheckOutTaskHashCodes() ) );
- // TODO: deng parallel builds
- // - implement delete with hashcodes in parallel builds manager! how to do this???
- taskQueueManager
- .removeTasksFromCheckoutQueueWithHashCodes( listToIntArray( this.getSelectedCheckOutTaskHashCodes() ) );
+ getContinuum().getBuildsManager().removeProjectsFromCheckoutQueueWithHashcodes(
+ listToIntArray( this.getSelectedCheckOutTaskHashCodes() ) );
return SUCCESS;
}
@@ -331,10 +315,35 @@
}
private boolean cancelCheckout(int projectId)
+ throws BuildManagerException
{
- Task task = getCheckoutTaskQueueExecutor().getCurrentTask();
-
- if ( task != null )
+ List<Task> tasks = getContinuum().getBuildsManager().getCurrentCheckouts();
+ if( tasks != null )
+ {
+ for( Task task : tasks )
+ {
+ if( task != null && task instanceof CheckOutTask )
+ {
+ if ( ( (CheckOutTask) task ).getProjectId() == projectId )
+ {
+ getLogger().info( "Cancelling checkout for project " + projectId );
+ return getContinuum().getBuildsManager().cancelCheckout( projectId );
+ }
+ else
+ {
+ getLogger().warn(
+ "Current task is not for the given projectId (" + projectId + "): "
+ + ( (CheckOutTask) task ).getProjectId() + "; not cancelling checkout" );
+ }
+ }
+ }
+ }
+ else
+ {
+ getLogger().warn( "No task running - not cancelling checkout" );
+ }
+
+ /*if ( task != null )
{
if ( task instanceof CheckOutTask )
{
@@ -354,11 +363,8 @@
{
getLogger().warn( "Current task not a CheckOutTask - not cancelling checkout" );
}
- }
- else
- {
- getLogger().warn( "No task running - not cancelling checkout" );
- }
+ }*/
+
return false;
}
@@ -423,7 +429,7 @@
this.currentBuildProjectTask = currentBuildProjectTask;
}
- public TaskQueueExecutor getTaskQueueExecutor()
+ /*public TaskQueueExecutor getTaskQueueExecutor()
{
return taskQueueExecutor;
}
@@ -438,7 +444,7 @@
public void setCheckoutTaskQueueExecutor( TaskQueueExecutor checkoutTaskQueueExecutor )
{
this.checkoutTaskQueueExecutor = checkoutTaskQueueExecutor;
- }
+ }*/
public CheckOutTask getCurrentCheckOutTask()