org.jboss.deployment.scanner
Class AbstractDeploymentScanner

java.lang.Object
  extended byorg.jboss.mx.util.JBossNotificationBroadcasterSupport (src) 
      extended byorg.jboss.system.ServiceMBeanSupport (src) 
          extended byorg.jboss.deployment.scanner.AbstractDeploymentScanner
All Implemented Interfaces:
DeploymentScanner (src) , MBeanRegistration (src) , NotificationBroadcaster (src) , NotificationEmitter (src) , Service (src) , ServiceMBean (src)
Direct Known Subclasses:
URLDeploymentScanner (src) , URLDirectoryScanner (src)

public abstract class AbstractDeploymentScanner
extends ServiceMBeanSupport (src)
implements DeploymentScanner (src)

An abstract support class for implementing a deployment scanner.

Provides the implementation of period-based scanning, as well as Deployer integration.

Sub-classes only need to implement DeploymentScanner.scan().


Nested Class Summary
 class AbstractDeploymentScanner.ScannerThread (src)
          Should use Timer/TimerTask instead? This has some issues with interaction with ScanEnabled attribute.
 
Field Summary
protected  Deployer (src) deployer
          A proxy to the deployer we are using.
protected  MainDeployerMBean mainDeployer
           
protected  MuBoolean (src) scanEnabled
          True if period based scanning is enabled.
protected  AbstractDeploymentScanner.ScannerThread (src) scannerThread
          The scanner thread.
protected  MuLong (src) scanPeriod
          The scan period in milliseconds
 
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
AbstractDeploymentScanner()
           
 
Method Summary
protected  void createService()
          Sub-classes should override this method to provide custum 'create' logic.
protected  void destroyService()
          Sub-classes should override this method to provide custum 'destroy' logic.
 ObjectName (src) getDeployer()
          Get the ObjectName of the Deployer (src) which we are using.
 long getScanPeriod()
          Get the scan period for the scanner.
 boolean isScanEnabled()
          Check if period based scanning is enabled.
abstract  void scan()
          This is here to work around a bug in the IBM vm that causes an AbstractMethodError to be thrown when the ScannerThread calls scan.
 void setDeployer(ObjectName (src)  deployerName)
          The ObjectName of the Deployer (src) which we will use.
 void setScanEnabled(boolean flag)
          Disable or enable the period based deployment scanning.
 void setScanPeriod(long period)
          Period must be >= 0.
protected  void startService()
          Sub-classes should override this method to provide custum 'start' logic.
protected  void stopService()
          Sub-classes should override this method to provide custum 'stop' logic.
 
Methods inherited from class org.jboss.system.ServiceMBeanSupport (src)
create, destroy, 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 (src)
addNotificationListener, getNotificationInfo, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jboss.system.Service (src)
create, destroy, start, stop
 

Field Detail

scanPeriod

protected MuLong (src)  scanPeriod
The scan period in milliseconds


scanEnabled

protected MuBoolean (src)  scanEnabled
True if period based scanning is enabled.


deployer

protected Deployer (src)  deployer
A proxy to the deployer we are using.


mainDeployer

protected MainDeployerMBean mainDeployer

scannerThread

protected AbstractDeploymentScanner.ScannerThread (src)  scannerThread
The scanner thread.

Constructor Detail

AbstractDeploymentScanner

public AbstractDeploymentScanner()
Method Detail

setDeployer

public void setDeployer(ObjectName (src)  deployerName)
Description copied from interface: DeploymentScanner (src)
The ObjectName of the Deployer which we will use.

Specified by:
setDeployer in interface DeploymentScanner (src)
Parameters:
deployerName - The object name of the deployer to use.

getDeployer

public ObjectName (src)  getDeployer()
Description copied from interface: DeploymentScanner (src)
Get the ObjectName of the Deployer which we are using.

Specified by:
getDeployer in interface DeploymentScanner (src)
Returns:
The object name of the deployer we are using.

setScanPeriod

public void setScanPeriod(long period)
Period must be >= 0.

Specified by:
setScanPeriod in interface DeploymentScanner (src)
Parameters:
period - This is the time in milliseconds between scans.

getScanPeriod

public long getScanPeriod()
Description copied from interface: DeploymentScanner (src)
Get the scan period for the scanner.

Specified by:
getScanPeriod in interface DeploymentScanner (src)
Returns:
This is the time in milliseconds between scans.

setScanEnabled

public void setScanEnabled(boolean flag)
Description copied from interface: DeploymentScanner (src)
Disable or enable the period based deployment scanning.

Manual scanning can still be performed by calling DeploymentScanner.scan().

Specified by:
setScanEnabled in interface DeploymentScanner (src)
Parameters:
flag - True to enable or false to disable period based scanning.

isScanEnabled

public boolean isScanEnabled()
Description copied from interface: DeploymentScanner (src)
Check if period based scanning is enabled.

Specified by:
isScanEnabled in interface DeploymentScanner (src)
Returns:
True if enabled, false if disabled.

scan

public abstract void scan()
                   throws java.lang.Exception
This is here to work around a bug in the IBM vm that causes an AbstractMethodError to be thrown when the ScannerThread calls scan.

Specified by:
scan in interface DeploymentScanner (src)
Throws:
java.lang.Exception

createService

protected void createService()
                      throws java.lang.Exception
Description copied from class: ServiceMBeanSupport (src)
Sub-classes should override this method to provide custum 'create' logic.

This method is empty, and is provided for convenience when concrete service classes do not need to perform anything specific for this state change.

Overrides:
createService in class ServiceMBeanSupport (src)
Throws:
java.lang.Exception

startService

protected void startService()
                     throws java.lang.Exception
Description copied from class: ServiceMBeanSupport (src)
Sub-classes should override this method to provide custum 'start' logic.

This method is empty, and is provided for convenience when concrete service classes do not need to perform anything specific for this state change.

Overrides:
startService in class ServiceMBeanSupport (src)
Throws:
java.lang.Exception

stopService

protected void stopService()
                    throws java.lang.Exception
Description copied from class: ServiceMBeanSupport (src)
Sub-classes should override this method to provide custum 'stop' logic.

This method is empty, and is provided for convenience when concrete service classes do not need to perform anything specific for this state change.

Overrides:
stopService in class ServiceMBeanSupport (src)
Throws:
java.lang.Exception

destroyService

protected void destroyService()
                       throws java.lang.Exception
Description copied from class: ServiceMBeanSupport (src)
Sub-classes should override this method to provide custum 'destroy' logic.

This method is empty, and is provided for convenience when concrete service classes do not need to perform anything specific for this state change.

Overrides:
destroyService in class ServiceMBeanSupport (src)
Throws:
java.lang.Exception