public interface

Scanner

com.atlassian.plugin.loaders.classloading.Scanner

Class Overview

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)

Summary

Public Methods
abstract Collection<DeploymentUnit> getDeploymentUnits()
Gets all deployment units currently being tracked by the scanner.
abstract 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.
abstract void reset()
Reset the scanner.
abstract Collection<DeploymentUnit> scan()
Scan for new deployment units.

Public Methods

public abstract 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.

public abstract 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.

public abstract void reset ()

Reset the scanner. This causes it to forget all state about which plugins have (or haven't) been loaded.

public abstract 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