WebLogic Integration


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.

WebLogic Integration

WebLogic Integration (WLI)