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 M3 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:
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();

    ReadOnlyAPIAccessorImpl accessorRO = new ReadOnlyAPIAccessorImpl();
    RuntimeReadOnlyAPI RuntimeReadOnlyAPI = accessorRO.getRuntimeAPI();

There are 2 different accessor interfaces available:
APIAccessorImpl and ReadOnlyAPIAccessorImpl classes implements those interfaces.
Instantiation of these classes gives access to the expected bonita API.

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");
   
RuntimeReadOnlyAPI runtimeReadOnlyAPI =
    (RuntimeReadOnlyAPI) 
initialContext.lookup("RuntimeReadOnlyAPI");

Note: