Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/valb3r/flowable-bpmn-intellij-plugin
Flowable, Activiti, Camunda BPMN engines process editor plugin for IntelliJ. Pure Kotlin (and some Java)
https://github.com/valb3r/flowable-bpmn-intellij-plugin
activiti bpmn bpmn-diagram bpmn-editor bpmn-process bpmn-viewer camunda code-navigation flowable integration intellij-plugin modeler navigation
Last synced: 7 days ago
JSON representation
Flowable, Activiti, Camunda BPMN engines process editor plugin for IntelliJ. Pure Kotlin (and some Java)
- Host: GitHub
- URL: https://github.com/valb3r/flowable-bpmn-intellij-plugin
- Owner: valb3r
- License: mit
- Created: 2020-05-04T07:38:16.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-08-26T09:38:26.000Z (2 months ago)
- Last Synced: 2024-10-10T05:37:35.671Z (29 days ago)
- Topics: activiti, bpmn, bpmn-diagram, bpmn-editor, bpmn-process, bpmn-viewer, camunda, code-navigation, flowable, integration, intellij-plugin, modeler, navigation
- Language: Kotlin
- Homepage: https://plugins.jetbrains.com/plugin/14318-flowable-bpmn-visualizer
- Size: 4.79 MB
- Stars: 158
- Watchers: 9
- Forks: 32
- Open Issues: 98
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://github.com/valb3r/flowable-bpmn-intellij-plugin/workflows/Java%20CI/badge.svg)](https://github.com/valb3r/flowable-bpmn-intellij-plugin/actions)
[![codecov](https://codecov.io/gh/valb3r/flowable-bpmn-intellij-plugin/branch/master/graph/badge.svg)](https://codecov.io/gh/valb3r/flowable-bpmn-intellij-plugin)
[![Gitter](https://badges.gitter.im/flowable-bpmn-intellij-plugin/community.svg)](https://gitter.im/flowable-bpmn-intellij-plugin/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
[![Made in Ukraine](https://img.shields.io/badge/made_in-ukraine-ffd700.svg?labelColor=0057b7)](https://stand-with-ukraine.pp.ua)[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://stand-with-ukraine.pp.ua)
# What is this
This project provides BPMN modeler plugin for these BPMN-engines:
- [Flowable BPMN engine](https://github.com/flowable/flowable-engine)
- [Activiti BPMN engine](https://github.com/Activiti/Activiti)
- [Camunda BPMN engine](https://github.com/camunda/camunda-bpm-platform)Key goals are: process editing integration into IntelliJ, code navigation support between BPMN diagram and your classes including Spring beans.
**Currently, it is work-in-progress.**
# Questions and propositions
Don't hesitate - ask or tell your opinion in gitter:
[![Gitter](https://badges.gitter.im/flowable-bpmn-intellij-plugin/community.svg)](https://gitter.im/flowable-bpmn-intellij-plugin/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
# Key features
1. BPMN process editing (BPMN modeler) - adding/removing elements, changing their properties, undo/redo, bulk drag-n-drop, bulk removal of elements
1. Code navigation - jump from `Delegate Expression` **(IntelliJ Ultimate)** or `Class` **(IntelliJ Community)** property directly to bean/function/class in code
1. IntelliJ refactorings propagation to backing XML file of the process (i.e. rename bean) **(IntelliJ Ultimate)**
1. Jump from an element to the underlying XML **(IntelliJ Ultimate)**
1. BPMN process 'debugging' by allowing to see steps (and their order) done for latest process execution directly in plugin **(IntelliJ Ultimate)**# Installation
You can install the plugin from JetBrains plugin repository (just search for
[`Flowable BPMN visualizer`](https://plugins.jetbrains.com/plugin/14318-flowable-bpmn-visualizer)
or [`Activiti BPMN visualizer`](https://plugins.jetbrains.com/plugin/15222-activiti-bpmn-visualizer)
or [`Camunda BPMN visualizer`](https://plugins.jetbrains.com/plugin/17844-camunda-bpmn-visualizer) depending on engine you need
) like any other plugin.**Bleeding edge**:
You can install the latest build of the plugin from ZIP file provided at releases page of this repository
or from alpha-channel of JetBrains plugin repository.## From GitHub releases
Install the latest plugin version plugin from the releases page:
[Releases page](https://github.com/valb3r/flowable-bpmn-intellij-plugin/releases/)**NOTE: The plugin requires 'Ultimate Edition' of IntelliJ for code navigation**
Installation guideline video:
[![Install plugin](https://img.youtube.com/vi/tfSAEMSIrqA/0.jpg)](https://www.youtube.com/watch?v=tfSAEMSIrqA)
## From IntelliJ plugins alpha-channel repository
1. Open `File -> Settings -> Plugins`
1. In opened window, click on `Gear` button (Manage plugins, repositories) -> `Manage Plugin Repositories`
1. Add Alpha releases channel - `https://plugins.jetbrains.com/plugins/alpha/list` to repositories list
1. Now you are able to list and install `Flowable bpmn visualizer` plugin directly from plugin search windowIntelliJ docs on this topic:
[How to configure and use alpha channel](https://plugins.jetbrains.com/docs/marketplace/custom-release-channels.html#CustomReleaseChannels-ConfiguringaCustomChannelinIntelliJPlatformBasedIDEs)
# Building from sources
If you want to build plugin directly from sources (i.e. from `master` branch `HEAD` for bugfixes), simply execute
in project root this command:```shell script
./gradlew clean buildPlugin
```It will create `flowable-intellij-plugin/build/distributions/bpmn-intellij-plugin.zip` file that contains plugin distributive.
You can install it by following steps [here](#from-github-releases).If you want just to run the plugin in the `sandbox` you can execute
**Flowable:**
```shell script
./gradlew clean :flowable-intellij-plugin:runIde
```**Activiti:**
```shell script
./gradlew clean :activiti-intellij-plugin:runIde
```**Camunda:**
```shell script
./gradlew clean :camunda-intellij-plugin:runIde
```# Workflow
## Plugin usage:
### Basic usage
[![Work with plugin](https://img.youtube.com/vi/8-_XmOlEyXM/0.jpg)](https://youtu.be/8-_XmOlEyXM)
### Adding new elements
[![Work with plugin](https://img.youtube.com/vi/cyLbEeaMDvI/0.jpg)](https://youtu.be/cyLbEeaMDvI)
### BPMN-Java-XML 'gluing' usage (IntelliJ Ultimate, only classes for IntelliJ Community)
[![Work with plugin](https://img.youtube.com/vi/BQf0eglY2vo/0.jpg)](https://youtu.be/BQf0eglY2vo)
### Debugging BPMN process with the plugin
[![Debug BPMN with plugin](https://img.youtube.com/vi/_zQ1zy_0Qfc/0.jpg)](https://youtu.be/_zQ1zy_0Qfc)
# Navigation/editing guideline
1. To open BPMN diagram in the plugin - left mouse button on XML file and select `View BPMN Diagram`
1. To move diagram up/down/left/right - click mouse wheel and start moving your mouse - diagram will follow
(like dragging with mouse wheel) or Shift + Left Mouse Button
1. Zoom in/out - mouse wheel rotation
1. To **add a new element** - click with right mouse button and popup menu with new element selection will appear
1. To **Copy or cut element(s)** - select elements you want to copy/paste and click with right mouse button on them to
see popup menu, there select cut or copy menu item
1. To **Paste element(s)** - (copy/cut before) click with right mouse button on the desired location and
select 'Paste' popup menu item
1. To select element click on it with mouse# FAQ
### Q: My files for Activiti/Flowable engine have `.bpmn` extension and not `bpmn20.xml`, how can I open them.
**A**: Navigate to **File** > **Settings** > **Tools** > **Activiti BPMN Plugin config** (or **Flowable BPMN Plugin config**).
In the field **Supported extensions** add `bpmn`, so that field value is `bpmn20.xml,bpmn`. Now you should be able to open it.
[Animation to configure plugin for opening files with custom extension](docs/img/faq/how-to-open-bpmn.gif)### Q: Some feature/bug was closed, but I can't find new release.
**A**: Check [this link](https://github.com/valb3r/flowable-bpmn-intellij-plugin/projects/1) for the status of your feature.
If it is in 'Done' (or Closed) column this doesn't mean it is released - it must proceed to next columns to appear in
any kind of release-artifact. After a feature is 'Closed' it will wait for GitHub release
at [Releases](https://github.com/valb3r/flowable-bpmn-intellij-plugin/releases) page and after that it will be
published to JetBrains marketplace. It can take up to two days for plugin to be available on JetBrains marketplace.# Technical details
## Architectural diagrams
### Plugin modules
![Modules diagram](http://www.plantuml.com/plantuml/proxy?src=https://raw.githubusercontent.com/valb3r/flowable-bpmn-intellij-plugin/master/docs/img/module_architecture.puml&fmt=svg&vvv=3&sanitize=true)
# Flowable XML subset support
View summary table
| XML element | Supported |
|:--------------------------------:|:---------:|
| adHocSubProcess | Y |
| association | |
| boundaryEvent | P |
| bpmndi:BPMNDiagram | Y |
| bpmndi:BPMNEdge | Y |
| bpmndi:BPMNPlane | Y |
| bpmndi:BPMNShape | Y |
| businessRuleTask | Y |
| callActivity | Y |
| cancelEventDefinition | P |
| compensateEventDefinition | P |
| completionCondition | P |
| condition | P |
| conditionalEventDefinition | P |
| conditionExpression | Y |
| dataObject | |
| definitions | |
| documentation | Y |
| endEvent | Y |
| errorEventDefinition | P |
| escalationEventDefinition | P |
| eventBasedGateway | P |
| exclusiveGateway | Y |
| extensionElements | |
| flowable:eventListener | |
| flowable:executionListener | |
| flowable:field | Y |
| flowable:in | |
| flowable:out | |
| flowable:string | Y |
| flowable:value | Y |
| inclusiveGateway | Y |
| intermediateCatchEvent | P |
| intermediateThrowEvent | P |
| loopCardinality | |
| message | |
| messageEventDefinition | |
| multiInstanceLoopCharacteristics | |
| omgdc:Bounds | Y |
| omgdi:waypoint | Y |
| parallelGateway | P |
| process | P |
| receiveTask | P |
| script | Y |
| scriptTask | Y |
| sequenceFlow | Y |
| serviceTask | Y |
| signalEventDefinition | P |
| startEvent | Y |
| subProcess | Y |
| terminateEventDefinition | P |
| text | P |
| textAnnotation | P |
| timeDate | P |
| timerEventDefinition | P |
| transaction | Y |
| userTask | Y |**Legend**:
**Y** - Mostly or fully supported
**P** - Partially supported
**Blank** - Mostly unsupported