Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "BPMN2-Modeler/DeveloperTutorials"

 
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The public API for BPMN2 Modeler plug-in extensions is constantly evolving, as we try to figure out what features are needed, and how they can best be implemented. API changes will only happen on minor releases of the modeler (e.g. version 1.2.0 => major = 1, minor = 2 service update=0.) We also try to keep API changes aligned with Eclipse releases, so that version 1.0.x of the modeler is targeted for Kepler, 1.1.x for Luna and 1.2.x for Mars. For this reason, we've provided tutorials for each of the Eclipse target platforms.
+
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.  
  
== Mars ==
+
== Setup a Developer Eclipse IDE ==
  
== Luna ==
+
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.
  
== Kepler ==
+
[[Image:eclipse-bpmn2-devsetup-001.png|center|thumb|700px|]]
 +
 
 +
----
 +
 
 +
Choose the Commiters product  (the latest version available):
 +
 
 +
[[Image:eclipse-bpmn2-devsetup-002.png|center|thumb|700px|]]
 +
 
 +
----
 +
 
 +
Next choose the BPMN2 Project:
 +
 
 +
[[Image:eclipse-bpmn2-devsetup-003.png|center|thumb|700px|]]
 +
 
 +
----
 +
 
 +
Choose appropriate settings:
 +
 
 +
[[Image:eclipse-bpmn2-devsetup-004.png|center|thumb|700px|]]
 +
 
 +
----
 +
 
 +
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.
 +
 
 +
[[Image:eclipse-bpmn2-devsetup-005.png|center|thumb|500px|]]
 +
 
 +
----
 +
 
 +
== 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 [https://github.com/rsoika/bpmn2-tutorial/ GitHub] showing some of the concepts explained in the following tutorials.
 +
 
 +
* [[BPMN2-Modeler/DeveloperTutorials/ExtendingRuntime| Extending the BPMN2 Runtime]] - Understanding the basics of BPMN2 Runtime extensions
 +
* [[BPMN2-Modeler/DeveloperTutorials/ModelExtension| Extending the model]] - Different ways of extending the BPMN2 model
 +
* [[BPMN2-Modeler/DeveloperTutorials/ModelExtensionBYOM| Bring your own model!]] - Extending the BPMN2 model with an external EMF model
 +
* [[BPMN2-Modeler/DeveloperTutorials/CreateCustomTask| Creating a CustomTask]] - Creating a CustomTask Extension
 +
* [[BPMN2-Modeler/DeveloperTutorials/CustomPropertyTabs| Extending property tabs]] -  Building Property Sheets for model extension data
 +
* [[BPMN2-Modeler/DeveloperTutorials/CreateCustomShape| Creating a Custom Shape]] - Creating custom shapes for model extensions
 +
* [[BPMN2-Modeler/DeveloperTutorials/Adapters| Special Adapters]] -  All the myriad adapters and how to use them
 +
* [[BPMN2-Modeler/DeveloperTutorials/AddingCDATA| Adding a CDATA element]] - Adding an extension element with a CDATA section
 +
* [[BPMN2-Modeler/DeveloperTutorials/ToolPalettes| Tool Palette]] -  Customizing the Tool Palette
 +
* [[BPMN2-Modeler/DeveloperTutorials/Validation| Model Validation]] -  Overriding/augmenting the BPMN2 Model Validation framework
 +
* [[BPMN2-Modeler/DeveloperTutorials/Maven| Setup a Plugin Project with Maven]] - Example how to setup a plugin, feature and updatesite with maven 3.0
 +
* [[BPMN2-Modeler/DeveloperTutorials/ToolPaletteFragments| Tool Palette Fragments]] -  Adding workflow snippets and other compound elements to the Tool Palette
 +
* [[BPMN2-Modeler/DeveloperTutorials/HowToStartContributing| How to Start Contributing]] -  Find information how to checkout the source code and start contributing.

Latest revision as of 11:39, 19 November 2022

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.

Eclipse-bpmn2-devsetup-001.png

Choose the Commiters product (the latest version available):

Eclipse-bpmn2-devsetup-002.png

Next choose the BPMN2 Project:

Eclipse-bpmn2-devsetup-003.png

Choose appropriate settings:

Eclipse-bpmn2-devsetup-004.png

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.

Eclipse-bpmn2-devsetup-005.png

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.

Back to the top