Package com.iizigo
Class JobRescheduler
- java.lang.Object
-
- com.iizigo.JobRescheduler
-
- All Implemented Interfaces:
org.eclipse.core.runtime.jobs.IJobChangeListener
public class JobRescheduler extends java.lang.Object implements org.eclipse.core.runtime.jobs.IJobChangeListener
Class that is used to resquedule all jobs but certain ones. This is used during project loading and workbench start-up.- Author:
- Christopher Mindus
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
aboutToRun(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
Reschedules all jobs that are not listed as exceptions.void
addExceptionJob(org.eclipse.core.runtime.jobs.Job job)
Adds a job as exception to what is allowed to run without being rescheduled.void
awake(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
void
done(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
Called when a job is done (cancel, failure or success).static JobRescheduler
getRunnningInstance()
Gets the started instance.static void
initialize()
Initializes the rescheduler at startup.static boolean
isRunning()
Checks if the rescheduler is started.void
running(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
void
scheduled(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
void
sleeping(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
static boolean
start(java.lang.String why, boolean holdBuildJobsOnly)
Static method to start the job rescheduler.static boolean
stop()
Static method to stop the job rescheduler.
-
-
-
Method Detail
-
initialize
public static void initialize()
Initializes the rescheduler at startup. This method should be called from many threads and as soon as possible. Only one instance can be started anyway.
-
start
public static boolean start(java.lang.String why, boolean holdBuildJobsOnly)
Static method to start the job rescheduler. 71- Parameters:
why
- Short description why the rescheduler is needed, e.g. "Startup" or "Project loading".holdBuildJobsOnly
- Flag to hold build jobs only.- Returns:
- true for success, false if it cannot be started yet, or if one is already running.
-
isRunning
public static boolean isRunning()
Checks if the rescheduler is started.- Returns:
- true if rescheduler is started, false otherwise.
-
stop
public static boolean stop()
Static method to stop the job rescheduler.- Returns:
- true for success, false if not started.
-
getRunnningInstance
public static JobRescheduler getRunnningInstance()
Gets the started instance.- Returns:
- The started instance of the rescheduler, or null for none.
-
addExceptionJob
public void addExceptionJob(org.eclipse.core.runtime.jobs.Job job)
Adds a job as exception to what is allowed to run without being rescheduled.- Parameters:
job
- The job to allow even if the rescheduler is active.
-
aboutToRun
public void aboutToRun(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
Reschedules all jobs that are not listed as exceptions.- Specified by:
aboutToRun
in interfaceorg.eclipse.core.runtime.jobs.IJobChangeListener
- Parameters:
event
- The job change event.
-
done
public void done(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
Called when a job is done (cancel, failure or success).- Specified by:
done
in interfaceorg.eclipse.core.runtime.jobs.IJobChangeListener
-
awake
public void awake(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
- Specified by:
awake
in interfaceorg.eclipse.core.runtime.jobs.IJobChangeListener
-
running
public void running(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
- Specified by:
running
in interfaceorg.eclipse.core.runtime.jobs.IJobChangeListener
-
scheduled
public void scheduled(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
- Specified by:
scheduled
in interfaceorg.eclipse.core.runtime.jobs.IJobChangeListener
-
sleeping
public void sleeping(org.eclipse.core.runtime.jobs.IJobChangeEvent event)
- Specified by:
sleeping
in interfaceorg.eclipse.core.runtime.jobs.IJobChangeListener
-
-