BPMN2-Modeler/DeveloperTutorials
The public API for BPMN2 Modeler plug-in extensions is a stable plugin. API changes when and if they are required, will only happen on minor releases of the modeler (e.g. version 1.3.0 => major = 1, minor = 2 service update=0.) We also try to keep API changes aligned with Eclipse releases.
Setup a Developer Eclipse IDE
If you plan to contribute to this project, than you should install the Eclipse Contribute IDE with the BPMN2 Plugin. For this we provide a Oomph setup. In any installer, switch to advanced mode via the menu button in the upper right.
Choose the Commiters product (the latest version available):
Next choose the BPMN2 Project:
Choose appropriate settings:
The defaults are generally fine, but look closely as the repository URI choices and choose the one you normally use.
That will create and launch a new IDE using the version of selected version of the target platform with the clones available and the projects imported.
Prerequisites & Conventions
These tutorials assumes that you are comfortable with XML and XML Schema and have at least a working knowledge of the BPMN2 language. You should also be somewhat familiar with EMF and its terminology, as this will be used frequently. At a minimum, you should understand:
- EClass = an object type, also known as a "class"
- EObject = an instance of an EClass, i.e. a concrete object
- EAttribute = a simple-valued attribute of an EClass
- EReference = a reference to an object or list of objects. References may also act as containers for the object, or may simply point to objects contained elsewhere in the same document, or an external document.
- EStructuralFeature = a feature of an EClass, i.e. the attributes (EAttribute) and references (EReference) defined by the object type
In this tutorial, all EMF model types (EClasses) attributes (EAttributes) and references (EReferences) are displayed in bold, for example UserTask or name. In discussions of Java or XML code fragments contained in the tutorial, references to these appear in italics, for example createBindings() or modelExtension.
The tutorials
You can find a example code on GitHub showing some of the concepts explained in the following tutorials.
- Extending the BPMN2 Runtime - Understanding the basics of BPMN2 Runtime extensions
- Extending the model - Different ways of extending the BPMN2 model
- Bring your own model! - Extending the BPMN2 model with an external EMF model
- Creating a CustomTask - Creating a CustomTask Extension
- Extending property tabs - Building Property Sheets for model extension data
- Creating a Custom Shape - Creating custom shapes for model extensions
- Special Adapters - All the myriad adapters and how to use them
- Adding a CDATA element - Adding an extension element with a CDATA section
- Tool Palette - Customizing the Tool Palette
- Model Validation - Overriding/augmenting the BPMN2 Model Validation framework
- Setup a Plugin Project with Maven - Example how to setup a plugin, feature and updatesite with maven 3.0
- Tool Palette Fragments - Adding workflow snippets and other compound elements to the Tool Palette
- How to Start Contributing - Find information how to checkout the source code and start contributing.