Package org.ow2.bonita.facade

Nova Bonita Workflow APIs for handling workflow definition, deployment, execution and history.

See:
          Description

Interface Summary
APIAccessor Helper class giving access to QueryDefinitionAPI, QueryRuntimeAPI, ManagementAPI, DefinitionAPI, RuntimeAPI and CommandAPI interfaces.
CommandAPI  
DefinitionAPI  
EnvironmentKeys  
ManagementAPI Workflow process deployment operations.
QueryAPIAccessor Helper class giving access to QueryDefinitionAPI and QueryRuntimeAPI interfaces.
QueryDefinitionAPI Getters on the workflow definition data for:
packages processes activities participants As indicated by its prefix: Query, this interface could be seen as complementary to the QueryRuntimeAPI interface.
QueryRuntimeAPI Getters on workflow recorded data.
RuntimeAPI To manage process, process instance and task life cycle operations as well as to set/add/update variables within activity or instance.
 

Class Summary
APIInterceptor  
 

Enum Summary
Context  
 

Package org.ow2.bonita.facade Description

Nova Bonita Workflow APIs for handling workflow definition, deployment, execution and history.

Nova Bonita is the name of new version of Bonita v4.

"Nova" technology is based on the "Process Virtual Machine" conceptual model for processes. The Process Virtual Machine defines a generic process engine enabling support for multiple process languages (such BPEL, XPDL).

Nova Bonita is an extensible and embeddable workflow solution that can be easily deployed in both standard (JSE) and Enterprise (JEE) environments.

As a example of this, Nova Bonita provides a default JEE integration with a EJB3 lightweight container such Easybeans . You can easily deploy Nova Bonita in another JEE application server by just deploying the bonita.ear file in your favorite application server.

Nova Bonita APIs are divided into 5 different areas:

There's also a generic API that allow to execute specific commands that should be needed by the workflow based application.

Nova Bonita Use Case 1: Bonita used as a java library inside your application
The java APIs can be accessed thru an API accessor object as described in the above example.

    APIAccessorImpl accessor = new APIAccessorImpl();
    RuntimeAPI runtimeAPI = accessor.getRuntimeAPI();

    QueryAPIAccessorImpl accessorQ = new QueryAPIAccessorImpl();
    QueryRuntimeAPI queryRuntimeAPI = accessorQ.getRuntimeAPI();

There are 2 different accessor interfaces available:

QueryAPIAccessorImpl and APIAccessorImpl classes implements those interfaces.
Instantiation of these classes gives access to the expected bonita API.

There is also an utility class called AccessorUtil (under the org.ow2.bonita.util package) that allows developers to directly get the APIs in both standalone or Session Bean modes.
You will find a sample application leveraging this API under the /examples directory.

Nova Bonita Use Case 2: Bonita used as a server application
The session Bean APIs can be accessed by simply executing a lookup on the expected API interface. The jndi name is the name of the java interface.

    RuntimeAPI runtimeAPI = (RuntimeAPI) initialContext.lookup("runtimeAPI");
   
QueryDefinitionAPI queryDefinitionAPI =
    (
QueryDefinitionAPI initialContext.lookup("QueryDefinitionAPI ");

Unifiying client applications source code !

An utility class has been provided to unify access to Bonita APIs and to avoid the use of lookups in JEE deployments: org.ow2.bonita.util.AccessorUtil. Through this class, Nova Bonita APIs can be reached in a unified way in both local and remote applications.

For that to be done, the system property called "org.ow2.bonita.api-type" must be defined at client side to specify whether the APIs will be reached locally or remotely (possible values are "standard","auto-detect",''ejb2" and "ejb3")

Hereafter you will find an example on how to use the Accessorutil class from your client application:


    RuntimeAPI runtimeAPI = AccessorUtil.getRuntimeAPI();
    QueryRuntimeAPI queryRuntimeAPI = AccessorUtil.getQueryRuntimeAPI();

Note: