cpee 1.3.158 → 1.3.159

Sign up to get free protection for your applications and to get access to all the features.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/cpee.gemspec +1 -1
  3. data/lib/cpee/processtransformation/bpmn2.rb +9 -2
  4. data/lib/cpee/processtransformation/structures.rb +15 -9
  5. data/server/instances/1/properties.xml +101 -69
  6. data/server/instances/10/properties.xml +70 -106
  7. data/server/instances/11/properties.xml +73 -133
  8. data/server/instances/12/notifications/8d7f2ae546a742fce3a0a488266ea51d/consumer-secret +1 -0
  9. data/server/instances/12/notifications/8d7f2ae546a742fce3a0a488266ea51d/producer-secret +1 -0
  10. data/server/instances/12/notifications/8d7f2ae546a742fce3a0a488266ea51d/subscription.xml +6 -0
  11. data/server/instances/12/notifications/b0a0abbb8ad6fb81c579c4e97829d681/consumer-secret +1 -0
  12. data/server/instances/12/notifications/b0a0abbb8ad6fb81c579c4e97829d681/producer-secret +1 -0
  13. data/server/instances/{1/notifications/d12eff1ac812661c05d7090ce7394cf9 → 12/notifications/b0a0abbb8ad6fb81c579c4e97829d681}/subscription.xml +0 -0
  14. data/server/instances/12/properties.xml +43 -0
  15. data/server/instances/2/properties.xml +44 -191
  16. data/server/instances/3/properties.xml +44 -70
  17. data/server/instances/4/properties.xml +68 -28
  18. data/server/instances/5/properties.xml +70 -10
  19. data/server/instances/6/properties.xml +55 -175
  20. data/server/instances/7/properties.xml +52 -118
  21. data/server/instances/8/properties.xml +50 -112
  22. data/server/instances/9/properties.xml +47 -115
  23. data/server/resources/properties.init +1 -1
  24. metadata +106 -105
  25. data/server/instances/1/notifications/d12eff1ac812661c05d7090ce7394cf9/consumer-secret +0 -1
  26. data/server/instances/1/notifications/d12eff1ac812661c05d7090ce7394cf9/producer-secret +0 -1
  27. data/server/instances/11/notifications/e0910b6b5536976209bca471780066f1/consumer-secret +0 -1
  28. data/server/instances/11/notifications/e0910b6b5536976209bca471780066f1/producer-secret +0 -1
  29. data/server/instances/11/notifications/e0910b6b5536976209bca471780066f1/subscription.xml +0 -27
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a1b5ffdfcdf5cdde6a5cad7fd8239b6a576af523
4
- data.tar.gz: 1d7c3456cc507e0c59a5b03cfb825c78f8364c98
3
+ metadata.gz: 7c839fcbe55d2d855568d6467466d136d756288c
4
+ data.tar.gz: 74c5767ec1e718a38f440c01005922f54ba90920
5
5
  SHA512:
6
- metadata.gz: 310a5d9957e04db8b3f323fcc07e0cb9ec163bd1219eeeef4fb1bc5ca59c6bddb71468f9dfc67931875d84b521413c7439e63c0c68b399edebb4365620eb1b4c
7
- data.tar.gz: e4ae347430703183ca97f271c64ed22944f716e8c11d517295ef516726b75621f1481ea6ac440f7febdb70c2a3044ba887fcc7b8962b8164ec7864de822bbdcc
6
+ metadata.gz: 532002e583957edbb012a7f9e62282680fc1dd59c5c495349762250de952822f96ccd94664ed05f9eab26306a4edd537aed9fc9001a0a1425117049a8b0cab21
7
+ data.tar.gz: d4bcf178ce517f1df5cbd3f3278976d6c1da7610f74db0084d459cf321eb2a5a160c06896dcba9a8f04e8c88a3108f86f11a5c127ac13b3c09aea00163f2ecac
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee"
3
- s.version = "1.3.158"
3
+ s.version = "1.3.159"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3"
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"
@@ -206,9 +206,10 @@ module CPEE
206
206
  end
207
207
  end
208
208
  end
209
+ nic = traces.incoming(node)
209
210
  if node == enode
210
211
  traces.shift_all
211
- elsif node.incoming <= 1
212
+ elsif nic == 1 || branch.is_a?(CPEE::ProcessTransformation::InfiniteLoop)
212
213
  traces.shift_all
213
214
  n = map_node(node)
214
215
  if !(n.nil? || (n.container? && (node.outgoing <=1 || traces.finished?)))
@@ -218,6 +219,7 @@ module CPEE
218
219
  loops = traces.loops
219
220
  if node.type == :exclusiveGateway || traces.all_loops?
220
221
  ### as the first is a decision node, just remove and continue
222
+ ### change to nic
221
223
  if node.incoming == 2
222
224
  node.incoming = 1
223
225
  branch << Loop.new(node.id)
@@ -274,7 +276,12 @@ module CPEE
274
276
  end
275
277
  endnode.incoming -= 1 unless endnode.nil?
276
278
  end
277
- traces.empty! if endnode.nil?
279
+ # remove all traces that don't start with endnode to account for loops
280
+ if endnode.nil?
281
+ traces.empty!
282
+ else
283
+ traces.remove_by_endnode(endnode)
284
+ end
278
285
  ### all before is reduced to one incoming arrow
279
286
  ### if now there is still more than one incoming we have a loop situation
280
287
  ### where the end of a branching statement is also the starting/endpoint
@@ -271,6 +271,11 @@ module CPEE
271
271
  self.delete(t)
272
272
  end
273
273
  end
274
+ def remove_by_endnode(enode)
275
+ self.delete_if do |t|
276
+ t[0] != enode
277
+ end
278
+ end
274
279
 
275
280
  def empty!
276
281
  self.delete_if{true}
@@ -311,14 +316,13 @@ module CPEE
311
316
  end
312
317
 
313
318
  # future use
314
- def incoming
315
- if node = self.same_first
316
- tcount = 1
317
- self.each{|t| tcount += 1 if t.first == t.last }
318
- tcount
319
- else
320
- raise "Wrong Question"
319
+ def incoming(node)
320
+ tcount = 1
321
+ self.each do |t|
322
+ break if t.length == 1
323
+ tcount += 1 if t.last == node
321
324
  end
325
+ tcount
322
326
  end
323
327
 
324
328
  def include_in_all?(e)
@@ -341,11 +345,12 @@ module CPEE
341
345
 
342
346
  def add_breaks(context)
343
347
  trueloops = self.find_all{ |t| t.last == t.first }.length
348
+ tb = Break.new(context,1)
344
349
  if trueloops == self.length
345
350
  self << [self.first_node] ### the blank conditional so that we get a break
346
351
  else
347
352
  self.each do |t|
348
- t << Break.new(context,1) unless t.last == t.first ### an explicit break
353
+ t << tb unless t.last == t.first ### an explicit break
349
354
  end
350
355
  end
351
356
  end
@@ -439,7 +444,8 @@ module CPEE
439
444
  def find_endnode
440
445
  # supress loops
441
446
  trcs = self.dup
442
- # trcs.delete_if { |t| t.uniq.length < t.length }
447
+ # dangerous TODO
448
+ trcs.delete_if { |t| t.uniq.length < t.length }
443
449
 
444
450
  # find common node (except loops)
445
451
  enode = nil
@@ -1,65 +1,90 @@
1
1
  <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
- <info>asd</info>
3
- <state>stopped</state>
2
+ <info>Enter info here</info>
3
+ <state>ready</state>
4
4
  <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
5
- <positions>
6
- <a1>after</a1>
7
- </positions>
5
+ <positions/>
8
6
  <dataelements>
9
- <x/>
7
+ <persons>3</persons>
8
+ <card>Visa_12345</card>
9
+ <airline>null</airline>
10
+ <hotels>[]</hotels>
11
+ <from>Vienna</from>
12
+ <to>Prague</to>
13
+ <costs>0</costs>
10
14
  </dataelements>
11
15
  <endpoints>
12
- <timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
16
+ <bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
17
+ <bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
18
+ <approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
13
19
  </endpoints>
14
- <dsl>parallel do
15
- parallel_branch do
16
- call :a4, :timeout, { :label =&gt; nil, :method =&gt; "post", :parameters =&gt; { :timeout =&gt; a } }
17
- end
18
- parallel_branch do
19
- call :a5, :timeout, { :label =&gt; nil, :method =&gt; "post", :parameters =&gt; { :timeout =&gt; a } }
20
+ <dsl>call :a1, :bookAir, { :method =&gt; "post", :parameters =&gt; { :from =&gt; data.from, :to =&gt; data.to, :persons =&gt; data.persons } }, &lt;&lt;-end
21
+ data.airline = result.value('id')
22
+ data.costs += result.value('costs').to_f
23
+ status.update 1, 'Hotel'
24
+ end
25
+ parallel do
26
+ loop pre_test{data.persons &gt; 0} do
27
+ parallel_branch data.persons do |p|
28
+ call :a2, :bookHotel, { :method =&gt; "post", :parameters =&gt; { :to =&gt; data.to } }, &lt;&lt;-end
29
+ data.hotels &lt;&lt; result.value('id')
30
+ data.costs += result.value('costs').to_f
31
+ end
32
+ end
33
+ manipulate :a3, &lt;&lt;-end
34
+ data.persons -= 1
35
+ end
20
36
  end
21
37
  end
22
- call :a2, :timeout, { :label =&gt; nil, :method =&gt; "post", :parameters =&gt; { :timeout =&gt; b } }, &lt;&lt;-end
23
- data.x += "a2,"
38
+ choose do
39
+ alternative data.costs &gt; 700 do
40
+ call :a4, :approve, { :method =&gt; "post", :parameters =&gt; { :costs =&gt; data.costs } }
41
+ end
24
42
  end
25
43
  </dsl>
26
44
  <dslx>
27
45
  <description xmlns="http://cpee.org/ns/description/1.0">
28
- <!--{{{-->
29
- <parallel svg-label="">
30
- <parallel_branch svg-label="">
31
- <call id="a4" endpoint="timeout" svg-label="">
32
- <parameters>
33
- <label/>
34
- <method>post</method>
46
+ <call id="a1" endpoint="bookAir">
47
+ <parameters>
48
+ <method>post</method>
49
+ <parameters>
50
+ <from>data.from</from>
51
+ <to>data.to</to>
52
+ <persons>data.persons</persons>
53
+ </parameters>
54
+ </parameters>
55
+ <manipulate output="result"> data.airline = result.value('id')
56
+ data.costs += result.value('costs').to_f
57
+ status.update 1, 'Hotel'</manipulate>
58
+ </call>
59
+ <parallel>
60
+ <loop pre_test="data.persons &gt; 0">
61
+ <parallel_branch pass="data.persons" local="p">
62
+ <call id="a2" endpoint="bookHotel">
35
63
  <parameters>
36
- <timeout>a</timeout>
64
+ <method>post</method>
65
+ <parameters>
66
+ <to>data.to</to>
67
+ </parameters>
37
68
  </parameters>
38
- </parameters>
39
- </call>
40
- </parallel_branch>
41
- <parallel_branch svg-label="">
42
- <call id="a5" endpoint="timeout" svg-label="">
69
+ <manipulate output="result"> data.hotels &lt;&lt; result.value('id')
70
+ data.costs += result.value('costs').to_f</manipulate>
71
+ </call>
72
+ </parallel_branch>
73
+ <manipulate id="a3"> data.persons -= 1</manipulate>
74
+ </loop>
75
+ </parallel>
76
+ <choose>
77
+ <alternative condition="data.costs &gt; 700">
78
+ <call id="a4" endpoint="approve">
43
79
  <parameters>
44
- <label/>
45
80
  <method>post</method>
46
81
  <parameters>
47
- <timeout>a</timeout>
82
+ <costs>data.costs</costs>
48
83
  </parameters>
49
84
  </parameters>
50
85
  </call>
51
- </parallel_branch>
52
- </parallel>
53
- <call id="a2" endpoint="timeout">
54
- <parameters>
55
- <label/>
56
- <method>post</method>
57
- <parameters>
58
- <timeout>b</timeout>
59
- </parameters>
60
- </parameters>
61
- <manipulate>data.x += "a2,"</manipulate>
62
- </call>
86
+ </alternative>
87
+ </choose>
63
88
  </description>
64
89
  </dslx>
65
90
  <status>
@@ -68,41 +93,48 @@ end
68
93
  </status>
69
94
  <description>
70
95
  <description xmlns="http://cpee.org/ns/description/1.0">
71
- <!--{{{-->
72
- <parallel svg-label="">
73
- <parallel_branch svg-label="">
74
- <call id="a4" endpoint="timeout" svg-label="">
75
- <parameters>
76
- <label/>
77
- <method>post</method>
96
+ <call id="a1" endpoint="bookAir">
97
+ <parameters>
98
+ <method>post</method>
99
+ <parameters>
100
+ <from>data.from</from>
101
+ <to>data.to</to>
102
+ <persons>data.persons</persons>
103
+ </parameters>
104
+ </parameters>
105
+ <manipulate output="result"> data.airline = result.value('id')
106
+ data.costs += result.value('costs').to_f
107
+ status.update 1, 'Hotel'</manipulate>
108
+ </call>
109
+ <parallel>
110
+ <loop pre_test="data.persons &gt; 0">
111
+ <parallel_branch pass="data.persons" local="p">
112
+ <call id="a2" endpoint="bookHotel">
78
113
  <parameters>
79
- <timeout>a</timeout>
114
+ <method>post</method>
115
+ <parameters>
116
+ <to>data.to</to>
117
+ </parameters>
80
118
  </parameters>
81
- </parameters>
82
- </call>
83
- </parallel_branch>
84
- <parallel_branch svg-label="">
85
- <call id="a5" endpoint="timeout" svg-label="">
119
+ <manipulate output="result"> data.hotels &lt;&lt; result.value('id')
120
+ data.costs += result.value('costs').to_f</manipulate>
121
+ </call>
122
+ </parallel_branch>
123
+ <manipulate id="a3"> data.persons -= 1</manipulate>
124
+ </loop>
125
+ </parallel>
126
+ <choose>
127
+ <alternative condition="data.costs &gt; 700">
128
+ <call id="a4" endpoint="approve">
86
129
  <parameters>
87
- <label/>
88
130
  <method>post</method>
89
131
  <parameters>
90
- <timeout>a</timeout>
132
+ <costs>data.costs</costs>
91
133
  </parameters>
92
134
  </parameters>
93
135
  </call>
94
- </parallel_branch>
95
- </parallel>
96
- <call id="a2" endpoint="timeout">
97
- <parameters>
98
- <label/>
99
- <method>post</method>
100
- <parameters>
101
- <timeout>b</timeout>
102
- </parameters>
103
- </parameters>
104
- <manipulate>data.x += "a2,"</manipulate>
105
- </call>
136
+ </alternative>
137
+ </choose>
106
138
  </description>
107
139
  </description>
108
140
  <transformation>
@@ -1,90 +1,62 @@
1
1
  <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
2
  <info>Enter info here</info>
3
- <state>finished</state>
3
+ <state>ready</state>
4
4
  <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
5
- <positions/>
5
+ <positions>
6
+ <a1>after</a1>
7
+ </positions>
6
8
  <dataelements>
7
- <persons>0</persons>
8
- <card>Visa_12345</card>
9
- <airline>Lufthansa</airline>
10
- <hotels>["Rathaus","Rathaus","Ibis"]</hotels>
11
- <from>Vienna</from>
12
- <to>Prague</to>
13
- <costs>940.0</costs>
9
+ <x/>
14
10
  </dataelements>
15
11
  <endpoints>
16
- <bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
17
- <bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
18
- <approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
12
+ <timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
19
13
  </endpoints>
20
- <dsl>call :a1, :bookAir, { :method =&gt; :post, :parameters =&gt; {:from =&gt; data.from, :to =&gt; data.to, :persons =&gt; data.persons} }, &lt;&lt;-end
21
- data.airline = result.value('id')
22
- data.costs += result.value('costs').to_f
23
- status.update 1, 'Hotel'
14
+ <dsl>call :a1, :timeout, { :method =&gt; "post", :parameters =&gt; { :timeout =&gt; 2 } }, &lt;&lt;-end
15
+ data.x += "a1,"
24
16
  end
25
- parallel do
26
- loop pre_test{data.persons &gt; 0} do
27
- parallel_branch data.persons do |p|
28
- call :a2, :bookHotel, { :method =&gt; :post, :parameters =&gt; {:to =&gt; data.to} }, &lt;&lt;-end
29
- data.hotels &lt;&lt; result.value('id')
30
- data.costs += result.value('costs').to_f
31
- end
32
- end
33
- manipulate :a3, &lt;&lt;-end
34
- data.persons -= 1
35
- end
36
- end
17
+ call :a2, :timeout, { :method =&gt; "post", :parameters =&gt; { :timeout =&gt; 4 } }, &lt;&lt;-end
18
+ data.x += "a2,"
37
19
  end
38
- choose :inclusive do
39
- alternative "data.costs &gt; 700" do
40
- call :a4, :approve, { :method =&gt; :post, :parameters =&gt; {:costs =&gt; data.costs} }
41
- end
20
+ call :a3, :timeout, { :method =&gt; "post", :parameters =&gt; { :timeout =&gt; 4 } }, &lt;&lt;-end
21
+ data.x += "a3,"
42
22
  end
43
23
  </dsl>
44
24
  <dslx>
45
25
  <description xmlns="http://cpee.org/ns/description/1.0">
46
- <call id="a1" endpoint="bookAir">
26
+ <!--{{{-->
27
+ <call id="a1" endpoint="timeout">
47
28
  <parameters>
48
- <method>:post</method>
29
+ <!--{{{-->
30
+ <method>post</method>
49
31
  <parameters>
50
- <from>data.from</from>
51
- <to>data.to</to>
52
- <persons>data.persons</persons>
32
+ <timeout>2</timeout>
53
33
  </parameters>
54
34
  </parameters>
55
- <manipulate output="result"> data.airline = result.value('id')
56
- data.costs += result.value('costs').to_f
57
- status.update 1, 'Hotel'</manipulate>
35
+ <!--}}}-->
36
+ <manipulate output="result"> data.x += "a1,"</manipulate>
37
+ </call>
38
+ <call id="a2" endpoint="timeout">
39
+ <parameters>
40
+ <!--{{{-->
41
+ <method>post</method>
42
+ <parameters>
43
+ <timeout>4</timeout>
44
+ </parameters>
45
+ </parameters>
46
+ <!--}}}-->
47
+ <manipulate output="result"> data.x += "a2,"</manipulate>
48
+ </call>
49
+ <call id="a3" endpoint="timeout">
50
+ <parameters>
51
+ <!--{{{-->
52
+ <method>post</method>
53
+ <parameters>
54
+ <timeout>4</timeout>
55
+ </parameters>
56
+ </parameters>
57
+ <!--}}}-->
58
+ <manipulate output="result"> data.x += "a3,"</manipulate>
58
59
  </call>
59
- <parallel>
60
- <loop pre_test="data.persons &gt; 0">
61
- <parallel_branch pass="data.persons" local="p">
62
- <call id="a2" endpoint="bookHotel">
63
- <parameters>
64
- <method>:post</method>
65
- <parameters>
66
- <to>data.to</to>
67
- </parameters>
68
- </parameters>
69
- <manipulate output="result"> data.hotels &lt;&lt; result.value('id')
70
- data.costs += result.value('costs').to_f</manipulate>
71
- </call>
72
- </parallel_branch>
73
- <manipulate id="a3"> data.persons -= 1</manipulate>
74
- </loop>
75
- </parallel>
76
- <choose>
77
- <alternative condition="data.costs &gt; 700">
78
- <call id="a4" endpoint="approve">
79
- <parameters>
80
- <method>:post</method>
81
- <parameters>
82
- <costs>data.costs</costs>
83
- </parameters>
84
- </parameters>
85
- </call>
86
- </alternative>
87
- </choose>
88
60
  </description>
89
61
  </dslx>
90
62
  <status>
@@ -93,48 +65,40 @@ end
93
65
  </status>
94
66
  <description>
95
67
  <description xmlns="http://cpee.org/ns/description/1.0">
96
- <call id="a1" endpoint="bookAir">
68
+ <!--{{{-->
69
+ <call id="a1" endpoint="timeout">
70
+ <parameters>
71
+ <!--{{{-->
72
+ <method>post</method>
73
+ <parameters>
74
+ <timeout>2</timeout>
75
+ </parameters>
76
+ </parameters>
77
+ <!--}}}-->
78
+ <manipulate output="result"> data.x += "a1,"</manipulate>
79
+ </call>
80
+ <call id="a2" endpoint="timeout">
81
+ <parameters>
82
+ <!--{{{-->
83
+ <method>post</method>
84
+ <parameters>
85
+ <timeout>4</timeout>
86
+ </parameters>
87
+ </parameters>
88
+ <!--}}}-->
89
+ <manipulate output="result"> data.x += "a2,"</manipulate>
90
+ </call>
91
+ <call id="a3" endpoint="timeout">
97
92
  <parameters>
98
- <method>:post</method>
93
+ <!--{{{-->
94
+ <method>post</method>
99
95
  <parameters>
100
- <from>data.from</from>
101
- <to>data.to</to>
102
- <persons>data.persons</persons>
96
+ <timeout>4</timeout>
103
97
  </parameters>
104
98
  </parameters>
105
- <manipulate output="result"> data.airline = result.value('id')
106
- data.costs += result.value('costs').to_f
107
- status.update 1, 'Hotel'</manipulate>
99
+ <!--}}}-->
100
+ <manipulate output="result"> data.x += "a3,"</manipulate>
108
101
  </call>
109
- <parallel>
110
- <loop pre_test="data.persons &gt; 0">
111
- <parallel_branch pass="data.persons" local="p">
112
- <call id="a2" endpoint="bookHotel">
113
- <parameters>
114
- <method>:post</method>
115
- <parameters>
116
- <to>data.to</to>
117
- </parameters>
118
- </parameters>
119
- <manipulate output="result"> data.hotels &lt;&lt; result.value('id')
120
- data.costs += result.value('costs').to_f</manipulate>
121
- </call>
122
- </parallel_branch>
123
- <manipulate id="a3"> data.persons -= 1</manipulate>
124
- </loop>
125
- </parallel>
126
- <choose>
127
- <alternative condition="data.costs &gt; 700">
128
- <call id="a4" endpoint="approve">
129
- <parameters>
130
- <method>:post</method>
131
- <parameters>
132
- <costs>data.costs</costs>
133
- </parameters>
134
- </parameters>
135
- </call>
136
- </alternative>
137
- </choose>
138
102
  </description>
139
103
  </description>
140
104
  <transformation>