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 Type
    Method
    Description
    Gets all deployment units currently being tracked by the scanner.
    void
    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.
    void
    Reset the scanner.
    Scan for new deployment units.
  • Method Details

    • 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

      void remove(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.
      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.