How to deploy a BPMN Model
After you have created a model with the Imixs-BPMN modeler you can deploy the model. The Imixs-Workflow Rest API provides a convenient way to upload a BPMN model or to verify the deployment status of BPMN models. Make sure that your Imixs-Workflow instance is up and running and the Imxis-Workflow Rest Service is deployed on your server. (See the deployment section how to deploy the Imixs-Workflow engine into a server.)
The Imixs-Workflow Model Rest Service is available under the following resource URL:
http://localhost:8080/api/model/
where ‘/workflow/’ is the context root of your workflow application and ‘/api/’ is the context of the Imixs-Workflow Rest Services. See the section model rest service for general information about the Imixs-Workflow Rest API.
Deploy a Model
To deploy a BPMN model you can use the command-line tool curl to upload a Imixs BPMN 2.0 model into a Imixs-Workflow instance. See the following example:
curl --user admin:adminpassword --request POST -Ticket.bpmn http://localhost:8080/api/model/bpmn
This example deploys the bpmn file ‘ticket.bpmn’ into the Imixs-Workflow Instance ‘http://localhost:8080/workflow/’. The result of the deployment can be verified in the server log:
09:20:47,611 INFO [org.imixs.workflow.bpmn.BPMNParser] (default task-3) BPMN Model parsed in 12ms
You can also verify the current status of deployed models by calling the model Rest Service in your Web Browser:
http://localhost:8080/api/model/
Delete a model
To delete a specific model version the Imxis-Rest API provides a DELETE command
curl --user admin:adminpassword --request DELETE http://localhost:8080/workflow/rest-service/model/[VERSION]
How to Deploy a Model from a Java Application
You can also use the Imixs ModelService to deploy a BPMN model programmatically. In this case you call the Model Service EJB form your application to deploy a model. The following example demonstrates the API call:
import org.imixs.workflow.bpmn.BPMNModel;
import org.imixs.workflow.bpmn.BPMNParser;
import org.imixs.workflow.jee.ejb.ModelService;
....
@Inject
protected ModelService modelService;
.....
// open a inputStream of the model file
InputStream inputStream = getClass().getResourceAsStream(
"/bpmn/ticket.bpmn");
// parse and import the model....
BPMNModel model = BPMNParser.parseModel(file.getData(), "UTF-8");
modelService.importBPMNModel(model);
...
You can find more information about the Imixs-Workflow services in the section Imixs-Workflow Engine.