cpee 1.4.10 → 1.4.11

Sign up to get free protection for your applications and to get access to all the features.
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>