ductt-neo / oryx-editor

Automatically exported from code.google.com/p/oryx-editor
0 stars 0 forks source link

Current SSS doesn't support "singleChildOnly" property required by BPEL #334

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Open a new process using the BPEL stencilset
2. Drag'n'drop "Process and Scope"/"process"
3. Drag'n'drop "Basic WS Interactions"/"receive" into the process
4. Drag'n'drop "Basic WS Interactions"/"invoke" into the process

What is the expected output?
The dropping of "invoke" should not be possible.

What do you see instead?
I can add "invoke" to the root of the BPEL process. 

Please provide any additional information below.
We think that a containment property such as "singleChildOnly " would be a
solution:

--cut--
{
    "role":"singleActivityContainer",
    "singleChildOnly": {
        "role":"activity"
    }
}
--end—

"singleChildOnly" is required by bpel.json, since BPEL allows having a
single compensation handler nested in the process element, but this still
restricts the count of "activities" to 1.

We also tried with "maximumChildren", which reads as follows:
--cut—
{
    "role":"singleActivityContainer",
    "maximumChildren":{
        "quantity":1,
        "countingRole":"activity"
    }
},
--end--
"countingRole" specifies which child activities are counted. We assume that
requirement is BPEL-specific and there isn't the case of quantity>1.
Therefore, we opted for "singleChildOnly"

We added the property to the BPEL shape definition (bpel.json).
Furthermore, we adjusted rules.js to be aware of "singleChildOnly". Due to
performance considerations, only the *first* role of the parent is checked.
Please find attached a patch for rules.js. 

Is it possible to add the support of "singleChildOnly" to the Oryx trunk?

On the one hand, we are very aware that this patch introduces one function
call, three additional "ifs" and two additional assignments. On the other
hand, we think that a web-based BPEL-editor is a really nice thing to play
with. – Maybe you have a better idea of how to realize the
"singleChildOnly" property? For example by a stencilset-dependent rules.js?
Maybe a stencilset could create an "extension" to rules.js and override
some methods?

Original issue reported on code.google.com by oliver.k...@gmail.com on 2 Dec 2008 at 8:23

Attachments:

GoogleCodeExporter commented 9 years ago
This is especially important for advertising Oryx. For example,
http://blogs.sun.com/toxophily/entry/open_esb_tip_bpel_2 renders BPEL into SVG. 

In contrast to BPEL2SVG, Oryx does not only renders into SVG, but also enables
editing :-).

Original comment by oliver.k...@gmail.com on 15 Dec 2008 at 2:41

GoogleCodeExporter commented 9 years ago

Original comment by oliver.k...@gmail.com on 25 Nov 2009 at 6:48