org.jboss.varia.scheduler
Class SingleScheduleProvider

java.lang.Object
  extended byorg.jboss.mx.util.JBossNotificationBroadcasterSupport (src) 
      extended byorg.jboss.system.ServiceMBeanSupport (src) 
          extended byorg.jboss.ha.jmx.HAServiceMBeanSupport (src) 
              extended byorg.jboss.ha.singleton.HASingletonSupport (src) 
                  extended byorg.jboss.varia.scheduler.AbstractScheduleProvider (src) 
                      extended byorg.jboss.varia.scheduler.SingleScheduleProvider
All Implemented Interfaces:
HAServiceMBean (src) , HASingleton (src) , HASingletonMBean (src) , MBeanRegistration (src) , NotificationBroadcaster (src) , NotificationEmitter (src) , Service (src) , ServiceMBean (src)

public class SingleScheduleProvider
extends AbstractScheduleProvider (src)

This Provider adds a single Schedule to the Schedule Manager but you can create more than one of this MBeans and each will add a different Schedule even when the use the same Target. ATTENTION: This is the provider you used in the older Scheduler when you used a MBean as target.


Field Summary
 
Fields inherited from class org.jboss.system.ServiceMBeanSupport (src)
log, server, SERVICE_CONTROLLER_SIG, serviceName
 
Fields inherited from interface org.jboss.system.ServiceMBean (src)
CREATE_EVENT, CREATED, DESTROY_EVENT, DESTROYED, FAILED, REGISTERED, START_EVENT, STARTED, STARTING, states, STOP_EVENT, STOPPED, STOPPING, UNREGISTERED
 
Constructor Summary
SingleScheduleProvider()
          Default (no-args) Constructor
 
Method Summary
 java.lang.String getDateFormat()
           
 ObjectName (src) getObjectName(MBeanServer (src)  pServer, ObjectName (src)  pName)
          Sub-classes should override this method if they only need to set their object name during MBean pre-registration.
 long getPeriod()
           
 long getRepetitions()
           
 java.lang.String getStartDate()
           
 java.lang.String getTargetMethod()
           
 java.lang.String getTargetName()
           
 void setDateFormat(java.lang.String dateFormat)
          Sets the date format used to parse date/times
 void setPeriod(long pPeriod)
          Sets the Schedule Period between two scheduled call.
 void setRepetitions(long pNumberOfCalls)
          Sets the initial number of scheduled calls.
 void setStartDate(java.lang.String pStartDate)
          Sets the first scheduled call.
 void setTargetMethod(java.lang.String pTargetMethod)
          Sets the method name to be called on the Schedulable MBean.
 void setTargetName(java.lang.String pTargetObjectName)
          Sets the fully qualified JMX MBean Object Name of the Schedulable MBean to be called.
 void startProviding()
          Add the Schedules to the Schedule Manager
 void stopProviding()
          Stops the Provider from providing and causing him to remove all Schedules
 
Methods inherited from class org.jboss.varia.scheduler.AbstractScheduleProvider (src)
addSchedule, getScheduleManagerName, isHASingleton, removeSchedule, setHASingleton, setScheduleManagerName, startScheduleProviderService, startService, startSingleton, stopScheduleProviderService, stopService, stopSingleton
 
Methods inherited from class org.jboss.ha.singleton.HASingletonSupport (src)
_stopOldMaster, isMasterNode, makeThisNodeMaster, partitionTopologyChanged
 
Methods inherited from class org.jboss.ha.jmx.HAServiceMBeanSupport (src)
_receiveRemoteNotification, callAsyncMethodOnPartition, callMethodOnPartition, callMethodOnPartition, findHAPartitionWithName, getDistributedState, getPartition, getPartitionName, getServiceHAName, isDRMMasterReplica, registerDRMListener, registerRPCHandler, sendNotification, sendNotificationRemote, sendNotificationToLocalListeners, setDistributedState, setPartitionName, setupPartition, unregisterDRMListener, unregisterRPCHandler
 
Methods inherited from class org.jboss.system.ServiceMBeanSupport (src)
create, createService, destroy, destroyService, getLog, getName, getNextNotificationSequenceNumber, getServer, getServiceName, getState, getStateString, jbossInternalCreate, jbossInternalDescription, jbossInternalDestroy, jbossInternalLifecycle, jbossInternalStart, jbossInternalStop, postDeregister, postRegister, preDeregister, preRegister, start, stop
 
Methods inherited from class org.jboss.mx.util.JBossNotificationBroadcasterSupport (src)
addNotificationListener, getNotificationInfo, handleNotification, removeNotificationListener, removeNotificationListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jboss.ha.jmx.HAServiceMBean (src)
callMethodOnPartition, getDistributedState, getPartitionName, sendNotification, setDistributedState, setPartitionName
 
