1.  Base Plugin

The EPlugin base class is an abstract class which provides the basic services for plugin implementations. The main services are:

See the Chapter 8, EPlugin for these details.

1.1. Definition of a Plugin

The base plugin XML definition. Subclasses of EPlugin extend this basic structure with additional parameters or elements as they require.

Note that there may be any number of e-plugin elements in a given plugin file, this may be used to simplify distribution of plugin packages.

	    
<?xml version="1.0">
<e-plugin-list>
  <e-plugin
    id="unique id"
    type="loader type"
    domain="translation domain" ?
    name="plugin name"
    ...>
    <description>long description</description> ?
    <hook
      class="hook class"
      ...>
    ...
    </hook> +
  </e-plugin> +
</e-plugin-list>
id
A unique string identifying this plugin. By convention this will follow the java-like class namespace system. e.g. com.ximian.evolution.test-plugin
type
The type name of the plugin loader. Currently shlib and mono are the only supported values. If no known handler is registered for this type, the plugin definition is silently ignored.
domain
The translation domain for this plugin, as passed to the dcgettext call of the gettext package. If not supplied then the default application domain is used (i.e. "evolution"). This is used to translate translatable strings for display.
name
A short name for the plugin. "Bob's Wonder Extender" might be suitable. This value will be translated.
description
A longer description of the plugin's purpose. This value will be translated.
hook

This is a list of all of the hooks that this plugin wishes to hook into. See the Plugin Hooks section for the details of the basic hook types defined.

The hook class is resolved using the registered hook types, and if none can be found, or a version mismatch occurs, then the hook is silently ignored.