Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jboss.varia.scheduler
Class AbstractScheduleProvider

    java.lang.Object
      org.jboss.mx.util.JBossNotificationBroadcasterSupport
          org.jboss.system.ServiceMBeanSupport
              org.jboss.ha.jmx.HAServiceMBeanSupport
                  org.jboss.ha.singleton.HASingletonSupport
                      org.jboss.varia.scheduler.AbstractScheduleProvider

All Implemented Interfaces:
  AbstractScheduleProviderMBean, org.jboss.ha.jmx.HAServiceMBean, org.jboss.ha.singleton.HASingleton, org.jboss.ha.singleton.HASingletonMBean, javax.management.MBeanRegistration, javax.management.NotificationBroadcaster, javax.management.NotificationEmitter, org.jboss.system.Service, org.jboss.system.ServiceMBean

Direct Known Subclasses:
  DBScheduleProvider, SingleScheduleProvider, XMLScheduleProvider

public abstract class AbstractScheduleProvider
extends org.jboss.ha.singleton.HASingletonSupport
implements AbstractScheduleProviderMBean

Abstract Base Class for Schedule Provider. Any Schedule Provider should extend from this class or must provide the MBean Interface methods. This class is cluster aware and allows the use of the HASingleton MBean attribute to control whether or not it should run as a singleton service or not. When HASingleton is set to true the MBean will usually declare dependency on a cluster partition. When not explicitly set the attribute defaults to false.

Version:
  $Revision: 1.5 $
Author:
  Andreas Schaefer, Ivelin Ivanov

Field Summary

Fields inherited from class org.jboss.system.ServiceMBeanSupport
`log, server, SERVICE_CONTROLLER_SIG, serviceName`

Fields inherited from interface org.jboss.varia.scheduler.AbstractScheduleProviderMBean
`OBJECT_NAME`

Fields inherited from interface org.jboss.system.ServiceMBean
`CREATE_EVENT, CREATED, DESTROY_EVENT, DESTROYED, FAILED, REGISTERED, START_EVENT, STARTED, STARTING, states, STOP_EVENT, STOPPED, STOPPING, UNREGISTERED`

Constructor Summary
`AbstractScheduleProvider()` Default (no-args) Constructor

Method Summary
`protected int` | `addSchedule(javax.management.ObjectName pTarget, String pMethodName, String[] pMethodSignature, Date pStart, long pPeriod, int pRepetitions)` Add a single Schedule add the Schedule Manager
`String` | `getScheduleManagerName()` Get the Schedule Manager Name
`boolean` | `isHASingleton()` determines whether or not the service is clustered singleton
`protected void` | `removeSchedule(int pID)` Remove a Schedule from the Schedule Manager
`void` | `setHASingleton(boolean hasingleton)` determines whether or not the service is clustered singleton
`void` | `setScheduleManagerName(String pSchedulerManagerName)` Set the Schedule Manager Name
`abstract void` | `startProviding()` Add the Schedules to the Schedule Manager
`protected void` | `startScheduleProviderService()` When the Service is started it will register itself at the Schedule Manager which makes it necessary that the Schedule Manager is already running.
`protected void` | `startService()`
`void` | `startSingleton()` When HASingleton is enabled, this method will be invoked on the master node to start the singleton.
`abstract void` | `stopProviding()` Stops the Provider from providing and causing him to remove all Schedules
`protected void` | `stopScheduleProviderService()` When the Service is stopped it will unregister itself at the Schedule Manager.
`protected void` | `stopService()`
`void` | `stopSingleton()` When HASingleton is enabled, this method will be invoked on the master node to stop the singleton.

Methods inherited from class org.jboss.ha.singleton.HASingletonSupport
`_stopOldMaster, isMasterNode, makeThisNodeMaster, partitionTopologyChanged`

