Class SchedulerPluginWithUserTransactionSupport
- java.lang.Object
-
- org.quartz.plugins.SchedulerPluginWithUserTransactionSupport
-
- All Implemented Interfaces:
SchedulerPlugin
- Direct Known Subclasses:
XMLSchedulingDataProcessorPlugin
public abstract class SchedulerPluginWithUserTransactionSupport extends java.lang.Object implements SchedulerPlugin
Base class for plugins that wish to support having their start and shutdown methods run within aUserTransaction
. This is often necessary if using the JobStoreCMT and the plugin interacts with jobs/triggers.The subclass should implement start(UserTransaction) and shutdown(UserTransaction). The
UserTransaction
will be non-null if property wrapInUserTransaction is set to true.For convenience, this base class also provides an initialize() implementation which saves the scheduler and plugin name, as well as getLog() for logging.
-
-
Constructor Summary
Constructors Constructor Description SchedulerPluginWithUserTransactionSupport()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.slf4j.Logger
getLog()
Get the commons Logger for this class.protected java.lang.String
getName()
Get the name of this plugin.protected Scheduler
getScheduler()
Get this plugin'sScheduler
.boolean
getWrapInUserTransaction()
Wrap the start() and shutdown() methods in a UserTransaction.void
initialize(java.lang.String pname, Scheduler sched)
void
setWrapInUserTransaction(boolean wrapInUserTransaction)
Wrap the start() and shutdown() methods in a UserTransaction.void
shutdown()
Based on the value of wrapInUserTransaction, wraps the call to shutdown(UserTransaction) in a UserTransaction.protected void
shutdown(javax.transaction.UserTransaction userTransaction)
Called in order to inform theSchedulerPlugin
that it should free up all of it's resources because the scheduler is shutting down.void
start()
Based on the value of wrapInUserTransaction, wraps the call to start(UserTransaction) in a UserTransaction.protected void
start(javax.transaction.UserTransaction userTransaction)
Called when the associatedScheduler
is started, in order to let the plug-in know it can now make calls into the scheduler if it needs to.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.quartz.spi.SchedulerPlugin
initialize
-
-
-
-
Method Detail
-
start
protected void start(javax.transaction.UserTransaction userTransaction)
Called when the associated
Scheduler
is started, in order to let the plug-in know it can now make calls into the scheduler if it needs to.If UserTransaction is not null, the plugin can call setRollbackOnly() on it to signal that the wrapped transaction should rollback.
- Parameters:
userTransaction
- The UserTranaction object used to provide a transaction around the start() operation. It will be null if wrapInUserTransaction is false or if the transaction failed to be started.
-
shutdown
protected void shutdown(javax.transaction.UserTransaction userTransaction)
Called in order to inform the
SchedulerPlugin
that it should free up all of it's resources because the scheduler is shutting down.If UserTransaction is not null, the plugin can call setRollbackOnly() on it to signal that the wrapped transaction should rollback.
- Parameters:
userTransaction
- The UserTranaction object used to provide a transaction around the shutdown() operation. It will be null if wrapInUserTransaction is false or if the transaction failed to be started.
-
getLog
protected org.slf4j.Logger getLog()
Get the commons Logger for this class.
-
getName
protected java.lang.String getName()
Get the name of this plugin. Set as part of initialize().
-
getScheduler
protected Scheduler getScheduler()
Get this plugin'sScheduler
. Set as part of initialize().
-
initialize
public void initialize(java.lang.String pname, Scheduler sched) throws SchedulerException
- Throws:
SchedulerException
-
getWrapInUserTransaction
public boolean getWrapInUserTransaction()
Wrap the start() and shutdown() methods in a UserTransaction. This is necessary for some plugins if using the JobStoreCMT.
-
setWrapInUserTransaction
public void setWrapInUserTransaction(boolean wrapInUserTransaction)
Wrap the start() and shutdown() methods in a UserTransaction. This is necessary for some plugins if using the JobStoreCMT.
-
start
public void start()
Based on the value of wrapInUserTransaction, wraps the call to start(UserTransaction) in a UserTransaction.- Specified by:
start
in interfaceSchedulerPlugin
-
shutdown
public void shutdown()
Based on the value of wrapInUserTransaction, wraps the call to shutdown(UserTransaction) in a UserTransaction.- Specified by:
shutdown
in interfaceSchedulerPlugin
-
-