Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[mdt-bpmn2.dev] Multi-file support

Hi BPMN friends,
I have just committed the first chunk to support multiple files for one BPMN model.
The code is relatively short, but kind of tricky, as I need to hook into multiple places of XmlResourceImpl and its helper classes.
So I would ask you to check and test the code and correct if you have a better solution.
Here is how you can use the feature:
  1. Create a BPMN file with the Wizard, e.g. called “inner.bpmn2”. Give it a target namespace (property of Definitions, e.g. “org.omg.bpmn2.sample.inner”. Create a Process, e.g. called “Process 1” there and save.
  2. Create a second BPMN file, e.g. called “outer.bpmn2” in the same directory. Give it also a target namespace, e.g. “org.omg.bpmn2.sample.outer”. Add an Imports object (as child of Definitions).  Set following properties:
  1. Add a collaboration to outer.bpmn2 with a participant.
  2. Right-click on the background of the editor and choose “Load resource…”. Locate “inner.bpmn2” and choose Ok. You will see “inner.bpmn2” in the editor tree.
  3. In the participant’s ProcessRef dropdown you will now see “Process 1” from “inner.bpmn2”. Select it and save the editor. You should find correct QName references in outer.bpmn2 pointing to inner.bpmn.
  4. If you close the editor and reopen, you can nicely see how EMF demand-loads “inner.bpmn2” in the moment when you navigate to the participant.
 
I didn’t do in depth testing, e.g. with references that have an abstract type, so I’m sure there will be issues. Please let me know. You can also see interesting effects with the  “Buyer Selller” example from the Spec that imports an XSD and a WSDL. Currently I don’t disable this, as this is quite nice in EMF.
 
Reiner.
 
 

Back to the top