continuum-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ken...@apache.org
Subject svn commit: r442951 - in /maven/continuum/trunk: continuum-core/src/main/java/org/apache/maven/continuum/ continuum-core/src/main/resources/META-INF/plexus/ continuum-model/src/main/mdo/ continuum-store/src/main/java/org/apache/maven/continuum/store/ c...
Date Wed, 13 Sep 2006 11:43:26 GMT
Author: kenney
Date: Wed Sep 13 04:43:25 2006
New Revision: 442951

URL: http://svn.apache.org/viewvc?view=rev&rev=442951
Log:
Added 'maxJobExecutionTime' field to Schedule;

Updated edit/show schedule pages (and label properties) for this new field;

DefaultContinuum now sets the max job execution time on the Task,
retrieved from schedule for the given buildId;
(Also removed never-executing code from DefaultContinuum and fixed an NPE).

Added a CancelBuildAction and made it available from the StateCell, displayed
in build history/build overviews.

TODO: When a build is cancelled, it the build number is incorrect
(either 0 or the highest one, depending on when it's cancelled).

Added:
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/CancelBuildAction.java
  (with props)
Modified:
    maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
    maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml
    maven/continuum/trunk/continuum-model/src/main/mdo/continuum.mdo
    maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
    maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/StateCell.java
    maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
    maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml
    maven/continuum/trunk/continuum-webapp/src/main/webapp/editSchedule.jsp
    maven/continuum/trunk/continuum-webapp/src/main/webapp/schedules.jsp

Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?view=diff&rev=442951&r1=442950&r2=442951
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
(original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
Wed Sep 13 04:43:25 2006
@@ -191,7 +191,6 @@
         throw new ContinuumException( "invalid group id" );
     }
 
-
     public ProjectGroup getProjectGroupByProjectId( int projectId )
         throws ContinuumException
     {
@@ -415,7 +414,6 @@
         buildProjects( ContinuumProjectState.TRIGGER_FORCED );
     }
 
-
     /**
      * fire of the builds of all projects across all project groups using their default build
definitions
      *
@@ -450,16 +448,11 @@
             {
                 buildDefId = new Integer( store.getDefaultBuildDefinition( project.getId()
).getId() );
             }
-            catch (ContinuumStoreException e)
+            catch ( ContinuumStoreException e )
             {
                 throw new ContinuumException(
                     "Project (id=" + project.getId() + " doens't have a default build definition,
this should be impossible, parent should have default definition set." );
             }
-            if ( buildDefId == null )
-            {
-                throw new ContinuumException(
-                    "Project (id=" + project.getId() + " doens't have a default build definition,
this should be even more impossible since store should have throw exception" );
-            }
 
             buildProject( project, buildDefId.intValue(), trigger );
         }
@@ -479,7 +472,7 @@
 
         try
         {
-            projectsList = getProjectsInBuildOrder( store.getProjectsWithDependenciesByGroupId(
projectGroupId ));
+            projectsList = getProjectsInBuildOrder( store.getProjectsWithDependenciesByGroupId(
projectGroupId ) );
         }
         catch ( CycleDetectedException e )
         {
@@ -500,16 +493,11 @@
             {
                 buildDefId = new Integer( store.getDefaultBuildDefinition( project.getId()
).getId() );
             }
-            catch (ContinuumStoreException e)
+            catch ( ContinuumStoreException e )
             {
                 throw new ContinuumException(
                     "Project (id=" + project.getId() + " doens't have a default build definition,
this should be impossible, parent should have default definition set." );
             }
-            if ( buildDefId == null )
-            {
-                throw new ContinuumException(
-                    "Project (id=" + project.getId() + " doens't have a default build definition,
this should be even more impossible since store should have throw exception" );
-            }
 
             buildProject( project, buildDefId.intValue(), ContinuumProjectState.TRIGGER_FORCED
);
         }
@@ -543,8 +531,6 @@
                 getLogger().info( "No projects to build for schedule " + schedule );
                 return;
             }
-
-
         }
         catch ( ContinuumStoreException e )
         {
@@ -597,7 +583,7 @@
                 }
 
                 // iterate through the project build definitions and build
-                List buildDefIds = (List) projectsMap.get( new Integer( project.getId() )
);
+                List buildDefIds = projectsMap == null ? null : (List) projectsMap.get( new
Integer( project.getId() ) );
 
                 if ( buildDefIds != null && !buildDefIds.isEmpty() )
                 {
@@ -706,7 +692,7 @@
                 if ( executor.isBuilding( project ) )
                 {
                     // project is building
-                    getLogger().info( "Project '" + project.getName() + "' always running."
);
+                    getLogger().info( "Project '" + project.getName() + "' already being
built." );
 
                     return;
                 }
@@ -723,7 +709,12 @@
             getLogger().info(
                 "Enqueuing '" + project.getName() + "' (Build definition id=" + buildDefinitionId
+ ")." );
 
-            buildQueue.put( new BuildProjectTask( project.getId(), buildDefinitionId, trigger
) );
+            BuildProjectTask task = new BuildProjectTask( project.getId(), buildDefinitionId,
trigger );
+
+            task.setMaxExecutionTime( store.getBuildDefinition( buildDefinitionId ).getSchedule()
+                .getMaxJobExecutionTime() );
+
+            buildQueue.put( task );
         }
         catch ( ContinuumStoreException e )
         {
@@ -1336,7 +1327,6 @@
             throw new ContinuumException( "error attempting to access build definition",
cse );
         }
     }
-
 
     public List getBuildDefinitionsForProject( int projectId )
         throws ContinuumException

Modified: maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml?view=diff&rev=442951&r1=442950&r2=442951
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml
(original)
+++ maven/continuum/trunk/continuum-core/src/main/resources/META-INF/plexus/components.xml
Wed Sep 13 04:43:25 2006
@@ -174,7 +174,7 @@
           </property>
         </updateProperties>
       </configuration>
-      
+
     </component>
 
     <component>
@@ -430,6 +430,7 @@
       <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
       <role-hint>build-project</role-hint>
       <implementation>org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor</implementation>
+      <instantiation-strategy>singleton</instantiation-strategy>
       <requirements>
         <requirement>
           <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>
@@ -475,6 +476,7 @@
       <role>org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor</role>
       <role-hint>check-out-project</role-hint>
       <implementation>org.codehaus.plexus.taskqueue.execution.ThreadedTaskQueueExecutor</implementation>
+      <instantiation-strategy>singleton</instantiation-strategy>
       <requirements>
         <requirement>
           <role>org.codehaus.plexus.taskqueue.execution.TaskExecutor</role>

Modified: maven/continuum/trunk/continuum-model/src/main/mdo/continuum.mdo
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-model/src/main/mdo/continuum.mdo?view=diff&rev=442951&r1=442950&r2=442951
==============================================================================
--- maven/continuum/trunk/continuum-model/src/main/mdo/continuum.mdo (original)
+++ maven/continuum/trunk/continuum-model/src/main/mdo/continuum.mdo Wed Sep 13 04:43:25 2006
@@ -805,6 +805,16 @@
           <type>int</type>
         </field>
         <field>
+          <name>maxJobExecutionTime</name>
+          <description>
+            Maximum execution time of a job in seconds before it's
+            terminated.
+          </description>
+          <version>1.0.0+</version>
+          <type>int</type>
+          <defaultValue>3600</defaultValue>
+        </field>
+        <field>
           <name>cronExpression</name>
           <version>1.0.0+</version>
           <type>String</type>

Modified: maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java?view=diff&rev=442951&r1=442950&r2=442951
==============================================================================
--- maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
(original)
+++ maven/continuum/trunk/continuum-store/src/main/java/org/apache/maven/continuum/store/JdoContinuumStore.java
Wed Sep 13 04:43:25 2006
@@ -36,6 +36,7 @@
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
 
 import javax.jdo.Extent;
+import javax.jdo.FetchPlan;
 import javax.jdo.JDOHelper;
 import javax.jdo.JDOUserException;
 import javax.jdo.PersistenceManager;
@@ -1404,6 +1405,7 @@
         PersistenceManager pm = pmf.getPersistenceManager();
 
         pm.getFetchPlan().setMaxFetchDepth( -1 );
+        pm.getFetchPlan().setDetachmentOptions( FetchPlan.DETACH_LOAD_FIELDS );
 
         return pm;
     }

Added: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/CancelBuildAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/CancelBuildAction.java?view=auto&rev=442951
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/CancelBuildAction.java
(added)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/CancelBuildAction.java
Wed Sep 13 04:43:25 2006
@@ -0,0 +1,77 @@
+package org.apache.maven.continuum.web.action;
+
+/*
+ * Copyright 2004-2006 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+import org.apache.maven.continuum.ContinuumException;
+import org.apache.maven.continuum.buildqueue.BuildProjectTask;
+import org.codehaus.plexus.taskqueue.Task;
+import org.codehaus.plexus.taskqueue.execution.TaskQueueExecutor;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ *
+ * @plexus.component role="com.opensymphony.xwork.Action" role-hint="cancelBuild"
+ */
+public class CancelBuildAction
+    extends ContinuumActionSupport
+{
+    /** @plexus.requirement role-hint='build-project' */
+    private TaskQueueExecutor taskQueueExecutor;
+
+    private int projectId;
+
+    public String execute()
+        throws ContinuumException
+    {
+        Task task = taskQueueExecutor.getCurrentTask();
+
+        getLogger().info("TaskQueueExecutor: " + taskQueueExecutor );
+
+        if ( task != null )
+        {
+            if ( task instanceof BuildProjectTask )
+            {
+                if ( ( (BuildProjectTask) task ).getProjectId() == projectId )
+                {
+                    getLogger().info( "Cancelling task for project " + projectId );
+                    taskQueueExecutor.cancelTask( task );
+                }
+                else
+                {
+                    getLogger().warn( "Current task is not for the given projectId (" + projectId
+ "): "
+                        + ( (BuildProjectTask) task ).getProjectId() + "; not cancelling"
);
+                }
+            }
+            else
+            {
+                getLogger().warn( "Current task not a BuildProjectTask - not cancelling"
);
+            }
+        }
+        else
+        {
+            getLogger().warn( "No task running - not cancelling" );
+        }
+
+        return SUCCESS;
+    }
+
+    public void setProjectId( int projectId )
+    {
+        this.projectId = projectId;
+    }
+}

Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/CancelBuildAction.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/CancelBuildAction.java
------------------------------------------------------------------------------
    svn:keywords = "Author Date Id Revision"

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java?view=diff&rev=442951&r1=442950&r2=442951
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
(original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
Wed Sep 13 04:43:25 2006
@@ -23,8 +23,7 @@
 
 /**
  * @author Nik Gonzalez
- * @plexus.component role="com.opensymphony.xwork.Action"
- * role-hint="schedule"
+ * @plexus.component role="com.opensymphony.xwork.Action" role-hint="schedule"
  */
 public class ScheduleAction
     extends ContinuumActionSupport
@@ -47,6 +46,8 @@
 
     private boolean confirmed;
 
+    private int maxJobExecutionTime;
+
     public String summary()
         throws ContinuumException
     {
@@ -63,10 +64,11 @@
             {
                 schedule = getContinuum().getSchedule( id );
                 active = schedule.isActive();
-                cronExpression= schedule.getCronExpression();
+                cronExpression = schedule.getCronExpression();
                 description = schedule.getDescription();
                 name = schedule.getName();
                 delay = schedule.getDelay();
+                maxJobExecutionTime = schedule.getMaxJobExecutionTime();
             }
             catch ( ContinuumException e )
             {
@@ -83,14 +85,7 @@
         {
             try
             {
-                Schedule schedule = new Schedule();
-                schedule.setActive( active );
-                schedule.setCronExpression( cronExpression );
-                schedule.setDelay( delay );
-                schedule.setDescription( description );
-                schedule.setName( name );
-
-                getContinuum().addSchedule( schedule );
+                getContinuum().addSchedule( setFields( new Schedule() ) );
             }
             catch ( ContinuumException e )
             {
@@ -101,19 +96,9 @@
         }
         else
         {
-
             try
             {
-                schedule = getContinuum().getSchedule( id );
-
-                schedule.setActive( active );
-                schedule.setCronExpression( cronExpression );
-                schedule.setDelay( delay );
-                schedule.setDescription( description );
-                schedule.setName( name );
-
-                getContinuum().updateSchedule( schedule );
-
+                getContinuum().updateSchedule( setFields( getContinuum().getSchedule( id
) ) );
             }
             catch ( ContinuumException e )
             {
@@ -125,6 +110,18 @@
         }
     }
 
+    private Schedule setFields( Schedule schedule )
+    {
+        schedule.setActive( active );
+        schedule.setCronExpression( cronExpression );
+        schedule.setDelay( delay );
+        schedule.setDescription( description );
+        schedule.setName( name );
+        schedule.setMaxJobExecutionTime( maxJobExecutionTime );
+
+        return schedule;
+    }
+
     public String confirm()
         throws ContinuumException
     {
@@ -232,5 +229,15 @@
     public void setConfirmed( boolean confirmed )
     {
         this.confirmed = confirmed;
+    }
+
+    public int getMaxJobExecutionTime()
+    {
+        return maxJobExecutionTime;
+    }
+
+    public void setMaxJobExecutionTime( int maxJobExecutionTime )
+    {
+        this.maxJobExecutionTime = maxJobExecutionTime;
     }
 }

Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/StateCell.java
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/StateCell.java?view=diff&rev=442951&r1=442950&r2=442951
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/StateCell.java
(original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/StateCell.java
Wed Sep 13 04:43:25 2006
@@ -18,6 +18,8 @@
 
 import com.opensymphony.webwork.ServletActionContext;
 import com.opensymphony.webwork.views.util.UrlHelper;
+
+import org.apache.maven.continuum.project.ContinuumProjectState;
 import org.apache.maven.continuum.web.model.ProjectSummary;
 import org.apache.maven.continuum.web.util.StateGenerator;
 import org.extremecomponents.table.bean.Column;
@@ -39,35 +41,53 @@
     {
         ProjectSummary project = (ProjectSummary) tableModel.getCurrentRowBean();
 
-        int latestBuildId = project.getLatestBuildId();
-
-        String state = StateGenerator.generate( project.getState(), tableModel.getContext().getContextPath()
);
-
-        if ( project.getState() == 1 || project.getState() == 2 || project.getState() ==
3 || project.getState() == 4 )
+        switch ( project.getState() )
         {
-            if ( latestBuildId != -1 && !StateGenerator.NEW.equals( state ) )
+            case ContinuumProjectState.NEW:
+            case ContinuumProjectState.OK:
+            case ContinuumProjectState.FAILED:
+            case ContinuumProjectState.ERROR:
             {
-                HashMap params = new HashMap();
-
-                params.put( "projectId", new Integer( project.getId() ) );
-
-                params.put( "projectName", project.getName() );
+                String state = StateGenerator.generate( project.getState(), tableModel.getContext().getContextPath()
);
 
-                params.put( "buildId", new Integer( latestBuildId ) );
-
-                String url = UrlHelper.buildUrl( "/buildResult.action", ServletActionContext.getRequest(),
-                                                 ServletActionContext.getResponse(), params
);
+                if ( project.getLatestBuildId() != -1 && !StateGenerator.NEW.equals(
state ) )
+                {
+                    return createActionLink( "buildResult", project, state );
+                }
+                else
+                {
+                    return state;
+                }
+            }
 
-                return "<a href=\"" + url + "\">" + state + "</a>";
+            case ContinuumProjectState.BUILDING:
+            {
+                return StateGenerator.generate( project.getState(), tableModel.getContext().getContextPath()
) + " "
+                    + createActionLink( "cancelBuild", project, "(cancel)" );
             }
-            else
+
+            default:
             {
-                return state;
+                return "&nbsp;";
             }
         }
-        else
-        {
-            return "&nbsp;";
-        }
+    }
+
+    private static String createActionLink( String action, ProjectSummary project, String
state )
+    {
+        HashMap params = new HashMap();
+
+        params.put( "projectId", new Integer( project.getId() ) );
+
+        params.put( "projectName", project.getName() );
+
+        params.put( "buildId", new Integer( project.getLatestBuildId() ) );
+
+        String url = UrlHelper.buildUrl( "/" + action + ".action",
+                                         ServletActionContext.getRequest(),
+                                         ServletActionContext.getResponse(),
+                                         params );
+
+        return "<a href=\"" + url + "\">" + state + "</a>";
     }
 }

Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties?view=diff&rev=442951&r1=442950&r2=442951
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
(original)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
Wed Sep 13 04:43:25 2006
@@ -116,7 +116,7 @@
 add.project.missing.repository.error = Missing 'repository' element in the POM.
 add.project.missing.scm.error = Missing 'scm' element in the POM.
 add.project.missing.scm.connection.error = Missing 'connection' sub-element in the 'scm'
element in the POM.
-add.project.missing.notifier.type.error = Missing 'type' sub-element in the 'notifier' element
in the POM. 
+add.project.missing.notifier.type.error = Missing 'type' sub-element in the 'notifier' element
in the POM.
 add.project.missing.notifier.configuration.error = Missing 'configuration' sub-element in
the 'notifier' element in the POM.
 add.project.metadata.transfer.error = Transfer of Metadata has failed.
 add.project.unknown.error = The specified resource cannot be accessed. Please try again later
or contact your administrator.
@@ -333,6 +333,7 @@
 schedules.table.description = Description
 schedules.table.delay = Quiet Period
 schedules.table.cronExpression = Cron Expression
+schedules.table.maxJobExecutionTime = Max Job Time
 
 # ----------------------------------------------------------------------
 # Page: Add/EditSchedule
@@ -348,6 +349,8 @@
 schedule.description.message = Enter a description of the schedule
 schedule.cronExpression.label = Cron Expression
 schedule.cronExpression.message = Enter the cron expression. Format is described there :
<a href="http://www.opensymphony.com/quartz/api/org/quartz/CronTrigger.html" target="_blank">Syntax<a>
+schedule.maxJobExecutionTime.label = Maximum job execution time (seconds)
+schedule.maxJobExecutionTime.message = Enter the maxmimum number of seconds a job may execute
in this schedule before it's terminated.
 schedule.quietPeriod.label = Quiet Period (seconds)
 schedule.quietPeriod.message = Enter a quiet period period for this schedule
 schedule.enabled.label = Enabled

Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml?view=diff&rev=442951&r1=442950&r2=442951
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml Wed Sep 13 04:43:25
2006
@@ -298,6 +298,9 @@
       <result name="success" type="chain">schedules</result>
     </action>
 
+    <action name="cancelBuild" class="cancelBuild">
+      <result name="success" type="chain">buildResults</result>
+    </action>
 
   </package>
 

Modified: maven/continuum/trunk/continuum-webapp/src/main/webapp/editSchedule.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/webapp/editSchedule.jsp?view=diff&rev=442951&r1=442950&r2=442951
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/webapp/editSchedule.jsp (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/webapp/editSchedule.jsp Wed Sep 13 04:43:25
2006
@@ -3,7 +3,7 @@
 <html>
   <ww:i18n name="localization.Continuum">
 <head>
-<title><ww:text name="editSchedule.page.title"/></title>              
+<title><ww:text name="editSchedule.page.title"/></title>
 </head>
 <body>
 <div class="app">
@@ -23,6 +23,9 @@
             </ww:textfield>
             <ww:textfield label="%{getText('schedule.cronExpression.label')}" name="cronExpression"
required="true">
                 <ww:param name="desc"><p><ww:text name="schedule.cronExpression.message"/></p></ww:param>
+            </ww:textfield>
+            <ww:textfield label="%{getText('schedule.maxJobExecutionTime.label')}" name="maxJobExecutionTime"
required="true">
+                <ww:param name="desc"><p><ww:text name="schedule.maxJobExecutionTime.message"/></p></ww:param>
             </ww:textfield>
             <ww:textfield label="%{getText('schedule.quietPeriod.label')}" name="delay">
                 <ww:param name="desc"><p><ww:text name="schedule.quietPeriod.message"/></p></ww:param>

Modified: maven/continuum/trunk/continuum-webapp/src/main/webapp/schedules.jsp
URL: http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/webapp/schedules.jsp?view=diff&rev=442951&r1=442950&r2=442951
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/webapp/schedules.jsp (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/webapp/schedules.jsp Wed Sep 13 04:43:25
2006
@@ -21,6 +21,7 @@
             <ec:column property="description" title="schedules.table.description"/>
             <ec:column property="delay" title="schedules.table.delay"/>
             <ec:column property="cronExpression" title="schedules.table.cronExpression"/>
+            <ec:column property="maxJobExecutionTime" title="schedules.table.maxJobExecutionTime"/>
             <ec:column property="actions" title="&nbsp;">
                 <ww:url id="editScheduleUrl" action="schedule">
                   <ww:param name="id" value="${pageScope.schedule.id}"/>



Mime
View raw message