Methods inherited from interface org.jboss.system.ServiceMBean (src)
getName, getState, getStateString, jbossInternalLifecycle
 
Methods inherited from interface org.jboss.system.Service (src)
create, destroy, start, stop
 
Methods inherited from interface javax.management.NotificationBroadcaster (src)
addNotificationListener, getNotificationInfo, removeNotificationListener
 

Constructor Detail

SingleScheduleProvider

public SingleScheduleProvider()
Default (no-args) Constructor

Method Detail

startProviding

public void startProviding()
                    throws JMException (src) 
Description copied from class: AbstractScheduleProvider (src)
Add the Schedules to the Schedule Manager

Specified by:
startProviding in class AbstractScheduleProvider (src)
Throws:
JMException (src)

stopProviding

public void stopProviding()
Description copied from class: AbstractScheduleProvider (src)
Stops the Provider from providing and causing him to remove all Schedules

Specified by:
stopProviding in class AbstractScheduleProvider (src)

getTargetName

public java.lang.String getTargetName()
Returns:
Object Name of the Target MBean for the timer notifications

setTargetName

public void setTargetName(java.lang.String pTargetObjectName)
                   throws java.security.InvalidParameterException
Sets the fully qualified JMX MBean Object Name of the Schedulable MBean to be called.

Parameters:
pTargetObjectName - JMX MBean Object Name which should be called.
Throws:
java.security.InvalidParameterException - If the given value is an valid Object Name.

getTargetMethod

public java.lang.String getTargetMethod()
Returns:
Method description of the target MBean to be called

setTargetMethod

public void setTargetMethod(java.lang.String pTargetMethod)
                     throws java.security.InvalidParameterException
Sets the method name to be called on the Schedulable MBean. It can optionally be followed by an opening bracket, list of attributes (see below) and a closing bracket. The list of attributes can contain:
An example could be: "doSomething( NOTIFICATION, REPETITIONS, java.lang.String )" where the Scheduler will pass the timer's notification instance, the remaining repetitions as int and a null to the MBean's doSomething() method which must have the following signature: doSomething( javax.management.Notification, long, java.lang.String ).

Parameters:
pTargetMethod - Name of the method to be called optional followed by method arguments (see above).
Throws:
java.security.InvalidParameterException - If the given value is not of the right format

getPeriod

public long getPeriod()
Returns:
Schedule Period between two scheduled calls in Milliseconds. It will always be bigger than 0 except it returns -1 then the schedule is stopped.

setPeriod

public void setPeriod(long pPeriod)
Sets the Schedule Period between two scheduled call.

Parameters:
pPeriod - Time between to scheduled calls (after the initial call) in Milliseconds. This value must be bigger than 0.
Throws:
java.security.InvalidParameterException - If the given value is less or equal than 0

getDateFormat

public java.lang.String getDateFormat()
Returns:
the date format

setDateFormat

public void setDateFormat(java.lang.String dateFormat)
Sets the date format used to parse date/times

Parameters:
dateFormat - The date format when empty or null the locale is used to parse dates

getStartDate

public java.lang.String getStartDate()
Returns:
Date (and time) of the first scheduled. For value see #setInitialStartDate method.

setStartDate

public void setStartDate(java.lang.String pStartDate)
Sets the first scheduled call. If the date is in the past the scheduler tries to find the next available start date.

Parameters:
pStartDate - Date when the initial call is scheduled. It can be either:
  • NOW: date will be the current date (new Date()) plus 1 seconds
  • Date as String able to be parsed by SimpleDateFormat with default format
  • Date as String parsed using the date format attribute
  • Milliseconds since 1/1/1970
If the date is in the past the Scheduler will search a start date in the future with respect to the initial repe- titions and the period between calls. This means that when you restart the MBean (restarting JBoss etc.) it will start at the next scheduled time. When no start date is available in the future the Scheduler will not start.
Example: if you start your Schedulable everyday at Noon and you restart your JBoss server then it will start at the next Noon (the same if started before Noon or the next day if start after Noon).

getRepetitions

public long getRepetitions()
Returns:
Number of scheduled calls initially. If -1 then there is not limit.

setRepetitions

public void setRepetitions(long pNumberOfCalls)
Sets the initial number of scheduled calls.

Parameters:
pNumberOfCalls - Initial Number of scheduled calls. If -1 then the number is unlimted.
Throws:
java.security.InvalidParameterException - If the given value is less or equal than 0

getObjectName

public ObjectName (src)  getObjectName(MBeanServer (src)  pServer,
                                ObjectName (src)  pName)
                         throws MalformedObjectNameException (src) 
Description copied from class: ServiceMBeanSupport (src)
Sub-classes should override this method if they only need to set their object name during MBean pre-registration.

Overrides:
getObjectName in class ServiceMBeanSupport (src)
Throws:
MalformedObjectNameException (src)