com.atlassian.crowd.manager.directory.monitor.poller
Class AbstractQuartzDirectoryPollerManager

java.lang.Object
  extended by com.atlassian.crowd.manager.directory.monitor.poller.AbstractQuartzDirectoryPollerManager
All Implemented Interfaces:
DirectoryPollerManager
Direct Known Subclasses:
QuartzDirectoryPollerManager, SpringQuartzDirectoryPollerManager

public abstract class AbstractQuartzDirectoryPollerManager
extends Object
implements DirectoryPollerManager


Field Summary
static String DIRECTORY_POLLER_JOB_GROUP
           
 
Constructor Summary
AbstractQuartzDirectoryPollerManager()
           
 
Method Summary
 void addPoller(DirectoryPoller poller)
          Adds a configured DirectoryPoller to the scheduler.
protected abstract  org.quartz.JobDetail buildJobDetail(DirectoryPoller poller)
           
protected abstract  org.quartz.Trigger buildTrigger(DirectoryPoller poller, org.quartz.JobDetail jobDetail)
           
protected  String getJobName(long directoryID)
           
protected abstract  org.quartz.Scheduler getScheduler()
           
 boolean hasPoller(long directoryID)
          Checks whether a DirectoryPoller is scheduled to poll a given directory.
 void removeAllPollers()
          Attempts to unregister all registered pollers.
 boolean removePoller(long directoryID)
          Removes the DirectoryPoller from the scheduler if one exists for the given directory.
 void triggerPoll(long directoryID, SynchronisationMode synchronisationMode)
          Manually triggers the directory poller to immediately poll the directory and synchronise changes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DIRECTORY_POLLER_JOB_GROUP

public static final String DIRECTORY_POLLER_JOB_GROUP
See Also:
Constant Field Values
Constructor Detail

AbstractQuartzDirectoryPollerManager

public AbstractQuartzDirectoryPollerManager()
Method Detail

addPoller

public void addPoller(DirectoryPoller poller)
               throws DirectoryMonitorRegistrationException
Description copied from interface: DirectoryPollerManager
Adds a configured DirectoryPoller to the scheduler.

Specified by:
addPoller in interface DirectoryPollerManager
Parameters:
poller - configured DirectoryPoller.
Throws:
DirectoryMonitorRegistrationException - error registering poller with scheduler.

buildJobDetail

protected abstract org.quartz.JobDetail buildJobDetail(DirectoryPoller poller)
                                                throws DirectoryMonitorRegistrationException
Throws:
DirectoryMonitorRegistrationException

buildTrigger

protected abstract org.quartz.Trigger buildTrigger(DirectoryPoller poller,
                                                   org.quartz.JobDetail jobDetail)
                                            throws DirectoryMonitorRegistrationException
Throws:
DirectoryMonitorRegistrationException

hasPoller

public boolean hasPoller(long directoryID)
Description copied from interface: DirectoryPollerManager
Checks whether a DirectoryPoller is scheduled to poll a given directory.

Specified by:
hasPoller in interface DirectoryPollerManager
Parameters:
directoryID - directory ID.
Returns:
true if and only if a poller has been scheduled.

triggerPoll

public void triggerPoll(long directoryID,
                        SynchronisationMode synchronisationMode)
Description copied from interface: DirectoryPollerManager
Manually triggers the directory poller to immediately poll the directory and synchronise changes. This can be used to asynchronously start a directory synchronisation using the underlying scheduler. If a manual poll is triggered while another poll is running, the manual poll will not queue (i.e. it will do nothing). You can check if a directory is currently synchronising by calling the DirectoryManager.isSynchronising(long). If the directory does not exist or has no poller associated with it, this method will do nothing. You can check if a directory has a poller associated with it by calling DirectoryPollerManager.hasPoller(long).

Specified by:
triggerPoll in interface DirectoryPollerManager
Parameters:
directoryID - directory ID.
synchronisationMode - determines whether the poll only requests elements that have changed since a timestamp or if it queries for the entire user base from the remote directory and determines changes locally.

removePoller

public boolean removePoller(long directoryID)
                     throws DirectoryMonitorUnregistrationException
Description copied from interface: DirectoryPollerManager
Removes the DirectoryPoller from the scheduler if one exists for the given directory.

Specified by:
removePoller in interface DirectoryPollerManager
Parameters:
directoryID - directory ID.
Returns:
true if and only if a poller existed and was removed from polling the given directory.
Throws:
DirectoryMonitorUnregistrationException - If an error occurs during remove.

removeAllPollers

public void removeAllPollers()
Description copied from interface: DirectoryPollerManager
Attempts to unregister all registered pollers. Skips over any directories that fail unregistration.

Specified by:
removeAllPollers in interface DirectoryPollerManager

getJobName

protected String getJobName(long directoryID)

getScheduler

protected abstract org.quartz.Scheduler getScheduler()


Copyright © 2013 Atlassian. All Rights Reserved.