DART's PluginManager provides methods that allow the application to discover and load plugins. DART uses the findById method to load individual plugins, and the following methods to discover available plugins:
getModuleCollection() - This returns information about plugins of a specified type, such as Repo Clients or Network Clients. The list of plugins returned by this method appears on some configuration screens. For example, when a user sets up a new StorageService, a list of available network clients appears so the user can choose which client/protocol should be used to communicate with that service.
DART's JobRunner uses the methods canRead(), canWrite(), implementsProtocol(), talksTo(), and setsUp() to figure out which plugins to use to complete each operation within a job.