Methods inherited from class org.jboss.ha.jmx.HAServiceMBeanSupport
`_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
`create, createService, destroy, destroyService, getLog, getName, getNextNotificationSequenceNumber, getObjectName, 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
`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.singleton.HASingletonMBean
`isMasterNode`

Methods inherited from interface org.jboss.ha.jmx.HAServiceMBean
`callMethodOnPartition, getDistributedState, getPartitionName, sendNotification, setDistributedState, setPartitionName`

Methods inherited from interface org.jboss.system.ServiceMBean
`getName, getState, getStateString, jbossInternalLifecycle`

Methods inherited from interface org.jboss.system.Service
`create, destroy, start, stop`

Methods inherited from interface javax.management.NotificationBroadcaster
`addNotificationListener, getNotificationInfo, removeNotificationListener`

Constructor Detail

### AbstractScheduleProvider

    public AbstractScheduleProvider()

  Default (no-args) Constructor

Method Detail

### getScheduleManagerName

    public String getScheduleManagerName()

  Get the Schedule Manager Name

  Specified by:
    `getScheduleManagerName` in interface `AbstractScheduleProviderMBean`

### setScheduleManagerName

    public void setScheduleManagerName(String pSchedulerManagerName)
                                throws javax.management.MalformedObjectNameException

  Set the Schedule Manager Name

  Specified by:
    `setScheduleManagerName` in interface `AbstractScheduleProviderMBean`
  Throws:
    `javax.management.MalformedObjectNameException`

### startProviding

    public abstract void startProviding()
                                 throws Exception

  Add the Schedules to the Schedule Manager

  Specified by:
    `startProviding` in interface `AbstractScheduleProviderMBean`
  Throws:
    `Exception`

### stopProviding

    public abstract void stopProviding()

  Stops the Provider from providing and causing him to remove all Schedules

  Specified by:
    `stopProviding` in interface `AbstractScheduleProviderMBean`

### addSchedule

    protected int addSchedule(javax.management.ObjectName pTarget,
                              String pMethodName,
                              String[] pMethodSignature,
                              Date pStart,
                              long pPeriod,
                              int pRepetitions)
                       throws javax.management.JMException

  Add a single Schedule add the Schedule Manager

  Parameters:
    `pTarget` - Object Name of the target MBean (receiver of the time notification)
    `pMethodName` - Name of the Method to be called on the target
    `pMethodSignature` - Signature of the Method
    `pStart` - Date when the Schedule has to start
    `pPeriod` - Time between two notifications
    `pRepetitions` - Number of repetitions (-1 for unlimited)
  Returns:
    Identification of the Schedule which is used to remove it later
  Throws:
    `javax.management.JMException`

### removeSchedule

    protected void removeSchedule(int pID)
                           throws javax.management.JMException

  Remove a Schedule from the Schedule Manager

  Parameters:
    `pID` - Identification of the Schedule
  Throws:
    `javax.management.JMException`

### startScheduleProviderService

    protected void startScheduleProviderService()
                                         throws javax.management.InstanceNotFoundException,
                                                javax.management.MBeanException,
                                                javax.management.ReflectionException

  When the Service is started it will register itself at the Schedule Manager which makes it necessary that the Schedule Manager is already running. This allows the Schedule Manager to call `startProviding()` which is the point to for the Provider to add the Schedules on the Schedule Manager. ATTENTION: If you overwrite this method in a subclass you have to call this method (super.startService())

  Throws:
    `javax.management.InstanceNotFoundException`
    `javax.management.MBeanException`
    `javax.management.ReflectionException`

### stopScheduleProviderService

    protected void stopScheduleProviderService()
                                        throws javax.management.InstanceNotFoundException,
                                               javax.management.MBeanException,
                                               javax.management.ReflectionException

  When the Service is stopped it will unregister itself at the Schedule Manager. This allws the Schedule Manager to remove the Provider from its list and then call `stopProviding()` which is the point for the Provider to remove the Schedules from the Schedule Manager. ATTENTION: If you overwrite this method in a subclass you have to call this method (super.stopService())

  Throws:
    `javax.management.InstanceNotFoundException`
    `javax.management.MBeanException`
    `javax.management.ReflectionException`

### startService

    protected void startService()
                         throws Exception

  Throws:
    `Exception`

### stopService

    protected void stopService()
                        throws Exception

  Throws:
    `Exception`

### startSingleton

    public void startSingleton()

  When HASingleton is enabled, this method will be invoked on the master node to start the singleton.

  Specified by:
    `startSingleton` in interface `org.jboss.ha.singleton.HASingleton`
  See Also:
    `HASingletonSupport`

### stopSingleton

    public void stopSingleton()

  When HASingleton is enabled, this method will be invoked on the master node to stop the singleton.

  Specified by:
    `stopSingleton` in interface `org.jboss.ha.singleton.HASingleton`
  See Also:
    `HASingletonSupport`

### isHASingleton

    public boolean isHASingleton()

  determines whether or not the service is clustered singleton

  Specified by:
    `isHASingleton` in interface `AbstractScheduleProviderMBean`

### setHASingleton

    public void setHASingleton(boolean hasingleton)

  determines whether or not the service is clustered singleton

  Specified by:
    `setHASingleton` in interface `AbstractScheduleProviderMBean`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002 JBoss Group, LLC. All Rights Reserved.