cpee 1.3.181 → 1.3.183

Sign up to get free protection for your applications and to get access to all the features.
Files changed (190) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/css/ui.css +19 -60
  3. data/cockpit/css/wfadaptor.css +11 -0
  4. data/cockpit/index.html +45 -71
  5. data/cockpit/js/details.js +50 -139
  6. data/cockpit/js/instance.js +133 -185
  7. data/cockpit/js/parameters.js +57 -55
  8. data/cockpit/js/ui.js +4 -29
  9. data/cockpit/js/wfadaptor.js +190 -108
  10. data/cockpit/rngs/attributes.rng +8 -0
  11. data/cockpit/rngs/dataelements.rng +8 -0
  12. data/cockpit/rngs/endpoints.rng +8 -0
  13. data/cockpit/testsets/Concurrent.xml +6 -6
  14. data/cockpit/testsets/Coopis Testset.xml +12 -12
  15. data/cockpit/testsets/ICSOC Testset.xml +27 -27
  16. data/cockpit/testsets/Infinity.xml +4 -4
  17. data/cockpit/testsets/Linear.xml +10 -10
  18. data/cockpit/testsets/Mangler 1.xml +20 -20
  19. data/cockpit/testsets/Mangler 2.xml +18 -18
  20. data/cockpit/testsets/Promise.xml +258 -0
  21. data/cockpit/testsets/SOPROMO Test Sonification.xml +11 -11
  22. data/cockpit/testsets/Syncing P34 1.xml +12 -12
  23. data/cockpit/testsets/Syncing P34 2.xml +12 -12
  24. data/cockpit/testsets/Syncing P34 3.xml +12 -12
  25. data/cockpit/testsets/Syncing P34.xml +12 -12
  26. data/cockpit/testsets/TEST - Bad Loop.xml +39 -39
  27. data/cockpit/testsets/Update.xml +1 -1
  28. data/cockpit/testsets/Worklist Parallel.xml +8 -8
  29. data/cockpit/testsets/Worklist Test CPEE.xml +2 -2
  30. data/cockpit/testsets/Worklist Test.xml +2 -2
  31. data/cockpit/testsets/testsets.xml +2 -0
  32. data/cockpit/themes/adventure/rngs/alternative.rng +5 -0
  33. data/cockpit/themes/adventure/rngs/call.rng +29 -0
  34. data/cockpit/{rngtest2.rng → themes/adventure/rngs/callmanipulate.rng} +9 -9
  35. data/cockpit/themes/adventure/rngs/choose.rng +8 -0
  36. data/cockpit/themes/adventure/rngs/critical.rng +5 -0
  37. data/cockpit/themes/adventure/rngs/escape.rng +1 -0
  38. data/cockpit/themes/adventure/rngs/finalize.rng +6 -0
  39. data/cockpit/themes/adventure/rngs/group.rng +3 -0
  40. data/cockpit/themes/adventure/rngs/loop.rng +11 -0
  41. data/cockpit/themes/adventure/rngs/manipulate.rng +6 -0
  42. data/cockpit/themes/adventure/rngs/otherwise.rng +1 -0
  43. data/cockpit/themes/adventure/rngs/parallel.rng +5 -0
  44. data/cockpit/themes/adventure/rngs/parallel_branch.rng +8 -0
  45. data/cockpit/themes/adventure/rngs/update.rng +6 -0
  46. data/cockpit/themes/adventure/symbols/alternative.svg +4 -0
  47. data/cockpit/themes/adventure/symbols/call.svg +4 -0
  48. data/cockpit/themes/adventure/symbols/callmanipulate.svg +6 -0
  49. data/cockpit/themes/adventure/symbols/choose.svg +5 -0
  50. data/cockpit/themes/adventure/symbols/choose_exclusive.svg +5 -0
  51. data/cockpit/themes/adventure/symbols/choose_inclusive.svg +4 -0
  52. data/cockpit/themes/adventure/symbols/critical.svg +4 -0
  53. data/cockpit/themes/adventure/symbols/escape.svg +5 -0
  54. data/cockpit/themes/adventure/symbols/loop.svg +5 -0
  55. data/cockpit/themes/adventure/symbols/manipulate.svg +4 -0
  56. data/cockpit/themes/adventure/symbols/otherwise.svg +4 -0
  57. data/cockpit/themes/adventure/symbols/parallel.svg +5 -0
  58. data/cockpit/themes/adventure/symbols/parallel_branch.svg +4 -0
  59. data/cockpit/themes/adventure/symbols/scripts.svg +4 -0
  60. data/cockpit/themes/adventure/symbols/start.svg +3 -0
  61. data/cockpit/themes/adventure/theme.js +729 -0
  62. data/cockpit/themes/default/rngs/alternative.rng +5 -0
  63. data/cockpit/themes/default/rngs/call.rng +29 -0
  64. data/cockpit/themes/default/rngs/callmanipulate.rng +41 -0
  65. data/cockpit/themes/default/rngs/choose.rng +8 -0
  66. data/cockpit/themes/default/rngs/critical.rng +5 -0
  67. data/cockpit/themes/default/rngs/escape.rng +1 -0
  68. data/cockpit/themes/default/rngs/finalize.rng +6 -0
  69. data/cockpit/themes/default/rngs/group.rng +3 -0
  70. data/cockpit/themes/default/rngs/loop.rng +11 -0
  71. data/cockpit/themes/default/rngs/manipulate.rng +6 -0
  72. data/cockpit/themes/default/rngs/otherwise.rng +1 -0
  73. data/cockpit/themes/default/rngs/parallel.rng +5 -0
  74. data/cockpit/themes/default/rngs/parallel_branch.rng +8 -0
  75. data/cockpit/themes/default/rngs/update.rng +6 -0
  76. data/cockpit/themes/default/symbols/alternative.svg +4 -0
  77. data/cockpit/themes/default/symbols/call.svg +4 -0
  78. data/cockpit/themes/default/symbols/callmanipulate.svg +6 -0
  79. data/cockpit/themes/default/symbols/choose.svg +5 -0
  80. data/cockpit/themes/default/symbols/choose_exclusive.svg +5 -0
  81. data/cockpit/themes/default/symbols/choose_inclusive.svg +4 -0
  82. data/cockpit/themes/default/symbols/critical.svg +4 -0
  83. data/cockpit/themes/default/symbols/escape.svg +5 -0
  84. data/cockpit/themes/default/symbols/loop.svg +5 -0
  85. data/cockpit/themes/default/symbols/manipulate.svg +4 -0
  86. data/cockpit/themes/default/symbols/otherwise.svg +4 -0
  87. data/cockpit/themes/default/symbols/parallel.svg +5 -0
  88. data/cockpit/themes/default/symbols/parallel_branch.svg +4 -0
  89. data/cockpit/themes/default/symbols/scripts.svg +4 -0
  90. data/cockpit/themes/default/symbols/start.svg +3 -0
  91. data/cockpit/themes/default/theme.js +729 -0
  92. data/cockpit/themes/lego/rngs/alternative.rng +5 -0
  93. data/cockpit/themes/lego/rngs/call.rng +41 -0
  94. data/cockpit/themes/lego/rngs/choose.rng +8 -0
  95. data/cockpit/themes/lego/rngs/critical.rng +5 -0
  96. data/cockpit/themes/lego/rngs/loop.rng +11 -0
  97. data/cockpit/themes/lego/rngs/manipulate.rng +6 -0
  98. data/cockpit/themes/lego/rngs/parallel.rng +5 -0
  99. data/cockpit/themes/lego/rngs/parallel_branch.rng +8 -0
  100. data/cockpit/themes/lego/symbols/alternative.svg +4 -0
  101. data/cockpit/themes/lego/symbols/call.svg +4 -0
  102. data/cockpit/themes/lego/symbols/callmanipulate.svg +6 -0
  103. data/cockpit/themes/lego/symbols/callori.svg +4 -0
  104. data/cockpit/themes/lego/symbols/choose.svg +4 -0
  105. data/cockpit/themes/lego/symbols/choose_exclusive.svg +5 -0
  106. data/cockpit/themes/lego/symbols/choose_inclusive.svg +4 -0
  107. data/cockpit/themes/lego/symbols/critical.svg +4 -0
  108. data/cockpit/themes/lego/symbols/escape.svg +5 -0
  109. data/cockpit/themes/lego/symbols/lego.svg +72 -0
  110. data/cockpit/themes/lego/symbols/loop.svg +5 -0
  111. data/cockpit/themes/lego/symbols/manipulate.svg +4 -0
  112. data/cockpit/themes/lego/symbols/otherwise.svg +4 -0
  113. data/cockpit/themes/lego/symbols/parallel.svg +6 -0
  114. data/cockpit/themes/lego/symbols/parallel_branch.svg +4 -0
  115. data/cockpit/themes/lego/symbols/scripts.svg +4 -0
  116. data/cockpit/themes/lego/symbols/start.svg +3 -0
  117. data/cockpit/themes/lego/theme.js +742 -0
  118. data/cockpit/themes/promise/rngs/alternative.rng +5 -0
  119. data/cockpit/themes/promise/rngs/call.rng +41 -0
  120. data/cockpit/themes/promise/rngs/choose.rng +8 -0
  121. data/cockpit/themes/promise/rngs/critical.rng +5 -0
  122. data/cockpit/themes/promise/rngs/loop.rng +11 -0
  123. data/cockpit/themes/promise/rngs/manipulate.rng +6 -0
  124. data/cockpit/themes/promise/rngs/parallel.rng +5 -0
  125. data/cockpit/themes/promise/rngs/parallel_branch.rng +8 -0
  126. data/cockpit/themes/promise/symbols/alternative.svg +4 -0
  127. data/cockpit/themes/promise/symbols/call.svg +4 -0
  128. data/cockpit/themes/promise/symbols/callmanipulate.svg +6 -0
  129. data/cockpit/themes/promise/symbols/choose.svg +4 -0
  130. data/cockpit/themes/promise/symbols/choose_exclusive.svg +5 -0
  131. data/cockpit/themes/promise/symbols/choose_inclusive.svg +4 -0
  132. data/cockpit/themes/promise/symbols/critical.svg +4 -0
  133. data/cockpit/themes/promise/symbols/escape.svg +5 -0
  134. data/cockpit/themes/promise/symbols/loop.svg +5 -0
  135. data/cockpit/themes/promise/symbols/manipulate.svg +4 -0
  136. data/cockpit/themes/promise/symbols/otherwise.svg +4 -0
  137. data/cockpit/themes/promise/symbols/parallel.svg +6 -0
  138. data/cockpit/themes/promise/symbols/parallel_branch.svg +4 -0
  139. data/cockpit/themes/promise/symbols/preminder.svg +6 -0
  140. data/cockpit/themes/promise/symbols/scripts.svg +4 -0
  141. data/cockpit/themes/promise/symbols/start.svg +3 -0
  142. data/cockpit/themes/promise/theme.js +742 -0
  143. data/cpee.gemspec +2 -2
  144. data/lib/cpee/implementation.rb +15 -15
  145. data/server/handlerwrappers/default.rb +19 -19
  146. data/server/handlerwrappers/log.rb +264 -0
  147. data/server/instances/10/properties.xml +148 -0
  148. data/server/instances/11/properties.xml +149 -0
  149. data/server/instances/12/properties.xml +149 -0
  150. data/server/instances/13/properties.xml +149 -0
  151. data/server/instances/14/properties.xml +111 -0
  152. data/server/instances/15/properties.xml +113 -0
  153. data/server/instances/16/properties.xml +113 -0
  154. data/server/instances/17/properties.xml +149 -0
  155. data/server/instances/18/properties.xml +149 -0
  156. data/server/instances/19/properties.xml +114 -0
  157. data/server/instances/2/properties.xml +1 -1
  158. data/server/instances/20/properties.xml +113 -0
  159. data/server/instances/21/notifications/0851248d60c898cadd743d0dd5b6d273/consumer-secret +1 -0
  160. data/server/instances/21/notifications/0851248d60c898cadd743d0dd5b6d273/producer-secret +1 -0
  161. data/server/instances/21/notifications/0851248d60c898cadd743d0dd5b6d273/subscription.xml +6 -0
  162. data/server/instances/21/notifications/b7bac3f3010d433ce5d8f29338a06f9a/consumer-secret +1 -0
  163. data/server/instances/21/notifications/b7bac3f3010d433ce5d8f29338a06f9a/producer-secret +1 -0
  164. data/server/instances/21/notifications/b7bac3f3010d433ce5d8f29338a06f9a/subscription.xml +23 -0
  165. data/server/instances/21/properties.xml +149 -0
  166. data/server/instances/22/properties.xml +113 -0
  167. data/server/instances/23/properties.xml +88 -0
  168. data/server/instances/24/properties.xml +168 -0
  169. data/server/instances/25/properties.xml +149 -0
  170. data/server/instances/26/properties.xml +113 -0
  171. data/server/instances/27/properties.xml +141 -0
  172. data/server/instances/3/properties.xml +46 -0
  173. data/server/instances/4/properties.xml +148 -0
  174. data/server/instances/5/properties.xml +148 -0
  175. data/server/instances/6/properties.xml +148 -0
  176. data/server/instances/7/properties.xml +148 -0
  177. data/server/instances/8/properties.xml +148 -0
  178. data/server/instances/9/properties.xml +46 -0
  179. data/server/resources/properties.init +2 -1
  180. data/server/resources/transformation_dslx.xsl +12 -12
  181. data/server/server.pid +1 -0
  182. data/server/server.rb +2 -0
  183. metadata +152 -12
  184. data/cockpit/js/wfadaptor.cpee.js +0 -936
  185. data/cockpit/rngtest1.html +0 -53
  186. data/cockpit/rngtest1.rng +0 -38
  187. data/cockpit/rngtest1.xml +0 -16
  188. data/cockpit/rngtest2.html +0 -53
  189. data/cockpit/rngtest2.xml +0 -11
  190. data/cockpit/test.html +0 -46
@@ -0,0 +1,148 @@
1
+ <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
+ <attributes>
3
+ <info>Enter info here</info>
4
+ <modeltype>CPEE</modeltype>
5
+ </attributes>
6
+ <state>ready</state>
7
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
8
+ <positions/>
9
+ <dataelements>
10
+ <persons>3</persons>
11
+ <card>Visa_12345</card>
12
+ <airline>null</airline>
13
+ <hotels>[]</hotels>
14
+ <from>Vienna</from>
15
+ <to>Prague</to>
16
+ <costs>0</costs>
17
+ </dataelements>
18
+ <endpoints>
19
+ <bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
20
+ <bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
21
+ <approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
22
+ </endpoints>
23
+ <dsl>call :a1, :bookAir, parameters: { :method =&gt; :post, :arguments =&gt; {:from =&gt; data.from, :to =&gt; data.to, :persons =&gt; data.persons} }, finalize: &lt;&lt;-END
24
+ data.airline = result.value('id')
25
+ data.costs += result.value('costs').to_f
26
+ status.update 1, 'Hotel'
27
+ END
28
+ parallel do
29
+ loop , :mode =&gt; "pre_test", :condition =&gt; "data.persons &gt; 0" do
30
+ parallel_branch data.persons do |p|
31
+ call :a2, :bookHotel, parameters: { :method =&gt; :post, :parameters =&gt; {:to =&gt; data.to} }, finalize: &lt;&lt;-END
32
+ data.hotels &lt;&lt; result.value('id')
33
+ data.costs += result.value('costs').to_f
34
+ END
35
+ end
36
+ manipulate :a3, &lt;&lt;-END
37
+ data.persons -= 1
38
+ END
39
+ end
40
+ end
41
+ choose :inclusive do
42
+ alternative "data.costs &gt; 700" do
43
+ call :a4, :approve, parameters: { :method =&gt; :post, :parameters =&gt; {:costs =&gt; data.costs} }
44
+ end
45
+ end
46
+ </dsl>
47
+ <dslx>
48
+ <description xmlns="http://cpee.org/ns/description/1.0">
49
+ <call id="a1" endpoint="bookAir">
50
+ <parameters>
51
+ <method>:post</method>
52
+ <arguments>
53
+ <from>data.from</from>
54
+ <to>data.to</to>
55
+ <persons>data.persons</persons>
56
+ </arguments>
57
+ </parameters>
58
+ <finalize output="result"> data.airline = result.value('id')
59
+ data.costs += result.value('costs').to_f
60
+ status.update 1, 'Hotel'</finalize>
61
+ </call>
62
+ <parallel>
63
+ <loop mode="pre_test" condition="data.persons &gt; 0">
64
+ <parallel_branch pass="data.persons" local="p">
65
+ <call id="a2" endpoint="bookHotel">
66
+ <parameters>
67
+ <method>:post</method>
68
+ <parameters>
69
+ <to>data.to</to>
70
+ </parameters>
71
+ </parameters>
72
+ <finalize output="result"> data.hotels &lt;&lt; result.value('id')
73
+ data.costs += result.value('costs').to_f</finalize>
74
+ </call>
75
+ </parallel_branch>
76
+ <manipulate id="a3"> data.persons -= 1</manipulate>
77
+ </loop>
78
+ </parallel>
79
+ <choose>
80
+ <alternative condition="data.costs &gt; 700">
81
+ <call id="a4" endpoint="approve">
82
+ <parameters>
83
+ <method>:post</method>
84
+ <parameters>
85
+ <costs>data.costs</costs>
86
+ </parameters>
87
+ </parameters>
88
+ </call>
89
+ </alternative>
90
+ </choose>
91
+ </description>
92
+ </dslx>
93
+ <status>
94
+ <id>0</id>
95
+ <message>undefined</message>
96
+ </status>
97
+ <description>
98
+ <description xmlns="http://cpee.org/ns/description/1.0">
99
+ <call id="a1" endpoint="bookAir">
100
+ <parameters>
101
+ <method>:post</method>
102
+ <arguments>
103
+ <from>data.from</from>
104
+ <to>data.to</to>
105
+ <persons>data.persons</persons>
106
+ </arguments>
107
+ </parameters>
108
+ <finalize output="result"> data.airline = result.value('id')
109
+ data.costs += result.value('costs').to_f
110
+ status.update 1, 'Hotel'</finalize>
111
+ </call>
112
+ <parallel>
113
+ <loop mode="pre_test" condition="data.persons &gt; 0">
114
+ <parallel_branch pass="data.persons" local="p">
115
+ <call id="a2" endpoint="bookHotel">
116
+ <parameters>
117
+ <method>:post</method>
118
+ <parameters>
119
+ <to>data.to</to>
120
+ </parameters>
121
+ </parameters>
122
+ <finalize output="result"> data.hotels &lt;&lt; result.value('id')
123
+ data.costs += result.value('costs').to_f</finalize>
124
+ </call>
125
+ </parallel_branch>
126
+ <manipulate id="a3"> data.persons -= 1</manipulate>
127
+ </loop>
128
+ </parallel>
129
+ <choose>
130
+ <alternative condition="data.costs &gt; 700">
131
+ <call id="a4" endpoint="approve">
132
+ <parameters>
133
+ <method>:post</method>
134
+ <parameters>
135
+ <costs>data.costs</costs>
136
+ </parameters>
137
+ </parameters>
138
+ </call>
139
+ </alternative>
140
+ </choose>
141
+ </description>
142
+ </description>
143
+ <transformation>
144
+ <description type="copy"/>
145
+ <dataelements type="rest"/>
146
+ <endpoints type="rest"/>
147
+ </transformation>
148
+ </properties>
@@ -0,0 +1,149 @@
1
+ <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
+ <attributes>
3
+ <info>Enter info here</info>
4
+ <modeltype>CPEE</modeltype>
5
+ <theme>default</theme>
6
+ </attributes>
7
+ <state>ready</state>
8
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
9
+ <positions/>
10
+ <dataelements>
11
+ <persons>3</persons>
12
+ <card>Visa_12345</card>
13
+ <airline>null</airline>
14
+ <hotels>[]</hotels>
15
+ <from>Vienna</from>
16
+ <to>Prague</to>
17
+ <costs>0</costs>
18
+ </dataelements>
19
+ <endpoints>
20
+ <bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
21
+ <bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
22
+ <approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
23
+ </endpoints>
24
+ <dsl>call :a1, :bookAir, parameters: { :method =&gt; :post, :arguments =&gt; {:from =&gt; data.from, :to =&gt; data.to, :persons =&gt; data.persons} }, finalize: &lt;&lt;-END
25
+ data.airline = result.value('id')
26
+ data.costs += result.value('costs').to_f
27
+ status.update 1, 'Hotel'
28
+ END
29
+ parallel do
30
+ loop pre_test{data.persons &gt; 0} , :mode =&gt; "pre_test", :condition =&gt; "data.persons &gt; 0" do
31
+ parallel_branch data.persons do |p|
32
+ call :a2, :bookHotel, parameters: { :method =&gt; :post, :arguments =&gt; {:to =&gt; data.to} }, finalize: &lt;&lt;-END
33
+ data.hotels &lt;&lt; result.value('id')
34
+ data.costs += result.value('costs').to_f
35
+ END
36
+ end
37
+ manipulate :a3, &lt;&lt;-END
38
+ data.persons -= 1
39
+ END
40
+ end
41
+ end
42
+ choose :inclusive do
43
+ alternative "data.costs &gt; 700" do
44
+ call :a4, :approve, parameters: { :method =&gt; :post, :arguments =&gt; {:costs =&gt; data.costs} }
45
+ end
46
+ end
47
+ </dsl>
48
+ <dslx>
49
+ <description xmlns="http://cpee.org/ns/description/1.0">
50
+ <call id="a1" endpoint="bookAir">
51
+ <parameters>
52
+ <method>:post</method>
53
+ <arguments>
54
+ <from>data.from</from>
55
+ <to>data.to</to>
56
+ <persons>data.persons</persons>
57
+ </arguments>
58
+ </parameters>
59
+ <finalize output="result"> data.airline = result.value('id')
60
+ data.costs += result.value('costs').to_f
61
+ status.update 1, 'Hotel'</finalize>
62
+ </call>
63
+ <parallel>
64
+ <loop mode="pre_test" condition="data.persons &gt; 0">
65
+ <parallel_branch pass="data.persons" local="p">
66
+ <call id="a2" endpoint="bookHotel">
67
+ <parameters>
68
+ <method>:post</method>
69
+ <arguments>
70
+ <to>data.to</to>
71
+ </arguments>
72
+ </parameters>
73
+ <finalize output="result"> data.hotels &lt;&lt; result.value('id')
74
+ data.costs += result.value('costs').to_f</finalize>
75
+ </call>
76
+ </parallel_branch>
77
+ <manipulate id="a3"> data.persons -= 1</manipulate>
78
+ </loop>
79
+ </parallel>
80
+ <choose>
81
+ <alternative condition="data.costs &gt; 700">
82
+ <call id="a4" endpoint="approve">
83
+ <parameters>
84
+ <method>:post</method>
85
+ <arguments>
86
+ <costs>data.costs</costs>
87
+ </arguments>
88
+ </parameters>
89
+ </call>
90
+ </alternative>
91
+ </choose>
92
+ </description>
93
+ </dslx>
94
+ <status>
95
+ <id>0</id>
96
+ <message>undefined</message>
97
+ </status>
98
+ <description>
99
+ <description xmlns="http://cpee.org/ns/description/1.0">
100
+ <call id="a1" endpoint="bookAir">
101
+ <parameters>
102
+ <method>:post</method>
103
+ <arguments>
104
+ <from>data.from</from>
105
+ <to>data.to</to>
106
+ <persons>data.persons</persons>
107
+ </arguments>
108
+ </parameters>
109
+ <finalize output="result"> data.airline = result.value('id')
110
+ data.costs += result.value('costs').to_f
111
+ status.update 1, 'Hotel'</finalize>
112
+ </call>
113
+ <parallel>
114
+ <loop mode="pre_test" condition="data.persons &gt; 0">
115
+ <parallel_branch pass="data.persons" local="p">
116
+ <call id="a2" endpoint="bookHotel">
117
+ <parameters>
118
+ <method>:post</method>
119
+ <arguments>
120
+ <to>data.to</to>
121
+ </arguments>
122
+ </parameters>
123
+ <finalize output="result"> data.hotels &lt;&lt; result.value('id')
124
+ data.costs += result.value('costs').to_f</finalize>
125
+ </call>
126
+ </parallel_branch>
127
+ <manipulate id="a3"> data.persons -= 1</manipulate>
128
+ </loop>
129
+ </parallel>
130
+ <choose>
131
+ <alternative condition="data.costs &gt; 700">
132
+ <call id="a4" endpoint="approve">
133
+ <parameters>
134
+ <method>:post</method>
135
+ <arguments>
136
+ <costs>data.costs</costs>
137
+ </arguments>
138
+ </parameters>
139
+ </call>
140
+ </alternative>
141
+ </choose>
142
+ </description>
143
+ </description>
144
+ <transformation>
145
+ <description type="copy"/>
146
+ <dataelements type="rest"/>
147
+ <endpoints type="rest"/>
148
+ </transformation>
149
+ </properties>
@@ -0,0 +1,149 @@
1
+ <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
+ <attributes>
3
+ <theme>default</theme>
4
+ <info>ss</info>
5
+ <modeltype>CPEE</modeltype>
6
+ </attributes>
7
+ <state>ready</state>
8
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
9
+ <positions/>
10
+ <dataelements>
11
+ <persons>3</persons>
12
+ <card>Visa_12345</card>
13
+ <airline>null</airline>
14
+ <hotels>[]</hotels>
15
+ <from>Vienna</from>
16
+ <to>Prague</to>
17
+ <costs>0</costs>
18
+ </dataelements>
19
+ <endpoints>
20
+ <bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
21
+ <bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
22
+ <approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
23
+ </endpoints>
24
+ <dsl>call :a1, :bookAir, parameters: { :method =&gt; :post, :arguments =&gt; {:from =&gt; data.from, :to =&gt; data.to, :persons =&gt; data.persons} }, finalize: &lt;&lt;-END
25
+ data.airline = result.value('id')
26
+ data.costs += result.value('costs').to_f
27
+ status.update 1, 'Hotel'
28
+ END
29
+ parallel do
30
+ loop pre_test{data.persons &gt; 0} do
31
+ parallel_branch data.persons do |p|
32
+ call :a2, :bookHotel, parameters: { :method =&gt; :post, :arguments =&gt; {:to =&gt; data.to} }, finalize: &lt;&lt;-END
33
+ data.hotels &lt;&lt; result.value('id')
34
+ data.costs += result.value('costs').to_f
35
+ END
36
+ end
37
+ manipulate :a3, &lt;&lt;-END
38
+ data.persons -= 1
39
+ END
40
+ end
41
+ end
42
+ choose :inclusive do
43
+ alternative "data.costs &gt; 700" do
44
+ call :a4, :approve, parameters: { :method =&gt; :post, :arguments =&gt; {:costs =&gt; data.costs} }
45
+ end
46
+ end
47
+ </dsl>
48
+ <dslx>
49
+ <description xmlns="http://cpee.org/ns/description/1.0">
50
+ <call id="a1" endpoint="bookAir">
51
+ <parameters>
52
+ <method>:post</method>
53
+ <arguments>
54
+ <from>data.from</from>
55
+ <to>data.to</to>
56
+ <persons>data.persons</persons>
57
+ </arguments>
58
+ </parameters>
59
+ <finalize output="result"> data.airline = result.value('id')
60
+ data.costs += result.value('costs').to_f
61
+ status.update 1, 'Hotel'</finalize>
62
+ </call>
63
+ <parallel>
64
+ <loop mode="pre_test" condition="data.persons &gt; 0">
65
+ <parallel_branch pass="data.persons" local="p">
66
+ <call id="a2" endpoint="bookHotel">
67
+ <parameters>
68
+ <method>:post</method>
69
+ <arguments>
70
+ <to>data.to</to>
71
+ </arguments>
72
+ </parameters>
73
+ <finalize output="result"> data.hotels &lt;&lt; result.value('id')
74
+ data.costs += result.value('costs').to_f</finalize>
75
+ </call>
76
+ </parallel_branch>
77
+ <manipulate id="a3"> data.persons -= 1</manipulate>
78
+ </loop>
79
+ </parallel>
80
+ <choose>
81
+ <alternative condition="data.costs &gt; 700">
82
+ <call id="a4" endpoint="approve">
83
+ <parameters>
84
+ <method>:post</method>
85
+ <arguments>
86
+ <costs>data.costs</costs>
87
+ </arguments>
88
+ </parameters>
89
+ </call>
90
+ </alternative>
91
+ </choose>
92
+ </description>
93
+ </dslx>
94
+ <status>
95
+ <id>0</id>
96
+ <message>undefined</message>
97
+ </status>
98
+ <description>
99
+ <description xmlns="http://cpee.org/ns/description/1.0">
100
+ <call id="a1" endpoint="bookAir">
101
+ <parameters>
102
+ <method>:post</method>
103
+ <arguments>
104
+ <from>data.from</from>
105
+ <to>data.to</to>
106
+ <persons>data.persons</persons>
107
+ </arguments>
108
+ </parameters>
109
+ <finalize output="result"> data.airline = result.value('id')
110
+ data.costs += result.value('costs').to_f
111
+ status.update 1, 'Hotel'</finalize>
112
+ </call>
113
+ <parallel>
114
+ <loop mode="pre_test" condition="data.persons &gt; 0">
115
+ <parallel_branch pass="data.persons" local="p">
116
+ <call id="a2" endpoint="bookHotel">
117
+ <parameters>
118
+ <method>:post</method>
119
+ <arguments>
120
+ <to>data.to</to>
121
+ </arguments>
122
+ </parameters>
123
+ <finalize output="result"> data.hotels &lt;&lt; result.value('id')
124
+ data.costs += result.value('costs').to_f</finalize>
125
+ </call>
126
+ </parallel_branch>
127
+ <manipulate id="a3"> data.persons -= 1</manipulate>
128
+ </loop>
129
+ </parallel>
130
+ <choose>
131
+ <alternative condition="data.costs &gt; 700">
132
+ <call id="a4" endpoint="approve">
133
+ <parameters>
134
+ <method>:post</method>
135
+ <arguments>
136
+ <costs>data.costs</costs>
137
+ </arguments>
138
+ </parameters>
139
+ </call>
140
+ </alternative>
141
+ </choose>
142
+ </description>
143
+ </description>
144
+ <transformation>
145
+ <description type="copy"/>
146
+ <dataelements type="rest"/>
147
+ <endpoints type="rest"/>
148
+ </transformation>
149
+ </properties>
@@ -0,0 +1,149 @@
1
+ <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
+ <attributes>
3
+ <info>Enter info here</info>
4
+ <modeltype>CPEE</modeltype>
5
+ <theme>promise</theme>
6
+ </attributes>
7
+ <state>ready</state>
8
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
9
+ <positions/>
10
+ <dataelements>
11
+ <persons>3</persons>
12
+ <card>Visa_12345</card>
13
+ <airline>null</airline>
14
+ <hotels>[]</hotels>
15
+ <from>Vienna</from>
16
+ <to>Prague</to>
17
+ <costs>0</costs>
18
+ </dataelements>
19
+ <endpoints>
20
+ <bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
21
+ <bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
22
+ <approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
23
+ </endpoints>
24
+ <dsl>call :a1, :bookAir, parameters: { :method =&gt; :post, :arguments =&gt; {:from =&gt; data.from, :to =&gt; data.to, :persons =&gt; data.persons} }, finalize: &lt;&lt;-END
25
+ data.airline = result.value('id')
26
+ data.costs += result.value('costs').to_f
27
+ status.update 1, 'Hotel'
28
+ END
29
+ parallel do
30
+ loop pre_test{data.persons &gt; 0} do
31
+ parallel_branch data.persons do |p|
32
+ call :a2, :bookHotel, parameters: { :method =&gt; :post, :arguments =&gt; {:to =&gt; data.to} }, finalize: &lt;&lt;-END
33
+ data.hotels &lt;&lt; result.value('id')
34
+ data.costs += result.value('costs').to_f
35
+ END
36
+ end
37
+ manipulate :a3, &lt;&lt;-END
38
+ data.persons -= 1
39
+ END
40
+ end
41
+ end
42
+ choose :inclusive do
43
+ alternative "data.costs &gt; 700" do
44
+ call :a4, :approve, parameters: { :method =&gt; :post, :arguments =&gt; {:costs =&gt; data.costs} }
45
+ end
46
+ end
47
+ </dsl>
48
+ <dslx>
49
+ <description xmlns="http://cpee.org/ns/description/1.0">
50
+ <call id="a1" endpoint="bookAir">
51
+ <parameters>
52
+ <method>:post</method>
53
+ <arguments>
54
+ <from>data.from</from>
55
+ <to>data.to</to>
56
+ <persons>data.persons</persons>
57
+ </arguments>
58
+ </parameters>
59
+ <finalize output="result"> data.airline = result.value('id')
60
+ data.costs += result.value('costs').to_f
61
+ status.update 1, 'Hotel'</finalize>
62
+ </call>
63
+ <parallel>
64
+ <loop mode="pre_test" condition="data.persons &gt; 0">
65
+ <parallel_branch pass="data.persons" local="p">
66
+ <call id="a2" endpoint="bookHotel">
67
+ <parameters>
68
+ <method>:post</method>
69
+ <arguments>
70
+ <to>data.to</to>
71
+ </arguments>
72
+ </parameters>
73
+ <finalize output="result"> data.hotels &lt;&lt; result.value('id')
74
+ data.costs += result.value('costs').to_f</finalize>
75
+ </call>
76
+ </parallel_branch>
77
+ <manipulate id="a3"> data.persons -= 1</manipulate>
78
+ </loop>
79
+ </parallel>
80
+ <choose>
81
+ <alternative condition="data.costs &gt; 700">
82
+ <call id="a4" endpoint="approve">
83
+ <parameters>
84
+ <method>:post</method>
85
+ <arguments>
86
+ <costs>data.costs</costs>
87
+ </arguments>
88
+ </parameters>
89
+ </call>
90
+ </alternative>
91
+ </choose>
92
+ </description>
93
+ </dslx>
94
+ <status>
95
+ <id>0</id>
96
+ <message>undefined</message>
97
+ </status>
98
+ <description>
99
+ <description xmlns="http://cpee.org/ns/description/1.0">
100
+ <call id="a1" endpoint="bookAir">
101
+ <parameters>
102
+ <method>:post</method>
103
+ <arguments>
104
+ <from>data.from</from>
105
+ <to>data.to</to>
106
+ <persons>data.persons</persons>
107
+ </arguments>
108
+ </parameters>
109
+ <finalize output="result"> data.airline = result.value('id')
110
+ data.costs += result.value('costs').to_f
111
+ status.update 1, 'Hotel'</finalize>
112
+ </call>
113
+ <parallel>
114
+ <loop mode="pre_test" condition="data.persons &gt; 0">
115
+ <parallel_branch pass="data.persons" local="p">
116
+ <call id="a2" endpoint="bookHotel">
117
+ <parameters>
118
+ <method>:post</method>
119
+ <arguments>
120
+ <to>data.to</to>
121
+ </arguments>
122
+ </parameters>
123
+ <finalize output="result"> data.hotels &lt;&lt; result.value('id')
124
+ data.costs += result.value('costs').to_f</finalize>
125
+ </call>
126
+ </parallel_branch>
127
+ <manipulate id="a3"> data.persons -= 1</manipulate>
128
+ </loop>
129
+ </parallel>
130
+ <choose>
131
+ <alternative condition="data.costs &gt; 700">
132
+ <call id="a4" endpoint="approve">
133
+ <parameters>
134
+ <method>:post</method>
135
+ <arguments>
136
+ <costs>data.costs</costs>
137
+ </arguments>
138
+ </parameters>
139
+ </call>
140
+ </alternative>
141
+ </choose>
142
+ </description>
143
+ </description>
144
+ <transformation>
145
+ <description type="copy"/>
146
+ <dataelements type="none"/>
147
+ <endpoints type="none"/>
148
+ </transformation>
149
+ </properties>