Interface Scanner
- All Known Implementing Classes:
DirectoryScanner,EmptyScanner,FileListScanner,ForwardingScanner,RosterFileScanner
public interface Scanner
Monitors some hypothetical space for deployed plugins. Due to limitations in the plugin system, plugins must
at some point be represented as files, so for situations where plugins are not files (i.e. database-stored
plugins) the scanner is responsible for copying them to the filesystem before they are used)
- Since:
- 2.1.0
-
Method Summary
Modifier and TypeMethodDescriptionGets all deployment units currently being tracked by the scanner.voidremove(DeploymentUnit unit) Remove the specified deployment unit in such a way as it will not be picked up by subsequent scans, even if the system is restarted.voidreset()Reset the scanner.scan()Scan for new deployment units.
-
Method Details
-
scan
Collection<DeploymentUnit> scan()Scan for new deployment units. On the first scan, all deployment units that the scanner can find will be returned. Subsequent scans will only return deployment units that are new since the last scan (or call to reset() or clear())- Returns:
- all new deployment units since the last scan
-
getDeploymentUnits
Collection<DeploymentUnit> getDeploymentUnits()Gets all deployment units currently being tracked by the scanner. This will not trigger a scan, meaning that plugins that have been added since the last scan will not be returned.- Returns:
- a collection of all deployment units currently being tracked by the scanner.
-
reset
void reset()Reset the scanner. This causes it to forget all state about which plugins have (or haven't) been loaded. -
remove
Remove the specified deployment unit in such a way as it will not be picked up by subsequent scans, even if the system is restarted.- Parameters:
unit- the deployment unit to remove- Throws:
PluginException- if the unit has not been properly removed: i.e. a restart would mean the unit would be reloaded.
-