cpee 1.4.10 → 1.4.11

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 (102) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/js/instance.js +21 -1
  3. data/cockpit/testsets/Async.xml +42 -0
  4. data/cockpit/testsets/testsets.xml +1 -0
  5. data/cockpit/themes/compact/theme.js +4 -0
  6. data/cockpit/themes/default/theme.js +4 -0
  7. data/cpee.gemspec +1 -1
  8. data/lib/cpee.xml +1 -1
  9. data/lib/cpee/implementation.rb +2 -0
  10. data/log/logs/1/test +1 -0
  11. data/server/instances/1/properties.xml +31 -158
  12. data/server/instances/10/notifications/182434032285ca1d06a8b6554b8889c8/consumer-secret +1 -0
  13. data/server/instances/10/notifications/182434032285ca1d06a8b6554b8889c8/producer-secret +1 -0
  14. data/server/instances/10/notifications/182434032285ca1d06a8b6554b8889c8/subscription.xml +23 -0
  15. data/server/instances/10/notifications/512a3785631a5245dbb45fa150ea72ed/consumer-secret +1 -0
  16. data/server/instances/10/notifications/512a3785631a5245dbb45fa150ea72ed/producer-secret +1 -0
  17. data/server/instances/10/notifications/512a3785631a5245dbb45fa150ea72ed/subscription.xml +6 -0
  18. data/server/instances/10/properties.xml +187 -0
  19. data/server/instances/11/properties.xml +191 -0
  20. data/server/instances/12/properties.xml +191 -0
  21. data/server/instances/13/properties.xml +204 -0
  22. data/server/instances/14/properties.xml +31 -0
  23. data/server/instances/15/properties.xml +30 -0
  24. data/server/instances/16/properties.xml +29 -0
  25. data/server/instances/17/properties.xml +29 -0
  26. data/server/instances/18/properties.xml +31 -0
  27. data/server/instances/19/properties.xml +31 -0
  28. data/server/instances/2/properties.xml +12 -137
  29. data/server/instances/20/properties.xml +191 -0
  30. data/server/instances/21/properties.xml +156 -0
  31. data/server/instances/22/properties.xml +118 -0
  32. data/server/instances/23/properties.xml +118 -0
  33. data/server/instances/24/properties.xml +156 -0
  34. data/server/instances/25/properties.xml +156 -0
  35. data/server/instances/26/properties.xml +156 -0
  36. data/server/instances/27/properties.xml +140 -0
  37. data/server/instances/28/properties.xml +156 -0
  38. data/server/instances/29/properties.xml +156 -0
  39. data/server/instances/3/properties.xml +80 -116
  40. data/server/instances/30/properties.xml +354 -0
  41. data/server/instances/31/properties.xml +354 -0
  42. data/server/instances/313/notifications/crisp/consumer-secret +1 -0
  43. data/server/instances/313/notifications/crisp/producer-secret +1 -0
  44. data/server/instances/313/notifications/crisp/subscription.xml +7 -0
  45. data/server/instances/313/notifications/logging/consumer-secret +1 -0
  46. data/server/instances/313/notifications/logging/producer-secret +1 -0
  47. data/server/instances/313/notifications/logging/subscription.xml +7 -0
  48. data/server/instances/313/notifications/logging_yaml/consumer-secret +1 -0
  49. data/server/instances/313/notifications/logging_yaml/producer-secret +1 -0
  50. data/server/instances/313/notifications/logging_yaml/subscription.xml +7 -0
  51. data/server/instances/313/properties.xml +524 -0
  52. data/server/instances/32/properties.xml +628 -0
  53. data/server/instances/33/properties.xml +156 -0
  54. data/server/instances/4/properties.xml +114 -0
  55. data/server/instances/5/properties.xml +114 -0
  56. data/server/instances/6/properties.xml +206 -0
  57. data/server/instances/662/notifications/crisp/consumer-secret +1 -0
  58. data/server/instances/662/notifications/crisp/producer-secret +1 -0
  59. data/server/instances/662/notifications/crisp/subscription.xml +7 -0
  60. data/server/instances/662/notifications/logging/consumer-secret +1 -0
  61. data/server/instances/662/notifications/logging/producer-secret +1 -0
  62. data/server/instances/662/notifications/logging/subscription.xml +7 -0
  63. data/server/instances/662/notifications/logging_yaml/consumer-secret +1 -0
  64. data/server/instances/662/notifications/logging_yaml/producer-secret +1 -0
  65. data/server/instances/662/notifications/logging_yaml/subscription.xml +7 -0
  66. data/server/instances/662/properties.xml +427 -0
  67. data/server/instances/663/properties.xml +31 -0
  68. data/server/instances/664/properties.xml +425 -0
  69. data/server/instances/665/properties.xml +425 -0
  70. data/server/instances/666/properties.xml +427 -0
  71. data/server/instances/667/properties.xml +427 -0
  72. data/server/instances/668/properties.xml +425 -0
  73. data/server/instances/669/properties.xml +425 -0
  74. data/server/instances/670/properties.xml +31 -0
  75. data/server/instances/671/properties.xml +158 -0
  76. data/server/instances/672/properties.xml +199 -0
  77. data/server/instances/673/properties.xml +52 -0
  78. data/server/instances/674/properties.xml +75 -0
  79. data/server/instances/675/notifications/10fa09a02f1a981a931ebe75d8cabe48/consumer-secret +1 -0
  80. data/server/instances/675/notifications/10fa09a02f1a981a931ebe75d8cabe48/producer-secret +1 -0
  81. data/server/instances/675/notifications/10fa09a02f1a981a931ebe75d8cabe48/subscription.xml +6 -0
  82. data/server/instances/675/properties.xml +74 -0
  83. data/server/instances/676/properties.xml +76 -0
  84. data/server/instances/677/properties.xml +76 -0
  85. data/server/instances/678/properties.xml +74 -0
  86. data/server/instances/679/notifications/1b946ec6292b2dacfbad69f6f5e2b085/consumer-secret +1 -0
  87. data/server/instances/679/notifications/1b946ec6292b2dacfbad69f6f5e2b085/producer-secret +1 -0
  88. data/server/instances/679/notifications/1b946ec6292b2dacfbad69f6f5e2b085/subscription.xml +38 -0
  89. data/server/instances/679/properties.xml +76 -0
  90. data/server/instances/680/properties.xml +76 -0
  91. data/server/instances/7/properties.xml +156 -0
  92. data/server/instances/8/properties.xml +118 -0
  93. data/server/instances/9/properties.xml +120 -0
  94. data/server/server.pid +1 -1
  95. data/server/server.rb +0 -1
  96. metadata +84 -8
  97. data/cockpit/config.json +0 -6
  98. data/cockpit/testsets/CPEE.xml +0 -8
  99. data/cockpit/testsets/Signavio.xml +0 -8
  100. data/server/resources/base.xml +0 -78
  101. data/server/resources/test.rb +0 -19
  102. data/server/resources/test.xml +0 -33
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9bcb32efae8a0010345e6075833164b82be63e32fc74fe492e30794c39f1e0bb
4
- data.tar.gz: 6374a34d2c0366549f152dcf5eadb896a2357c70f1d6c23b66985cda12c062f0
3
+ metadata.gz: 78ed01a7dac4df1f58e1eb2bd77533f4dd3e879bc19f5e03b3ba6238b28c6ffa
4
+ data.tar.gz: 43a2d6b29c263f66a958195107476fa6550fee13b02bd3031ff8ecedce984710
5
5
  SHA512:
6
- metadata.gz: 7dd02049b645e866bfb8947a9fadf5d1718aa154d846cf0d36875b5d9bae38e39c31f8dbb8aa9c66f20422404e95047b97e7e55ffcacdd4a78ed7cf62620c78a
7
- data.tar.gz: 61cc7b86287410f500f546cf777c65c9895b48de648cba65de6670135549d5a831f28028f4ed084137dee055148eadc69a30960af9eebe2b4280f5b26936efa7
6
+ metadata.gz: b41c3d08a32c2990a5553dbb1f8acadf56dd48b5258be876f01f2bbd43d52add1d7d5568e273594761724e88034c0a6124f9ca7a5914cfe34b626834e502a39a
7
+ data.tar.gz: 57534ab3ff2262ef9eb1fcda812104f9a7884deea25d1c4a38bba60f2aa183c2bb4ce3b899491b212109957d8e67482f11223c1c0a3a94e47201b67ad4451c57
@@ -1,6 +1,7 @@
1
1
  var ws;
2
2
  var suspended_monitoring = false;
3
3
  var myid = ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));
4
+ var paths = '#dat_details input, #dat_details textarea, #dat_details select, #dat_details button, #dat_details [contenteditable], #dat_dataelements input, #dat_dataelements textarea, #dat_dataelements select, #dat_dataelements button, #dat_dataelements [contenteditable], #dat_endpoints input, #dat_endpoints textarea, #dat_endpoints select, #dat_endpoints button, #dat_endpoints [contenteditable], #dat_attributes input, #dat_attributes textarea, #dat_attributes select, #dat_attributes button, #dat_attributes [contenteditable]';
4
5
  var loading = false;
5
6
  var subscription;
6
7
  var subscription_state = 'less';
@@ -526,6 +527,13 @@ function monitor_instance_state_change(notification) { //{{{
526
527
  but = " ⇒ <button onclick='$(this).attr(\"disabled\",\"disabled\");stop_instance();'>stop</button>";
527
528
  }
528
529
 
530
+ // disable all input, also check themes
531
+ format_visual_forms();
532
+ // remove all markings with state change
533
+ if (save['graph_adaptor'] && save['graph_adaptor'].illustrator) {
534
+ save['graph_adaptor'].illustrator.get_elements().removeClass('marked');
535
+ }
536
+
529
537
  if (notification == "finished") {
530
538
  $('.tabbehind button').hide();
531
539
  } else {
@@ -826,7 +834,7 @@ function load_modeltype() {// {{{
826
834
  $.ajax({
827
835
  cache: false,
828
836
  dataType: 'xml',
829
- url: $('body').attr('current-testsets') + name + ".xml",
837
+ url: $('body').attr('current-testsets') + "." + name + ".xml",
830
838
  success: function(res){
831
839
  $.ajax({
832
840
  type: "PUT",
@@ -1063,6 +1071,18 @@ function format_visual_vote_clear() {//{{{
1063
1071
  $("#votes").empty();
1064
1072
  }//}}}
1065
1073
 
1074
+ function format_visual_forms() { //{{{
1075
+ if (save['state'] != "ready" && save['state'] != "stopped") {
1076
+ $(paths).each(function(k,e){
1077
+ $(e).attr('disabled','disable');
1078
+ });
1079
+ } else {
1080
+ $(paths).each(function(k,e){
1081
+ $(e).removeAttr('disabled');
1082
+ });
1083
+ }
1084
+ } //}}}
1085
+
1066
1086
  function format_code(res,skim,lnums) {// {{{
1067
1087
  try {
1068
1088
  res = res.replace(/&/g,'&amp;');
@@ -0,0 +1,42 @@
1
+ <testset>
2
+ <dataelements/>
3
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
4
+ <endpoints>
5
+ <timeout xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
6
+ <test xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http://localhost:9301/</test>
7
+ </endpoints>
8
+ <positions/>
9
+ <description>
10
+ <description xmlns="http://cpee.org/ns/description/1.0">
11
+ <call id="a1" endpoint="test">
12
+ <parameters>
13
+ <label/>
14
+ <method>:post</method>
15
+ <arguments/>
16
+ <sensors/>
17
+ </parameters>
18
+ <finalize output="result"/>
19
+ <update output="result"/>
20
+ <_timing>
21
+ <_timing_min/>
22
+ <_timing_max/>
23
+ <_timing_avg/>
24
+ </_timing>
25
+ <_notes>
26
+ <_notes_general/>
27
+ <_notes_output/>
28
+ <_attachments/>
29
+ </_notes>
30
+ </call>
31
+ </description>
32
+ </description>
33
+ <transformation>
34
+ <description type="copy"/>
35
+ <dataelements type="none"/>
36
+ <endpoints type="none"/>
37
+ </transformation>
38
+ <attributes>
39
+ <info xmlns="http://riddl.org/ns/common-patterns/properties/1.0">Async</info>
40
+ <modeltype xmlns="http://riddl.org/ns/common-patterns/properties/1.0">CPEE</modeltype>
41
+ </attributes>
42
+ </testset>
@@ -1,5 +1,6 @@
1
1
  <testsets>
2
2
  <!--testset>Centurio</testset-->
3
+ <testset>Async</testset>
3
4
  <testset>Log</testset>
4
5
  <testset>BCS</testset>
5
6
  <testset>BCO</testset>
@@ -68,6 +68,7 @@ function WFAdaptorManifestation(adaptor) {
68
68
  }
69
69
  save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval);
70
70
  save['details'].content(node);
71
+ format_visual_forms();
71
72
  }
72
73
  }; //}}}
73
74
 
@@ -117,6 +118,8 @@ function WFAdaptorManifestation(adaptor) {
117
118
  if(e.button == 0) { // left-click
118
119
  } else if(e.button == 1) { // middle-click
119
120
  } else if(e.button == 2) { // right-click
121
+ if (save['state'] != "ready" && save['state'] != "stopped") { return false; }
122
+
120
123
  var xml_node = self.adaptor.description.get_node_by_svg_id(svgid);
121
124
  var group = null;
122
125
  var menu = {};
@@ -170,6 +173,7 @@ function WFAdaptorManifestation(adaptor) {
170
173
  self.adaptor.illustrator.get_elements().removeClass('clicked');
171
174
 
172
175
  if (e && e.ctrlKey) {
176
+ if (save['state'] != "ready" && save['state'] != "stopped") { return false; }
173
177
  var tab = $('#dat_details');
174
178
  tab.empty();
175
179
  var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
@@ -68,6 +68,7 @@ function WFAdaptorManifestation(adaptor) {
68
68
  }
69
69
  save['details'] = new RelaxNGui(rng,tab,self.adaptor.description.context_eval);
70
70
  save['details'].content(node);
71
+ format_visual_forms();
71
72
  }
72
73
  }; //}}}
73
74
 
@@ -117,6 +118,8 @@ function WFAdaptorManifestation(adaptor) {
117
118
  if(e.button == 0) { // left-click
118
119
  } else if(e.button == 1) { // middle-click
119
120
  } else if(e.button == 2) { // right-click
121
+ if (save['state'] != "ready" && save['state'] != "stopped") { return false; }
122
+
120
123
  var xml_node = self.adaptor.description.get_node_by_svg_id(svgid);
121
124
  var group = null;
122
125
  var menu = {};
@@ -170,6 +173,7 @@ function WFAdaptorManifestation(adaptor) {
170
173
  self.adaptor.illustrator.get_elements().removeClass('clicked');
171
174
 
172
175
  if (e && e.ctrlKey) {
176
+ if (save['state'] != "ready" && save['state'] != "stopped") { return false; }
173
177
  var tab = $('#dat_details');
174
178
  tab.empty();
175
179
  var vtarget = self.adaptor.illustrator.get_node_by_svg_id(svgid);
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee"
3
- s.version = "1.4.10"
3
+ s.version = "1.4.11"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3.0"
6
6
  s.summary = "Preliminary release of cloud process execution engine (cpee). If you just need workflow execution, without a rest/xmpp service exposing it, then use WEEL"
@@ -33,7 +33,7 @@
33
33
  </layer>
34
34
  <layer name="notifications">
35
35
  <apply-to>/{}</apply-to>
36
- </layer>
36
+ </layer>
37
37
  </tile>
38
38
  </facade>
39
39
  </declaration>
@@ -108,6 +108,8 @@ module CPEE
108
108
  controller[id].mutex.synchronize do
109
109
  if controller[id].callbacks.has_key?(callback)
110
110
  controller[id].callbacks[callback].callback(@p,@h)
111
+ else
112
+ @status = 503
111
113
  end
112
114
  end
113
115
  end
@@ -0,0 +1 @@
1
+ test
@@ -1,114 +1,38 @@
1
1
  <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
2
  <attributes>
3
- <uuid>34574182-a968-4e52-b401-4a16604be6a9</uuid>
4
- <info>Spawn Machining</info>
3
+ <uuid/>
4
+ <info>Lego Plate</info>
5
5
  <modeltype>CPEE</modeltype>
6
- <theme>default</theme>
7
- <customer>pilotfabrik</customer>
8
- <status>development</status>
9
- <artefacts>[ { "group": "Orders", "name": "3D Printer Side" } ]</artefacts>
10
6
  </attributes>
11
- <state>ready</state>
7
+ <state>stopped</state>
12
8
  <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
13
9
  <positions/>
14
10
  <dataelements>
15
- <instances>[]</instances>
11
+ <i>0</i>
16
12
  </dataelements>
17
13
  <endpoints>
18
14
  <timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
19
- <start_instance>https://centurio.work/flow/start/instance/</start_instance>
20
- <start_url>https://centurio.work/flow/start/url/</start_url>
21
- <hoert_die_signale>https://centurio.work/data/mm500/signals/</hoert_die_signale>
15
+ <move>http://plate.wst.univie.ac.at:9200/go-next</move>
22
16
  </endpoints>
23
- <dsl>parallel :wait =&gt; -1 do
24
- parallel_branch do
25
- call :a1, :hoert_die_signale, parameters: { :label =&gt; "Listen to NC Start signals", :method =&gt; :get, :arguments =&gt; nil, :sensors =&gt; nil }, update: &lt;&lt;-END
26
- data.instances &lt;&lt; result
27
- status.nudge!
28
- END
29
- end
30
- parallel_branch do
31
- loop pre_test{true} do
32
- choose :exclusive do
33
- alternative test{data.instances.empty?} do
34
- manipulate :a3, { :label =&gt; "Sleep" }, &lt;&lt;-END
35
- status.wait_until_nudged!
36
- END
37
- end
38
- otherwise do
39
- call :a2, :start_url, parameters: { :label =&gt; "Spawn Subprocess", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :info, :value =&gt; "3D Drucker Seite"), ⭐(:name =&gt; :behavior, :value =&gt; "fork_running"), ⭐(:name =&gt; :url, :value =&gt; "https://centurio.work/customers/prime/Machining%20MM500.xml"), ⭐(:name =&gt; :init, :value =&gt; "{ \"instance\": \"#{data.instances.last}\" }")] }, finalize: &lt;&lt;-END
40
- data.instances.pop
41
- END
42
- end
43
- end
44
- end
45
- end
17
+ <dsl>loop pre_test{i&lt;2} do
18
+ call :a1, :move, parameters: { :label =&gt; "Move to next station", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
19
+ data.i= data.i + 1
20
+ END
46
21
  end
47
22
  </dsl>
48
23
  <dslx>
49
24
  <description xmlns="http://cpee.org/ns/description/1.0">
50
- <parallel wait="-1">
51
- <parallel_branch>
52
- <call id="a1" endpoint="hoert_die_signale">
53
- <parameters>
54
- <label>Listen to NC Start signals</label>
55
- <method>:get</method>
56
- <arguments/>
57
- <sensors/>
58
- </parameters>
59
- <finalize output="result"/>
60
- <update output="result">data.instances &lt;&lt; result
61
- status.nudge!</update>
62
- <_timing>
63
- <_timing_min/>
64
- <_timing_max/>
65
- <_timing_avg/>
66
- </_timing>
67
- <_notes>
68
- <_notes_general/>
69
- <_notes_output/>
70
- <_attachments/>
71
- </_notes>
72
- </call>
73
- </parallel_branch>
74
- <parallel_branch>
75
- <loop mode="pre_test" condition="true">
76
- <choose mode="exclusive">
77
- <alternative condition="data.instances.empty?">
78
- <manipulate id="a3" label="Sleep">status.wait_until_nudged!</manipulate>
79
- </alternative>
80
- <otherwise>
81
- <call id="a2" endpoint="start_url">
82
- <parameters>
83
- <label>Spawn Subprocess</label>
84
- <method>:post</method>
85
- <arguments>
86
- <info>3D Drucker Seite</info>
87
- <behavior>fork_running</behavior>
88
- <url>https://centurio.work/customers/prime/Machining%20MM500.xml</url>
89
- <init>
90
- <instance>!data.instances.last</instance>
91
- </init>
92
- </arguments>
93
- </parameters>
94
- <finalize output="result">data.instances.pop</finalize>
95
- <update output="result"/>
96
- <_timing>
97
- <_timing_min/>
98
- <_timing_max/>
99
- <_timing_avg/>
100
- </_timing>
101
- <_notes>
102
- <_notes_general/>
103
- <_notes_output/>
104
- <_attachments/>
105
- </_notes>
106
- </call>
107
- </otherwise>
108
- </choose>
109
- </loop>
110
- </parallel_branch>
111
- </parallel>
25
+ <loop mode="pre_test" condition="i&lt;2">
26
+ <call id="a1" endpoint="move">
27
+ <parameters>
28
+ <label>Move to next station</label>
29
+ <method>:post</method>
30
+ <arguments/>
31
+ </parameters>
32
+ <finalize output="result">data.i= data.i + 1</finalize>
33
+ <update output="result"/>
34
+ </call>
35
+ </loop>
112
36
  </description>
113
37
  </dslx>
114
38
  <status>
@@ -117,68 +41,17 @@ status.nudge!</update>
117
41
  </status>
118
42
  <description>
119
43
  <description xmlns="http://cpee.org/ns/description/1.0">
120
- <parallel wait="-1">
121
- <parallel_branch>
122
- <call id="a1" endpoint="hoert_die_signale">
123
- <parameters>
124
- <label>Listen to NC Start signals</label>
125
- <method>:get</method>
126
- <arguments/>
127
- <sensors/>
128
- </parameters>
129
- <finalize output="result"/>
130
- <update output="result">data.instances &lt;&lt; result
131
- status.nudge!</update>
132
- <_timing>
133
- <_timing_min/>
134
- <_timing_max/>
135
- <_timing_avg/>
136
- </_timing>
137
- <_notes>
138
- <_notes_general/>
139
- <_notes_output/>
140
- <_attachments/>
141
- </_notes>
142
- </call>
143
- </parallel_branch>
144
- <parallel_branch>
145
- <loop mode="pre_test" condition="true">
146
- <choose mode="exclusive">
147
- <alternative condition="data.instances.empty?">
148
- <manipulate id="a3" label="Sleep">status.wait_until_nudged!</manipulate>
149
- </alternative>
150
- <otherwise>
151
- <call id="a2" endpoint="start_url">
152
- <parameters>
153
- <label>Spawn Subprocess</label>
154
- <method>:post</method>
155
- <arguments>
156
- <info>3D Drucker Seite</info>
157
- <behavior>fork_running</behavior>
158
- <url>https://centurio.work/customers/prime/Machining%20MM500.xml</url>
159
- <init>
160
- <instance>!data.instances.last</instance>
161
- </init>
162
- </arguments>
163
- </parameters>
164
- <finalize output="result">data.instances.pop</finalize>
165
- <update output="result"/>
166
- <_timing>
167
- <_timing_min/>
168
- <_timing_max/>
169
- <_timing_avg/>
170
- </_timing>
171
- <_notes>
172
- <_notes_general/>
173
- <_notes_output/>
174
- <_attachments/>
175
- </_notes>
176
- </call>
177
- </otherwise>
178
- </choose>
179
- </loop>
180
- </parallel_branch>
181
- </parallel>
44
+ <loop mode="pre_test" condition="i&lt;2">
45
+ <call id="a1" endpoint="move">
46
+ <parameters>
47
+ <label>Move to next station</label>
48
+ <method>:post</method>
49
+ <arguments/>
50
+ </parameters>
51
+ <finalize output="result">data.i= data.i + 1</finalize>
52
+ <update output="result"/>
53
+ </call>
54
+ </loop>
182
55
  </description>
183
56
  </description>
184
57
  <transformation>
@@ -0,0 +1,23 @@
1
+ <subscription xmlns="http://riddl.org/ns/common-patterns/notifications-producer/1.0" url="http://localhost:9299/events">
2
+ <topic id="activity">
3
+ <event>calling</event>
4
+ <event>failed</event>
5
+ <event>manipulating</event>
6
+ <event>done</event>
7
+ </topic>
8
+ <topic id="dataelements">
9
+ <event>change</event>
10
+ </topic>
11
+ <topic id="endpoints">
12
+ <event>change</event>
13
+ </topic>
14
+ <topic id="description">
15
+ <event>error</event>
16
+ </topic>
17
+ <topic id="state">
18
+ <event>change</event>
19
+ </topic>
20
+ <topic id="status">
21
+ <event>change</event>
22
+ </topic>
23
+ </subscription>
@@ -0,0 +1,6 @@
1
+ <subscription xmlns="http://riddl.org/ns/common-patterns/notifications-producer/1.0" url="http://solo.wst.univie.ac.at:9299/log">
2
+ <topic id="activity">
3
+ <event>calling</event>
4
+ <event>done</event>
5
+ </topic>
6
+ </subscription>