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 20:21:36 UTC
svn commit: r775729 [4/5] - in /continuum/trunk:
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/apache/continuum/buildm...
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/continuum/buildmanager/ParallelBuildsManager.java Sun May 17 18:21:35 2009
@@ -31,6 +31,7 @@
import org.apache.continuum.buildqueue.BuildQueueService;
import org.apache.continuum.buildqueue.BuildQueueServiceException;
import org.apache.continuum.dao.BuildDefinitionDao;
+import org.apache.continuum.dao.ProjectDao;
import org.apache.continuum.taskqueue.BuildProjectTask;
import org.apache.continuum.taskqueue.CheckOutTask;
import org.apache.continuum.taskqueue.OverallBuildQueue;
@@ -80,6 +81,9 @@
@Resource
private BuildDefinitionDao buildDefinitionDao;
+ @Resource
+ private ProjectDao projectDao;
+
private TaskQueue prepareBuildQueue;
@Resource
@@ -91,10 +95,10 @@
private PlexusContainer container;
/**
- * @see BuildsManager#buildProject(int, BuildDefinition, String, int, ScmResult)
+ * @see BuildsManager#buildProject(int, BuildDefinition, String, int, ScmResult, int)
*/
public void buildProject( int projectId, BuildDefinition buildDefinition, String projectName, int trigger,
- ScmResult scmResult )
+ ScmResult scmResult, int projectGroupId )
throws BuildManagerException
{
try
@@ -111,8 +115,12 @@
"Error occurred while checking if the project is already in queue: " + e.getMessage() );
}
- OverallBuildQueue overallBuildQueue =
- getOverallBuildQueue( BUILD_QUEUE, buildDefinition.getSchedule().getBuildQueues() );
+ OverallBuildQueue overallBuildQueue = getOverallBuildQueueWhereProjectsInGroupAreQueued( projectGroupId );
+
+ if ( overallBuildQueue == null )
+ {
+ overallBuildQueue = getOverallBuildQueue( BUILD_QUEUE, buildDefinition.getSchedule().getBuildQueues() );
+ }
String buildDefinitionLabel = buildDefinition.getDescription();
if ( StringUtils.isEmpty( buildDefinitionLabel ) )
@@ -122,7 +130,7 @@
BuildProjectTask buildTask =
new BuildProjectTask( projectId, buildDefinition.getId(), trigger, projectName, buildDefinitionLabel,
- scmResult );
+ scmResult, projectGroupId );
try
{
log.info(
@@ -136,10 +144,10 @@
}
/**
- * @see BuildsManager#buildProjects(List, Map, int, Map)
+ * @see BuildsManager#buildProjects(List, Map, int, Map, int)
*/
public void buildProjects( List<Project> projects, Map<Integer, BuildDefinition> projectsBuildDefinitionsMap,
- int trigger, Map<Integer, ScmResult> scmResultMap )
+ int trigger, Map<Integer, ScmResult> scmResultMap, int projectGroupId )
throws BuildManagerException
{
int firstProjectId = 0;
@@ -163,8 +171,12 @@
if ( firstProjectId != 0 )
{
BuildDefinition buildDef = projectsBuildDefinitionsMap.get( firstProjectId );
- OverallBuildQueue overallBuildQueue =
- getOverallBuildQueue( BUILD_QUEUE, buildDef.getSchedule().getBuildQueues() );
+ OverallBuildQueue overallBuildQueue = getOverallBuildQueueWhereProjectsInGroupAreQueued( projectGroupId );
+
+ if ( overallBuildQueue == null )
+ {
+ overallBuildQueue = getOverallBuildQueue( BUILD_QUEUE, buildDef.getSchedule().getBuildQueues() );
+ }
if ( overallBuildQueue != null )
{
@@ -196,7 +208,7 @@
ScmResult scmResult = scmResultMap.get( project.getId() );
BuildProjectTask buildTask =
new BuildProjectTask( project.getId(), buildDefinition.getId(), trigger, project.getName(),
- buildDefinitionLabel, scmResult );
+ buildDefinitionLabel, scmResult, projectGroupId );
buildTask.setMaxExecutionTime( buildDefinition.getSchedule().getMaxJobExecutionTime() * 1000 );
try
@@ -592,7 +604,8 @@
/**
* @see BuildsManager#removeProjectFromBuildQueue(int, int, int, String)
*/
- public void removeProjectFromBuildQueue( int projectId, int buildDefinitionId, int trigger, String projectName )
+ public void removeProjectFromBuildQueue( int projectId, int buildDefinitionId, int trigger, String projectName,
+ int projectGroupId )
throws BuildManagerException
{
try
@@ -600,7 +613,8 @@
OverallBuildQueue overallBuildQueue = getOverallBuildQueueWhereProjectIsQueued( projectId, BUILD_QUEUE );
if ( overallBuildQueue != null )
{
- overallBuildQueue.removeProjectFromBuildQueue( projectId, buildDefinitionId, trigger, projectName );
+ overallBuildQueue.removeProjectFromBuildQueue( projectId, buildDefinitionId, trigger, projectName,
+ projectGroupId );
}
else
{
@@ -859,7 +873,7 @@
buildDefinitionDao.getBuildDefinition( buildTask.getBuildDefinitionId() );
buildProject( buildTask.getProjectId(), buildDefinition, buildTask.getProjectName(),
- buildTask.getTrigger(), buildTask.getScmResult() );
+ buildTask.getTrigger(), buildTask.getScmResult(), buildTask.getProjectGroupId() );
}
catch ( ContinuumStoreException e )
{
@@ -1134,25 +1148,35 @@
if ( overallBuildQueue != null )
{
TaskQueue taskQueue = null;
+ TaskQueueExecutor taskQueueExecutor = null;
+ int tempSize = 0;
if ( typeOfQueue == BUILD_QUEUE )
{
taskQueue = overallBuildQueue.getBuildQueue();
+ taskQueueExecutor = overallBuildQueue.getBuildTaskQueueExecutor();
}
else if ( typeOfQueue == CHECKOUT_QUEUE )
{
taskQueue = overallBuildQueue.getCheckoutQueue();
+ taskQueueExecutor = overallBuildQueue.getCheckoutTaskQueueExecutor();
+ }
+
+ tempSize = taskQueue.getQueueSnapshot().size();
+ if ( taskQueueExecutor.getCurrentTask() != null )
+ {
+ tempSize++;
}
if ( idx == 0 )
{
- size = taskQueue.getQueueSnapshot().size();
whereToBeQueued = overallBuildQueue;
+ size = tempSize;
}
- if ( taskQueue.getQueueSnapshot().size() < size )
+ if ( tempSize < size )
{
whereToBeQueued = overallBuildQueue;
- size = taskQueue.getQueueSnapshot().size();
+ size = tempSize;
}
idx++;
@@ -1192,6 +1216,63 @@
return whereToBeQueued;
}
+ public OverallBuildQueue getOverallBuildQueueWhereProjectsInGroupAreQueued( int projectGroupId )
+ throws BuildManagerException
+ {
+ OverallBuildQueue whereToBeQueued = null;
+
+ try
+ {
+ List<Project> projects = projectDao.getProjectsInGroup( projectGroupId );
+
+ if ( projects != null )
+ {
+ for ( Project project : projects )
+ {
+ whereToBeQueued = getOverallBuildQueueWhereProjectIsQueued( project.getId(), BUILD_QUEUE );
+
+ if ( whereToBeQueued == null )
+ {
+ whereToBeQueued = getOverallBuildQueueWhereProjectIsBuilding( project.getId() );
+ }
+
+ if ( whereToBeQueued != null )
+ {
+ break;
+ }
+ }
+ }
+ }
+ catch ( ContinuumStoreException e )
+ {
+ throw new BuildManagerException( "Error while retrieving overall build queue for project: " + e.getMessage() );
+ }
+ catch ( TaskQueueException e )
+ {
+ throw new BuildManagerException( "Error while retrieving overall build queue for project: " + e.getMessage() );
+ }
+
+ return whereToBeQueued;
+ }
+
+ private OverallBuildQueue getOverallBuildQueueWhereProjectIsBuilding( int projectId )
+ {
+ synchronized ( overallBuildQueues )
+ {
+ for ( Integer key : overallBuildQueues.keySet() )
+ {
+ OverallBuildQueue overallBuildQueue = overallBuildQueues.get( key );
+ BuildProjectTask task =
+ (BuildProjectTask) overallBuildQueue.getBuildTaskQueueExecutor().getCurrentTask();
+ if ( task != null && task.getProjectId() == projectId )
+ {
+ return overallBuildQueue;
+ }
+ }
+ return null;
+ }
+ }
+
public void contextualize( Context context )
throws ContextException
{
@@ -1272,4 +1353,9 @@
{
this.buildDefinitionDao = buildDefinitionDao;
}
+
+ public void setProjectDao( ProjectDao projectDao )
+ {
+ this.projectDao = projectDao;
+ }
}
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueue.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueue.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueue.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueue.java Sun May 17 18:21:35 2009
@@ -323,9 +323,10 @@
}
/**
- * @see OverallBuildQueue#removeProjectFromBuildQueue(int, int, int, String)
+ * @see OverallBuildQueue#removeProjectFromBuildQueue(int, int, int, String, int)
*/
- public boolean removeProjectFromBuildQueue( int projectId, int buildDefinitionId, int trigger, String projectName )
+ public boolean removeProjectFromBuildQueue( int projectId, int buildDefinitionId, int trigger, String projectName,
+ int projectGroupId )
throws TaskQueueException
{
BuildDefinition buildDefinition;
@@ -347,7 +348,8 @@
}
BuildProjectTask buildProjectTask =
- new BuildProjectTask( projectId, buildDefinitionId, trigger, projectName, buildDefinitionLabel, null );
+ new BuildProjectTask( projectId, buildDefinitionId, trigger, projectName,
+ buildDefinitionLabel, null, projectGroupId );
return getBuildQueue().remove( buildProjectTask );
}
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java Sun May 17 18:21:35 2009
@@ -901,6 +901,7 @@
}
Map<ProjectScmRoot, Map<Integer, Integer>> map = new HashMap<ProjectScmRoot, Map<Integer, Integer>>();
+ List<ProjectScmRoot> sortedScmRoot = new ArrayList<ProjectScmRoot>();
for ( Project project : projectsList )
{
@@ -929,6 +930,11 @@
projectsAndBuildDefinitionsMap.put( project.getId(), buildDefId );
map.put( scmRoot, projectsAndBuildDefinitionsMap );
+
+ if ( !sortedScmRoot.contains( scmRoot ) )
+ {
+ sortedScmRoot.add( scmRoot );
+ }
}
}
catch ( BuildManagerException e )
@@ -939,7 +945,7 @@
}
}
- prepareBuildProjects( map, ContinuumProjectState.TRIGGER_SCHEDULED );
+ prepareBuildProjects( map, ContinuumProjectState.TRIGGER_SCHEDULED, sortedScmRoot );
}
public void buildProject( int projectId )
@@ -3231,6 +3237,7 @@
throws ContinuumException
{
Map<ProjectScmRoot, Map<Integer, Integer>> map = new HashMap<ProjectScmRoot, Map<Integer, Integer>>();
+ List<ProjectScmRoot> sortedScmRoot = new ArrayList<ProjectScmRoot>();
for ( Project project : projects )
{
@@ -3313,15 +3320,21 @@
projectsAndBuildDefinitionsMap.put( projectId, buildDefId );
map.put( scmRoot, projectsAndBuildDefinitionsMap );
+
+ if ( !sortedScmRoot.contains( scmRoot ) )
+ {
+ sortedScmRoot.add( scmRoot );
+ }
}
- prepareBuildProjects( map, trigger );
+ prepareBuildProjects( map, trigger, sortedScmRoot );
}
private void prepareBuildProjects( Collection<Project> projects, int buildDefinitionId, int trigger )
throws ContinuumException
{
Map<ProjectScmRoot, Map<Integer, Integer>> map = new HashMap<ProjectScmRoot, Map<Integer, Integer>>();
+ List<ProjectScmRoot> sortedScmRoot = new ArrayList<ProjectScmRoot>();
for ( Project project : projects )
{
@@ -3353,6 +3366,11 @@
projectsAndBuildDefinitionsMap.put( projectId, buildDefinitionId );
map.put( scmRoot, projectsAndBuildDefinitionsMap );
+
+ if ( !sortedScmRoot.contains( scmRoot ) )
+ {
+ sortedScmRoot.add( scmRoot );
+ }
}
catch ( BuildManagerException e )
{
@@ -3360,13 +3378,14 @@
}
}
- prepareBuildProjects( map, trigger );
+ prepareBuildProjects( map, trigger, sortedScmRoot );
}
- private void prepareBuildProjects( Map<ProjectScmRoot, Map<Integer, Integer>> map, int trigger )
+ private void prepareBuildProjects( Map<ProjectScmRoot, Map<Integer, Integer>> map, int trigger,
+ List<ProjectScmRoot> scmRoots )
throws ContinuumException
{
- for ( ProjectScmRoot scmRoot : map.keySet() )
+ for ( ProjectScmRoot scmRoot : scmRoots )
{
prepareBuildProjects( map.get( scmRoot ), trigger, scmRoot.getScmRootAddress(),
scmRoot.getProjectGroup().getId(), scmRoot.getId() );
@@ -3383,14 +3402,8 @@
{
if ( configurationService.isDistributedBuildEnabled() )
{
- if ( !taskQueueManager.isInDistributedBuildQueue( projectGroupId, scmRootAddress ) )
- {
- PrepareBuildProjectsTask task =
- new PrepareBuildProjectsTask( projectsBuildDefinitionsMap, trigger, projectGroupId,
- group.getName(), scmRootAddress, scmRootId );
-
- taskQueueManager.getDistributedBuildQueue().put( task );
- }
+ distributedBuildManager.prepareBuildProjects( projectsBuildDefinitionsMap, trigger, projectGroupId,
+ group.getName(), scmRootAddress, scmRootId );
}
else
{
@@ -3398,14 +3411,6 @@
group.getName(), scmRootAddress, scmRootId );
}
}
- catch ( TaskQueueManagerException e )
- {
- throw logAndCreateException( e.getMessage(), e );
- }
- catch ( TaskQueueException e )
- {
- throw logAndCreateException( "Error while creating enqueuing object.", e );
- }
catch ( BuildManagerException e )
{
throw logAndCreateException( "Error while creating enqueuing object.", e );
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/core/action/CreateBuildProjectTaskAction.java Sun May 17 18:21:35 2009
@@ -65,6 +65,7 @@
Map<Integer, ScmResult> scmResultMap = AbstractContinuumAction.getScmResultMap( context );
List<Project> projectsToBeBuilt = new ArrayList<Project>();
int trigger = AbstractContinuumAction.getTrigger( context );
+ int projectGroupId = AbstractContinuumAction.getProjectGroupId( context );
// update state of each project first
for ( Project project : projects )
@@ -127,6 +128,7 @@
}
}
- parallelBuildsManager.buildProjects( projectsToBeBuilt, projectsBuildDefinitionsMap, trigger, scmResultMap );
+ parallelBuildsManager.buildProjects( projectsToBeBuilt, projectsBuildDefinitionsMap,
+ trigger, scmResultMap, projectGroupId );
}
}
Modified: continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java (original)
+++ continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scm/queue/PrepareBuildProjectsTaskExecutor.java Sun May 17 18:21:35 2009
@@ -562,6 +562,7 @@
AbstractContinuumAction.setProjectsBuildDefinitionsMap( context, projectsBuildDefinitionsMap );
AbstractContinuumAction.setTrigger( context, trigger );
AbstractContinuumAction.setScmResultMap( context, scmResultMap );
+ AbstractContinuumAction.setProjectGroupId( context, projectGroupId );
log.info( "Performing action create-build-project-task" );
actionManager.lookup( "create-build-project-task" ).execute( context );
Modified: continuum/trunk/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java (original)
+++ continuum/trunk/continuum-core/src/test/java/org/apache/continuum/buildmanager/ParallelBuildsManagerTest.java Sun May 17 18:21:35 2009
@@ -28,6 +28,7 @@
import org.apache.continuum.buildqueue.BuildQueueService;
import org.apache.continuum.dao.BuildDefinitionDao;
+import org.apache.continuum.dao.ProjectDao;
import org.apache.continuum.taskqueue.BuildProjectTask;
import org.apache.continuum.taskqueue.CheckOutTask;
import org.apache.continuum.taskqueue.OverallBuildQueue;
@@ -35,7 +36,9 @@
import org.apache.maven.continuum.configuration.ConfigurationService;
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.model.project.Schedule;
+import org.apache.maven.continuum.store.ContinuumStoreException;
import org.codehaus.plexus.spring.PlexusInSpringTestCase;
import org.codehaus.plexus.taskqueue.Task;
import org.codehaus.plexus.taskqueue.TaskQueue;
@@ -60,6 +63,8 @@
private BuildDefinitionDao buildDefinitionDao;
+ private ProjectDao projectDao;
+
private ConfigurationService configurationService;
private OverallBuildQueue overallBuildQueue;
@@ -68,6 +73,12 @@
private TaskQueue checkoutQueue;
+ private List<Project> projects;
+
+ private TaskQueueExecutor buildTaskQueueExecutor;
+
+ private TaskQueueExecutor checkoutTaskQueueExecutor;
+
@Override
public void setUp()
throws Exception
@@ -98,6 +109,14 @@
buildQueue = context.mock( TaskQueue.class, "build-queue" );
checkoutQueue = context.mock( TaskQueue.class, "checkout-queue" );
+
+ projectDao = context.mock( ProjectDao.class );
+
+ buildsManager.setProjectDao( projectDao );
+
+ buildTaskQueueExecutor = context.mock( TaskQueueExecutor.class, "build-task-queue" );
+
+ checkoutTaskQueueExecutor = context.mock( TaskQueueExecutor.class, "checkout-task-queue" );
}
@Override
@@ -159,7 +178,7 @@
// build project recordings
private void recordStartOfBuildProjectSequence()
- throws TaskQueueException
+ throws TaskQueueException, ContinuumStoreException
{
context.checking( new Expectations()
{
@@ -167,16 +186,22 @@
exactly( 5 ).of( overallBuildQueue ).isInBuildQueue( with( any( int.class ) ) );
will( returnValue( false ) );
+ one( projectDao ).getProjectsInGroup( with( any( int.class ) ) );
+ will( returnValue( projects ) );
+
one( configurationService ).getNumberOfBuildsInParallel();
will( returnValue( 2 ) );
exactly( 2 ).of( overallBuildQueue ).getBuildQueue();
will( returnValue( buildQueue ) );
+
+ exactly( 2 ).of( overallBuildQueue ).getBuildTaskQueueExecutor();
+ will( returnValue( buildTaskQueueExecutor ) );
}} );
}
private void recordBuildProjectBuildQueuesAreEmpty()
- throws TaskQueueException
+ throws TaskQueueException, ContinuumStoreException
{
// shouldn't only the build queues attached to the schedule be checked?
recordStartOfBuildProjectSequence();
@@ -185,8 +210,11 @@
context.checking( new Expectations()
{
{
- exactly( 3 ).of( buildQueue ).getQueueSnapshot();
+ exactly( 2 ).of( buildQueue ).getQueueSnapshot();
will( returnValue( tasks ) );
+
+ exactly( 2 ).of( buildTaskQueueExecutor ).getCurrentTask();
+ will( returnValue( null ) );
one( overallBuildQueue ).getName();
will( returnValue( "BUILD_QUEUE_2" ) );
@@ -220,6 +248,9 @@
exactly( 2 ).of( overallBuildQueue ).getCheckoutQueue();
will( returnValue( checkoutQueue ) );
+
+ exactly( 2 ).of( overallBuildQueue ).getCheckoutTaskQueueExecutor();
+ will( returnValue( checkoutTaskQueueExecutor ) );
}} );
}
@@ -233,9 +264,12 @@
context.checking( new Expectations()
{
{
- exactly( 3 ).of( checkoutQueue ).getQueueSnapshot();
+ exactly( 2 ).of( checkoutQueue ).getQueueSnapshot();
will( returnValue( tasks ) );
+ exactly( 2 ).of( checkoutTaskQueueExecutor ).getCurrentTask();
+ will( returnValue( null ) );
+
one( overallBuildQueue ).getName();
will( returnValue( "BUILD_QUEUE_2" ) );
}} );
@@ -276,7 +310,7 @@
recordBuildProjectBuildQueuesAreEmpty();
- buildsManager.buildProject( 1, buildDef, "continuum-project-test-1", 1, null );
+ buildsManager.buildProject( 1, buildDef, "continuum-project-test-1", 1, null, 1 );
context.assertIsSatisfied();
}
@@ -292,7 +326,7 @@
recordBuildProjectBuildQueuesAreEmpty();
- buildsManager.buildProject( 1, buildDef, "continuum-project-test-1", 1, null );
+ buildsManager.buildProject( 1, buildDef, "continuum-project-test-1", 1, null, 1 );
context.assertIsSatisfied();
//queue second project - 1st queue is not empty, 2nd queue is empty
@@ -302,24 +336,27 @@
final List<Task> tasks = new ArrayList<Task>();
final List<Task> tasksOfFirstBuildQueue = new ArrayList<Task>();
tasksOfFirstBuildQueue.add(
- new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", buildDef.getDescription(), null ) );
+ new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", buildDef.getDescription(), null, 2 ) );
context.checking( new Expectations()
{
{
- exactly( 2 ).of( buildQueue ).getQueueSnapshot();
+ one( buildQueue ).getQueueSnapshot();
will( returnValue( tasksOfFirstBuildQueue ) );
// the second build queue has no tasks queued, so it should return 0
- exactly( 2 ).of( buildQueue ).getQueueSnapshot();
+ one( buildQueue ).getQueueSnapshot();
will( returnValue( tasks ) );
+ exactly( 2 ).of( buildTaskQueueExecutor ).getCurrentTask();
+ will( returnValue( null ) );
+
one( overallBuildQueue ).getName();
will( returnValue( "BUILD_QUEUE_3" ) );
}} );
recordAddToBuildQueue();
- buildsManager.buildProject( 2, buildDef, "continuum-project-test-2", 1, null );
+ buildsManager.buildProject( 2, buildDef, "continuum-project-test-2", 1, null, 2 );
context.assertIsSatisfied();
// queue third project - both queues have 1 task queued each
@@ -329,16 +366,19 @@
context.checking( new Expectations()
{
{
- exactly( 3 ).of( buildQueue ).getQueueSnapshot();
+ exactly( 2 ).of( buildQueue ).getQueueSnapshot();
will( returnValue( tasksOfFirstBuildQueue ) );
+ exactly( 2 ).of( buildTaskQueueExecutor ).getCurrentTask();
+ will( returnValue( null ) );
+
one( overallBuildQueue ).getName();
will( returnValue( "BUILD_QUEUE_2" ) );
}} );
recordAddToBuildQueue();
- buildsManager.buildProject( 3, buildDef, "continuum-project-test-3", 1, null );
+ buildsManager.buildProject( 3, buildDef, "continuum-project-test-3", 1, null, 3 );
context.assertIsSatisfied();
}
@@ -426,12 +466,15 @@
context.checking( new Expectations()
{
{
- exactly( 2 ).of( checkoutQueue ).getQueueSnapshot();
+ one( checkoutQueue ).getQueueSnapshot();
will( returnValue( tasksInFirstCheckoutQueue ) );
- exactly( 2 ).of( checkoutQueue ).getQueueSnapshot();
+ one( checkoutQueue ).getQueueSnapshot();
will( returnValue( tasks ) );
+ exactly( 2 ).of( checkoutTaskQueueExecutor ).getCurrentTask();
+ will( returnValue( null ) );
+
one( overallBuildQueue ).getName();
will( returnValue( "BUILD_QUEUE_3" ) );
}} );
@@ -449,9 +492,12 @@
context.checking( new Expectations()
{
{
- exactly( 3 ).of( checkoutQueue ).getQueueSnapshot();
+ exactly( 2 ).of( checkoutQueue ).getQueueSnapshot();
will( returnValue( tasksInFirstCheckoutQueue ) );
+ exactly( 2 ).of( checkoutTaskQueueExecutor ).getCurrentTask();
+ will( returnValue( null ) );
+
one( overallBuildQueue ).getName();
will( returnValue( "BUILD_QUEUE_2" ) );
}} );
@@ -558,7 +604,7 @@
context.mock( TaskQueueExecutor.class, "checkout-queue-executor" );
final List<Task> buildTasks = new ArrayList<Task>();
- buildTasks.add( new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null ) );
+ buildTasks.add( new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null, 2 ) );
final List<CheckOutTask> checkoutTasks = new ArrayList<CheckOutTask>();
checkoutTasks.add(
@@ -626,15 +672,24 @@
exactly( 4 ).of( overallBuildQueue ).isInBuildQueue( with( any( int.class ) ) );
will( returnValue( false ) );
+ one( projectDao ).getProjectsInGroup( with( any( int.class ) ) );
+ will( returnValue( projects ) );
+
one( configurationService ).getNumberOfBuildsInParallel();
will( returnValue( 2 ) );
exactly( 2 ).of( overallBuildQueue ).getBuildQueue();
will( returnValue( buildQueue ) );
- exactly( 3 ).of( buildQueue ).getQueueSnapshot();
+ exactly( 2 ).of( overallBuildQueue ).getBuildTaskQueueExecutor();
+ will( returnValue( buildQueueExecutor ) );
+
+ exactly( 2 ).of( buildQueue ).getQueueSnapshot();
will( returnValue( tasks ) );
+ exactly( 2 ).of( buildQueueExecutor ).getCurrentTask();
+ will( returnValue( null ) );
+
one( overallBuildQueue ).getName();
will( returnValue( "BUILD_QUEUE_2" ) );
@@ -654,9 +709,15 @@
exactly( 2 ).of( overallBuildQueue ).getCheckoutQueue();
will( returnValue( checkoutQueue ) );
- exactly( 3 ).of( checkoutQueue ).getQueueSnapshot();
+ exactly( 2 ).of( overallBuildQueue ).getCheckoutTaskQueueExecutor();
+ will( returnValue( checkoutQueueExecutor ) );
+
+ exactly( 2 ).of( checkoutQueue ).getQueueSnapshot();
will( returnValue( tasks ) );
+ exactly( 2 ).of( checkoutQueueExecutor ).getCurrentTask();
+ will( returnValue( null ) );
+
one( overallBuildQueue ).getName();
will( returnValue( "BUILD_QUEUE_2" ) );
@@ -680,10 +741,10 @@
buildDef.setSchedule( getSchedule( 1, 1, 2 ) );
final TaskQueueExecutor buildQueueExecutor = context.mock( TaskQueueExecutor.class, "build-queue-executor" );
- final Task buildTask = new BuildProjectTask( 1, 1, 1, "continuum-project-test-1", "BUILD_DEF", null );
+ final Task buildTask = new BuildProjectTask( 1, 1, 1, "continuum-project-test-1", "BUILD_DEF", null, 1 );
final List<BuildProjectTask> buildTasks = new ArrayList<BuildProjectTask>();
- buildTasks.add( new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null ) );
+ buildTasks.add( new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null, 2 ) );
final List<CheckOutTask> checkoutTasks = new ArrayList<CheckOutTask>();
checkoutTasks.add(
@@ -743,6 +804,9 @@
one( overallBuildQueue ).isInBuildQueue( with( any( int.class ) ) );
will( returnValue( false ) );
+ one( projectDao ).getProjectsInGroup( with( any( int.class ) ) );
+ will( returnValue( projects ) );
+
one( configurationService ).getNumberOfBuildsInParallel();
will( returnValue( 2 ) );
@@ -752,7 +816,7 @@
one( overallBuildQueue ).addToBuildQueue( with( any( BuildProjectTask.class ) ) );
}} );
- buildsManager.buildProject( 1, buildDef, "continuum-project-test-1", 1, null );
+ buildsManager.buildProject( 1, buildDef, "continuum-project-test-1", 1, null, 1 );
context.assertIsSatisfied();
}
@@ -762,7 +826,7 @@
setupMockOverallBuildQueues();
final List<Task> tasks = new ArrayList<Task>();
- tasks.add( new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null ) );
+ tasks.add( new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null, 2 ) );
context.checking( new Expectations()
{
Modified: continuum/trunk/continuum-core/src/test/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueueTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueueTest.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/test/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueueTest.java (original)
+++ continuum/trunk/continuum-core/src/test/java/org/apache/continuum/taskqueue/DefaultOverallBuildQueueTest.java Sun May 17 18:21:35 2009
@@ -184,7 +184,7 @@
throws Exception
{
final BuildProjectTask buildTask =
- new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null );
+ new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null, 2 );
final TaskQueue buildQueue = context.mock( TaskQueue.class, "build-queue" );
context.checking( new Expectations()
@@ -205,7 +205,7 @@
{
final TaskQueue buildQueue = context.mock( TaskQueue.class, "build-queue" );
final List<Task> tasks = new ArrayList<Task>();
- tasks.add( new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null ) );
+ tasks.add( new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null, 2 ) );
context.checking( new Expectations()
{
@@ -229,7 +229,7 @@
{
final TaskQueue buildQueue = context.mock( TaskQueue.class, "build-queue" );
final List<Task> tasks = new ArrayList<Task>();
- tasks.add( new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null ) );
+ tasks.add( new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null, 2 ) );
context.checking( new Expectations()
{
@@ -248,7 +248,7 @@
public void testCancelBuildTask()
throws Exception
{
- final Task buildTask = new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null );
+ final Task buildTask = new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null, 2 );
context.checking( new Expectations()
{
@@ -266,7 +266,7 @@
public void testCancelCurrentBuild()
throws Exception
{
- final Task buildTask = new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null );
+ final Task buildTask = new BuildProjectTask( 2, 1, 1, "continuum-project-test-2", "BUILD_DEF", null, 2 );
context.checking( new Expectations()
{
@@ -302,14 +302,14 @@
one( buildQueue ).remove( with( any( Task.class ) ) );
}} );
- overallQueue.removeProjectFromBuildQueue( 1, 1, 1, "continuum-project-test-1" );
+ overallQueue.removeProjectFromBuildQueue( 1, 1, 1, "continuum-project-test-1", 1 );
context.assertIsSatisfied();
}
public void testRemoveProjectFromBuildQueue()
throws Exception
{
- final Task buildTask = new BuildProjectTask( 1, 1, 1, "continuum-project-test-2", "BUILD_DEF", null );
+ final Task buildTask = new BuildProjectTask( 1, 1, 1, "continuum-project-test-2", "BUILD_DEF", null, 1 );
final TaskQueue buildQueue = context.mock( TaskQueue.class, "build-queue" );
final List<Task> tasks = new ArrayList<Task>();
Modified: continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/BuildProjectTaskExecutorTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/BuildProjectTaskExecutorTest.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/BuildProjectTaskExecutorTest.java (original)
+++ continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildcontroller/BuildProjectTaskExecutorTest.java Sun May 17 18:21:35 2009
@@ -246,7 +246,7 @@
// projectGroup = continuumStore.addProjectGroup( projectGroup );
BuildProjectTask task = new BuildProjectTask( project.getId(), buildDefinition.getId(), 0, project.getName(),
- buildDefinition.getDescription(), null );
+ buildDefinition.getDescription(), null, projectGroupId );
task.setMaxExecutionTime( maxRunTime );
Modified: continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildqueue/BuildQueueTest.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildqueue/BuildQueueTest.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildqueue/BuildQueueTest.java (original)
+++ continuum/trunk/continuum-core/src/test/java/org/apache/maven/continuum/buildqueue/BuildQueueTest.java Sun May 17 18:21:35 2009
@@ -22,6 +22,7 @@
import org.apache.continuum.taskqueue.BuildProjectTask;
import org.apache.maven.continuum.AbstractContinuumTest;
import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.model.project.ProjectGroup;
import org.apache.maven.continuum.project.ContinuumProjectState;
import org.codehaus.plexus.taskqueue.Task;
import org.codehaus.plexus.taskqueue.TaskQueue;
@@ -131,7 +132,8 @@
private void buildProject( int projectId, int trigger )
throws Exception
{
- buildQueue.put( new BuildProjectTask( projectId, 0, trigger, null, null, null ) );
+ ProjectGroup group = getDefaultProjectGroup();
+ buildQueue.put( new BuildProjectTask( projectId, 0, trigger, null, null, null, group.getId() ) );
}
private void assertNextBuildIs( int expectedProjectId )
Modified: continuum/trunk/continuum-distributed/continuum-distributed-master/continuum-distributed-master-server/src/main/java/org/apache/continuum/distributed/transport/master/MasterBuildAgentTransportServer.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-distributed/continuum-distributed-master/continuum-distributed-master-server/src/main/java/org/apache/continuum/distributed/transport/master/MasterBuildAgentTransportServer.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-distributed/continuum-distributed-master/continuum-distributed-master-server/src/main/java/org/apache/continuum/distributed/transport/master/MasterBuildAgentTransportServer.java (original)
+++ continuum/trunk/continuum-distributed/continuum-distributed-master/continuum-distributed-master-server/src/main/java/org/apache/continuum/distributed/transport/master/MasterBuildAgentTransportServer.java Sun May 17 18:21:35 2009
@@ -21,7 +21,7 @@
import java.util.Map;
-import org.apache.continuum.builder.distributed.manager.DistributedBuildManager;
+import org.apache.continuum.builder.distributed.DistributedBuildService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -33,18 +33,18 @@
{
private static final Logger log = LoggerFactory.getLogger( MasterBuildAgentTransportServer.class );
- private final DistributedBuildManager distributedBuildManager;
+ private final DistributedBuildService distributedBuildService;
- public MasterBuildAgentTransportServer( DistributedBuildManager distributedBuildManager )
+ public MasterBuildAgentTransportServer( DistributedBuildService distributedBuildService )
{
- this.distributedBuildManager = distributedBuildManager;
+ this.distributedBuildService = distributedBuildService;
}
public Boolean returnBuildResult( Map<String, Object> buildResult )
throws Exception
{
log.info( "Build result returned." );
- distributedBuildManager.updateBuildResult( buildResult );
+ distributedBuildService.updateBuildResult( buildResult );
return Boolean.TRUE;
}
@@ -60,7 +60,7 @@
throws Exception
{
log.info( "Prepare build finished." );
- distributedBuildManager.prepareBuildFinished( prepareBuildResult );
+ distributedBuildService.prepareBuildFinished( prepareBuildResult );
return Boolean.TRUE;
}
@@ -68,7 +68,7 @@
throws Exception
{
log.info( "Start project build." );
- distributedBuildManager.startProjectBuild( projectId );
+ distributedBuildService.startProjectBuild( projectId );
return Boolean.TRUE;
}
@@ -76,7 +76,7 @@
throws Exception
{
log.info( "Start prepare build." );
- distributedBuildManager.startPrepareBuild( prepareBuildResult );
+ distributedBuildService.startPrepareBuild( prepareBuildResult );
return Boolean.TRUE;
}
@@ -84,14 +84,14 @@
throws Exception
{
log.info( "Retrieving environments" );
- return distributedBuildManager.getEnvironments( buildDefinitionId, installationType );
+ return distributedBuildService.getEnvironments( buildDefinitionId, installationType );
}
public Boolean updateProject( Map<String, Object> project )
throws Exception
{
log.info( "Start updating project" );
- distributedBuildManager.updateProject( project );
+ distributedBuildService.updateProject( project );
return Boolean.TRUE;
}
@@ -99,6 +99,6 @@
throws Exception
{
log.info( "Checking if project should build" );
- return distributedBuildManager.shouldBuild( context );
+ return distributedBuildService.shouldBuild( context );
}
}
Modified: continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-api/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportService.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-api/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportService.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-api/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportService.java (original)
+++ continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-api/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportService.java Sun May 17 18:21:35 2009
@@ -36,7 +36,7 @@
public Map<String, Object> getBuildResult( int projectId )
throws Exception;
- public Integer getProjectCurrentlyBuilding()
+ public Map<String, Object> getProjectCurrentlyBuilding()
throws Exception;
public List<Map<String, String>> getAvailableInstallations()
@@ -90,4 +90,19 @@
public Boolean releaseRollback( String releaseId, int projectId )
throws Exception;
+
+ public Integer getBuildSizeOfAgent()
+ throws Exception;
+
+ public List<Map<String, Object>> getProjectsInPrepareBuildQueue()
+ throws Exception;
+
+ public List<Map<String, Object>> getProjectsInBuildQueue()
+ throws Exception;
+
+ public Map<String, Object> getProjectCurrentlyPreparingBuild()
+ throws Exception;
+
+ public Boolean isProjectGroupInQueue( int projectGroupId )
+ throws Exception;
}
Modified: continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-client/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportClient.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-client/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportClient.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-client/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportClient.java (original)
+++ continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-client/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportClient.java Sun May 17 18:21:35 2009
@@ -125,15 +125,15 @@
return buildResult;
}
- public Integer getProjectCurrentlyBuilding()
+ public Map<String, Object> getProjectCurrentlyBuilding()
throws Exception
{
- Integer projectId;
+ Map map;
try
{
- projectId = slave.getProjectCurrentlyBuilding();
- log.info( "Currently building project " + projectId );
+ map = slave.getProjectCurrentlyBuilding();
+ log.info( "Retrieving currently building project" );
}
catch ( Exception e )
{
@@ -141,7 +141,7 @@
throw new Exception( "Failed to get the currently building project", e );
}
- return projectId;
+ return map;
}
public Boolean ping()
@@ -436,4 +436,99 @@
return result;
}
+
+ public Integer getBuildSizeOfAgent()
+ throws Exception
+ {
+ Integer size;
+
+ try
+ {
+ size = slave.getBuildSizeOfAgent();
+ log.info( "Retrieving build size of agent" );
+ }
+ catch ( Exception e )
+ {
+ log.error( "Failed to retrieve build size of agent", e );
+ throw new Exception( "Failed to retrieve build size of agent", e );
+ }
+
+ return size;
+ }
+
+ public Map<String, Object> getProjectCurrentlyPreparingBuild()
+ throws Exception
+ {
+ Map<String, Object> projects;
+
+ try
+ {
+ projects = slave.getProjectCurrentlyPreparingBuild();
+ log.info( "Retrieving projects currently preparing build" );
+ }
+ catch ( Exception e )
+ {
+ log.error( "Failed to retrieve projects currently preparing build", e );
+ throw new Exception( "Failed to retrieve projects currently preparing build", e );
+ }
+
+ return projects;
+ }
+
+ public List<Map<String, Object>> getProjectsInBuildQueue()
+ throws Exception
+ {
+ List<Map<String, Object>> projects;
+
+ try
+ {
+ projects = slave.getProjectsInBuildQueue();
+ log.info( "Retrieving projects in build queue" );
+ }
+ catch ( Exception e )
+ {
+ log.error( "Failed to retrieve projects in build queue", e );
+ throw new Exception( "Failed to retrieve projects in build queue", e );
+ }
+
+ return projects;
+ }
+
+ public List<Map<String, Object>> getProjectsInPrepareBuildQueue()
+ throws Exception
+ {
+ List<Map<String, Object>> projects;
+
+ try
+ {
+ projects = slave.getProjectsInPrepareBuildQueue();
+ log.info( "Retrieving projects in prepare build queue" );
+ }
+ catch ( Exception e )
+ {
+ log.error( "Failed to retrieve projects in prepare build queue", e );
+ throw new Exception( "Failed to retrieve projects in prepare build queue", e );
+ }
+
+ return projects;
+ }
+
+ public Boolean isProjectGroupInQueue( int projectGroupId )
+ throws Exception
+ {
+ Boolean result;
+
+ try
+ {
+ result = slave.isProjectGroupInQueue( projectGroupId );
+ log.info( "Checking if project group is in queue" );
+ }
+ catch ( Exception e )
+ {
+ log.error( "Failed to check if project group is in queue", e );
+ throw new Exception( "Failed to check if project group is in queue", e );
+ }
+
+ return result;
+ }
}
Modified: continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-server/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportServer.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-server/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportServer.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-server/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportServer.java (original)
+++ continuum/trunk/continuum-distributed/continuum-distributed-slave/continuum-distributed-slave-server/src/main/java/org/apache/continuum/distributed/transport/slave/SlaveBuildAgentTransportServer.java Sun May 17 18:21:35 2009
@@ -101,14 +101,14 @@
return buildResult;
}
- public Integer getProjectCurrentlyBuilding()
+ public Map<String, Object> getProjectCurrentlyBuilding()
throws Exception
{
- Integer projectId = continuumBuildAgentService.getProjectCurrentlyBuilding();
+ Map<String, Object> project = continuumBuildAgentService.getProjectCurrentlyBuilding();
- log.info( "Currently building project " + projectId );
+ log.info( "Retrieving currently building project");
- return projectId;
+ return project;
}
public Boolean ping()
@@ -343,4 +343,66 @@
return result;
}
+
+ public Integer getBuildSizeOfAgent()
+ throws Exception
+ {
+ try
+ {
+ return continuumBuildAgentService.getBuildSizeOfAgent();
+ }
+ catch ( ContinuumBuildAgentException e )
+ {
+ log.error( "Failed to retrieve build size of agent", e );
+ throw e;
+ }
+ }
+
+ public Map<String, Object> getProjectCurrentlyPreparingBuild()
+ throws Exception
+ {
+ try
+ {
+ return continuumBuildAgentService.getProjectCurrentlyPreparingBuild();
+ }
+ catch ( ContinuumBuildAgentException e )
+ {
+ log.error( "Failed to retrieve projects currently preparing build", e );
+ throw e;
+ }
+ }
+
+ public List<Map<String, Object>> getProjectsInBuildQueue()
+ throws Exception
+ {
+ try
+ {
+ return continuumBuildAgentService.getProjectsInBuildQueue();
+ }
+ catch ( ContinuumBuildAgentException e )
+ {
+ log.error( "Failed to retrieve projects in build queue", e );
+ throw e;
+ }
+ }
+
+ public List<Map<String, Object>> getProjectsInPrepareBuildQueue()
+ throws Exception
+ {
+ try
+ {
+ return continuumBuildAgentService.getProjectsInPrepareBuildQueue();
+ }
+ catch ( ContinuumBuildAgentException e )
+ {
+ log.error( "Failed to retrieve projects in prepare build queue", e );
+ throw e;
+ }
+ }
+
+ public Boolean isProjectGroupInQueue( int projectGroupId )
+ throws Exception
+ {
+ return continuumBuildAgentService.isProjectGroupInQueue( projectGroupId );
+ }
}
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/action/admin/BuildAgentAction.java Sun May 17 18:21:35 2009
@@ -52,11 +52,6 @@
{
private static final Logger logger = LoggerFactory.getLogger( BuildAgentAction.class );
- /**
- * @plexus.requirement
- */
- private DistributedBuildManager distributedBuildManager;
-
private List<BuildAgentConfiguration> buildAgents;
private BuildAgentConfiguration buildAgent;
@@ -139,7 +134,7 @@
try
{
- installations = distributedBuildManager.getAvailableInstallations( buildAgent.getUrl() );
+ installations = getContinuum().getDistributedBuildManager().getAvailableInstallations( buildAgent.getUrl() );
}
catch ( ContinuumException e )
{
@@ -188,7 +183,7 @@
}
}
- distributedBuildManager.reload();
+ getContinuum().getDistributedBuildManager().reload();
return SUCCESS;
}
@@ -201,33 +196,39 @@
return CONFIRM;
}
- if ( distributedBuildManager.isBuildAgentBusy( buildAgent.getUrl() ) )
+ if ( getContinuum().getDistributedBuildManager().isBuildAgentBusy( buildAgent.getUrl() ) )
{
message = getText( "buildAgent.error.delete.busy" );
return ERROR;
}
else
{
- distributedBuildManager.removeAgentFromTaskQueueExecutor( buildAgent.getUrl() );
+ getContinuum().getDistributedBuildManager().removeDistributedBuildQueueOfAgent( buildAgent.getUrl() );
}
ConfigurationService configuration = getContinuum().getConfiguration();
- for ( BuildAgentGroupConfiguration buildAgentGroup : configuration.getBuildAgentGroups() )
- {
- if ( configuration.containsBuildAgentUrl( buildAgent.getUrl(), buildAgentGroup ) )
+ if ( configuration.getBuildAgentGroups() != null )
+ {
+ for ( BuildAgentGroupConfiguration buildAgentGroup : configuration.getBuildAgentGroups() )
{
- message = getText( "buildAgent.error.remove.in.use" );
- return ERROR;
+ if ( configuration.containsBuildAgentUrl( buildAgent.getUrl(), buildAgentGroup ) )
+ {
+ message = getText( "buildAgent.error.remove.in.use" );
+ return ERROR;
+ }
}
}
- for ( BuildAgentConfiguration agent : configuration.getBuildAgents() )
+ if ( configuration.getBuildAgents() != null )
{
- if ( buildAgent.getUrl().equals( agent.getUrl() ) )
+ for ( BuildAgentConfiguration agent : configuration.getBuildAgents() )
{
- configuration.removeBuildAgent( agent );
- return SUCCESS;
+ if ( buildAgent.getUrl().equals( agent.getUrl() ) )
+ {
+ configuration.removeBuildAgent( agent );
+ return SUCCESS;
+ }
}
}
@@ -324,7 +325,7 @@
}
}
- distributedBuildManager.reload();
+ getContinuum().getDistributedBuildManager().reload();
return SUCCESS;
}
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/startup/ContinuumStartup.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/startup/ContinuumStartup.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/startup/ContinuumStartup.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/startup/ContinuumStartup.java Sun May 17 18:21:35 2009
@@ -82,12 +82,5 @@
DistributedBuildManager distributedBuildManager = (DistributedBuildManager) wac.getBean( PlexusToSpringUtils
.buildSpringId( DistributedBuildManager.class ) );
-
- TaskQueueExecutor distributedBuildProjectOverall = (TaskQueueExecutor) wac.getBean( PlexusToSpringUtils
- .buildSpringId( TaskQueueExecutor.class, "distributed-build-project-overall" ) );
-
- TaskQueueExecutor distributedBuildProjectDeferred = (TaskQueueExecutor) wac.getBean( PlexusToSpringUtils
- .buildSpringId( TaskQueueExecutor.class, "distributed-build-project-deferred" ) );
}
-
}
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/QueuesAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/QueuesAction.java?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/QueuesAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/QueuesAction.java Sun May 17 18:21:35 2009
@@ -33,6 +33,7 @@
import org.apache.continuum.taskqueue.CheckOutTask;
import org.apache.continuum.taskqueue.PrepareBuildProjectsTask;
import org.apache.continuum.taskqueue.manager.TaskQueueManagerException;
+import org.apache.maven.continuum.model.project.BuildDefinition;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.model.project.ProjectGroup;
import org.apache.maven.continuum.project.ContinuumProjectState;
@@ -43,6 +44,7 @@
import org.apache.maven.continuum.web.exception.AuthenticationRequiredException;
import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
import org.apache.maven.continuum.web.model.DistributedBuildSummary;
+import org.apache.maven.continuum.web.model.DistributedPrepareBuildSummary;
import org.codehaus.plexus.redback.rbac.Resource;
import org.codehaus.plexus.taskqueue.TaskQueueException;
import org.codehaus.redback.integration.interceptor.SecureAction;
@@ -85,23 +87,23 @@
private List<CheckoutQueue> checkoutsInQueue = new ArrayList<CheckoutQueue>();
- /**
- * @plexus.requirement
- */
- DistributedBuildManager distributedBuildManager;
+ private List<DistributedPrepareBuildSummary> currentDistributedPrepareBuilds = new ArrayList<DistributedPrepareBuildSummary>();
- private List<DistributedBuildSummary> distributedBuildSummary;
+ private List<DistributedPrepareBuildSummary> distributedPrepareBuildQueues = new ArrayList<DistributedPrepareBuildSummary>();
- private List<PrepareBuildProjectsTask> distributedBuildQueues;
+ private List<DistributedBuildSummary> currentDistributedBuilds = new ArrayList<DistributedBuildSummary>();
+ private List<DistributedBuildSummary> distributedBuildQueues = new ArrayList<DistributedBuildSummary>();
private String buildAgentUrl;
private int projectGroupId;
- private String scmRootAddress;
+ private int scmRootId;
private List<String> selectedDistributedBuildTaskHashCodes;
+ private List<String> selectedDistributedPrepareBuildTaskHashCodes;
+
// -----------------------------------------------------
// webwork
// -----------------------------------------------------
@@ -203,38 +205,89 @@
{
if ( getContinuum().getConfiguration().isDistributedBuildEnabled() )
{
- distributedBuildSummary = new ArrayList<DistributedBuildSummary>();
-
- Map<String, PrepareBuildProjectsTask> map = distributedBuildManager.getDistributedBuildProjects();
+ // current prepare build task
+ Map<String, PrepareBuildProjectsTask> currentPrepareBuildMap = getContinuum().getDistributedBuildManager().getProjectsCurrentlyPreparingBuild();
- for ( String url : map.keySet() )
+ for ( String url : currentPrepareBuildMap.keySet() )
{
- PrepareBuildProjectsTask task = map.get( url );
+ PrepareBuildProjectsTask task = currentPrepareBuildMap.get( url );
ProjectGroup projectGroup = getContinuum().getProjectGroup( task.getProjectGroupId() );
- DistributedBuildSummary summary = new DistributedBuildSummary();
- summary.setUrl( url );
+ DistributedPrepareBuildSummary summary = new DistributedPrepareBuildSummary();
+ summary.setBuildAgentUrl( url );
summary.setProjectGroupId( task.getProjectGroupId() );
summary.setProjectGroupName( projectGroup.getName() );
summary.setScmRootAddress( task.getScmRootAddress() );
+ summary.setScmRootId( task.getProjectScmRootId() );
+
+ currentDistributedPrepareBuilds.add( summary );
+ }
+
+ // current builds
+ Map<String, BuildProjectTask> currentBuildMap = getContinuum().getDistributedBuildManager().getProjectsCurrentlyBuilding();
- ProjectScmRoot scmRoot =
- getContinuum().getProjectScmRootByProjectGroupAndScmRootAddress( task.getProjectGroupId(),
- task.getScmRootAddress() );
- if ( scmRoot.getState() == ContinuumProjectState.UPDATING )
+ for ( String url : currentBuildMap.keySet() )
+ {
+ BuildProjectTask task = currentBuildMap.get( url );
+
+ Project project = getContinuum().getProject( task.getProjectId() );
+
+ DistributedBuildSummary summary = new DistributedBuildSummary();
+ summary.setProjectId( project.getId() );
+ summary.setProjectName( project.getName() );
+ summary.setProjectGroupName( project.getProjectGroup().getName() );
+ summary.setBuildDefinitionId( task.getBuildDefinitionId() );
+ summary.setBuildDefinitionLabel( task.getBuildDefinitionLabel() );
+ summary.setHashCode( task.getHashCode() );
+ summary.setBuildAgentUrl( url );
+
+ currentDistributedBuilds.add( summary );
+ }
+
+ // prepare build queues
+ Map<String, List<PrepareBuildProjectsTask>> prepareBuildMap = getContinuum().getDistributedBuildManager().getProjectsInPrepareBuildQueue();
+
+ for ( String url : prepareBuildMap.keySet() )
+ {
+ for ( PrepareBuildProjectsTask task : prepareBuildMap.get( url ) )
{
- summary.setCancelEnabled( false );
+ ProjectGroup projectGroup = getContinuum().getProjectGroup( task.getProjectGroupId() );
+
+ DistributedPrepareBuildSummary summary = new DistributedPrepareBuildSummary();
+ summary.setBuildAgentUrl( url );
+ summary.setProjectGroupId( task.getProjectGroupId() );
+ summary.setProjectGroupName( projectGroup.getName() );
+ summary.setScmRootAddress( task.getScmRootAddress() );
+ summary.setScmRootId( task.getProjectScmRootId() );
+ summary.setHashCode( task.getHashCode() );
+
+ distributedPrepareBuildQueues.add( summary );
}
- else
+ }
+
+ // build queues
+ Map<String, List<BuildProjectTask>> buildMap = getContinuum().getDistributedBuildManager().getProjectsInBuildQueue();
+
+ for ( String url : buildMap.keySet() )
+ {
+ for ( BuildProjectTask task : buildMap.get( url ) )
{
- summary.setCancelEnabled( true );
- }
+ DistributedBuildSummary summary = new DistributedBuildSummary();
- distributedBuildSummary.add( summary );
- }
+ Project project = getContinuum().getProject( task.getProjectId() );
+
+ summary.setProjectId( project.getId() );
+ summary.setProjectName( project.getName() );
+ summary.setProjectGroupName( project.getProjectGroup().getName() );
+ summary.setBuildDefinitionId( task.getBuildDefinitionId() );
+ summary.setBuildDefinitionLabel( task.getBuildDefinitionLabel() );
+ summary.setHashCode( task.getHashCode() );
+ summary.setBuildAgentUrl( url );
- distributedBuildQueues = aggregateQueues();
+ distributedBuildQueues.add( summary );
+ }
+ }
return DISTRIBUTED_BUILD_SUCCESS;
}
@@ -349,7 +402,7 @@
}
getContinuum().getBuildsManager().removeProjectFromBuildQueue( projectId, buildDefinitionId, trigger,
- projectName );
+ projectName, projectGroupId );
Project project = getContinuum().getProject( projectId );
project.setState( project.getOldState() );
getContinuum().updateProject( project );
@@ -421,7 +474,7 @@
return REQUIRES_AUTHENTICATION;
}
- distributedBuildManager.cancelDistributedBuild( buildAgentUrl, projectGroupId, scmRootAddress );
+ getContinuum().getDistributedBuildManager().cancelDistributedBuild( buildAgentUrl, projectGroupId, scmRootId );
return SUCCESS;
}
@@ -444,7 +497,7 @@
return REQUIRES_AUTHENTICATION;
}
- getContinuum().getTaskQueueManager().removeFromDistributedBuildQueue( projectGroupId, scmRootAddress );
+ getContinuum().getDistributedBuildManager().removeFromDistributedBuildQueue( projectGroupId, scmRootId );
return SUCCESS;
}
@@ -467,7 +520,7 @@
return REQUIRES_AUTHENTICATION;
}
- getContinuum().getTaskQueueManager().removeTasksFromDistributedBuildQueueWithHashCodes(
+ getContinuum().getDistributedBuildManager().removeFromDistributedBuildQueue(
listToIntArray( this.getSelectedDistributedBuildTaskHashCodes() ) );
return SUCCESS;
@@ -635,34 +688,34 @@
this.checkoutsInQueue = checkoutsInQueue;
}
- public List<DistributedBuildSummary> getDistributedBuildSummary()
+ public List<DistributedPrepareBuildSummary> getCurrentDistributedPrepareBuilds()
{
- return distributedBuildSummary;
+ return currentDistributedPrepareBuilds;
}
- public void setDistributedBuildSummary( List<DistributedBuildSummary> distributedBuildSummary )
+ public List<DistributedBuildSummary> getCurrentDistributedBuilds()
{
- this.distributedBuildSummary = distributedBuildSummary;
+ return currentDistributedBuilds;
}
- public String getBuildAgentUrl()
+ public List<DistributedPrepareBuildSummary> getDistributedPrepareBuildQueues()
{
- return buildAgentUrl;
+ return distributedPrepareBuildQueues;
}
- public void setBuildAgentUrl( String buildAgentUrl )
+ public List<DistributedBuildSummary> getDistributedBuildQueues()
{
- this.buildAgentUrl = buildAgentUrl;
+ return distributedBuildQueues;
}
-
- public List<PrepareBuildProjectsTask> getDistributedBuildQueues()
+
+ public String getBuildAgentUrl()
{
- return distributedBuildQueues;
+ return buildAgentUrl;
}
- public void setDistributedBuildQueues( List<PrepareBuildProjectsTask> distributedBuildQueues )
+ public void setBuildAgentUrl( String buildAgentUrl )
{
- this.distributedBuildQueues = distributedBuildQueues;
+ this.buildAgentUrl = buildAgentUrl;
}
public List<String> getSelectedDistributedBuildTaskHashCodes()
@@ -675,45 +728,23 @@
this.selectedDistributedBuildTaskHashCodes = selectedDistributedBuildTaskHashCodes;
}
- public String getScmRootAddress()
+ public List<String> getSelectedDistributedPrepareBuildTaskHashCodes()
{
- return scmRootAddress;
+ return selectedDistributedPrepareBuildTaskHashCodes;
}
- public void setScmRootAddress( String scmRootAddress )
+ public void setSelectedDistributedPrepareBuildTaskHashCodes( List<String> selectedDistributedPrepareBuildTaskHashCodes )
{
- this.scmRootAddress = scmRootAddress;
+ this.selectedDistributedPrepareBuildTaskHashCodes = selectedDistributedPrepareBuildTaskHashCodes;
}
- private List<PrepareBuildProjectsTask> aggregateQueues()
- throws TaskQueueManagerException
+ public void setProjectGroupId( int projectGroupId )
{
- List<PrepareBuildProjectsTask> aggregatedQueues = new ArrayList<PrepareBuildProjectsTask>();
-
- List<PrepareBuildProjectsTask> overallQueues =
- getContinuum().getTaskQueueManager().getDistributedBuildProjectsInQueue();
-
- Map<String, DistributedBuildTaskQueueExecutor> agentTaskQueueExecutors =
- distributedBuildManager.getTaskQueueExecutors();
-
- for ( String url : agentTaskQueueExecutors.keySet() )
- {
- try
- {
- logger.debug( "size of each queue snapshot " + url + " : " +
- agentTaskQueueExecutors.get( url ).getQueue().getQueueSnapshot().size() );
- aggregatedQueues.addAll( agentTaskQueueExecutors.get( url ).getQueue().getQueueSnapshot() );
- }
- catch ( TaskQueueException e )
- {
- //silently ignore error
- logger.error( "Error encountered retrieving queue snapshot from queue :" + url, e );
- }
- }
-
- logger.debug( "size of agg. queue " + aggregatedQueues.size() );
- aggregatedQueues.addAll( overallQueues );
+ this.projectGroupId = projectGroupId;
+ }
- return aggregatedQueues;
+ public void setScmRootId( int scmRootId )
+ {
+ this.scmRootId = scmRootId;
}
}
Modified: continuum/trunk/continuum-webapp/src/main/mdo/view-models.mdo
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/mdo/view-models.mdo?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/mdo/view-models.mdo (original)
+++ continuum/trunk/continuum-webapp/src/main/mdo/view-models.mdo Sun May 17 18:21:35 2009
@@ -495,11 +495,11 @@
</fields>
</class>
<class>
- <name>DistributedBuildSummary</name>
+ <name>DistributedPrepareBuildSummary</name>
<version>1.0.0+</version>
<fields>
<field>
- <name>url</name>
+ <name>buildAgentUrl</name>
<version>1.0.0</version>
<required>true</required>
<description>URL of the build agent</description>
@@ -527,11 +527,17 @@
<type>String</type>
</field>
<field>
- <name>cancelEnabled</name>
+ <name>scmRootId</name>
<version>1.0.0</version>
<required>true</required>
- <description>Determines if the cancel button is enabled</description>
- <type>boolean</type>
+ <description>ID of the scm root</description>
+ <type>int</type>
+ </field>
+ <field>
+ <name>hashCode</name>
+ <version>1.0.0</version>
+ <required>false</required>
+ <type>int</type>
</field>
</fields>
</class>
@@ -601,5 +607,53 @@
</field>
</fields>
</class>
+ <class>
+ <name>DistributedBuildSummary</name>
+ <version>1.0.0+</version>
+ <fields>
+ <field>
+ <name>projectId</name>
+ <version>1.0.0</version>
+ <required>true</required>
+ <type>int</type>
+ </field>
+ <field>
+ <name>projectName</name>
+ <version>1.0.0</version>
+ <required>true</required>
+ <type>String</type>
+ </field>
+ <field>
+ <name>projectGroupName</name>
+ <version>1.0.0</version>
+ <required>true</required>
+ <type>String</type>
+ </field>
+ <field>
+ <name>buildDefinitionId</name>
+ <version>1.0.0</version>
+ <required>true</required>
+ <type>int</type>
+ </field>
+ <field>
+ <name>buildDefinitionLabel</name>
+ <version>1.0.0</version>
+ <required>true</required>
+ <type>String</type>
+ </field>
+ <field>
+ <name>buildAgentUrl</name>
+ <version>1.0.0</version>
+ <required>true</required>
+ <type>String</type>
+ </field>
+ <field>
+ <name>hashCode</name>
+ <version>1.0.0</version>
+ <required>true</required>
+ <type>int</type>
+ </field>
+ </fields>
+ </class>
</classes>
</model>
Modified: continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties Sun May 17 18:21:35 2009
@@ -1153,13 +1153,21 @@
# Page: View Distributed Build
# ----------------------------------------------------------------------
distributedBuilds.page.title = Continuum - View Distributed Builds
-distributedBuilds.section.title = View Distributed Builds
-distributedBuilds.buildQueue.section.title = Build Queue
+distributedBuilds.currentPrepareBuild.section.title = Current Prepare Builds
+distributedBuilds.currentBuild.section.title = Current Builds
+distributedBuilds.prepareBuildQueue.section.title = Prepare Build Queues
+distributedBuilds.buildQueue.section.title = Build Queues
+distributedPrepareBuild.table.projectGroupName = Project Group Name
+distributedPrepareBuild.table.scmRootAddress = Scm Root Address
+distributedPrepareBuild.table.buildAgentUrl = Build Agent URL
+distributedPrepareBuilds.empty = No Prepare Builds
+distributedPrepareBuilds.removeEntries = Cancel Prepare Builds
+distributedBuild.table.projectName = Project Name
+distributedBuild.table.buildDefinitionLabel = Build Definition Label
distributedBuild.table.projectGroupName = Project Group Name
-distributedBuild.table.scmRootAddress = Scm Root Address
-distributedBuild.table.agentUrl = Build Agent URL
-distributedBuilds.empty = No Distributed Builds
-distributedBuilds.removeEntries = Cancel Entries
+distributedBuild.table.buildAgentUrl = Build Agent URL
+distributedBuilds.empty = No Builds
+distributedBuilds.removeEntries = Cancel Builds
# ----------------------------------------------------------------------
# Page: Delete BuildAgentGroup
Modified: continuum/trunk/continuum-webapp/src/main/resources/struts.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/struts.xml?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/struts.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/struts.xml Sun May 17 18:21:35 2009
@@ -825,6 +825,18 @@
</result>
</action>
+ <action name="removeDistributedPrepareBuildEntry" class="queues" method="removeDistributedPrepareBuildEntry">
+ <result name="success" type="redirect-action">
+ <param name="actionName">displayQueues</param>
+ </result>
+ </action>
+
+ <action name="removeDistributedPrepareBuildEntries" class="queues" method="removeDistributedPrepareBuildEntries">
+ <result name="success" type="redirect-action">
+ <param name="actionName">displayQueues</param>
+ </result>
+ </action>
+
<action name="removeDistributedBuildEntries" class="queues" method="removeDistributedBuildEntries">
<result name="success" type="redirect-action">
<param name="actionName">displayQueues</param>
Modified: continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/applicationContext.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/applicationContext.xml?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/applicationContext.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/applicationContext.xml Sun May 17 18:21:35 2009
@@ -66,7 +66,7 @@
</bean>
<bean id="masterBuildAgentTransportServer" class="org.apache.continuum.distributed.transport.master.MasterBuildAgentTransportServer">
- <constructor-arg ref="distributedBuildManager"/>
+ <constructor-arg ref="distributedBuildService"/>
</bean>
<bean name="xmlrpcServicesList" class="java.util.ArrayList">
Modified: continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildQueueView.jsp
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildQueueView.jsp?rev=775729&r1=775728&r2=775729&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildQueueView.jsp (original)
+++ continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/buildQueueView.jsp Sun May 17 18:21:35 2009
@@ -106,6 +106,7 @@
<s:param name="buildDefinitionId">${queue.task.buildDefinitionId}</s:param>
<s:param name="trigger">${queue.task.trigger}</s:param>
<s:param name="projectName">${queue.task.projectName}</s:param>
+ <s:param name="projectGroupId">${queue.task.projectGroupId}</s:param>
</s:url>
<s:a href="%{cancelUrl}"><img src="<s:url value='/images/cancelbuild.gif' includeParams="none"/>" alt="<s:text name='cancel'/>" title="<s:text name='cancel'/>" border="0"></s:a>
</redback:ifAuthorized>