Package org.eclipse.jetty.util
Class Scanner
- java.lang.Object
-
- org.eclipse.jetty.util.component.AbstractLifeCycle
-
- org.eclipse.jetty.util.Scanner
-
- All Implemented Interfaces:
LifeCycle
public class Scanner extends AbstractLifeCycle
Scanner Utility for scanning a directory for added, removed and changed files and reporting these events via registered Listeners.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
Scanner.BulkListener
static interface
Scanner.DiscreteListener
static interface
Scanner.Listener
Listener Marker for notifications re file changes.static class
Scanner.Notification
static interface
Scanner.ScanCycleListener
Listener that notifies when a scan has started and when it has ended.static interface
Scanner.ScanListener
-
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener
-
-
Constructor Summary
Constructors Constructor Description Scanner()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addListener(Scanner.Listener listener)
Add an added/removed/changed listenervoid
addScanDir(java.io.File dir)
void
doStart()
Start the scanning action.void
doStop()
Stop the scanning.boolean
exists(java.lang.String path)
java.io.FilenameFilter
getFilenameFilter()
Get any filter applied to files in the scan dir.boolean
getRecursive()
boolean
getReportDirs()
boolean
getReportExistingFilesOnStartup()
int
getScanDepth()
Get the scanDepth.java.util.List<java.io.File>
getScanDirs()
int
getScanInterval()
Get the scan intervaljava.util.Timer
newTimer()
java.util.TimerTask
newTimerTask()
void
removeListener(Scanner.Listener listener)
Remove a registered listenervoid
scan()
Perform a pass of the scanner and report changesvoid
scanFiles()
Recursively scan all files in the designated directories.void
schedule()
void
setFilenameFilter(java.io.FilenameFilter filter)
Apply a filter to files found in the scan directory.void
setRecursive(boolean recursive)
void
setReportDirs(boolean dirs)
Set if found directories should be reported.void
setReportExistingFilesOnStartup(boolean reportExisting)
Whether or not an initial scan will report all files as being added.void
setScanDepth(int scanDepth)
Set the scanDepth.void
setScanDirs(java.util.List<java.io.File> dirs)
void
setScanInterval(int scanInterval)
Set the scan interval-
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, setStopTimeout, start, stop, toString
-
-
-
-
Method Detail
-
getScanInterval
public int getScanInterval()
Get the scan interval- Returns:
- interval between scans in seconds
-
setScanInterval
public void setScanInterval(int scanInterval)
Set the scan interval- Parameters:
scanInterval
- pause between scans in seconds, or 0 for no scan after the initial scan.
-
setScanDirs
public void setScanDirs(java.util.List<java.io.File> dirs)
-
addScanDir
public void addScanDir(java.io.File dir)
-
getScanDirs
public java.util.List<java.io.File> getScanDirs()
-
setRecursive
public void setRecursive(boolean recursive)
- Parameters:
recursive
- True if scanning is recursive- See Also:
setScanDepth(int)
-
getRecursive
public boolean getRecursive()
- Returns:
- True if scanning is fully recursive (scandepth==-1)
- See Also:
getScanDepth()
-
getScanDepth
public int getScanDepth()
Get the scanDepth.- Returns:
- the scanDepth
-
setScanDepth
public void setScanDepth(int scanDepth)
Set the scanDepth.- Parameters:
scanDepth
- the scanDepth to set
-
setFilenameFilter
public void setFilenameFilter(java.io.FilenameFilter filter)
Apply a filter to files found in the scan directory. Only files matching the filter will be reported as added/changed/removed.- Parameters:
filter
- the filename filter to use
-
getFilenameFilter
public java.io.FilenameFilter getFilenameFilter()
Get any filter applied to files in the scan dir.- Returns:
- the filename filter
-
setReportExistingFilesOnStartup
public void setReportExistingFilesOnStartup(boolean reportExisting)
Whether or not an initial scan will report all files as being added.- Parameters:
reportExisting
- if true, all files found on initial scan will be reported as being added, otherwise not
-
getReportExistingFilesOnStartup
public boolean getReportExistingFilesOnStartup()
-
setReportDirs
public void setReportDirs(boolean dirs)
Set if found directories should be reported.- Parameters:
dirs
- true to report directory changes as well
-
getReportDirs
public boolean getReportDirs()
-
addListener
public void addListener(Scanner.Listener listener)
Add an added/removed/changed listener- Parameters:
listener
- the listener to add
-
removeListener
public void removeListener(Scanner.Listener listener)
Remove a registered listener- Parameters:
listener
- the Listener to be removed
-
doStart
public void doStart()
Start the scanning action.- Overrides:
doStart
in classAbstractLifeCycle
-
newTimerTask
public java.util.TimerTask newTimerTask()
-
newTimer
public java.util.Timer newTimer()
-
schedule
public void schedule()
-
doStop
public void doStop()
Stop the scanning.- Overrides:
doStop
in classAbstractLifeCycle
-
exists
public boolean exists(java.lang.String path)
- Parameters:
path
- tests if the path exists- Returns:
- true if the path exists in one of the scandirs
-
scan
public void scan()
Perform a pass of the scanner and report changes
-
scanFiles
public void scanFiles()
Recursively scan all files in the designated directories.
-
-