stomp 1.4.5 → 1.4.10

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -6,94 +6,101 @@
6
6
 
7
7
  An implementation of the Stomp protocol for Ruby. See:
8
8
 
9
- * [STOMP 1.0, 1.1, and 1.2] (http://stomp.github.com/index.html)
9
+ * [STOMP 1.0](http://stomp.github.io/stomp-specification-1.0.html)
10
+ * [STOMP 1.1](http://stomp.github.io/stomp-specification-1.1.html)
11
+ * [STOMP 1.2](http://stomp.github.io/stomp-specification-1.2.html)
10
12
 
11
13
  ## Hash Login Example Usage (**this is the recommended login technique**):
12
14
 
13
- ```
14
- hash = {
15
- :hosts => [
16
- # First connect is to remotehost1
17
- {:login => "login1", :passcode => "passcode1", :host => "remotehost1", :port => 61612, :ssl => true},
18
- # First failover connect is to remotehost2
19
- {:login => "login2", :passcode => "passcode2", :host => "remotehost2", :port => 61613, :ssl => false},
20
- ],
21
- # These are the default parameters and do not need to be set
22
- :reliable => true, # reliable (use failover)
23
- :initial_reconnect_delay => 0.01, # initial delay before reconnect (secs)
24
- :max_reconnect_delay => 30.0, # max delay before reconnect
25
- :use_exponential_back_off => true, # increase delay between reconnect attpempts
26
- :back_off_multiplier => 2, # next delay multiplier
27
- :max_reconnect_attempts => 0, # retry forever, use # for maximum attempts
28
- :randomize => false, # do not radomize hosts hash before reconnect
29
- :connect_timeout => 0, # Timeout for TCP/TLS connects, use # for max seconds
30
- :connect_headers => {}, # user supplied CONNECT headers (req'd for Stomp 1.1+)
31
- :parse_timeout => 5, # IO::select wait time on socket reads
32
- :logger => nil, # user suplied callback logger instance
33
- :dmh => false, # do not support multihomed IPV4 / IPV6 hosts during failover
34
- :closed_check => true, # check first if closed in each protocol method
35
- :hbser => false, # raise on heartbeat send exception
36
- :stompconn => false, # Use STOMP instead of CONNECT
37
- :usecrlf => false, # Use CRLF command and header line ends (1.2+)
38
- :max_hbread_fails => 0, # Max HB read fails before retry. 0 => never retry
39
- :max_hbrlck_fails => 0, # Max HB read lock obtain fails before retry. 0 => never retry
40
- :fast_hbs_adjust => 0.0, # Fast heartbeat senders sleep adjustment, seconds, needed ...
41
- # For fast heartbeat senders. 'fast' == YMMV. If not
42
- # correct for your environment, expect unnecessary fail overs
43
- :connread_timeout => 0, # Timeout during CONNECT for read of CONNECTED/ERROR, secs
44
- :tcp_nodelay => true, # Turns on the TCP_NODELAY socket option; disables Nagle's algorithm
45
- :start_timeout => 0, # Timeout around Stomp::Client initialization
46
- :sslctx_newparm => nil, # Param for SSLContext.new
47
- :ssl_post_conn_check => true, # Further verify broker identity
48
- }
49
-
50
- # for a client
51
- client = Stomp::Client.new(hash)
52
-
53
- # for a connection
54
- connection = Stomp::Connection.new(hash)
15
+ ```ruby
16
+ hash = {
17
+ hosts: [
18
+ # First connect is to remotehost1
19
+ { login: 'login1', passcode: 'passcode1', host: 'remotehost1', port: 61_612, ssl: true },
20
+ # First failover connect is to remotehost2
21
+ { login: 'login2', passcode: 'passcode2', host: 'remotehost2', port: 61_613, ssl: false }
22
+ ],
23
+ # These are the default parameters and do not need to be set
24
+ reliable: true, # reliable (use failover)
25
+ initial_reconnect_delay: 0.01, # initial delay before reconnect (secs)
26
+ max_reconnect_delay: 30.0, # max delay before reconnect
27
+ use_exponential_back_off: true, # increase delay between reconnect attpempts
28
+ back_off_multiplier: 2, # next delay multiplier
29
+ max_reconnect_attempts: 0, # retry forever, use # for maximum attempts
30
+ randomize: false, # do not radomize hosts hash before reconnect
31
+ connect_timeout: 0, # Timeout for TCP/TLS connects, use # for max seconds
32
+ connect_headers: {}, # user supplied CONNECT headers (req'd for Stomp 1.1+)
33
+ parse_timeout: 5, # IO::select wait time on socket reads
34
+ logger: nil, # user suplied callback logger instance
35
+ dmh: false, # do not support multihomed IPV4 / IPV6 hosts during failover
36
+ closed_check: true, # check first if closed in each protocol method
37
+ hbser: false, # raise on heartbeat send exception
38
+ stompconn: false, # Use STOMP instead of CONNECT
39
+ usecrlf: false, # Use CRLF command and header line ends (1.2+)
40
+ max_hbread_fails: 0, # Max HB read fails before retry. 0 => never retry
41
+ max_hbrlck_fails: 0, # Max HB read lock obtain fails before retry. 0 => never retry
42
+ fast_hbs_adjust: 0.0, # Fast heartbeat senders sleep adjustment, seconds, needed ...
43
+ # For fast heartbeat senders. 'fast' == YMMV. If not
44
+ # correct for your environment, expect unnecessary fail overs
45
+ connread_timeout: 0, # Timeout during CONNECT for read of CONNECTED/ERROR, secs
46
+ tcp_nodelay: true, # Turns on the TCP_NODELAY socket option; disables Nagle's algorithm
47
+ start_timeout: 0, # Timeout around Stomp::Client initialization
48
+ sslctx_newparm: nil, # Param for SSLContext.new
49
+ ssl_post_conn_check: true, # Further verify broker identity
50
+ nto_cmd_read: true, # No timeout on COMMAND read
51
+ }
52
+
53
+ # for a client
54
+ client = Stomp::Client.new(hash)
55
+
56
+ # for a connection
57
+ connection = Stomp::Connection.new(hash)
55
58
  ```
56
59
 
57
60
  ### Positional Parameter Usage:
58
61
 
59
- ```
60
- client = Stomp::Client.new("user", "pass", "localhost", 61613)
61
- client.publish("/queue/mine", "hello world!")
62
- client.subscribe("/queue/mine") do |msg|
63
- p msg
64
- end
62
+ ```ruby
63
+ client = Stomp::Client.new("user", "pass", "localhost", 61613)
64
+ client.publish("/queue/mine", "hello world!")
65
+ client.subscribe("/queue/mine") do |msg|
66
+ p msg
67
+ end
65
68
  ```
66
69
 
67
70
  ### Stomp URL Usage:
68
71
 
69
- A Stomp URL must begin with 'stomp://' and can be in one of the following forms:
72
+ A Stomp URL must begin with `stomp://` and can be in one of the following forms:
70
73
 
71
74
  ```
72
- stomp://host:port
73
- stomp://host.domain.tld:port
74
- stomp://login:passcode@host:port
75
- stomp://login:passcode@host.domain.tld:port
76
-
77
- # e.g. c = Stomp::Client.new(urlstring)
75
+ stomp://host:port
76
+ stomp://host.domain.tld:port
77
+ stomp://login:passcode@host:port
78
+ stomp://login:passcode@host.domain.tld:port
79
+
80
+ # e.g. c = Stomp::Client.new(urlstring)
78
81
  ```
79
82
 
80
83
  ### Failover + SSL Example URL Usage:
81
84
 
82
- ```
83
- options = "initialReconnectDelay=5000&randomize=false&useExponentialBackOff=false"
84
- # remotehost1 uses SSL, remotehost2 doesn't
85
- client = Stomp::Client.new("failover:(stomp+ssl://login1:passcode1@remotehost1:61612,stomp://login2:passcode2@remotehost2:61613)?#{options}")
86
- client.publish("/queue/mine", "hello world!")
87
- client.subscribe("/queue/mine") do |msg|
88
- p msg
89
- end
85
+ ```ruby
86
+ options = 'initialReconnectDelay=5000&randomize=false&useExponentialBackOff=false'
87
+ # remotehost1 uses SSL, remotehost2 doesn't
88
+ client = Stomp::Client.new("failover:(stomp+ssl://login1:passcode1@remotehost1:61612,stomp://login2:passcode2@remotehost2:61613)?#{options}")
89
+ client.publish('/queue/mine', 'hello world!')
90
+ client.subscribe('/queue/mine') do |msg|
91
+ p msg
92
+ end
90
93
  ```
91
94
 
92
95
  ### New:
93
96
 
94
97
  See _CHANGELOG.rdoc_ for details.
95
98
 
96
- * Gem version 1.4.5. Miscellaneous fixes, see CHANGELOG.md for details.
99
+ * Gem version 1.4.9. Fix two issues, enhance debugging and examples.
100
+ * Gem version 1.4.8. Fix missed merge in 1.4.7 release.
101
+ * Gem version 1.4.7. Add support for text SSL certs. Do not use, use 1.4.8 instead.
102
+ * Gem version 1.4.6. Fix version 1.4.5 which breaks JRuby support.
103
+ * Gem version 1.4.5. JRuby broken here. Use is not recommended.
97
104
  * Gem version 1.4.4. Miscellaneous fixes, see CHANGELOG.md for details.
98
105
  * Gem version 1.4.3. Fix broken install. Do not try to install 1.4.2.
99
106
  * Gem version 1.4.2. Fix memory leak, and others !: see CHANGELOG.md for details.
@@ -115,692 +122,7 @@ Up until March 2009 the project was maintained and primarily developed by Brian
115
122
 
116
123
  [Protocol Information](http://stomp.github.com/index.html)
117
124
 
118
- #### Contributors (by first author date) ####
125
+ #### Contributors
119
126
 
120
- Contribution information:
127
+ See CONTRIBUTORS.md.
121
128
 
122
- <table border="1" style="width:100%;border: 1px solid black;">
123
- <tr>
124
- <th style="border: 1px solid black;padding-left: 10px;" >
125
- First Author Date
126
- </th>
127
- <th style="border: 1px solid black;padding-left: 10px;" >
128
- (Commit Count)
129
- </th>
130
- <th style="border: 1px solid black;padding-left: 10px;" >
131
- Name / E-mail
132
- </th>
133
- </tr>
134
- <tr>
135
- <td style="border: 1px solid black;padding-left: 10px;" >
136
- 2005-08-26
137
- </td>
138
- <td style="border: 1px solid black;padding-left: 10px;" >
139
- (0023)
140
- </td>
141
- <td style="border: 1px solid black;padding-left: 10px;" >
142
- <span style="font-weight: bold;" >
143
- brianm
144
- </span>
145
- / &lt;brianm@fd4e7336-3dff-0310-b68a-b6615a75f13b&gt;
146
- </td>
147
- </tr>
148
- <tr>
149
- <td style="border: 1px solid black;padding-left: 10px;" >
150
- 2006-03-16
151
- </td>
152
- <td style="border: 1px solid black;padding-left: 10px;" >
153
- (0005)
154
- </td>
155
- <td style="border: 1px solid black;padding-left: 10px;" >
156
- <span style="font-weight: bold;" >
157
- jstrachan
158
- </span>
159
- / &lt;jstrachan@fd4e7336-3dff-0310-b68a-b6615a75f13b&gt;
160
- </td>
161
- </tr>
162
- <tr>
163
- <td style="border: 1px solid black;padding-left: 10px;" >
164
- 2006-04-19
165
- </td>
166
- <td style="border: 1px solid black;padding-left: 10px;" >
167
- (0001)
168
- </td>
169
- <td style="border: 1px solid black;padding-left: 10px;" >
170
- <span style="font-weight: bold;" >
171
- chirino
172
- </span>
173
- / &lt;chirino@fd4e7336-3dff-0310-b68a-b6615a75f13b&gt;
174
- </td>
175
- </tr>
176
- <tr>
177
- <td style="border: 1px solid black;padding-left: 10px;" >
178
- 2007-05-09
179
- </td>
180
- <td style="border: 1px solid black;padding-left: 10px;" >
181
- (0003)
182
- </td>
183
- <td style="border: 1px solid black;padding-left: 10px;" >
184
- <span style="font-weight: bold;" >
185
- kookster
186
- </span>
187
- / &lt;kookster@fd4e7336-3dff-0310-b68a-b6615a75f13b&gt;
188
- </td>
189
- </tr>
190
- <tr>
191
- <td style="border: 1px solid black;padding-left: 10px;" >
192
- 2008-05-08
193
- </td>
194
- <td style="border: 1px solid black;padding-left: 10px;" >
195
- (0016)
196
- </td>
197
- <td style="border: 1px solid black;padding-left: 10px;" >
198
- <span style="font-weight: bold;" >
199
- Glenn Rempe
200
- </span>
201
- / &lt;glenn@rempe.us&gt;
202
- </td>
203
- </tr>
204
- <tr>
205
- <td style="border: 1px solid black;padding-left: 10px;" >
206
- 2009-02-03
207
- </td>
208
- <td style="border: 1px solid black;padding-left: 10px;" >
209
- (0001)
210
- </td>
211
- <td style="border: 1px solid black;padding-left: 10px;" >
212
- <span style="font-weight: bold;" >
213
- Tony Garnock-Jones
214
- </span>
215
- / &lt;tonyg@lshift.net&gt;
216
- </td>
217
- </tr>
218
- <tr>
219
- <td style="border: 1px solid black;padding-left: 10px;" >
220
- 2009-02-09
221
- </td>
222
- <td style="border: 1px solid black;padding-left: 10px;" >
223
- (0003)
224
- </td>
225
- <td style="border: 1px solid black;padding-left: 10px;" >
226
- <span style="font-weight: bold;" >
227
- Marius Mathiesen
228
- </span>
229
- / &lt;marius.mathiesen@gmail.com&gt;
230
- </td>
231
- </tr>
232
- <tr>
233
- <td style="border: 1px solid black;padding-left: 10px;" >
234
- 2009-02-13
235
- </td>
236
- <td style="border: 1px solid black;padding-left: 10px;" >
237
- (0004)
238
- </td>
239
- <td style="border: 1px solid black;padding-left: 10px;" >
240
- <span style="font-weight: bold;" >
241
- Johan Sørensen
242
- </span>
243
- / &lt;johan@johansorensen.com&gt;
244
- </td>
245
- </tr>
246
- <tr>
247
- <td style="border: 1px solid black;padding-left: 10px;" >
248
- 2009-11-17
249
- </td>
250
- <td style="border: 1px solid black;padding-left: 10px;" >
251
- (0019)
252
- </td>
253
- <td style="border: 1px solid black;padding-left: 10px;" >
254
- <span style="font-weight: bold;" >
255
- Thiago Morello
256
- </span>
257
- / &lt;thiago.morello@locaweb.com.br&gt;
258
- </td>
259
- </tr>
260
- <tr>
261
- <td style="border: 1px solid black;padding-left: 10px;" >
262
- 2009-11-22
263
- </td>
264
- <td style="border: 1px solid black;padding-left: 10px;" >
265
- (0001)
266
- </td>
267
- <td style="border: 1px solid black;padding-left: 10px;" >
268
- <span style="font-weight: bold;" >
269
- unknown
270
- </span>
271
- / &lt;katy@.(none)&gt;
272
- </td>
273
- </tr>
274
- <tr>
275
- <td style="border: 1px solid black;padding-left: 10px;" >
276
- 2009-12-18
277
- </td>
278
- <td style="border: 1px solid black;padding-left: 10px;" >
279
- (0047)
280
- </td>
281
- <td style="border: 1px solid black;padding-left: 10px;" >
282
- <span style="font-weight: bold;" >
283
- Thiago Morello
284
- </span>
285
- / &lt;morello@queroinfra32.fabrica.locaweb.com.br&gt;
286
- </td>
287
- </tr>
288
- <tr>
289
- <td style="border: 1px solid black;padding-left: 10px;" >
290
- 2009-12-25
291
- </td>
292
- <td style="border: 1px solid black;padding-left: 10px;" >
293
- (0364)
294
- </td>
295
- <td style="border: 1px solid black;padding-left: 10px;" >
296
- <span style="font-weight: bold;" >
297
- gmallard
298
- </span>
299
- / &lt;allard.guy.m@gmail.com&gt;
300
- </td>
301
- </tr>
302
- <tr>
303
- <td style="border: 1px solid black;padding-left: 10px;" >
304
- 2010-01-07
305
- </td>
306
- <td style="border: 1px solid black;padding-left: 10px;" >
307
- (0007)
308
- </td>
309
- <td style="border: 1px solid black;padding-left: 10px;" >
310
- <span style="font-weight: bold;" >
311
- Rafael Rosa
312
- </span>
313
- / &lt;rafael.rosa@locaweb.com.br&gt;
314
- </td>
315
- </tr>
316
- <tr>
317
- <td style="border: 1px solid black;padding-left: 10px;" >
318
- 2010-03-23
319
- </td>
320
- <td style="border: 1px solid black;padding-left: 10px;" >
321
- (0074)
322
- </td>
323
- <td style="border: 1px solid black;padding-left: 10px;" >
324
- <span style="font-weight: bold;" >
325
- Guy M. Allard
326
- </span>
327
- / &lt;allard.guy.m@gmail.com&gt;
328
- </td>
329
- </tr>
330
- <tr>
331
- <td style="border: 1px solid black;padding-left: 10px;" >
332
- 2010-04-01
333
- </td>
334
- <td style="border: 1px solid black;padding-left: 10px;" >
335
- (0001)
336
- </td>
337
- <td style="border: 1px solid black;padding-left: 10px;" >
338
- <span style="font-weight: bold;" >
339
- Dmytro Shteflyuk
340
- </span>
341
- / &lt;kpumuk@kpumuk.info&gt;
342
- </td>
343
- </tr>
344
- <tr>
345
- <td style="border: 1px solid black;padding-left: 10px;" >
346
- 2010-10-22
347
- </td>
348
- <td style="border: 1px solid black;padding-left: 10px;" >
349
- (0001)
350
- </td>
351
- <td style="border: 1px solid black;padding-left: 10px;" >
352
- <span style="font-weight: bold;" >
353
- Neil Wilson
354
- </span>
355
- / &lt;neil@aldur.co.uk&gt;
356
- </td>
357
- </tr>
358
- <tr>
359
- <td style="border: 1px solid black;padding-left: 10px;" >
360
- 2011-02-09
361
- </td>
362
- <td style="border: 1px solid black;padding-left: 10px;" >
363
- (0001)
364
- </td>
365
- <td style="border: 1px solid black;padding-left: 10px;" >
366
- <span style="font-weight: bold;" >
367
- Dinesh Majrekar
368
- </span>
369
- / &lt;dinesh.majrekar@advantage-interactive.com&gt;
370
- </td>
371
- </tr>
372
- <tr>
373
- <td style="border: 1px solid black;padding-left: 10px;" >
374
- 2011-04-15
375
- </td>
376
- <td style="border: 1px solid black;padding-left: 10px;" >
377
- (0002)
378
- </td>
379
- <td style="border: 1px solid black;padding-left: 10px;" >
380
- <span style="font-weight: bold;" >
381
- Kiall Mac Innes
382
- </span>
383
- / &lt;kiall@managedit.ie&gt;
384
- </td>
385
- </tr>
386
- <tr>
387
- <td style="border: 1px solid black;padding-left: 10px;" >
388
- 2011-04-29
389
- </td>
390
- <td style="border: 1px solid black;padding-left: 10px;" >
391
- (0002)
392
- </td>
393
- <td style="border: 1px solid black;padding-left: 10px;" >
394
- <span style="font-weight: bold;" >
395
- Rob Skaggs
396
- </span>
397
- / &lt;rob@pivotal-it.com&gt;
398
- </td>
399
- </tr>
400
- <tr>
401
- <td style="border: 1px solid black;padding-left: 10px;" >
402
- 2011-08-23
403
- </td>
404
- <td style="border: 1px solid black;padding-left: 10px;" >
405
- (0003)
406
- </td>
407
- <td style="border: 1px solid black;padding-left: 10px;" >
408
- <span style="font-weight: bold;" >
409
- Tom May
410
- </span>
411
- / &lt;tom@tommay.net&gt;
412
- </td>
413
- </tr>
414
- <tr>
415
- <td style="border: 1px solid black;padding-left: 10px;" >
416
- 2011-09-11
417
- </td>
418
- <td style="border: 1px solid black;padding-left: 10px;" >
419
- (0003)
420
- </td>
421
- <td style="border: 1px solid black;padding-left: 10px;" >
422
- <span style="font-weight: bold;" >
423
- Lucas Hills
424
- </span>
425
- / &lt;info@lucashills.com&gt;
426
- </td>
427
- </tr>
428
- <tr>
429
- <td style="border: 1px solid black;padding-left: 10px;" >
430
- 2011-11-20
431
- </td>
432
- <td style="border: 1px solid black;padding-left: 10px;" >
433
- (0002)
434
- </td>
435
- <td style="border: 1px solid black;padding-left: 10px;" >
436
- <span style="font-weight: bold;" >
437
- Chris Needham
438
- </span>
439
- / &lt;chrisn303@gmail.com&gt;
440
- </td>
441
- </tr>
442
- <tr>
443
- <td style="border: 1px solid black;padding-left: 10px;" >
444
- 2011-12-11
445
- </td>
446
- <td style="border: 1px solid black;padding-left: 10px;" >
447
- (0003)
448
- </td>
449
- <td style="border: 1px solid black;padding-left: 10px;" >
450
- <span style="font-weight: bold;" >
451
- R.I.Pienaar
452
- </span>
453
- / &lt;rip@devco.net&gt;
454
- </td>
455
- </tr>
456
- <tr>
457
- <td style="border: 1px solid black;padding-left: 10px;" >
458
- 2011-12-13
459
- </td>
460
- <td style="border: 1px solid black;padding-left: 10px;" >
461
- (0001)
462
- </td>
463
- <td style="border: 1px solid black;padding-left: 10px;" >
464
- <span style="font-weight: bold;" >
465
- tworker
466
- </span>
467
- / &lt;tworker@onyx.ove.com&gt;
468
- </td>
469
- </tr>
470
- <tr>
471
- <td style="border: 1px solid black;padding-left: 10px;" >
472
- 2011-12-13
473
- </td>
474
- <td style="border: 1px solid black;padding-left: 10px;" >
475
- (0001)
476
- </td>
477
- <td style="border: 1px solid black;padding-left: 10px;" >
478
- <span style="font-weight: bold;" >
479
- Thiago Morello
480
- </span>
481
- / &lt;morellon@gmail.com&gt;
482
- </td>
483
- </tr>
484
- <tr>
485
- <td style="border: 1px solid black;padding-left: 10px;" >
486
- 2012-03-16
487
- </td>
488
- <td style="border: 1px solid black;padding-left: 10px;" >
489
- (0001)
490
- </td>
491
- <td style="border: 1px solid black;padding-left: 10px;" >
492
- <span style="font-weight: bold;" >
493
- James Pearson
494
- </span>
495
- / &lt;james@fearmediocrity.co.uk&gt;
496
- </td>
497
- </tr>
498
- <tr>
499
- <td style="border: 1px solid black;padding-left: 10px;" >
500
- 2012-05-02
501
- </td>
502
- <td style="border: 1px solid black;padding-left: 10px;" >
503
- (0003)
504
- </td>
505
- <td style="border: 1px solid black;padding-left: 10px;" >
506
- <span style="font-weight: bold;" >
507
- mindscratch
508
- </span>
509
- / &lt;craig@mindscratch.org&gt;
510
- </td>
511
- </tr>
512
- <tr>
513
- <td style="border: 1px solid black;padding-left: 10px;" >
514
- 2012-05-10
515
- </td>
516
- <td style="border: 1px solid black;padding-left: 10px;" >
517
- (0001)
518
- </td>
519
- <td style="border: 1px solid black;padding-left: 10px;" >
520
- <span style="font-weight: bold;" >
521
- Tommy Bishop
522
- </span>
523
- / &lt;bishop.thomas@gmail.com&gt;
524
- </td>
525
- </tr>
526
- <tr>
527
- <td style="border: 1px solid black;padding-left: 10px;" >
528
- 2012-06-18
529
- </td>
530
- <td style="border: 1px solid black;padding-left: 10px;" >
531
- (0002)
532
- </td>
533
- <td style="border: 1px solid black;padding-left: 10px;" >
534
- <span style="font-weight: bold;" >
535
- Jeremy Gailor
536
- </span>
537
- / &lt;jeremy@infinitecube.com&gt;
538
- </td>
539
- </tr>
540
- <tr>
541
- <td style="border: 1px solid black;padding-left: 10px;" >
542
- 2013-02-20
543
- </td>
544
- <td style="border: 1px solid black;padding-left: 10px;" >
545
- (0002)
546
- </td>
547
- <td style="border: 1px solid black;padding-left: 10px;" >
548
- <span style="font-weight: bold;" >
549
- JP Hastings-Spital
550
- </span>
551
- / &lt;jphastings@gmail.com&gt;
552
- </td>
553
- </tr>
554
- <tr>
555
- <td style="border: 1px solid black;padding-left: 10px;" >
556
- 2013-03-14
557
- </td>
558
- <td style="border: 1px solid black;padding-left: 10px;" >
559
- (0003)
560
- </td>
561
- <td style="border: 1px solid black;padding-left: 10px;" >
562
- <span style="font-weight: bold;" >
563
- glennr
564
- </span>
565
- / &lt;glenn@siyelo.com&gt;
566
- </td>
567
- </tr>
568
- <tr>
569
- <td style="border: 1px solid black;padding-left: 10px;" >
570
- 2013-07-29
571
- </td>
572
- <td style="border: 1px solid black;padding-left: 10px;" >
573
- (0020)
574
- </td>
575
- <td style="border: 1px solid black;padding-left: 10px;" >
576
- <span style="font-weight: bold;" >
577
- Ian Smith
578
- </span>
579
- / &lt;ian.smith@mylookout.com&gt;
580
- </td>
581
- </tr>
582
- <tr>
583
- <td style="border: 1px solid black;padding-left: 10px;" >
584
- 2013-08-07
585
- </td>
586
- <td style="border: 1px solid black;padding-left: 10px;" >
587
- (0001)
588
- </td>
589
- <td style="border: 1px solid black;padding-left: 10px;" >
590
- <span style="font-weight: bold;" >
591
- Hiram Chirino
592
- </span>
593
- / &lt;hiram@hiramchirino.com&gt;
594
- </td>
595
- </tr>
596
- <tr>
597
- <td style="border: 1px solid black;padding-left: 10px;" >
598
- 2013-08-15
599
- </td>
600
- <td style="border: 1px solid black;padding-left: 10px;" >
601
- (0005)
602
- </td>
603
- <td style="border: 1px solid black;padding-left: 10px;" >
604
- <span style="font-weight: bold;" >
605
- Ian Smith
606
- </span>
607
- / &lt;ian.smith@lookout.com&gt;
608
- </td>
609
- </tr>
610
- <tr>
611
- <td style="border: 1px solid black;padding-left: 10px;" >
612
- 2013-09-26
613
- </td>
614
- <td style="border: 1px solid black;padding-left: 10px;" >
615
- (0001)
616
- </td>
617
- <td style="border: 1px solid black;padding-left: 10px;" >
618
- <span style="font-weight: bold;" >
619
- Orazio Cotroneo
620
- </span>
621
- / &lt;orazio@we7.com&gt;
622
- </td>
623
- </tr>
624
- <tr>
625
- <td style="border: 1px solid black;padding-left: 10px;" >
626
- 2013-10-22
627
- </td>
628
- <td style="border: 1px solid black;padding-left: 10px;" >
629
- (0001)
630
- </td>
631
- <td style="border: 1px solid black;padding-left: 10px;" >
632
- <span style="font-weight: bold;" >
633
- OrazioWE7
634
- </span>
635
- / &lt;orazio@we7.com&gt;
636
- </td>
637
- </tr>
638
- <tr>
639
- <td style="border: 1px solid black;padding-left: 10px;" >
640
- 2014-03-13
641
- </td>
642
- <td style="border: 1px solid black;padding-left: 10px;" >
643
- (0001)
644
- </td>
645
- <td style="border: 1px solid black;padding-left: 10px;" >
646
- <span style="font-weight: bold;" >
647
- Richard Clamp
648
- </span>
649
- / &lt;richardc@unixbeard.net&gt;
650
- </td>
651
- </tr>
652
- <tr>
653
- <td style="border: 1px solid black;padding-left: 10px;" >
654
- 2014-12-08
655
- </td>
656
- <td style="border: 1px solid black;padding-left: 10px;" >
657
- (0001)
658
- </td>
659
- <td style="border: 1px solid black;padding-left: 10px;" >
660
- <span style="font-weight: bold;" >
661
- m4rCsi
662
- </span>
663
- / &lt;m4rCsi@gmail.com&gt;
664
- </td>
665
- </tr>
666
- <tr>
667
- <td style="border: 1px solid black;padding-left: 10px;" >
668
- 2015-09-05
669
- </td>
670
- <td style="border: 1px solid black;padding-left: 10px;" >
671
- (0001)
672
- </td>
673
- <td style="border: 1px solid black;padding-left: 10px;" >
674
- <span style="font-weight: bold;" >
675
- Michael Klishin
676
- </span>
677
- / &lt;michael@novemberain.com&gt;
678
- </td>
679
- </tr>
680
- <tr>
681
- <td style="border: 1px solid black;padding-left: 10px;" >
682
- 2015-11-10
683
- </td>
684
- <td style="border: 1px solid black;padding-left: 10px;" >
685
- (0002)
686
- </td>
687
- <td style="border: 1px solid black;padding-left: 10px;" >
688
- <span style="font-weight: bold;" >
689
- Patrick Sharp
690
- </span>
691
- / &lt;psharp@numerex.com&gt;
692
- </td>
693
- </tr>
694
- <tr>
695
- <td style="border: 1px solid black;padding-left: 10px;" >
696
- 2016-02-03
697
- </td>
698
- <td style="border: 1px solid black;padding-left: 10px;" >
699
- (0001)
700
- </td>
701
- <td style="border: 1px solid black;padding-left: 10px;" >
702
- <span style="font-weight: bold;" >
703
- Wayne Robinson
704
- </span>
705
- / &lt;wayne.robinson@gmail.com&gt;
706
- </td>
707
- </tr>
708
- <tr>
709
- <td style="border: 1px solid black;padding-left: 10px;" >
710
- 2016-07-12
711
- </td>
712
- <td style="border: 1px solid black;padding-left: 10px;" >
713
- (0006)
714
- </td>
715
- <td style="border: 1px solid black;padding-left: 10px;" >
716
- <span style="font-weight: bold;" >
717
- Nikolay Khasanov
718
- </span>
719
- / &lt;nkhasanov@groupon.com&gt;
720
- </td>
721
- </tr>
722
- <tr>
723
- <td style="border: 1px solid black;padding-left: 10px;" >
724
- 2016-06-02
725
- </td>
726
- <td style="border: 1px solid black;padding-left: 10px;" >
727
- (0001)
728
- </td>
729
- <td style="border: 1px solid black;padding-left: 10px;" >
730
- <span style="font-weight: bold;" >
731
- Ryan Rosenblum
732
- </span>
733
- / &lt;ryan.rosenblum@gmail.com&gt;
734
- </td>
735
- </tr>
736
- <tr>
737
- <td style="border: 1px solid black;padding-left: 10px;" >
738
- 2016-08-17
739
- </td>
740
- <td style="border: 1px solid black;padding-left: 10px;" >
741
- (0002)
742
- </td>
743
- <td style="border: 1px solid black;padding-left: 10px;" >
744
- <span style="font-weight: bold;" >
745
- Alexandre Moutot
746
- </span>
747
- / &lt;a.moutot@alphalink.fr&gt;
748
- </td>
749
- </tr>
750
- <tr>
751
- <td style="border: 1px solid black;padding-left: 10px;" >
752
- 2016-10-25
753
- </td>
754
- <td style="border: 1px solid black;padding-left: 10px;" >
755
- (0001)
756
- </td>
757
- <td style="border: 1px solid black;padding-left: 10px;" >
758
- <span style="font-weight: bold;" >
759
- Raducu Deaconu
760
- </span>
761
- / &lt;raducu.deaconu@visma.com&gt;
762
- </td>
763
- </tr>
764
- <tr>
765
- <td style="border: 1px solid black;padding-left: 10px;" >
766
- 2017-03-23
767
- </td>
768
- <td style="border: 1px solid black;padding-left: 10px;" >
769
- (0001)
770
- </td>
771
- <td style="border: 1px solid black;padding-left: 10px;" >
772
- <span style="font-weight: bold;" >
773
- Steve Traylen
774
- </span>
775
- / &lt;steve.traylen@cern.ch&gt;
776
- </td>
777
- </tr>
778
- <tr>
779
- <td style="border: 1px solid black;padding-left: 10px;" >
780
- 2017-06-01
781
- </td>
782
- <td style="border: 1px solid black;padding-left: 10px;" >
783
- (0001)
784
- </td>
785
- <td style="border: 1px solid black;padding-left: 10px;" >
786
- <span style="font-weight: bold;" >
787
- Reid Vandewiele
788
- </span>
789
- / &lt;reid@puppetlabs.com&gt;
790
- </td>
791
- </tr>
792
- <tr>
793
- <td style="border: 1px solid black;padding-left: 10px;" >
794
- 2017-07-27
795
- </td>
796
- <td style="border: 1px solid black;padding-left: 10px;" >
797
- (0001)
798
- </td>
799
- <td style="border: 1px solid black;padding-left: 10px;" >
800
- <span style="font-weight: bold;" >
801
- Meg Richards
802
- </span>
803
- / &lt;mouse@cmu.edu&gt;
804
- </td>
805
- </tr>
806
- </table>