aboutsummaryrefslogtreecommitdiffstats
path: root/docs/developer_info/BPMN_Project_Structure.rst
blob: 23916093c2e2fce9629ef01c3928f7558cd059ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2017 Huawei Technologies Co., Ltd.

BPMN Project Structure
=======================

BPMN main process flow
----------------------

A BPMN main process flow is a top-level flow.  All main process flows are under the src/main/resources/process folder.

CreateVfModuleVolumeInfraV1 is a main process flow.

.. image:: ../images/bpmn_project_structure_1.png

Open BPMN files with the camunda modeler (standalone application).  To launch the modeler from eclipse, right-click→open-with→Other→Browse.  Select Check the boxes on the dialog so that eclipse will open all .bpmn files with the camunda-modeler executable.

BPMN subprocess flow
---------------------

A BPMN subprocess flow is meant to be invoked by other flows (either main process flows or other subprocess flows).  All subprocess flows are under the src/main/resources/subprocess folder.

The CreateVfModuleVolumeInfraV1 process flow is delivered with two custom subflows: DoCreateVfModuleVolumeV2 and DoCreateVfModuleVolumeRollback.

.. image:: ../images/bpmn_project_structure_2.png

Groovy scripts
---------------

There is one groovy script for each BPMN file.  Groovy scripts are invoked by script tasks within the BPMN flows.

.. image:: ../images/bpmn_project_structure_3.png

Unit Tests
-----------

Normally, we create a unit test class for every flow.  This one is missing a unit test for its rollback flow.

.. image:: ../images/bpmn_project_structure_4.png

Unit Test Resource Files
------------------------

Any files needed by the unit tests are kept under the src/test/resources/__files folder.

.. image:: ../images/bpmn_project_structure_5.png