Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| WebLogic Integration
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.bea.wlpi.server.plugin
Interface Plugin

public interface Plugin
extends javax.ejb.EJBObject

Defines the functionality of a Weblogic Process Integrator Plugin. Plugins can:
- define event handlers to pre-process incoming event data.
- define new event types.
- define new start types.
- define new done types.
- define new action categories and sub-categories.
- define actions in predefined categories.
- define actions in categories defined by plugins on which they depend.
- define new evaluator functions.
- define new variable types.
- define new template properties.
- define new template definition properties.
- provide workflow instance data.
- provide context sensitive online help in HTML or JavaHelp format.
Plugins cannot:
- declare circular dependencies.

A plugin must be implemented as a stateless session EJB, and deployed in an `ejb.jar/`file in the same application as WebLogic Process Integrator ('WLPI Application' in the `mydomain\config.xml`). The plugin must be set to deploy after all of the WebLogic Process Integrator EJBs.

Since:
  WebLogic Process Integrator 2.0
Author:
  Copyright © 2000, 2001 BEA Systems, Inc. All Rights Reserved.

Method Summary
`java.lang.Class` | `classForName(java.lang.String className)` Return a plugin-defined class.
`void` | `exit()` Deinitialize the Plugin.
`PluginDependency[]` | `getDependencies()` Return the plugins on which this plugin depends.
`java.lang.String` | `getName()` Return the globally unique name of this plugin, in reverse-DNS format.
`java.lang.Object` | `getObject(java.util.Locale lc, java.lang.String className)` Return a plugin-defined object.
`PluginCapabilitiesInfo` | `getPluginCapabilitiesInfo(java.util.Locale lc, CategoryInfo[] info)` Return a complete description of the plugins capabilities.
`PluginInfo` | `getPluginInfo(java.util.Locale lc)` Return basic descriptive information about the plugin.
`VersionInfo` | `getVersion()` Return the version of this plugin.
`void` | `init()` Initialize the Plugin.
`void` | `instanceChanged(InstanceNotification notify)` Notifies a plugin of a change in a workflow instance.
`void` | `load(PluginObject config)` Load the Plugin.
`void` | `setConfiguration(PluginObject config)` Set a plugin's configuration.
`void` | `taskChanged(TaskNotification notify)` Notifies a plugin of a change in a task instance.
`void` | `templateChanged(TemplateNotification notify)` Notifies a plugin of a change in a template.
`void` | `templateDefinitionChanged(TemplateDefinitionNotification notify)` Notifies a plugin of a change in a template definition.
`void` | `unload()` Unload the Plugin.

Methods inherited from interface javax.ejb.EJBObject
`getEJBHome, getHandle, getPrimaryKey, isIdentical, remove`

Method Detail

### init

    public void init()
              throws java.rmi.RemoteException,
                     PluginException

  Initialize the Plugin. This method is called exactly once during server startup, regardless of the plugin's configuration and start mode.

### exit

    public void exit()
              throws java.rmi.RemoteException,
                     PluginException

  Deinitialize the Plugin. Currently, this method will only be called if an administrator forces the WebLogic Process Integrator to re-inialize itself. In a future release, this method may also be called during server shutdown.

### load

    public void load(PluginObject config)
              throws java.rmi.RemoteException,
                     PluginException

  Load the Plugin. The plugin can register for system event notifications at this point, by calling one of the `PluginManagerCfg#addXxxListener` methods. Plugins are responsible for replicating their private cluster-wide state thoughout the cluster, if necessary.

  Parameters:
    `config` - Plugin configuration data, an instance of the class declared in the `ConfigurationInfo` (if any) provided by the `PluginInfo` object.
  See Also:
    `setConfiguration(com.bea.wlpi.common.plugin.PluginObject)`, `PluginManager.addTemplateListener(com.bea.wlpi.server.plugin.Plugin, int)`, `PluginManager.addTemplateDefinitionListener(com.bea.wlpi.server.plugin.Plugin, int)`, `PluginManager.addInstanceListener(com.bea.wlpi.server.plugin.Plugin, int)`, `PluginManager.addTaskListener(com.bea.wlpi.server.plugin.Plugin, int)`

### unload

    public void unload()
                throws java.rmi.RemoteException,
                       PluginException

  Unload the Plugin. The plugin framework will deregister the plugin if it had subscribed to any event notifications.

### getDependencies

    public PluginDependency[] getDependencies()
                                       throws java.rmi.RemoteException

  Return the plugins on which this plugin depends. The plugin manager will ensure that all such plugins are loaded before attempting to load this plugin. If any such plugin fails to load (e.g., because it is missing, threw an exception, or is disabled), this plugin will not be loaded.

  Returns:
    A list of plugin dependencies.

### getName

    public java.lang.String getName()
                             throws java.rmi.RemoteException

  Return the globally unique name of this plugin, in reverse-DNS format. It must be the same string as that returned by `InfoObject.getPluginName()`.

  Returns:
    The unique plugin name.

### getVersion

    public VersionInfo getVersion()
                           throws java.rmi.RemoteException

  Return the version of this plugin. It must be the same version as that returned by its `PluginInfo.getVersion()`.

  Returns:
    The plugin version.

### getPluginInfo

    public PluginInfo getPluginInfo(java.util.Locale lc)
                             throws java.rmi.RemoteException

  Return basic descriptive information about the plugin.

  Parameters:
    `lc` - The locale in which to localize display strings.
  Returns:
    Descriptive information about the plugin.

### getPluginCapabilitiesInfo

    public PluginCapabilitiesInfo getPluginCapabilitiesInfo(java.util.Locale lc,
                                                            CategoryInfo[] info)
                                                     throws java.rmi.RemoteException

  Return a complete description of the plugins capabilities. To add new subcategories and actions, the plugin should use the category IDs passed in via the `info` parameter passed to identify the parent categories, and `ActionCategoryInfo.ID_NEW` as the new category ID. The PluginManager merges the CategoryInfo array returned by this call with the current structure (as passed via the `info` parameter), and replaces references to `ActionCategoryInfo.ID_NEW` with newly-assigned unique category IDs. The predefined categories have the following IDs: `ActionCategoryInfo.ID_TASK`, `ActionCategoryInfo.ID_WORKFLOW`, `ActionCategoryInfo.ID_INTEGRATION`, `ActionCategoryInfo.ID_MISCELLANEOUS`, `ActionCategoryInfo.ID_EXCEPTION`.

  Parameters:
    `lc` - Locale in which to localize display strings.
    `info` - The existing action category tree, containing categories and actions both predefined and plugin-defined (i.e., by previously loaded plugins). If this parameter is `null`, the plugin should not include action category information in the returned object.
  Returns:
    Information about the plugin's capabilities, including new categories and actions to be inserted in the action tree (if requested).

### classForName

    public java.lang.Class classForName(java.lang.String className)
                                 throws java.rmi.RemoteException,
                                        java.lang.ClassNotFoundException,
                                        PluginException

  Return a plugin-defined class. The caller retrieves the class name by calling one of the plugin-supplied metadata objects.

  Parameters:
    `className` - The fully qualified Java class name to instantiate.
  Returns:
    The class with the specified name.
  Throws:
    java.lang.ClassNotFoundException - if the plugin could not load the class.
  See Also:
    `ActionInfo`, `EventInfo`, `FunctionInfo`, `PluginInfo`, `StartInfo`, `DoneInfo`, `VariableTypeInfo`, `TemplatePropertiesInfo`, `TemplateDefinitionPropertiesInfo`

### getObject

    public java.lang.Object getObject(java.util.Locale lc,
                                      java.lang.String className)
                               throws java.rmi.RemoteException,
                                      java.lang.ClassNotFoundException,
                                      PluginException

  Return a plugin-defined object. The caller retrieves the class name by calling one of the plugin-supplied metadata objects.

  Parameters:
    `lc` - The locale in which to localize display strings.
    `className` - The fully qualified Java class name to instantiate.
  Returns:
    An instance of the named class.
  Throws:
    java.lang.ClassNotFoundException - if the plugin could not load the class.
  See Also:
    `ActionInfo`, `EventInfo`, `FunctionInfo`, `PluginInfo`, `StartInfo`, `DoneInfo`, `VariableTypeInfo`, `TemplatePropertiesInfo`, `TemplateDefinitionPropertiesInfo`

### setConfiguration

    public void setConfiguration(PluginObject config)
                          throws java.rmi.RemoteException,
                                 PluginException

  Set a plugin's configuration. The plugin should begin using the new configuration if possible. For some plugins this may not be possible, in which case the new configuration will not take effect until the next time that plugin is loaded.

  Parameters:
    `config` - Plugin configuration data, an instance of the class declared in the `ConfigurationInfo` (if any) provided by the `PluginInfo` object.
  See Also:
    `load(com.bea.wlpi.common.plugin.PluginObject)`

### templateChanged

    public void templateChanged(TemplateNotification notify)
                         throws java.rmi.RemoteException,
                                PluginException

  Notifies a plugin of a change in a template.

  Parameters:
    `notify` - A notification object describing the change.

### templateDefinitionChanged

    public void templateDefinitionChanged(TemplateDefinitionNotification notify)
                                   throws java.rmi.RemoteException,
                                          PluginException

  Notifies a plugin of a change in a template definition.

  Parameters:
    `notify` - A notification object describing the change.

### instanceChanged

    public void instanceChanged(InstanceNotification notify)
                         throws java.rmi.RemoteException,
                                PluginException

  Notifies a plugin of a change in a workflow instance.

  Parameters:
    `notify` - A notification object describing the change.

### taskChanged

    public void taskChanged(TaskNotification notify)
                     throws java.rmi.RemoteException,
                            PluginException

  Notifies a plugin of a change in a task instance.

  Parameters:
    `notify` - A notification object describing the change.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| WebLogic Integration
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

WebLogic Integration (WLI)
``