stomp 1.4.5 → 1.4.10

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.
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>