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/15 13:02:57 UTC
svn commit: r726688 - in /continuum/branches/continuum-parallel-builds:
continuum-base/continuum-configuration/
continuum-base/continuum-configuration/src/main/java/org/apache/continuum/configuration/
continuum-webapp/ continuum-webapp/src/main/java/or...
Author: oching
Date: Mon Dec 15 04:02:56 2008
New Revision: 726688
URL: http://svn.apache.org/viewvc?rev=726688&view=rev
Log:
[CONTINUUM-265]
submitted by Gwen Harold Autencio
-UI for parallel builds
Added:
continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildQueueAction.java
continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editParallelBuilds.jsp
continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/parallelbuilds.jsp
Modified:
continuum/branches/continuum-parallel-builds/continuum-base/continuum-configuration/pom.xml
continuum/branches/continuum-parallel-builds/continuum-base/continuum-configuration/src/main/java/org/apache/continuum/configuration/DefaultContinuumConfiguration.java
continuum/branches/continuum-parallel-builds/continuum-webapp/pom.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/ConfigurationAction.java
continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/resources/localization/Continuum.properties
continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/resources/struts.xml
continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configuration.jsp
continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configurationEdit.jsp
continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/editSchedule.jsp
continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp
Modified: continuum/branches/continuum-parallel-builds/continuum-base/continuum-configuration/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-base/continuum-configuration/pom.xml?rev=726688&r1=726687&r2=726688&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-base/continuum-configuration/pom.xml (original)
+++ continuum/branches/continuum-parallel-builds/continuum-base/continuum-configuration/pom.xml Mon Dec 15 04:02:56 2008
@@ -101,6 +101,19 @@
<groupId>org.apache.continuum</groupId>
<artifactId>continuum-test</artifactId>
<scope>test</scope>
+ </dependency>
+ <dependency> <!-- added since depMgt doesn't override imported dependencies -->
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.registry</groupId>
+ <artifactId>plexus-registry-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.registry</groupId>
+ <artifactId>plexus-registry-commons</artifactId>
+ <scope>runtime</scope>
</dependency>
</dependencies>
</project>
Modified: continuum/branches/continuum-parallel-builds/continuum-base/continuum-configuration/src/main/java/org/apache/continuum/configuration/DefaultContinuumConfiguration.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-base/continuum-configuration/src/main/java/org/apache/continuum/configuration/DefaultContinuumConfiguration.java?rev=726688&r1=726687&r2=726688&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-base/continuum-configuration/src/main/java/org/apache/continuum/configuration/DefaultContinuumConfiguration.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-base/continuum-configuration/src/main/java/org/apache/continuum/configuration/DefaultContinuumConfiguration.java Mon Dec 15 04:02:56 2008
@@ -29,6 +29,7 @@
import org.apache.continuum.configuration.model.ContinuumConfigurationModel;
import org.apache.continuum.configuration.model.io.xpp3.ContinuumConfigurationModelXpp3Reader;
import org.apache.continuum.configuration.model.io.xpp3.ContinuumConfigurationModelXpp3Writer;
+import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -40,12 +41,14 @@
*/
public class DefaultContinuumConfiguration
implements ContinuumConfiguration
-{
+{
private Logger log = LoggerFactory.getLogger( getClass() );
private File configurationFile;
private GeneralConfiguration generalConfiguration;
+
+ public static final String CONFIGURATION_FILE = "continuum.xml";
//----------------------------------------------------
// Initialize method configured in the Spring xml
@@ -117,6 +120,8 @@
.read( new InputStreamReader( new FileInputStream( file ) ) );
this.generalConfiguration = new GeneralConfiguration();
+
+ this.generalConfiguration.setNumberOfBuildsInParallel( configuration.getNumberOfBuildsInParallel() );
this.generalConfiguration.setBaseUrl( configuration.getBaseUrl() );
if ( StringUtils.isNotEmpty( configuration.getBuildOutputDirectory() ) )
{
@@ -149,6 +154,9 @@
this.generalConfiguration.setReleaseOutputDirectory( new File( configuration
.getReleaseOutputDirectory() ) );
}
+
+
+
}
catch ( IOException e )
{
@@ -170,11 +178,14 @@
{
ContinuumConfigurationModel configurationModel = new ContinuumConfigurationModel();
configurationModel.setBaseUrl( this.generalConfiguration.getBaseUrl() );
+
+
// normally not null but NPE free is better !
if ( this.generalConfiguration.getBuildOutputDirectory() != null )
{
configurationModel.setBuildOutputDirectory( this.generalConfiguration.getBuildOutputDirectory()
.getPath() );
+ configurationModel.setNumberOfBuildsInParallel( this.generalConfiguration.getNumberOfBuildsInParallel() );
}
if ( this.generalConfiguration.getWorkingDirectory() != null )
{
@@ -209,6 +220,8 @@
.getPath() );
}
+
+
ContinuumConfigurationModelXpp3Writer writer = new ContinuumConfigurationModelXpp3Writer();
FileWriter fileWriter = new FileWriter( file );
writer.write( fileWriter, configurationModel );
@@ -225,7 +238,7 @@
// Spring injection
// ----------------------------------------
-
+
public File getConfigurationFile()
{
return configurationFile;
Modified: continuum/branches/continuum-parallel-builds/continuum-webapp/pom.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-webapp/pom.xml?rev=726688&r1=726687&r2=726688&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-webapp/pom.xml (original)
+++ continuum/branches/continuum-parallel-builds/continuum-webapp/pom.xml Mon Dec 15 04:02:56 2008
@@ -319,6 +319,10 @@
</build>
<dependencies>
<dependency>
+ <groupId>org.apache.continuum</groupId>
+ <artifactId>continuum-store</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.codehaus.plexus.registry</groupId>
<artifactId>plexus-registry-api</artifactId>
</dependency>
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=726688&r1=726687&r2=726688&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 Mon Dec 15 04:02:56 2008
@@ -19,12 +19,21 @@
* under the License.
*/
+import java.util.ArrayList;
+import java.util.Collection;
+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.web.exception.AuthenticationRequiredException;
import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
+import org.apache.maven.model.Build;
-import java.util.Collection;
+import com.opensymphony.xwork2.Preparable;
/**
* @author Nik Gonzalez
@@ -32,6 +41,7 @@
*/
public class ScheduleAction
extends ContinuumConfirmAction
+ implements Preparable
{
private int id;
@@ -64,6 +74,27 @@
private String dayOfWeek = "?";
private String year;
+
+ private List<BuildQueue> schedulesBuildQueue;
+
+ private BuildQueue buildQueue;
+
+ private List<BuildQueue> buildQueues;
+
+ private List<String> buildQueueIds;
+
+ /**
+ * @plexus.requirement
+ */
+ private BuildQueueDao buildQueueDao;
+
+ public void prepare()
+ throws Exception
+ {
+ super.prepare();
+ buildQueues = buildQueueDao.getAllBuildQueues();
+ schedulesBuildQueue = new ArrayList<BuildQueue>();
+ }
public String summary()
throws ContinuumException
@@ -81,7 +112,9 @@
{
addActionError( e.getMessage() );
return REQUIRES_AUTHENTICATION;
- }
+ } buildQueueIds = new ArrayList<String>();
+
+
schedules = getContinuum().getSchedules();
@@ -127,6 +160,7 @@
name = schedule.getName();
delay = schedule.getDelay();
maxJobExecutionTime = schedule.getMaxJobExecutionTime();
+
}
else
{
@@ -140,6 +174,7 @@
public String save()
throws ContinuumException
{
+
try
{
checkManageSchedulesAuthorization();
@@ -178,13 +213,14 @@
private Schedule setFields( Schedule schedule )
{
- schedule.setActive( active );
+ schedule.setActive( active );
schedule.setCronExpression( getCronExpression() );
schedule.setDelay( delay );
schedule.setDescription( description );
schedule.setName( name );
schedule.setMaxJobExecutionTime( maxJobExecutionTime );
-
+ schedule.setBuildQueues( schedulesBuildQueue );
+
return schedule;
}
@@ -414,4 +450,56 @@
return ( second + " " + minute + " " + hour + " " + dayOfMonth + " " + month + " " + dayOfWeek + " " +
year ).trim();
}
+
+ public BuildQueue getBuildQueue()
+ {
+ return buildQueue;
+ }
+
+ public void setBuildQueue(BuildQueue buildQueue)
+ {
+ this.buildQueue = buildQueue;
+ }
+
+ public List<BuildQueue> getBuildQueues()
+ {
+ return buildQueues;
+ }
+
+ public void setBuildQueues(List<BuildQueue> buildQueues)
+ {
+ this.buildQueues = buildQueues;
+ }
+
+ public List<String> getBuildQueueIds()
+ {
+ return buildQueueIds;
+ }
+
+ public void setBuildQueueIds(List<String> buildQueueIds)
+ {
+ this.buildQueueIds = buildQueueIds;
+ }
+
+ public BuildQueueDao getBuildQueueDao()
+ {
+ return buildQueueDao;
+ }
+
+ public void setBuildQueueDao(BuildQueueDao buildQueueDao)
+ {
+ this.buildQueueDao = buildQueueDao;
+ }
+
+ public List<BuildQueue> getSchedulesBuildQueue()
+ {
+ return schedulesBuildQueue;
+ }
+
+ public void setSchedulesBuildQueue(List<BuildQueue> schedulesBuildQueue)
+ {
+ this.schedulesBuildQueue = schedulesBuildQueue;
+ }
+
+
}
Added: continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildQueueAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildQueueAction.java?rev=726688&view=auto
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildQueueAction.java (added)
+++ continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildQueueAction.java Mon Dec 15 04:02:56 2008
@@ -0,0 +1,163 @@
+package org.apache.maven.continuum.web.action.admin;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.continuum.dao.BuildQueueDao;
+import org.apache.continuum.taskqueue.DefaultOverallBuildQueue;
+import org.apache.continuum.taskqueue.OverallBuildQueue;
+import org.apache.maven.continuum.model.project.BuildQueue;
+import org.apache.maven.continuum.model.system.Installation;
+import org.apache.maven.continuum.store.ContinuumStoreException;
+
+import com.opensymphony.xwork2.Preparable;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ *
+ * @plexus.component role="com.opensymphony.xwork2.Action" role-hint="buildQueueAction"
+ */
+public class BuildQueueAction
+ extends AbstractBuildQueueAction
+ implements Preparable
+{
+ private String name;
+
+ private int size;
+
+ private List<BuildQueue> buildQueueList;
+
+ /**
+ * @plexus.requirement
+ */
+ private BuildQueueDao buildQueueDao;
+
+ private BuildQueue buildQueue;
+
+ public void prepare()
+ throws ContinuumStoreException
+ {
+ this.buildQueueList = buildQueueDao.getAllBuildQueues();
+ }
+
+ public String input()
+ {
+ return INPUT;
+ }
+
+ public String list()
+ throws Exception
+ {
+ this.buildQueueList = buildQueueDao.getAllBuildQueues();
+ return SUCCESS;
+ }
+
+ public String save()
+ throws Exception
+ {
+
+ int allowedBuilds = getContinuum().getConfiguration().getNumberOfBuildsInParallel();
+ if ( allowedBuilds <= this.buildQueueList.size() )
+ {
+ addActionError(" You are only allowed " + allowedBuilds );
+ return ERROR;
+ }
+ else
+ {
+ BuildQueue buildQueue = new BuildQueue();
+ buildQueue.setId( buildQueueList.size() + 1 );
+ buildQueue.setName( name );
+ buildQueueDao.addBuildQueue( buildQueue );
+
+ return SUCCESS;
+ }
+
+ }
+
+ public String edit()
+ throws Exception
+ {
+ BuildQueue buildQueueToBeEdited = buildQueueDao.getBuildQueue( this.buildQueue.getId() );
+ return SUCCESS;
+ }
+
+ public String delete()
+ throws Exception
+ {
+ BuildQueue buildQueueToBeDeleted = buildQueueDao.getBuildQueue( this.buildQueue.getId() );
+ buildQueueDao.removeBuildQueue( buildQueueToBeDeleted );
+
+ this.buildQueueList = buildQueueDao.getAllBuildQueues();
+
+ return SUCCESS;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public List<BuildQueue> getBuildQueueList()
+ {
+ return buildQueueList;
+ }
+
+ public void setBuildQueueList(List<BuildQueue> buildQueueList)
+ {
+ this.buildQueueList = buildQueueList;
+ }
+
+ public BuildQueueDao getBuildQueueDao()
+ {
+ return buildQueueDao;
+ }
+
+ public void setBuildQueueDao(BuildQueueDao buildQueueDao)
+ {
+ this.buildQueueDao = buildQueueDao;
+ }
+
+ public int getSize()
+ {
+ return size;
+ }
+
+ public void setSize(int size)
+ {
+ this.size = size;
+ }
+
+ public BuildQueue getBuildQueue()
+ {
+ return buildQueue;
+ }
+
+ public void setBuildQueue(BuildQueue buildQueue)
+ {
+ this.buildQueue = buildQueue;
+ }
+}
Modified: continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigurationAction.java
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigurationAction.java?rev=726688&r1=726687&r2=726688&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigurationAction.java (original)
+++ continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/ConfigurationAction.java Mon Dec 15 04:02:56 2008
@@ -57,8 +57,12 @@
private String releaseOutputDirectory;
+ private int numberOfAllowedBuildsinParallel;
+
private boolean requireReleaseOutput;
-
+
+ private boolean requireParallelBuilds;
+
public void prepare()
{
ConfigurationService configuration = getContinuum().getConfiguration();
@@ -97,6 +101,11 @@
releaseOutputDirectory = releaseOutputDirectoryFile.getAbsolutePath();
}
+ if ( requireParallelBuilds )
+ {
+ numberOfAllowedBuildsinParallel = configuration.getNumberOfBuildsInParallel();
+ }
+
String requireRelease = ServletActionContext.getRequest().getParameter( "requireReleaseOutput" );
setRequireReleaseOutput( new Boolean( requireRelease ) );
}
@@ -119,7 +128,12 @@
configuration.setWorkingDirectory( new File( workingDirectory ) );
configuration.setBuildOutputDirectory( new File( buildOutputDirectory ) );
-
+
+ if ( requireParallelBuilds )
+ {
+ configuration.setNumberOfBuildsInParallel( numberOfAllowedBuildsinParallel );
+ }
+
if ( StringUtils.isNotEmpty( deploymentRepositoryDirectory ) )
{
configuration.setDeploymentRepositoryDirectory( new File( deploymentRepositoryDirectory ) );
@@ -128,7 +142,7 @@
{
configuration.setDeploymentRepositoryDirectory( null );
}
-
+
configuration.setUrl( baseUrl );
configuration.setInitialized( true );
@@ -221,4 +235,26 @@
{
this.requireReleaseOutput = requireReleaseOutput;
}
+
+ public int getNumberOfAllowedBuildsinParallel()
+ {
+ return numberOfAllowedBuildsinParallel;
+ }
+
+ public void setNumberOfAllowedBuildsinParallel( int numberOfAllowedBuildsinParallel )
+ {
+ this.numberOfAllowedBuildsinParallel = numberOfAllowedBuildsinParallel;
+ }
+
+ public boolean isRequireParallelBuilds()
+ {
+ return requireParallelBuilds;
+ }
+
+ public void setRequireParallelBuilds( boolean requireParallelBuilds )
+ {
+ this.requireParallelBuilds = requireParallelBuilds;
+ }
+
+
}
Modified: continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/resources/localization/Continuum.properties
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/resources/localization/Continuum.properties?rev=726688&r1=726687&r2=726688&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/resources/localization/Continuum.properties (original)
+++ continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/resources/localization/Continuum.properties Mon Dec 15 04:02:56 2008
@@ -70,6 +70,7 @@
menu.add.shellProject = Shell Project
menu.administration = Administration
menu.administration.configuration = Configuration
+menu.administration.build.queue = Build Queue
menu.administration.appearance = Appearance
menu.administration.profile = Build Environments
menu.administration.installations = Installations
@@ -230,6 +231,8 @@
configuration.buildOutputDirectory.label = Build Output Directory
configuration.deploymentRepositoryDirectory.label = Deployment Repository Directory
configuration.baseUrl.label = Base URL
+configuration.allowed.build.parallel = Number of Allowed Builds in Parallel
+configuration.disable.parallel.builds = Disable Parallel Builds
configuration.submit.edit = Edit
configuration.guest.message = Enable/Disable login as guest
configuration.workingDirectory.message = Enter the working directory of the Continuum web application
@@ -239,6 +242,7 @@
configuration.companyName.message = Enter the company name
configuration.companyLogo.message = Enter the company logo
configuration.companyUrl.message = Enter the URL of the official company website
+configuration.allowed.build.paralle.message = Enter the number of Allowed Builds in Parallel
configuration.releaseOutputDirectory.label = Release Output Directory
configuration.releaseOutputDirectory.message = Enter the release output directory of the Continuum web application
configuration.releaseOutputDirectory.required = You must define a release output directory
@@ -612,6 +616,9 @@
schedule.dayOfWeek.label = Day of Week
schedule.year.label = Year [optional]
schedule.remove.error = The schedule can't be removed, it is probably used by a build definition.
+schedule.buildqueues.define = Configure the used build queues
+schedule.available.buildqueues = --- Available Build Queues ---
+schedule.available.buildqueues.used = --- Used Build Queues ---
# ----------------------------------------------------------------------
# Page: SurefireReport
@@ -947,4 +954,17 @@
scmResult.state = State
scmResult.projectGroupName = Project Group Name
scmResult.scmRootAddress = SCM Root URL
-scmResult.scmError = SCM Error
\ No newline at end of file
+scmResult.scmError = SCM Error
+
+# ----------------------------------------------------------------------
+# Page: Parallel Build Queue List
+# ----------------------------------------------------------------------
+parallel.build.queues.page.title= Continumm - Parallel Build Queue
+parallel.build.queues.section.title= Continuum - Parallel Build Queue
+
+# ----------------------------------------------------------------------
+# Page: Parallel Build Edit
+# ----------------------------------------------------------------------
+parallel.build.queue.page.title= Continuum - Add/Edit Parallel Build Queue
+parallel.build.queue.section.title=Continuum - Add/Edit Parallel Build Queue
+parallel.build.queue.name = Name
\ No newline at end of file
Modified: continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/resources/struts.xml
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/resources/struts.xml?rev=726688&r1=726687&r2=726688&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/resources/struts.xml (original)
+++ continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/resources/struts.xml Mon Dec 15 04:02:56 2008
@@ -686,7 +686,7 @@
<result name="success">/WEB-INF/jsp/admin/installationsList.jsp</result>
</action>
- <!--
+ <!--addBuildEnv
Build Definitions Templates actions
-->
<action name="buildDefinitionTemplates" class="buildDefinitionTemplates" method="summary">
@@ -782,6 +782,29 @@
</action>
<!--
+ * ALLOWED BUILDS IN PARALLEL
+ -->
+
+ <action name="buildQueueList" class="org.apache.maven.continuum.web.action.admin.BuildQueueAction" method="list">
+ <result name="success">/WEB-INF/jsp/admin/parallelbuilds.jsp</result>
+ </action>
+
+ <action name="addBuildQueue" class="org.apache.maven.continuum.web.action.admin.BuildQueueAction">
+ <result name="input">/WEB-INF/jsp/admin/editParallelBuilds.jsp</result>
+ </action>
+
+ <action name="saveBuildQueue" class="org.apache.maven.continuum.web.action.admin.BuildQueueAction" method="save">
+ <result name="input">/WEB-INF/jsp/admin/editParallelBuilds.jsp</result>
+ <result name="error">/WEB-INF/jsp/admin/editParallelBuilds.jsp</result>
+ <result name="success" type="redirect-action">buildQueueList</result>
+ </action>
+
+ <action name="deleteBuildQueue" class="org.apache.maven.continuum.web.action.admin.BuildQueueAction" method="delete">
+ <result name="input">/WEB-INF/jsp/admin/parallelbuilds.jsp</result>
+ <result name="success">/WEB-INF/jsp/admin/parallelbuilds.jsp</result>
+ </action>
+
+ <!--
* Local Repository actions
-->
Modified: continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configuration.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configuration.jsp?rev=726688&r1=726687&r2=726688&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configuration.jsp (original)
+++ continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configuration.jsp Mon Dec 15 04:02:56 2008
@@ -31,7 +31,7 @@
<h3>
<s:text name="configuration.section.title"/>
</h3>
-
+
<div class="axial">
<table border="1" cellspacing="2" cellpadding="3" width="100%">
<c1:data label="%{getText('configuration.workingDirectory.label')}" name="workingDirectory"/>
@@ -40,6 +40,7 @@
<c1:data label="%{getText('configuration.deploymentRepositoryDirectory.label')}"
name="deploymentRepositoryDirectory"/>
<c1:data label="%{getText('configuration.baseUrl.label')}" name="baseUrl"/>
+ <c1:data label="%{getText('configuration.allowed.build.parallel')}" name="numberOfAllowedBuildsinParallel"/>
</table>
<div class="functnbar3">
<s:form action="configuration!input.action" method="post">
Modified: continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configurationEdit.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configurationEdit.jsp?rev=726688&r1=726687&r2=726688&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configurationEdit.jsp (original)
+++ continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/configurationEdit.jsp Mon Dec 15 04:02:56 2008
@@ -82,7 +82,15 @@
<s:text name="configuration.baseUrl.message"/>
</p></s:param>
</s:textfield>
+
+ <s:textfield label="%{getText('configuration.allowed.build.parallel')}" name="numberOfAllowedBuildsinParallel" size="10">
+ <s:param name="desc"><p>
+ <s:text name="configuration.allowed.build.paralle.message"/>
+ </p></s:param>
+ </s:textfield>
+ <s:checkbox label="%{getText('configuration.disable.parallel.builds')}" name="requireParallelBuilds" required="true"/>
+
<s:hidden name="requireReleaseOutput"/>
</tbody>
</table>
Added: continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editParallelBuilds.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editParallelBuilds.jsp?rev=726688&view=auto
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editParallelBuilds.jsp (added)
+++ continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/editParallelBuilds.jsp Mon Dec 15 04:02:56 2008
@@ -0,0 +1,53 @@
+<%--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ --%>
+
+<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>
+<%@ taglib uri="/struts-tags" prefix="s" %>
+<%@ taglib uri="continuum" prefix="c1" %>
+<%@ taglib uri="http://www.extremecomponents.org" prefix="ec" %>
+<%@ taglib uri="http://plexus.codehaus.org/redback/taglib-1.0" prefix="redback" %>
+
+<html>
+ <s:i18n name="localization.Continuum">
+<head>
+<title><s:text name="repository.page.title"/></title>
+</head>
+<body>
+
+<div class="app">
+ <div id="axial" class="h3">
+ <h3><s:text name="parallel.build.queue.section.title"/></h3>
+
+ <s:actionerror />
+
+ <div class="axial">
+ <s:form action="saveBuildQueue" method="post" validate="true">
+ <table>
+ <s:textfield label="%{getText('parallel.build.queue.name')}" name="name" required="true" />
+ </table>
+ <div class="functnbar3">
+ <c1:submitcancel value="%{getText('save')}" cancel="%{getText('cancel')}"/>
+ </div>
+ </s:form>
+ </div>
+ </div>
+</div>
+</body>
+</s:i18n>
+</html>
\ No newline at end of file
Added: continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/parallelbuilds.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/parallelbuilds.jsp?rev=726688&view=auto
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/parallelbuilds.jsp (added)
+++ continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/admin/parallelbuilds.jsp Mon Dec 15 04:02:56 2008
@@ -0,0 +1,69 @@
+<%--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ --%>
+
+<%@ taglib uri='http://java.sun.com/jsp/jstl/core' prefix='c'%>
+<%@ taglib uri="/struts-tags" prefix="s" %>
+<%@ taglib uri="continuum" prefix="c1" %>
+<%@ taglib uri="http://www.extremecomponents.org" prefix="ec" %>
+<%@ taglib uri="http://plexus.codehaus.org/redback/taglib-1.0" prefix="redback" %>
+
+<html>
+ <s:i18n name="localization.Continuum">
+ <head>
+ <title><s:text name="parallel.build.queues.page.title"/></title>
+ </head>
+ <body>
+ <div id="h3">
+ <h3>
+ <s:text name="parallel.build.queues.section.title"/>
+ </h3>
+ <c:if test="${not empty buildQueueList}">
+ <ec:table items="buildQueueList"
+ var="buildQueue"
+ showExports="false"
+ showPagination="false"
+ showStatusBar="false"
+ sortable="false"
+ filterable="false">
+ <ec:row highlightRow="true">
+ <ec:column property="name" title="Name" style="white-space: nowrap" />
+
+ <ec:column property="id" title=" " width="1%">
+ <c:if test="${buildQueue.id != 1}">
+ <a href="deleteBuildQueue!delete.action?buildQueue.id=<c:out value="${buildQueue.id}"/>">
+ <img src="<s:url value='/images/delete.gif' includeParams="none"/>" alt="<s:text name='delete'/>" title="<s:text name='delete'/>" border="0" />
+ </a>
+ </c:if>
+ <c:if test="${buildQueue.id == 1}">
+ <img src="<s:url value='/images/delete_disabled.gif' includeParams="none"/>" alt="<s:text name='delete'/>" title="<s:text name='delete'/>" border="0" />
+ </c:if>
+ </ec:column>
+ </ec:row>
+ </ec:table>
+ </c:if>
+
+ <div class="functnbar3">
+ <s:form action="addBuildQueue!input.action" method="post">
+ <s:submit value="%{getText('add')}"/>
+ </s:form>
+ </div>
+ </div>
+ </body>
+ </s:i18n>
+</html>
\ No newline at end of file
Modified: continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/editSchedule.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/editSchedule.jsp?rev=726688&r1=726687&r2=726688&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/editSchedule.jsp (original)
+++ continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/editSchedule.jsp Mon Dec 15 04:02:56 2008
@@ -71,15 +71,21 @@
<s:textfield label="%{getText('schedule.quietPeriod.label')}" name="delay">
<s:param name="desc"><p><s:text name="schedule.quietPeriod.message"/></p></s:param>
</s:textfield>
+
+ <s:select label="Build Queues" id="schedulesBuildQueue" name="schedulesBuildQueue" headerKey="-1" listValue="name" multiple="true" size="4"
+ listKey="id" headerValue="--Build Queues--" list="buildQueues" />
+
<s:checkbox label="%{getText('schedule.enabled.label')}" name="active" value="active" fieldValue="true">
<s:param name="desc"><p><s:text name="schedule.enabled.message"/></p></s:param>
</s:checkbox>
+
</table>
<s:hidden name="id"/>
<div class="functnbar3">
<c1:submitcancel value="%{getText('save')}" cancel="%{getText('cancel')}"/>
</div>
</s:form>
+
</div>
</div>
</div>
Modified: continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp
URL: http://svn.apache.org/viewvc/continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp?rev=726688&r1=726687&r2=726688&view=diff
==============================================================================
--- continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp (original)
+++ continuum/branches/continuum-parallel-builds/continuum-webapp/src/main/webapp/WEB-INF/jsp/navigations/Menu.jsp Mon Dec 15 04:02:56 2008
@@ -89,6 +89,14 @@
</div>
<div>
<redback:ifAuthorized permission="continuum-manage-repositories">
+ <s:url id="buildQueueListUrl" action="buildQueueList" namespace="/admin" includeParams="none"/>
+ <div class="body">
+ <s:a href="%{buildQueueListUrl}">
+ <s:text name="menu.administration.build.queue"/>
+ </s:a>
+ </div>
+ </redback:ifAuthorized>
+ <redback:ifAuthorized permission="continuum-manage-repositories">
<s:url id="repositoryListUrl" action="repositoryList" namespace="/admin" includeParams="none"/>
<div class="body">
<s:a href="%{repositoryListUrl}">