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 interfaceScanner.BulkListenerstatic interfaceScanner.DiscreteListenerstatic interfaceScanner.ListenerListener Marker for notifications re file changes.static classScanner.Notificationstatic interfaceScanner.ScanCycleListenerListener that notifies when a scan has started and when it has ended.static interfaceScanner.ScanListener-
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_SCAN_DEPTHWhen walking a directory, a depth of 1 ensures that the directory's descendants are visited, not just the directory itself (as a file).static intMAX_SCAN_DEPTH
-
Constructor Summary
Constructors Constructor Description Scanner()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description IncludeExcludeSet<java.nio.file.PathMatcher,java.nio.file.Path>addDirectory(java.nio.file.Path p)Add a directory to be scanned.voidaddFile(java.nio.file.Path p)Add a file to be scanned.voidaddListener(Scanner.Listener listener)Add an added/removed/changed listenervoidaddScanDir(java.io.File dir)Deprecated.voiddoStart()Start the scanning action.voiddoStop()Stop the scanning.booleanexists(java.lang.String path)java.io.FilenameFiltergetFilenameFilter()Deprecated.booleangetRecursive()Deprecated.booleangetReportDirs()booleangetReportExistingFilesOnStartup()intgetScanDepth()Get the scanDepth.java.util.List<java.io.File>getScanDirs()Deprecated.intgetScanInterval()Get the scan intervaljava.util.Set<java.nio.file.Path>getScannables()java.util.TimernewTimer()java.util.TimerTasknewTimerTask()voidremoveListener(Scanner.Listener listener)Remove a registered listenervoidreset()Clear the list of scannables.voidscan()Perform a pass of the scanner and report changesvoidscanFiles()Scan all of the given paths.voidschedule()voidsetFilenameFilter(java.io.FilenameFilter filter)Deprecated.voidsetRecursive(boolean recursive)Deprecated.voidsetReportDirs(boolean dirs)Set if found directories should be reported.voidsetReportExistingFilesOnStartup(boolean reportExisting)Whether or not an initial scan will report all files as being added.voidsetScanDepth(int scanDepth)Set the scanDepth.voidsetScanDirs(java.util.List<java.io.File> dirs)voidsetScanInterval(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
-
-
-
-
Field Detail
-
DEFAULT_SCAN_DEPTH
public static final int DEFAULT_SCAN_DEPTH
When walking a directory, a depth of 1 ensures that the directory's descendants are visited, not just the directory itself (as a file).- See Also:
FileVisitor.preVisitDirectory(java.nio.file.Path, java.nio.file.attribute.BasicFileAttributes), Constant Field Values
-
MAX_SCAN_DEPTH
public static final int MAX_SCAN_DEPTH
- See Also:
- Constant Field Values
-
-
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
@Deprecated public void addScanDir(java.io.File dir)
Deprecated.
-
addFile
public void addFile(java.nio.file.Path p) throws java.io.IOExceptionAdd a file to be scanned. The file must not be null, and must exist.- Parameters:
p- the Path of the file to scan.- Throws:
java.io.IOException
-
addDirectory
public IncludeExcludeSet<java.nio.file.PathMatcher,java.nio.file.Path> addDirectory(java.nio.file.Path p) throws java.io.IOException
Add a directory to be scanned. The directory must not be null and must exist.- Parameters:
p- the directory to scan.- Returns:
- an IncludeExcludeSet to which the caller can add PathMatcher patterns to match
- Throws:
java.io.IOException
-
getScanDirs
@Deprecated public java.util.List<java.io.File> getScanDirs()
Deprecated.
-
getScannables
public java.util.Set<java.nio.file.Path> getScannables()
-
setRecursive
@Deprecated public void setRecursive(boolean recursive)
Deprecated.- Parameters:
recursive- True if scanning is recursive- See Also:
setScanDepth(int)
-
getRecursive
@Deprecated public boolean getRecursive()
Deprecated.- Returns:
- True if scanning is recursive
- 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
@Deprecated public void setFilenameFilter(java.io.FilenameFilter filter)
Deprecated.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
@Deprecated public java.io.FilenameFilter getFilenameFilter()
Deprecated.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:
doStartin 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:
doStopin classAbstractLifeCycle
-
reset
public void reset()
Clear the list of scannables. The scanner must first be in the stopped state.
-
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()
Scan all of the given paths.
-
-