You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ev...@apache.org on 2005/11/08 16:19:06 UTC
svn commit: r331829 - in /maven/continuum/trunk:
continuum-api/src/main/java/org/apache/maven/continuum/build/settings/
continuum-core/src/main/java/org/apache/maven/continuum/
continuum-core/src/main/java/org/apache/maven/continuum/build/settings/
con...
Author: evenisse
Date: Tue Nov 8 07:18:04 2005
New Revision: 331829
URL: http://svn.apache.org/viewcvs?rev=331829&view=rev
Log:
[CONTINUUM-428] fix schedule deletion
Modified:
maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/build/settings/SchedulesActivator.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/build/settings/DefaultSchedulesActivator.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumScheduler.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/DefaultContinuumScheduler.java
maven/continuum/trunk/continuum-web/src/main/resources/templates/screens/DeleteSchedule.vm
Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/build/settings/SchedulesActivator.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/build/settings/SchedulesActivator.java?rev=331829&r1=331828&r2=331829&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/build/settings/SchedulesActivator.java (original)
+++ maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/build/settings/SchedulesActivator.java Tue Nov 8 07:18:04 2005
@@ -45,4 +45,12 @@
*/
void activateSchedule( Schedule schedule, Continuum continuum )
throws SchedulesActivationException;
+
+ /**
+ * Unactivate schedule by looking at the scheduling information contained within.
+ *
+ * @throws SchedulesActivationException
+ */
+ void unactivateSchedule( Schedule schedule, Continuum continuum )
+ throws SchedulesActivationException;
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=331829&r1=331828&r2=331829&view=diff
==============================================================================
--- 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 Tue Nov 8 07:18:04 2005
@@ -1054,7 +1054,32 @@
public void updateSchedule( Schedule schedule )
throws ContinuumException
{
+ updateSchedule( schedule, true );
+ }
+
+ private void updateSchedule( Schedule schedule, boolean updateScheduler )
+ throws ContinuumException
+ {
storeSchedule( schedule );
+
+ if ( updateScheduler )
+ {
+ try
+ {
+ if ( schedule.isActive() )
+ {
+ schedulesActivator.activateSchedule( schedule, this );
+ }
+ else
+ {
+ schedulesActivator.unactivateSchedule( schedule, this );
+ }
+ }
+ catch ( SchedulesActivationException e )
+ {
+ getLogger().error( "Can't unactivate schedule. You need to restart Continuum.", e );
+ }
+ }
}
public void updateSchedule( int scheduleId, Map configuration )
@@ -1070,9 +1095,18 @@
schedule.setDelay( new Integer( (String) configuration.get( "schedule.delay" ) ).intValue() );
+ boolean isActive = schedule.isActive();
+
schedule.setActive( new Boolean( (String) configuration.get( "schedule.active" ) ).booleanValue() );
- storeSchedule( schedule );
+ if ( schedule.isActive() == isActive )
+ {
+ updateSchedule( schedule, false );
+ }
+ else
+ {
+ updateSchedule( schedule, true );
+ }
}
public void removeSchedule( int scheduleId )
@@ -1080,12 +1114,15 @@
{
Schedule schedule = getSchedule( scheduleId );
- removeSchedule( schedule );
- }
+ try
+ {
+ schedulesActivator.unactivateSchedule( schedule, this );
+ }
+ catch ( SchedulesActivationException e )
+ {
+ getLogger().error( "Can't unactivate schedule. You need to restart Continuum.", e );
+ }
- private void removeSchedule( Schedule schedule )
- throws ContinuumException
- {
store.removeSchedule( schedule );
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/build/settings/DefaultSchedulesActivator.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/build/settings/DefaultSchedulesActivator.java?rev=331829&r1=331828&r2=331829&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/build/settings/DefaultSchedulesActivator.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/build/settings/DefaultSchedulesActivator.java Tue Nov 8 07:18:04 2005
@@ -88,6 +88,14 @@
schedule( schedule, continuum );
}
+ public void unactivateSchedule( Schedule schedule, Continuum continuum )
+ throws SchedulesActivationException
+ {
+ getLogger().info( "Unactivating schedule " + schedule.getName() );
+
+ unschedule( schedule, continuum );
+ }
+
protected void schedule( Schedule schedule, Continuum continuum )
throws SchedulesActivationException
{
@@ -144,6 +152,26 @@
catch ( ContinuumSchedulerException e )
{
throw new SchedulesActivationException( "Cannot schedule build job.", e );
+ }
+ }
+
+ protected void unschedule( Schedule schedule, Continuum continuum )
+ throws SchedulesActivationException
+ {
+ try
+ {
+ if ( schedule.isActive() )
+ {
+ getLogger().info( "Stopping active schedule \"" + schedule.getName() + "\"." );
+
+ scheduler.interruptSchedule( schedule.getName(), Scheduler.DEFAULT_GROUP );
+ }
+
+ scheduler.unscheduleJob( schedule.getName(), Scheduler.DEFAULT_GROUP );
+ }
+ catch ( ContinuumSchedulerException e )
+ {
+ throw new SchedulesActivationException( "Cannot unschedule build job \"" + schedule.getName() + "\".", e );
}
}
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java?rev=331829&r1=331828&r2=331829&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumBuildJob.java Tue Nov 8 07:18:04 2005
@@ -20,19 +20,27 @@
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.model.project.Schedule;
import org.codehaus.plexus.logging.Logger;
-import org.quartz.Job;
+import org.quartz.InterruptableJob;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
+import org.quartz.UnableToInterruptJobException;
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
* @version $Id$
*/
public class ContinuumBuildJob
- implements Job
+ implements InterruptableJob
{
+ private boolean interrupted;
+
public void execute( JobExecutionContext context )
{
+ if ( interrupted )
+ {
+ return;
+ }
+
// ----------------------------------------------------------------------
// Get the job detail
// ----------------------------------------------------------------------
@@ -72,33 +80,11 @@
catch( InterruptedException e )
{
}
+ }
- /*
-
- Continuum continuum = (Continuum) jobDetail.getJobDataMap().get( ContinuumSchedulerConstants.CONTINUUM );
-
- ContinuumBuildSettings buildSettings = (ContinuumBuildSettings) jobDetail.getJobDataMap().get( ContinuumSchedulerConstants.BUILD_SETTINGS );
-
- // ----------------------------------------------------------------------
- // Lookup all the project groups that belong to these build settings
- // ----------------------------------------------------------------------
-
- Set projectGroups = buildSettings.getProjectGroups();
-
- for ( Iterator iterator = projectGroups.iterator(); iterator.hasNext(); )
- {
- ContinuumProjectGroup projectGroup = (ContinuumProjectGroup) iterator.next();
-
- try
- {
- continuum.buildProjectGroup( projectGroup, buildSettings );
- }
- catch ( ContinuumException e )
- {
- logger.error( "Error building project group.", e );
- }
- }
-
- */
+ public void interrupt()
+ throws UnableToInterruptJobException
+ {
+ interrupted = true;
}
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumScheduler.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumScheduler.java?rev=331829&r1=331828&r2=331829&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumScheduler.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/ContinuumScheduler.java Tue Nov 8 07:18:04 2005
@@ -32,4 +32,9 @@
void addGlobalTriggerListener( TriggerListener listener );
+ void unscheduleJob( String jobName, String groupName )
+ throws ContinuumSchedulerException;
+
+ boolean interruptSchedule( String jobName, String groupName )
+ throws ContinuumSchedulerException;
}
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/DefaultContinuumScheduler.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/DefaultContinuumScheduler.java?rev=331829&r1=331828&r2=331829&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/DefaultContinuumScheduler.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/scheduler/DefaultContinuumScheduler.java Tue Nov 8 07:18:04 2005
@@ -106,6 +106,35 @@
}
}
+ public void unscheduleJob( String jobName, String groupName )
+ throws ContinuumSchedulerException
+ {
+ try
+ {
+ if ( jobExists( jobName, groupName ) )
+ {
+ scheduler.deleteJob( jobName, groupName );
+ }
+ }
+ catch ( SchedulerException e )
+ {
+ throw new ContinuumSchedulerException( "Error unscheduling job.", e );
+ }
+ }
+
+ public boolean interruptSchedule( String jobName, String groupName )
+ throws ContinuumSchedulerException
+ {
+ try
+ {
+ return scheduler.interrupt( jobName, groupName );
+ }
+ catch ( Exception e )
+ {
+ throw new ContinuumSchedulerException( "Can't interrup job \"" + jobName + "\".", e );
+ }
+ }
+
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
Modified: maven/continuum/trunk/continuum-web/src/main/resources/templates/screens/DeleteSchedule.vm
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-web/src/main/resources/templates/screens/DeleteSchedule.vm?rev=331829&r1=331828&r2=331829&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-web/src/main/resources/templates/screens/DeleteSchedule.vm (original)
+++ maven/continuum/trunk/continuum-web/src/main/resources/templates/screens/DeleteSchedule.vm Tue Nov 8 07:18:04 2005
@@ -1,4 +1,4 @@
-$page.setTitle( "Delete Project" )
+$page.setTitle( $i18n.getString( $form.delete.titleKey ) )
<div class="app">
<div id="axial" class="h3">