Plugins

NOTE! This document is outdated and has been replaced with newer documentation. See The database schema and the Data Layer API

This document explains how the data layer of plugins are implemented in BASE.

See also

Last updated: $Date: 2009-04-06 14:52:39 +0200 (må, 06 apr 2009) $


PluginDefinitionData

The PluginDefinitionData [API] holds information of the installed plugin classes. This information is saved when the plugin is installed, it's then used by the system to load and run the plugin.

PluginConfigurationData

PluginConfigurationData [API] is used for storing configuration values related to a plugin. A plugin may have many different configurations. The flags supportsConfigurations and requiresConfiguration are used to specify if a plugin must have or can't have any configurations.

Parameter values are versioned. Each time anyone updates a configuration the version number is increased and the parameter values are stored as a new entity. This is required because we want to be able to know exactly which parameters a job were using when it was executed. When a job is created we also store the parameter version number (JobData.parameterVersion). This means that even if someone changes the configuration later we will always know which parameters the job used.

PluginTypeData

The PluginTypeData [API] is used to register information about the additional interfaces a plugin implements. This may allow a plugins to be used only in certain contexts. For example, we define the AutoDetectingImporter interface which should be implemented by plugins support automatic detection of file formats. Then, client applications can load all such plugins and ask them to check if a file is importable or not.

JobData

The JobData [API] class holds information about one execution of a plugin. The job can be in different states:

JobAgentData and JobAgentSettingsData

A JobAgentData [API] holds information about a job agent. A job agent is a program running on the same or a different server that is regularly checking for jobs that are waiting to be executed. The JobAgentSettingsData [API] class links to the plugins the job agent is able to execute. The job agent will only execute jobs that are owner by users or projects that the job agent has been shared to with at least use permission. The priorityBoost property is used to give certain plugins higher priority.

Thus, for a job agent it is possible to: