cpee 2.1.106 → 2.1.108

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/js/wfadaptor.js +8 -8
  3. data/cockpit/themes/base.js +2 -2
  4. data/cockpit/themes/control/rngs/alternative.rng +4 -1
  5. data/cockpit/themes/control/rngs/call.rng +1 -1
  6. data/cockpit/themes/control/rngs/callmanipulate.rng +1 -1
  7. data/cockpit/themes/control/rngs/choose.rng +3 -0
  8. data/cockpit/themes/control/rngs/critical.rng +4 -1
  9. data/cockpit/themes/control/rngs/escape.rng +5 -1
  10. data/cockpit/themes/control/rngs/loop.rng +3 -0
  11. data/cockpit/themes/control/rngs/manipulate.rng +1 -1
  12. data/cockpit/themes/control/rngs/otherwise.rng +4 -1
  13. data/cockpit/themes/control/rngs/parallel.rng +3 -0
  14. data/cockpit/themes/control/rngs/parallel_branch.rng +3 -0
  15. data/cockpit/themes/control/rngs/stop.rng +2 -2
  16. data/cockpit/themes/control/rngs/terminate.rng +5 -1
  17. data/cockpit/themes/control/rngs/wait_for_signal.rng +1 -1
  18. data/cockpit/themes/dataflow/rngs/alternative.rng +4 -1
  19. data/cockpit/themes/dataflow/rngs/call.rng +1 -1
  20. data/cockpit/themes/dataflow/rngs/callmanipulate.rng +1 -1
  21. data/cockpit/themes/dataflow/rngs/choose.rng +3 -0
  22. data/cockpit/themes/dataflow/rngs/critical.rng +4 -1
  23. data/cockpit/themes/dataflow/rngs/escape.rng +5 -1
  24. data/cockpit/themes/dataflow/rngs/loop.rng +3 -0
  25. data/cockpit/themes/dataflow/rngs/manipulate.rng +1 -1
  26. data/cockpit/themes/dataflow/rngs/otherwise.rng +4 -1
  27. data/cockpit/themes/dataflow/rngs/parallel.rng +3 -0
  28. data/cockpit/themes/dataflow/rngs/parallel_branch.rng +3 -0
  29. data/cockpit/themes/dataflow/rngs/stop.rng +2 -2
  30. data/cockpit/themes/dataflow/rngs/terminate.rng +5 -1
  31. data/cockpit/themes/dataflow/rngs/wait_for_signal.rng +1 -1
  32. data/cockpit/themes/default/rngs/alternative.rng +4 -1
  33. data/cockpit/themes/default/rngs/call.rng +1 -1
  34. data/cockpit/themes/default/rngs/callmanipulate.rng +1 -1
  35. data/cockpit/themes/default/rngs/choose.rng +3 -0
  36. data/cockpit/themes/default/rngs/critical.rng +4 -1
  37. data/cockpit/themes/default/rngs/escape.rng +5 -1
  38. data/cockpit/themes/default/rngs/loop.rng +3 -0
  39. data/cockpit/themes/default/rngs/manipulate.rng +1 -1
  40. data/cockpit/themes/default/rngs/otherwise.rng +4 -1
  41. data/cockpit/themes/default/rngs/parallel.rng +3 -0
  42. data/cockpit/themes/default/rngs/parallel_branch.rng +3 -0
  43. data/cockpit/themes/default/rngs/stop.rng +2 -2
  44. data/cockpit/themes/default/rngs/terminate.rng +5 -1
  45. data/cockpit/themes/default/rngs/wait_for_signal.rng +1 -1
  46. data/cockpit/themes/extended/rngs/alternative.rng +4 -1
  47. data/cockpit/themes/extended/rngs/call.rng +1 -1
  48. data/cockpit/themes/extended/rngs/callmanipulate.rng +1 -1
  49. data/cockpit/themes/extended/rngs/choose.rng +3 -0
  50. data/cockpit/themes/extended/rngs/critical.rng +4 -1
  51. data/cockpit/themes/extended/rngs/escape.rng +5 -1
  52. data/cockpit/themes/extended/rngs/loop.rng +3 -0
  53. data/cockpit/themes/extended/rngs/manipulate.rng +1 -1
  54. data/cockpit/themes/extended/rngs/otherwise.rng +4 -1
  55. data/cockpit/themes/extended/rngs/parallel.rng +3 -0
  56. data/cockpit/themes/extended/rngs/parallel_branch.rng +3 -0
  57. data/cockpit/themes/extended/rngs/stop.rng +2 -2
  58. data/cockpit/themes/extended/rngs/terminate.rng +5 -1
  59. data/cockpit/themes/extended/rngs/wait_for_signal.rng +1 -1
  60. data/cockpit/themes/felix/rngs/call.rng +1 -1
  61. data/cockpit/themes/felix/rngs/callmanipulate.rng +1 -1
  62. data/cockpit/themes/felix/rngs/manipulate.rng +1 -1
  63. data/cockpit/themes/felix/rngs/stop.rng +2 -2
  64. data/cockpit/themes/model/rngs/call.rng +1 -1
  65. data/cockpit/themes/model/rngs/callmanipulate.rng +1 -1
  66. data/cockpit/themes/packed/rngs/alternative.rng +4 -1
  67. data/cockpit/themes/packed/rngs/call.rng +1 -1
  68. data/cockpit/themes/packed/rngs/callmanipulate.rng +1 -1
  69. data/cockpit/themes/packed/rngs/choose.rng +3 -0
  70. data/cockpit/themes/packed/rngs/critical.rng +4 -1
  71. data/cockpit/themes/packed/rngs/escape.rng +5 -1
  72. data/cockpit/themes/packed/rngs/loop.rng +3 -0
  73. data/cockpit/themes/packed/rngs/manipulate.rng +1 -1
  74. data/cockpit/themes/packed/rngs/otherwise.rng +4 -1
  75. data/cockpit/themes/packed/rngs/parallel.rng +3 -0
  76. data/cockpit/themes/packed/rngs/parallel_branch.rng +3 -0
  77. data/cockpit/themes/packed/rngs/stop.rng +2 -2
  78. data/cockpit/themes/packed/rngs/terminate.rng +5 -1
  79. data/cockpit/themes/packed/rngs/wait_for_signal.rng +1 -1
  80. data/cockpit/themes/preset/rngs/alternative.rng +4 -1
  81. data/cockpit/themes/preset/rngs/call.rng +1 -1
  82. data/cockpit/themes/preset/rngs/callmanipulate.rng +1 -1
  83. data/cockpit/themes/preset/rngs/choose.rng +3 -0
  84. data/cockpit/themes/preset/rngs/critical.rng +4 -1
  85. data/cockpit/themes/preset/rngs/escape.rng +5 -1
  86. data/cockpit/themes/preset/rngs/loop.rng +3 -0
  87. data/cockpit/themes/preset/rngs/manipulate.rng +1 -1
  88. data/cockpit/themes/preset/rngs/otherwise.rng +4 -1
  89. data/cockpit/themes/preset/rngs/parallel.rng +3 -0
  90. data/cockpit/themes/preset/rngs/parallel_branch.rng +3 -0
  91. data/cockpit/themes/preset/rngs/stop.rng +2 -2
  92. data/cockpit/themes/preset/rngs/terminate.rng +5 -1
  93. data/cockpit/themes/preset/rngs/wait_for_signal.rng +1 -1
  94. data/cockpit/themes/presetaltid/rngs/alternative.rng +4 -1
  95. data/cockpit/themes/presetaltid/rngs/call.rng +1 -1
  96. data/cockpit/themes/presetaltid/rngs/callmanipulate.rng +1 -1
  97. data/cockpit/themes/presetaltid/rngs/choose.rng +3 -0
  98. data/cockpit/themes/presetaltid/rngs/critical.rng +4 -1
  99. data/cockpit/themes/presetaltid/rngs/escape.rng +5 -1
  100. data/cockpit/themes/presetaltid/rngs/loop.rng +3 -0
  101. data/cockpit/themes/presetaltid/rngs/manipulate.rng +1 -1
  102. data/cockpit/themes/presetaltid/rngs/otherwise.rng +4 -1
  103. data/cockpit/themes/presetaltid/rngs/parallel.rng +3 -0
  104. data/cockpit/themes/presetaltid/rngs/parallel_branch.rng +3 -0
  105. data/cockpit/themes/presetaltid/rngs/stop.rng +2 -2
  106. data/cockpit/themes/presetaltid/rngs/terminate.rng +5 -1
  107. data/cockpit/themes/presetaltid/rngs/wait_for_signal.rng +1 -1
  108. data/cockpit/themes/presetid/rngs/alternative.rng +4 -1
  109. data/cockpit/themes/presetid/rngs/call.rng +1 -1
  110. data/cockpit/themes/presetid/rngs/callmanipulate.rng +1 -1
  111. data/cockpit/themes/presetid/rngs/choose.rng +3 -0
  112. data/cockpit/themes/presetid/rngs/critical.rng +4 -1
  113. data/cockpit/themes/presetid/rngs/escape.rng +5 -1
  114. data/cockpit/themes/presetid/rngs/loop.rng +3 -0
  115. data/cockpit/themes/presetid/rngs/manipulate.rng +1 -1
  116. data/cockpit/themes/presetid/rngs/otherwise.rng +4 -1
  117. data/cockpit/themes/presetid/rngs/parallel.rng +3 -0
  118. data/cockpit/themes/presetid/rngs/parallel_branch.rng +3 -0
  119. data/cockpit/themes/presetid/rngs/stop.rng +2 -2
  120. data/cockpit/themes/presetid/rngs/terminate.rng +5 -1
  121. data/cockpit/themes/presetid/rngs/wait_for_signal.rng +1 -1
  122. data/cockpit/themes/reduced/rngs/alternative.rng +4 -1
  123. data/cockpit/themes/reduced/rngs/call.rng +1 -1
  124. data/cockpit/themes/reduced/rngs/callmanipulate.rng +1 -1
  125. data/cockpit/themes/reduced/rngs/choose.rng +3 -0
  126. data/cockpit/themes/reduced/rngs/critical.rng +4 -1
  127. data/cockpit/themes/reduced/rngs/escape.rng +5 -1
  128. data/cockpit/themes/reduced/rngs/loop.rng +3 -0
  129. data/cockpit/themes/reduced/rngs/manipulate.rng +1 -1
  130. data/cockpit/themes/reduced/rngs/otherwise.rng +4 -1
  131. data/cockpit/themes/reduced/rngs/parallel.rng +3 -0
  132. data/cockpit/themes/reduced/rngs/parallel_branch.rng +3 -0
  133. data/cockpit/themes/reduced/rngs/stop.rng +2 -2
  134. data/cockpit/themes/reduced/rngs/terminate.rng +5 -1
  135. data/cockpit/themes/reduced/rngs/wait_for_signal.rng +1 -1
  136. data/cpee.gemspec +5 -3
  137. data/server/executionhandlers/eval/connection.rb +23 -26
  138. data/server/executionhandlers/eval/dsl_to_dslx.xsl +134 -16
  139. data/server/executionhandlers/ruby/connection.rb +21 -21
  140. data/server/executionhandlers/ruby/dsl_to_dslx.xsl +135 -31
  141. data/server/routing/end.pid +1 -1
  142. data/server/routing/forward-events-00.pid +1 -1
  143. data/server/routing/forward-votes.pid +1 -1
  144. data/server/routing/persist.pid +1 -1
  145. metadata +33 -5
@@ -1,5 +1,5 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="manipulate" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
- <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
2
+ <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id('a','id')">
3
3
  <data type="string" rngui:readonly="true"/>
4
4
  </attribute>
5
5
  <attribute name="label" rngui:label="Label">
@@ -1,4 +1,7 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="otherwise" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="eid" rngui:label="ID" rngui:default="javascript:get_free_id('e','eid')">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
2
5
  <element name="_probability" rngui:mark="true" rngui:header="Execution Probability">
3
6
  <element name="_probability_min" rngui:label="Min in %">
4
7
  <data type="integer" rngui:label="Percent 0-100">
@@ -19,4 +22,4 @@
19
22
  </data>
20
23
  </element>
21
24
  </element>
22
- </element>
25
+ </element>
@@ -1,4 +1,7 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="parallel" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="eid" rngui:label="ID" rngui:default="javascript:get_free_id('e','eid')">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
2
5
  <attribute name="wait" rngui:label="Wait" rngui:default="-1" rngui:hint="-1 to wait for all branches.">
3
6
  <data type="integer"/>
4
7
  </attribute>
@@ -1,2 +1,5 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="parallel_branch" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="eid" rngui:label="ID" rngui:default="javascript:get_free_id('e','eid')">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
2
5
  </element>
@@ -1,5 +1,5 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="stop" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
- <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
2
+ <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id('a','id')">
3
3
  <data type="string" rngui:readonly="true"/>
4
4
  </attribute>
5
- </element>
5
+ </element>
@@ -1 +1,5 @@
1
- <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="terminate" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0"/>
1
+ <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="terminate" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="eid" rngui:label="ID" rngui:default="javascript:get_free_id('e','eid')">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
5
+ </element>
@@ -1,5 +1,5 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="wait_for_signal" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
- <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
2
+ <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id('a','id')">
3
3
  <data type="string" rngui:readonly="true"/>
4
4
  </attribute>
5
5
  <element name="label" rngui:label="Label">
@@ -1,4 +1,7 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="alternative" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="eid" rngui:label="ID" rngui:default="javascript:get_free_id('e','eid')">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
2
5
  <attribute name="condition" rngui:label="Condition">
3
6
  <data type="string" rngui:label="Condition"/>
4
7
  </attribute>
@@ -22,4 +25,4 @@
22
25
  </data>
23
26
  </element>
24
27
  </element>
25
- </element>
28
+ </element>
@@ -1,5 +1,5 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" ns="http://cpee.org/ns/description/1.0" name="call" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
2
- <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
2
+ <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id('a','id')">
3
3
  <data type="string" rngui:readonly="true"/>
4
4
  </attribute>
5
5
  <attribute name="endpoint" rngui:label="Endpoint">
@@ -1,5 +1,5 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" ns="http://cpee.org/ns/description/1.0" name="call" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
2
- <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
2
+ <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id('a','id')">
3
3
  <data type="string" rngui:readonly="true"/>
4
4
  </attribute>
5
5
  <attribute name="endpoint" rngui:label="Endpoint">
@@ -1,4 +1,7 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="choose" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="eid" rngui:label="ID" rngui:default="javascript:get_free_id('e','eid')">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
2
5
  <attribute name="mode" rngui:label="Mode" rngui:default="exclusive">
3
6
  <choice>
4
7
  <value>exclusive</value>
@@ -1,5 +1,8 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="critical" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="eid" rngui:label="ID" rngui:default="javascript:get_free_id('e','eid')">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
2
5
  <attribute name="sid" rngui:label="SID" rngui:default="section" rngui:hint="Identical SID's shared by between differnt 'critical' elements define mutual exclusive areas.">
3
6
  <data type="string"/>
4
7
  </attribute>
5
- </element>
8
+ </element>
@@ -1 +1,5 @@
1
- <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="escape" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0"/>
1
+ <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="escape" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="eid" rngui:label="ID" rngui:default="javascript:get_free_id('e','eid')">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
5
+ </element>
@@ -1,4 +1,7 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="loop" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="eid" rngui:label="ID" rngui:default="javascript:get_free_id('e','eid')">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
2
5
  <attribute name="mode" rngui:label="Mode" rngui:default="pre_test">
3
6
  <choice>
4
7
  <value>pre_test</value>
@@ -1,5 +1,5 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="manipulate" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
- <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
2
+ <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id('a','id')">
3
3
  <data type="string" rngui:readonly="true"/>
4
4
  </attribute>
5
5
  <attribute name="label" rngui:label="Label">
@@ -1,4 +1,7 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="otherwise" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="eid" rngui:label="ID" rngui:default="javascript:get_free_id('e','eid')">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
2
5
  <element name="_probability" rngui:mark="true" rngui:header="Execution Probability">
3
6
  <element name="_probability_min" rngui:label="Min in %">
4
7
  <data type="integer" rngui:label="Percent 0-100">
@@ -19,4 +22,4 @@
19
22
  </data>
20
23
  </element>
21
24
  </element>
22
- </element>
25
+ </element>
@@ -1,4 +1,7 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="parallel" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="eid" rngui:label="ID" rngui:default="javascript:get_free_id('e','eid')">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
2
5
  <attribute name="wait" rngui:label="Wait" rngui:default="-1" rngui:hint="-1 to wait for all branches.">
3
6
  <data type="integer"/>
4
7
  </attribute>
@@ -1,2 +1,5 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="parallel_branch" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="eid" rngui:label="ID" rngui:default="javascript:get_free_id('e','eid')">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
2
5
  </element>
@@ -1,5 +1,5 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="stop" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
- <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
2
+ <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id('a','id')">
3
3
  <data type="string" rngui:readonly="true"/>
4
4
  </attribute>
5
- </element>
5
+ </element>
@@ -1 +1,5 @@
1
- <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="terminate" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0"/>
1
+ <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="terminate" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
+ <attribute name="eid" rngui:label="ID" rngui:default="javascript:get_free_id('e','eid')">
3
+ <data type="string" rngui:readonly="true"/>
4
+ </attribute>
5
+ </element>
@@ -1,5 +1,5 @@
1
1
  <element xmlns="http://relaxng.org/ns/structure/1.0" xmlns:rngui="http://rngui.org" rngui:version="1.2" name="wait_for_signal" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" ns="http://cpee.org/ns/description/1.0">
2
- <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id()">
2
+ <attribute name="id" rngui:label="ID" rngui:default="javascript:get_free_id('a','id')">
3
3
  <data type="string" rngui:readonly="true"/>
4
4
  </attribute>
5
5
  <element name="label" rngui:label="Label">
data/cpee.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee"
3
- s.version = "2.1.106"
3
+ s.version = "2.1.108"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3.0-or-later"
6
6
  s.summary = "The cloud process execution engine (cpee.org). If you just need workflow execution, without a rest service exposing it, then use WEEL."
@@ -22,9 +22,11 @@ Gem::Specification.new do |s|
22
22
  s.homepage = 'http://cpee.org/'
23
23
 
24
24
  s.add_runtime_dependency 'riddl', '~> 1.0'
25
- s.add_runtime_dependency 'weel', '~> 1.99', '>= 1.99.146'
25
+ s.add_runtime_dependency 'weel', '~> 1.99', '>= 1.99.148'
26
26
  s.add_runtime_dependency 'highline', '~> 2.0'
27
- s.add_runtime_dependency 'redis', '~> 5.0'
27
+ s.add_runtime_dependency 'redis', '~> 5.4'
28
+ s.add_runtime_dependency 'net-ssh', '~> 7.3'
29
+ s.add_runtime_dependency 'net-scp', '~> 4.1'
28
30
  s.add_runtime_dependency 'rubyzip', '~>2'
29
31
  s.add_runtime_dependency 'charlock_holmes', '~>0'
30
32
  s.add_runtime_dependency 'mimemagic', '~>0'
@@ -15,7 +15,6 @@
15
15
  require 'charlock_holmes'
16
16
  require 'mimemagic'
17
17
  require 'base64'
18
- require 'get_process_mem'
19
18
  require 'cpee-eval-ruby/translation'
20
19
 
21
20
  class ConnectionWrapper < WEEL::ConnectionWrapperBase
@@ -61,7 +60,7 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
61
60
  end # }}}
62
61
  def self::inform_activity_minimal(arguments,what,uuid,label,position) # {{{
63
62
  controller = arguments[0]
64
- controller.notify("activity/#{what}", :ecid => Thread.current.__id__, :'activity-uuid' => uuid, :label => label, :activity => position)
63
+ controller.notify("activity/#{what}", :'activity-uuid' => uuid, :label => label, :activity => position)
65
64
  end # }}}
66
65
 
67
66
  def initialize(arguments,position=nil,continue=nil) # {{{
@@ -202,10 +201,10 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
202
201
  callback result, headers
203
202
  elsif headers['CPEE_CALLBACK'] && headers['CPEE_CALLBACK'] == 'true' && result.empty?
204
203
  if headers['CPEE_INSTANTIATION']
205
- @controller.notify("task/instantiation", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :received => CPEE::ValueHelper.parse(headers['CPEE_INSTANTIATION']))
204
+ @controller.notify("task/instantiation", :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :received => CPEE::ValueHelper.parse(headers['CPEE_INSTANTIATION']))
206
205
  end
207
206
  if headers['CPEE_EVENT']
208
- @controller.notify("task/#{headers['CPEE_EVENT'].gsub(/[^\w_-]/,'')}", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint)
207
+ @controller.notify("task/#{headers['CPEE_EVENT'].gsub(/[^\w_-]/,'')}", :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint)
209
208
  end
210
209
  # do nothing, later on things will happend
211
210
  else
@@ -218,9 +217,8 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
218
217
  raise "Wrong endpoint" if @handler_endpoint.nil? || @handler_endpoint.empty?
219
218
  @label = parameters[:label]
220
219
  @anno = parameters.delete(:annotations) rescue nil
221
- @controller.notify("status/resource_utilization", :mib => GetProcessMem.new.mb, **Process.times.to_h)
222
- @controller.notify("activity/calling", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :passthrough => passthrough, :endpoint => @handler_endpoint, :parameters => parameters)
223
- @controller.notify("activity/annotation", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :annotations => @anno)
220
+ @controller.notify("activity/calling", :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :passthrough => passthrough, :endpoint => @handler_endpoint, :parameters => parameters)
221
+ @controller.notify("activity/annotation", :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :annotations => @anno)
224
222
  if passthrough.to_s.empty?
225
223
  proto_curl parameters
226
224
  else
@@ -231,7 +229,7 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
231
229
  def activity_manipulate_handle(parameters) #{{{
232
230
  @label = parameters[:label]
233
231
  @anno = parameters.delete(:annotations) rescue nil
234
- @controller.notify("activity/annotation", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :annotations => @anno)
232
+ @controller.notify("activity/annotation", :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :annotations => @anno)
235
233
  end #}}}
236
234
 
237
235
  def activity_stop # {{{
@@ -252,18 +250,17 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
252
250
  end #}}}
253
251
 
254
252
  def inform_activity_done # {{{
255
- @controller.notify("activity/done", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position)
256
- @controller.notify("status/resource_utilization", :mib => GetProcessMem.new.mb, **Process.times.to_h)
253
+ @controller.notify("activity/done", :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position)
257
254
  end # }}}
258
255
  def inform_activity_manipulate # {{{
259
- @controller.notify("activity/manipulating", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position)
256
+ @controller.notify("activity/manipulating", :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position)
260
257
  end # }}}
261
258
  def inform_activity_failed(err) # {{{
262
- @controller.notify("activity/failed", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position, :message => err.backtrace[0].match(/(.*?):(\d+):\s(.*)/)[3], :line => err.backtrace[0].match(/(.*?):(\d+):/)[2], :where => err.backtrace[0].match(/(.*?):(\d+):/)[1])
259
+ @controller.notify("activity/failed", :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position, :message => err.backtrace[0].match(/(.*?):(\d+):\s(.*)/)[3], :line => err.backtrace[0].match(/(.*?):(\d+):/)[2], :where => err.backtrace[0].match(/(.*?):(\d+):/)[1])
263
260
  end # }}}
264
261
  def inform_manipulate_change(status,changed_dataelements,changed_endpoints,dataelements,endpoints) # {{{
265
262
  unless status.nil?
266
- @controller.notify("status/change", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position, :data => { :id => status.id, :message => status.message } )
263
+ @controller.notify("status/change", :'activity-uuid' => @handler_activity_uuid, :endpoint => @handler_endpoint, :label => @label, :activity => @handler_position, :data => { :id => status.id, :message => status.message } )
267
264
  end
268
265
  unless changed_dataelements.nil? || changed_dataelements.empty?
269
266
  de = dataelements.slice(*changed_dataelements).transform_values { |v| enc = CPEE::EvalRuby::Translation::detect_encoding(v); (enc == 'OTHER' ? v : (v.encode('UTF-8',enc) rescue CPEE::EvalRuby::Translation::convert_to_base64(v))) }
@@ -283,18 +280,18 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
283
280
 
284
281
  def callback(result=nil,options={}) #{{{
285
282
  recv = CPEE::EvalRuby::Translation::structurize_result(result)
286
- @controller.notify("activity/receiving", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :received => recv)
283
+ @controller.notify("activity/receiving", :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :received => recv)
287
284
 
288
285
  @guard_files += result
289
286
 
290
287
  if options['CPEE_INSTANTIATION']
291
- @controller.notify("task/instantiation", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :received => CPEE::ValueHelper.parse(options['CPEE_INSTANTIATION']))
288
+ @controller.notify("task/instantiation", :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :received => CPEE::ValueHelper.parse(options['CPEE_INSTANTIATION']))
292
289
  end
293
290
  if options['CPEE_EVENT']
294
- @controller.notify("task/#{options['CPEE_EVENT'].gsub(/[^\w_-]/,'')}", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :received => recv)
291
+ @controller.notify("task/#{options['CPEE_EVENT'].gsub(/[^\w_-]/,'')}", :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :received => recv)
295
292
  end
296
293
  if options['CPEE_STATUS']
297
- @controller.notify("activity/status", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :status => options['CPEE_STATUS'])
294
+ @controller.notify("activity/status", :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :endpoint => @handler_endpoint, :status => options['CPEE_STATUS'])
298
295
  end
299
296
 
300
297
  if options['CPEE_STATUS'] || options['CPEE_EVENT']
@@ -339,9 +336,9 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
339
336
  WEEL::ReadStructure.new(__dataelements,__endpoints,__local,__additional)
340
337
  end
341
338
  @handler_endpoint = __exec_endpoints.is_a?(Array) ? __exec_endpoints.map{ |ep| __struct.endpoints[ep] }.compact : __struct.endpoints[__exec_endpoints]
342
- if @controller.attributes['twin_engine']
339
+ if @controller.attributes['sim_engine']
343
340
  @handler_endpoint_orig = @handler_endpoint
344
- @handler_endpoint = @controller.attributes['twin_engine'].to_s + '?original_endpoint=' + Riddl::Protocols::Utils::escape(@handler_endpoint)
341
+ @handler_endpoint = @controller.attributes['sim_engine'].to_s + '?original_endpoint=' + Riddl::Protocols::Utils::escape(@handler_endpoint)
345
342
  end
346
343
  __params = __exec_parameters.dup
347
344
  __params[:arguments] = __params[:arguments].dup if __params[:arguments]
@@ -354,11 +351,11 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
354
351
  end
355
352
  __params
356
353
  end #}}}
357
- def test_condition(__dataelements,__endpoints,__local,__additional,__code,__args={}) #{{{
354
+ def test_condition(__eid,__dataelements,__endpoints,__local,__additional,__code,__args={}) #{{{
358
355
  __struct = WEEL::ReadStructure.new(__dataelements,__endpoints,__local,__additional).instance_eval(__code,'Condition',1)
359
356
 
360
- @controller.notify("gateway/decide", :ecid => Thread.current.__id__, :instance_uuid => @controller.uuid, :code => __code, :condition => (__struct ? "true" : "false"))
361
- @controller.notify("gateway/annotation", :ecid => Thread.current.__id__, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :annotations => {})
357
+ @controller.notify("gateway/decide", :eid => __eid, :instance_uuid => @controller.uuid, :code => __code, :condition => (__struct ? "true" : "false"))
358
+ @controller.notify("gateway/annotation", :eid => __eid, :'activity-uuid' => @handler_activity_uuid, :label => @label, :activity => @handler_position, :annotations => {})
362
359
  __struct
363
360
  end #}}}
364
361
  def manipulate(__readonly,__lock,__dataelements,__endpoints,__status,__local,__additional,__code,__where,__result=nil,__options=nil) #{{{
@@ -372,13 +369,13 @@ class ConnectionWrapper < WEEL::ConnectionWrapperBase
372
369
  __struct
373
370
  end #}}}
374
371
 
375
- def split_branches(id, branches = []) # factual, so for inclusive or [[a],[b],[c,d,e]] {{{
376
- payload = { :instance_uuid => @controller.uuid, :ecid => id.to_s }
372
+ def split_branches(eid, branches = []) # factual, so for inclusive or [[a],[b],[c,d,e]] {{{
373
+ payload = { :instance_uuid => @controller.uuid, :eid => eid.to_s }
377
374
  payload[:branches] = branches.length if branches.length > 0
378
375
  @controller.notify("gateway/split", payload )
379
376
  end #}}}
380
- def join_branches(id, branches = []) # factual, so for inclusive or [[a],[b],[c,d,e]] {{{
381
- payload = { :instance_uuid => @controller.uuid, :ecid => id.to_s }
377
+ def join_branches(eid, branches = []) # factual, so for inclusive or [[a],[b],[c,d,e]] {{{
378
+ payload = { :instance_uuid => @controller.uuid, :eid => eid.to_s }
382
379
  payload[:branches] = branches if branches.length > 0
383
380
  payload[:branches_length] = branches.length if branches.length > 0
384
381
  @controller.notify("gateway/join", payload )
@@ -110,6 +110,19 @@
110
110
  </xsl:with-param>
111
111
  </xsl:call-template>
112
112
  <xsl:text>terminate</xsl:text>
113
+ <xsl:choose>
114
+ <xsl:when test="@eid">
115
+ <xsl:text> :</xsl:text>
116
+ <xsl:value-of select="@eid"/>
117
+ </xsl:when>
118
+ <xsl:otherwise>
119
+ <xsl:text> :e</xsl:text>
120
+ <xsl:for-each select="ancestor-or-self::*">
121
+ <xsl:text>_</xsl:text>
122
+ <xsl:value-of select="position()"/>
123
+ </xsl:for-each>
124
+ </xsl:otherwise>
125
+ </xsl:choose>
113
126
  <xsl:call-template name="print-newline"/>
114
127
  </xsl:if>
115
128
  <xsl:if test="name()='stop'">
@@ -145,6 +158,19 @@
145
158
  </xsl:with-param>
146
159
  </xsl:call-template>
147
160
  <xsl:text>escape</xsl:text>
161
+ <xsl:choose>
162
+ <xsl:when test="@eid">
163
+ <xsl:text> :</xsl:text>
164
+ <xsl:value-of select="@eid"/>
165
+ </xsl:when>
166
+ <xsl:otherwise>
167
+ <xsl:text> :e</xsl:text>
168
+ <xsl:for-each select="ancestor-or-self::*">
169
+ <xsl:text>_</xsl:text>
170
+ <xsl:value-of select="position()"/>
171
+ </xsl:for-each>
172
+ </xsl:otherwise>
173
+ </xsl:choose>
148
174
  <xsl:call-template name="print-newline"/>
149
175
  </xsl:if>
150
176
  <xsl:if test="name()='parallel'">
@@ -155,8 +181,21 @@
155
181
  </xsl:with-param>
156
182
  </xsl:call-template>
157
183
  <xsl:text>parallel</xsl:text>
184
+ <xsl:choose>
185
+ <xsl:when test="@eid">
186
+ <xsl:text> :</xsl:text>
187
+ <xsl:value-of select="@eid"/>
188
+ </xsl:when>
189
+ <xsl:otherwise>
190
+ <xsl:text> :e</xsl:text>
191
+ <xsl:for-each select="ancestor-or-self::*">
192
+ <xsl:text>_</xsl:text>
193
+ <xsl:value-of select="position()"/>
194
+ </xsl:for-each>
195
+ </xsl:otherwise>
196
+ </xsl:choose>
158
197
  <xsl:if test="@wait">
159
- <xsl:text> :wait =&gt; </xsl:text>
198
+ <xsl:text>, :wait =&gt; </xsl:text>
160
199
  <xsl:value-of select="@wait"/>
161
200
  <xsl:if test="@cancel">
162
201
  <xsl:text>, :cancel =&gt; :</xsl:text>
@@ -186,16 +225,29 @@
186
225
  <xsl:value-of select="$myspace+$myspacemultiplier"/>
187
226
  </xsl:with-param>
188
227
  </xsl:call-template>
189
- <xsl:text>loop </xsl:text>
228
+ <xsl:text>loop</xsl:text>
229
+ <xsl:choose>
230
+ <xsl:when test="@eid">
231
+ <xsl:text> :</xsl:text>
232
+ <xsl:value-of select="@eid"/>
233
+ </xsl:when>
234
+ <xsl:otherwise>
235
+ <xsl:text> :e</xsl:text>
236
+ <xsl:for-each select="ancestor-or-self::*">
237
+ <xsl:text>_</xsl:text>
238
+ <xsl:value-of select="position()"/>
239
+ </xsl:for-each>
240
+ </xsl:otherwise>
241
+ </xsl:choose>
190
242
  <xsl:if test="@mode='pre_test'">
191
243
  <xsl:choose>
192
244
  <xsl:when test="@language='application/x-ruby'">
193
- <xsl:text>pre_test{</xsl:text>
245
+ <xsl:text>, pre_test{</xsl:text>
194
246
  <xsl:value-of select="@condition"/>
195
247
  <xsl:text>} </xsl:text>
196
248
  </xsl:when>
197
249
  <xsl:otherwise>
198
- <xsl:text>pre_test("</xsl:text>
250
+ <xsl:text>, pre_test("</xsl:text>
199
251
  <xsl:value-of select="str:replace(str:replace(@condition,'\','\\'),'&quot;','\&quot;')"/>
200
252
  <xsl:text>")</xsl:text>
201
253
  </xsl:otherwise>
@@ -204,12 +256,12 @@
204
256
  <xsl:if test="@mode='post_test'">
205
257
  <xsl:choose>
206
258
  <xsl:when test="@language='application/x-ruby'">
207
- <xsl:text>post_test{</xsl:text>
259
+ <xsl:text>, post_test{</xsl:text>
208
260
  <xsl:value-of select="@condition"/>
209
261
  <xsl:text>} </xsl:text>
210
262
  </xsl:when>
211
263
  <xsl:otherwise>
212
- <xsl:text>post_test("</xsl:text>
264
+ <xsl:text>, post_test("</xsl:text>
213
265
  <xsl:value-of select="str:replace(str:replace(@condition,'\','\\'),'&quot;','\&quot;')"/>
214
266
  <xsl:text>")</xsl:text>
215
267
  </xsl:otherwise>
@@ -306,13 +358,26 @@
306
358
  <xsl:value-of select="$myspace+$myspacemultiplier"/>
307
359
  </xsl:with-param>
308
360
  </xsl:call-template>
309
- <xsl:text>choose </xsl:text>
361
+ <xsl:text>choose</xsl:text>
362
+ <xsl:choose>
363
+ <xsl:when test="@eid">
364
+ <xsl:text> :</xsl:text>
365
+ <xsl:value-of select="@eid"/>
366
+ </xsl:when>
367
+ <xsl:otherwise>
368
+ <xsl:text> :e</xsl:text>
369
+ <xsl:for-each select="ancestor-or-self::*">
370
+ <xsl:text>_</xsl:text>
371
+ <xsl:value-of select="position()"/>
372
+ </xsl:for-each>
373
+ </xsl:otherwise>
374
+ </xsl:choose>
310
375
  <xsl:choose>
311
376
  <xsl:when test="@mode='exclusive'">
312
- <xsl:text>:exclusive</xsl:text>
377
+ <xsl:text>, :exclusive</xsl:text>
313
378
  </xsl:when>
314
379
  <xsl:otherwise>
315
- <xsl:text>:inclusive</xsl:text>
380
+ <xsl:text>, :inclusive</xsl:text>
316
381
  </xsl:otherwise>
317
382
  </xsl:choose>
318
383
  <xsl:text> do</xsl:text>
@@ -346,7 +411,21 @@
346
411
  <xsl:value-of select="$myspace+$myspacemultiplier"/>
347
412
  </xsl:with-param>
348
413
  </xsl:call-template>
349
- <xsl:text>critical :</xsl:text>
414
+ <xsl:text>critical</xsl:text>
415
+ <xsl:choose>
416
+ <xsl:when test="@eid">
417
+ <xsl:text> :</xsl:text>
418
+ <xsl:value-of select="@eid"/>
419
+ </xsl:when>
420
+ <xsl:otherwise>
421
+ <xsl:text> :e</xsl:text>
422
+ <xsl:for-each select="ancestor-or-self::*">
423
+ <xsl:text>_</xsl:text>
424
+ <xsl:value-of select="position()"/>
425
+ </xsl:for-each>
426
+ </xsl:otherwise>
427
+ </xsl:choose>
428
+ <xsl:text>, :</xsl:text>
350
429
  <xsl:value-of select="@sid"/>
351
430
  <xsl:text> do</xsl:text>
352
431
  <xsl:call-template name="print-newline"/>
@@ -373,15 +452,28 @@
373
452
  <xsl:value-of select="$myspace+$myspacemultiplier"/>
374
453
  </xsl:with-param>
375
454
  </xsl:call-template>
376
- <xsl:text>alternative </xsl:text>
455
+ <xsl:text>alternative</xsl:text>
456
+ <xsl:choose>
457
+ <xsl:when test="@eid">
458
+ <xsl:text> :</xsl:text>
459
+ <xsl:value-of select="@eid"/>
460
+ </xsl:when>
461
+ <xsl:otherwise>
462
+ <xsl:text> :e</xsl:text>
463
+ <xsl:for-each select="ancestor-or-self::*">
464
+ <xsl:text>_</xsl:text>
465
+ <xsl:value-of select="position()"/>
466
+ </xsl:for-each>
467
+ </xsl:otherwise>
468
+ </xsl:choose>
377
469
  <xsl:choose>
378
470
  <xsl:when test="@language='application/x-ruby'">
379
- <xsl:text>test{</xsl:text>
471
+ <xsl:text>, test{</xsl:text>
380
472
  <xsl:value-of select="@condition"/>
381
473
  <xsl:text>}</xsl:text>
382
474
  </xsl:when>
383
475
  <xsl:otherwise>
384
- <xsl:text>test("</xsl:text>
476
+ <xsl:text>, test("</xsl:text>
385
477
  <xsl:value-of select="str:replace(str:replace(@condition,'\','\\'),'&quot;','\&quot;')"/>
386
478
  <xsl:text>")</xsl:text>
387
479
  </xsl:otherwise>
@@ -418,7 +510,20 @@
418
510
  <xsl:value-of select="$myspace+$myspacemultiplier"/>
419
511
  </xsl:with-param>
420
512
  </xsl:call-template>
421
- <xsl:text>otherwise </xsl:text>
513
+ <xsl:text>otherwise</xsl:text>
514
+ <xsl:choose>
515
+ <xsl:when test="@eid">
516
+ <xsl:text> :</xsl:text>
517
+ <xsl:value-of select="@eid"/>
518
+ </xsl:when>
519
+ <xsl:otherwise>
520
+ <xsl:text> :e</xsl:text>
521
+ <xsl:for-each select="ancestor-or-self::*">
522
+ <xsl:text>_</xsl:text>
523
+ <xsl:value-of select="position()"/>
524
+ </xsl:for-each>
525
+ </xsl:otherwise>
526
+ </xsl:choose>
422
527
  <xsl:for-each select="@*[not(name()='language' or name()='condition' or name()='svg-label')]">
423
528
  <xsl:if test="position() &gt;1">, </xsl:if>
424
529
  <xsl:text>:</xsl:text>
@@ -452,7 +557,21 @@
452
557
  <xsl:value-of select="$myspace+$myspacemultiplier"/>
453
558
  </xsl:with-param>
454
559
  </xsl:call-template>
455
- <xsl:text>parallel_branch do |local|</xsl:text>
560
+ <xsl:text>parallel_branch</xsl:text>
561
+ <xsl:choose>
562
+ <xsl:when test="@eid">
563
+ <xsl:text> :</xsl:text>
564
+ <xsl:value-of select="@eid"/>
565
+ </xsl:when>
566
+ <xsl:otherwise>
567
+ <xsl:text> :e</xsl:text>
568
+ <xsl:for-each select="ancestor-or-self::*">
569
+ <xsl:text>_</xsl:text>
570
+ <xsl:value-of select="position()"/>
571
+ </xsl:for-each>
572
+ </xsl:otherwise>
573
+ </xsl:choose>
574
+ <xsl:text> do |local|</xsl:text>
456
575
  <xsl:call-template name="print-newline"/>
457
576
  <xsl:apply-templates>
458
577
  <xsl:with-param name="myspace">
@@ -494,7 +613,6 @@
494
613
  <xsl:text>:</xsl:text>
495
614
  <xsl:value-of select="name()"/>
496
615
  <xsl:text> =&gt; </xsl:text>
497
-
498
616
  <xsl:choose>
499
617
  <xsl:when test="count(*) &gt; 0 and name()='arguments'">
500
618
  <xsl:text>[</xsl:text>