stomp 1.4.4 → 1.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +96 -100
  4. data/examples/EXAMPLES.md +251 -0
  5. data/examples/amqdurasub.rb +14 -17
  6. data/examples/artemis/cliwaiter_not_reliable.rb +12 -5
  7. data/examples/artemis/{cliwaiter_reliable.rb → cliwaiter_reliable_hb.rb} +24 -23
  8. data/examples/client_conndisc.rb +66 -0
  9. data/examples/client_putget.rb +94 -0
  10. data/examples/conn_conndisc.rb +102 -0
  11. data/examples/conn_putget.rb +124 -0
  12. data/examples/contrib.sh +2 -3
  13. data/examples/contributors.rb +26 -14
  14. data/examples/examplogger.rb +1 -1
  15. data/examples/{consumer.rb → historical/consumer.rb} +0 -0
  16. data/examples/{publisher.rb → historical/publisher.rb} +0 -0
  17. data/examples/{topic_consumer.rb → historical/topic_consumer.rb} +0 -0
  18. data/examples/{topic_publisher.rb → historical/topic_publisher.rb} +0 -0
  19. data/examples/logexamp.rb +23 -14
  20. data/examples/putget_file.rb +79 -0
  21. data/examples/{putget11_rh1.rb → putget_rephdrs.rb} +16 -15
  22. data/examples/ssl/SSL.md +189 -0
  23. data/examples/{ssl_ctxoptions.rb → ssl/misc/ssl_ctxoptions.rb} +23 -14
  24. data/examples/ssl/misc/ssl_newparm.rb +53 -0
  25. data/examples/ssl/misc/ssl_ucx_default_ciphers.rb +54 -0
  26. data/examples/ssl/ssl_common.rb +96 -0
  27. data/examples/ssl/sslexall.sh +17 -0
  28. data/examples/{ssl_uc1.rb → ssl/uc1/ssl_uc1.rb} +15 -11
  29. data/examples/ssl/uc1/ssl_uc1_ciphers.rb +60 -0
  30. data/examples/{ssl_uc2.rb → ssl/uc2/ssl_uc2.rb} +17 -10
  31. data/examples/ssl/uc2/ssl_uc2_ciphers.rb +67 -0
  32. data/examples/{ssl_uc3.rb → ssl/uc3/ssl_uc3.rb} +15 -16
  33. data/examples/ssl/uc3/ssl_uc3_ciphers.rb +65 -0
  34. data/examples/{ssl_uc4.rb → ssl/uc4/ssl_uc4.rb} +15 -15
  35. data/examples/ssl/uc4/ssl_uc4_ciphers.rb +66 -0
  36. data/examples/stomp_common.rb +97 -0
  37. data/lib/connection/netio.rb +83 -37
  38. data/lib/connection/utf8.rb +0 -7
  39. data/lib/connection/utils.rb +4 -1
  40. data/lib/stomp/client.rb +5 -1
  41. data/lib/stomp/connection.rb +25 -15
  42. data/lib/stomp/constants.rb +109 -0
  43. data/lib/stomp/errors.rb +11 -0
  44. data/lib/stomp/sslparams.rb +3 -4
  45. data/lib/stomp/version.rb +2 -2
  46. data/stomp.gemspec +31 -37
  47. data/test/test_anonymous.rb +4 -0
  48. data/test/test_client.rb +2 -0
  49. data/test/test_connection.rb +4 -0
  50. data/test/test_connection1p.rb +2 -4
  51. data/test/test_helper.rb +11 -0
  52. metadata +30 -36
  53. data/examples/artemis/artlogger.rb +0 -41
  54. data/examples/client11_ex1.rb +0 -89
  55. data/examples/client11_putget1.rb +0 -71
  56. data/examples/conn11_ex1.rb +0 -112
  57. data/examples/conn11_ex2.rb +0 -87
  58. data/examples/conn11_hb1.rb +0 -57
  59. data/examples/consume_file.rb +0 -63
  60. data/examples/get11conn_ex1.rb +0 -117
  61. data/examples/get11conn_ex2.rb +0 -77
  62. data/examples/lflogger.rb +0 -316
  63. data/examples/logexamp_ssl.rb +0 -81
  64. data/examples/publish_file.rb +0 -76
  65. data/examples/publish_file_conn.rb +0 -75
  66. data/examples/put11conn_ex1.rb +0 -56
  67. data/examples/ssl_common.rb +0 -73
  68. data/examples/ssl_newparm.rb +0 -43
  69. data/examples/ssl_uc1_ciphers.rb +0 -53
  70. data/examples/ssl_uc2_ciphers.rb +0 -60
  71. data/examples/ssl_uc3_ciphers.rb +0 -64
  72. data/examples/ssl_uc4_ciphers.rb +0 -65
  73. data/examples/ssl_ucx_default_ciphers.rb +0 -41
  74. data/examples/stomp11_common.rb +0 -54
@@ -31,17 +31,10 @@ module Stomp
31
31
  #
32
32
  valid = true
33
33
  index = -1
34
- nb_hex = nil
35
- ni_hex = nil
36
34
  state = "start"
37
- next_byte_save = nil
38
35
  #
39
36
  bytes.each do |next_byte|
40
37
  index += 1
41
- next_byte_save = next_byte
42
- ni_hex = sprintf "%x", index
43
- nb_hex = sprintf "%x", next_byte
44
- # puts "Top: #{next_byte}(0x#{nb_hex}), index: #{index}(0x#{ni_hex})" if DEBUG
45
38
  case state
46
39
 
47
40
  # State: 'start'
@@ -247,7 +247,10 @@ module Stomp
247
247
  while true
248
248
  begin
249
249
  used_socket = socket()
250
- return _receive(used_socket)
250
+
251
+ connread = false
252
+ noiosel = (@ssl || @jruby) ? true : false
253
+ return _receive(used_socket, connread, noiosel)
251
254
  rescue Stomp::Error::MaxReconnectAttempts
252
255
  unless slog(:on_miscerr, log_params, "Reached MaxReconnectAttempts")
253
256
  $stderr.print "Reached MaxReconnectAttempts\n"
@@ -57,6 +57,7 @@ module Stomp
57
57
  # :start_timeout => 0, # Timeout around Stomp::Client initialization
58
58
  # :sslctx_newparm => nil, # Param for SSLContext.new
59
59
  # :ssl_post_conn_check => true, # Further verify broker identity
60
+ # :nto_cmd_read => true, # No timeout on COMMAND read
60
61
  # }
61
62
  #
62
63
  # e.g. c = Stomp::Client.new(hash)
@@ -100,7 +101,7 @@ module Stomp
100
101
  create_connection(autoflush)
101
102
  start_listeners()
102
103
  }
103
- rescue TimeoutError
104
+ rescue Timeout::Error
104
105
  # p [ "cldbg02" ]
105
106
  ex = Stomp::Error::StartTimeoutException.new(@start_timeout)
106
107
  raise ex
@@ -109,6 +110,9 @@ module Stomp
109
110
 
110
111
  def create_error_handler
111
112
  client_thread = Thread.current
113
+ if client_thread.respond_to?(:report_on_exception=)
114
+ client_thread.report_on_exception=false
115
+ end
112
116
 
113
117
  @error_listener = lambda do |error|
114
118
  exception = case error.body
@@ -94,6 +94,7 @@ module Stomp
94
94
  # :start_timeout => 0, # Timeout around Stomp::Client initialization
95
95
  # :sslctx_newparm => nil, # Param for SSLContext.new
96
96
  # :ssl_post_conn_check => true, # Further verify broker identity
97
+ # :nto_cmd_read => true, # No timeout on COMMAND read
97
98
  # }
98
99
  #
99
100
  # e.g. c = Stomp::Connection.new(hash)
@@ -120,6 +121,12 @@ module Stomp
120
121
  if defined?(RUBY_ENGINE) && RUBY_ENGINE =~ /jruby/
121
122
  @jruby = true
122
123
  end
124
+
125
+ ct = Thread.current
126
+ if ct.respond_to?(:report_on_exception=)
127
+ ct.report_on_exception=false
128
+ end
129
+
123
130
  if login.is_a?(Hash)
124
131
  hashed_initialize(login)
125
132
  else
@@ -148,6 +155,7 @@ module Stomp
148
155
  @start_timeout = 0 # Client only, startup timeout
149
156
  @sslctx_newparm = nil # SSLContext.new paramater
150
157
  @ssl_post_conn_check = true # Additional broker verification
158
+ @nto_cmd_read = true # No timeout on COMMAND read
151
159
  warn "login looks like a URL, do you have the correct parameters?" if @login =~ /:\/\//
152
160
  end
153
161
 
@@ -187,6 +195,7 @@ module Stomp
187
195
  @connread_timeout = @parameters[:connread_timeout]
188
196
  @sslctx_newparm = @parameters[:sslctx_newparm]
189
197
  @ssl_post_conn_check = @parameters[:ssl_post_conn_check]
198
+ @nto_cmd_read = @parameters[:nto_cmd_read]
190
199
  #
191
200
  # Try to support Ruby 1.9.x and 2.x ssl.
192
201
  unless defined?(RSpec)
@@ -257,18 +266,18 @@ module Stomp
257
266
 
258
267
  case @protocol
259
268
  when Stomp::SPL_12
260
- # The ACK frame MUST include an "id" header matching the "ack" header
269
+ # The ACK frame MUST include an "id" header matching the "ack" header
261
270
  # of the MESSAGE being acknowledged.
262
271
  headers[:id] = message_or_ack_id
263
272
  when Stomp::SPL_11
264
- # ACK has two REQUIRED headers: "message-id", which MUST contain a value
265
- # matching the message-id header of the MESSAGE being acknowledged and
266
- # "subscription", which MUST be set to match the value of SUBSCRIBE's
273
+ # ACK has two REQUIRED headers: "message-id", which MUST contain a value
274
+ # matching the message-id header of the MESSAGE being acknowledged and
275
+ # "subscription", which MUST be set to match the value of SUBSCRIBE's
267
276
  # id header.
268
277
  headers[:'message-id'] = message_or_ack_id
269
278
  raise Stomp::Error::SubscriptionRequiredError unless headers[:subscription]
270
279
  else # Stomp::SPL_10
271
- # ACK has one required header, "message-id", which must contain a value
280
+ # ACK has one required header, "message-id", which must contain a value
272
281
  # matching the message-id for the MESSAGE being acknowledged.
273
282
  headers[:'message-id'] = message_or_ack_id
274
283
  end
@@ -294,13 +303,13 @@ module Stomp
294
303
  headers = headers.symbolize_keys
295
304
  case @protocol
296
305
  when Stomp::SPL_12
297
- # The NACK frame MUST include an id header matching the ack header
306
+ # The NACK frame MUST include an id header matching the ack header
298
307
  # of the MESSAGE being acknowledged.
299
308
  headers[:id] = message_or_ack_id
300
309
  else # Stomp::SPL_11 only
301
- # NACK has two REQUIRED headers: message-id, which MUST contain a value
302
- # matching the message-id for the MESSAGE being acknowledged and
303
- # subscription, which MUST be set to match the value of the subscription's
310
+ # NACK has two REQUIRED headers: message-id, which MUST contain a value
311
+ # matching the message-id for the MESSAGE being acknowledged and
312
+ # subscription, which MUST be set to match the value of the subscription's
304
313
  # id header.
305
314
  headers[:'message-id'] = message_or_ack_id
306
315
  raise Stomp::Error::SubscriptionRequiredError unless headers[:subscription]
@@ -350,6 +359,8 @@ module Stomp
350
359
  _headerCheck(headers)
351
360
  slog(:on_subscribe, log_params, headers)
352
361
 
362
+ ## p [ "subId", subId ]
363
+ ## p [ "subscriptions", @subscriptions ]
353
364
  # Store the subscription so that we can replay if we reconnect.
354
365
  if @reliable
355
366
  subId = destination if subId.nil?
@@ -422,13 +433,13 @@ module Stomp
422
433
  end
423
434
 
424
435
  if message.headers[:retry_count] <= options[:max_redeliveries]
425
- self.publish(message.headers[:destination], message.body,
436
+ self.publish(message.headers[:destination], message.body,
426
437
  message.headers.merge(:transaction => transaction_id))
427
438
  else
428
439
  # Poison ack, sending the message to the DLQ
429
- self.publish(options[:dead_letter_queue], message.body,
430
- message.headers.merge(:transaction => transaction_id,
431
- :original_destination => message.headers[:destination],
440
+ self.publish(options[:dead_letter_queue], message.body,
441
+ message.headers.merge(:transaction => transaction_id,
442
+ :original_destination => message.headers[:destination],
432
443
  :persistent => true))
433
444
  end
434
445
  self.commit transaction_id
@@ -444,7 +455,7 @@ module Stomp
444
455
  !headers.nil? && headers[:ack] == "client"
445
456
  end
446
457
 
447
- # disconnect closes this connection. If requested, a disconnect RECEIPT
458
+ # disconnect closes this connection. If requested, a disconnect RECEIPT
448
459
  # will be received.
449
460
  def disconnect(headers = {})
450
461
  raise Stomp::Error::NoCurrentConnection if @closed_check && closed?
@@ -574,4 +585,3 @@ module Stomp
574
585
  end # class
575
586
 
576
587
  end # module
577
-
@@ -21,6 +21,10 @@ module Stomp
21
21
  CMD_RECEIPT = "RECEIPT"
22
22
  CMD_ERROR = "ERROR"
23
23
 
24
+ # Server Frames
25
+ SERVER_FRAMES = {CMD_CONNECTED => true, CMD_MESSAGE => true,
26
+ CMD_RECEIPT => true, CMD_ERROR => true}
27
+
24
28
  # Protocols
25
29
  SPL_10 = "1.0"
26
30
  SPL_11 = "1.1"
@@ -175,6 +179,111 @@ module Stomp
175
179
  ["SRP-RSA-AES-256-CBC-SHA","TLSv1/SSLv3",256,256],
176
180
  ]
177
181
 
182
+ #
183
+ # SSL cipher lists used can be in several different formats. One format
184
+ # is a simple Array of strings listing the cipher names.
185
+ # That format is used here.
186
+ #
187
+ # This list was generated using the 'openssl ciphers' command.
188
+ # The openssl version was: OpenSSL 1.0.2g 1 Mar 2016
189
+ #
190
+ # The specific command used to generate this list was:
191
+ #
192
+ # openssl ciphers -v 'DEFAULT:!RC4:!SSLv2:HIGH:@STRENGTH' | cut -d" " -f1 | sed 's/^/\t"/;s/$/",/'
193
+ #
194
+ CIPHERS_OPENSSL = [
195
+ "ECDHE-RSA-AES256-GCM-SHA384",
196
+ "ECDHE-ECDSA-AES256-GCM-SHA384",
197
+ "ECDHE-RSA-AES256-SHA384",
198
+ "ECDHE-ECDSA-AES256-SHA384",
199
+ "ECDHE-RSA-AES256-SHA",
200
+ "ECDHE-ECDSA-AES256-SHA",
201
+ "SRP-DSS-AES-256-CBC-SHA",
202
+ "SRP-RSA-AES-256-CBC-SHA",
203
+ "SRP-AES-256-CBC-SHA",
204
+ "DH-DSS-AES256-GCM-SHA384",
205
+ "DHE-DSS-AES256-GCM-SHA384",
206
+ "DH-RSA-AES256-GCM-SHA384",
207
+ "DHE-RSA-AES256-GCM-SHA384",
208
+ "DHE-RSA-AES256-SHA256",
209
+ "DHE-DSS-AES256-SHA256",
210
+ "DH-RSA-AES256-SHA256",
211
+ "DH-DSS-AES256-SHA256",
212
+ "DHE-RSA-AES256-SHA",
213
+ "DHE-DSS-AES256-SHA",
214
+ "DH-RSA-AES256-SHA",
215
+ "DH-DSS-AES256-SHA",
216
+ "DHE-RSA-CAMELLIA256-SHA",
217
+ "DHE-DSS-CAMELLIA256-SHA",
218
+ "DH-RSA-CAMELLIA256-SHA",
219
+ "DH-DSS-CAMELLIA256-SHA",
220
+ "ECDH-RSA-AES256-GCM-SHA384",
221
+ "ECDH-ECDSA-AES256-GCM-SHA384",
222
+ "ECDH-RSA-AES256-SHA384",
223
+ "ECDH-ECDSA-AES256-SHA384",
224
+ "ECDH-RSA-AES256-SHA",
225
+ "ECDH-ECDSA-AES256-SHA",
226
+ "AES256-GCM-SHA384",
227
+ "AES256-SHA256",
228
+ "AES256-SHA",
229
+ "CAMELLIA256-SHA",
230
+ "PSK-AES256-CBC-SHA",
231
+ "ECDHE-RSA-AES128-GCM-SHA256",
232
+ "ECDHE-ECDSA-AES128-GCM-SHA256",
233
+ "ECDHE-RSA-AES128-SHA256",
234
+ "ECDHE-ECDSA-AES128-SHA256",
235
+ "ECDHE-RSA-AES128-SHA",
236
+ "ECDHE-ECDSA-AES128-SHA",
237
+ "SRP-DSS-AES-128-CBC-SHA",
238
+ "SRP-RSA-AES-128-CBC-SHA",
239
+ "SRP-AES-128-CBC-SHA",
240
+ "DH-DSS-AES128-GCM-SHA256",
241
+ "DHE-DSS-AES128-GCM-SHA256",
242
+ "DH-RSA-AES128-GCM-SHA256",
243
+ "DHE-RSA-AES128-GCM-SHA256",
244
+ "DHE-RSA-AES128-SHA256",
245
+ "DHE-DSS-AES128-SHA256",
246
+ "DH-RSA-AES128-SHA256",
247
+ "DH-DSS-AES128-SHA256",
248
+ "DHE-RSA-AES128-SHA",
249
+ "DHE-DSS-AES128-SHA",
250
+ "DH-RSA-AES128-SHA",
251
+ "DH-DSS-AES128-SHA",
252
+ "DHE-RSA-SEED-SHA",
253
+ "DHE-DSS-SEED-SHA",
254
+ "DH-RSA-SEED-SHA",
255
+ "DH-DSS-SEED-SHA",
256
+ "DHE-RSA-CAMELLIA128-SHA",
257
+ "DHE-DSS-CAMELLIA128-SHA",
258
+ "DH-RSA-CAMELLIA128-SHA",
259
+ "DH-DSS-CAMELLIA128-SHA",
260
+ "ECDH-RSA-AES128-GCM-SHA256",
261
+ "ECDH-ECDSA-AES128-GCM-SHA256",
262
+ "ECDH-RSA-AES128-SHA256",
263
+ "ECDH-ECDSA-AES128-SHA256",
264
+ "ECDH-RSA-AES128-SHA",
265
+ "ECDH-ECDSA-AES128-SHA",
266
+ "AES128-GCM-SHA256",
267
+ "AES128-SHA256",
268
+ "AES128-SHA",
269
+ "SEED-SHA",
270
+ "CAMELLIA128-SHA",
271
+ "PSK-AES128-CBC-SHA",
272
+ "ECDHE-RSA-DES-CBC3-SHA",
273
+ "ECDHE-ECDSA-DES-CBC3-SHA",
274
+ "SRP-DSS-3DES-EDE-CBC-SHA",
275
+ "SRP-RSA-3DES-EDE-CBC-SHA",
276
+ "SRP-3DES-EDE-CBC-SHA",
277
+ "EDH-RSA-DES-CBC3-SHA",
278
+ "EDH-DSS-DES-CBC3-SHA",
279
+ "DH-RSA-DES-CBC3-SHA",
280
+ "DH-DSS-DES-CBC3-SHA",
281
+ "ECDH-RSA-DES-CBC3-SHA",
282
+ "ECDH-ECDSA-DES-CBC3-SHA",
283
+ "DES-CBC3-SHA",
284
+ "PSK-3DES-EDE-CBC-SHA",
285
+ ]
286
+
178
287
  HAND_SHAKE_DATA = "\x15\x03\x03\x00\x02\x02\n"
179
288
 
180
289
  original_verbose, $VERBOSE = $VERBOSE, nil # try to shut off warnings
@@ -184,6 +184,17 @@ module Stomp
184
184
  end
185
185
  end
186
186
 
187
+ # ServerFrameNameError is raised if:
188
+ # * Invalid frame is received from the Stomp server.
189
+ class ServerFrameNameError < RuntimeError
190
+ def initialize(bf)
191
+ @bf = bf
192
+ end
193
+ def message
194
+ "Connected, server frame name error: #{@bf.inspect}"
195
+ end
196
+ end
197
+
187
198
  # SSLNoKeyFileError is raised if:
188
199
  # * A supplied key file does not exist.
189
200
  class SSLNoKeyFileError < RuntimeError
@@ -64,17 +64,17 @@ module Stomp
64
64
  #
65
65
  if opts[:fsck]
66
66
  if @cert_file
67
- raise Stomp::Error::SSLNoCertFileError if !File::exists?(@cert_file)
67
+ raise Stomp::Error::SSLNoCertFileError if !File::exist?(@cert_file)
68
68
  raise Stomp::Error::SSLUnreadableCertFileError if !File::readable?(@cert_file)
69
69
  end
70
70
  if @key_file
71
- raise Stomp::Error::SSLNoKeyFileError if !File::exists?(@key_file)
71
+ raise Stomp::Error::SSLNoKeyFileError if !File::exist?(@key_file)
72
72
  raise Stomp::Error::SSLUnreadableKeyFileError if !File::readable?(@key_file)
73
73
  end
74
74
  if @ts_files
75
75
  tsa = @ts_files.split(",")
76
76
  tsa.each do |fn|
77
- raise Stomp::Error::SSLNoTruststoreFileError if !File::exists?(fn)
77
+ raise Stomp::Error::SSLNoTruststoreFileError if !File::exist?(fn)
78
78
  raise Stomp::Error::SSLUnreadableTruststoreFileError if !File::readable?(fn)
79
79
  end
80
80
  end
@@ -86,4 +86,3 @@ module Stomp
86
86
  end # of class SSLParams
87
87
 
88
88
  end # of module Stomp
89
-
@@ -6,8 +6,8 @@ module Stomp
6
6
  module Version #:nodoc: all
7
7
  MAJOR = 1
8
8
  MINOR = 4
9
- PATCH = 4
10
- # PATCH = "4.plvl.001"
9
+ PATCH = 5
10
+ # PATCH = "5.plvl.001"
11
11
  STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
12
12
  end
13
13
  end
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: stomp 1.4.4 ruby lib
5
+ # stub: stomp 1.4.5 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "stomp".freeze
9
- s.version = "1.4.4"
9
+ s.version = "1.4.5"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Brian McCallister".freeze, "Marius Mathiesen".freeze, "Thiago Morello".freeze, "Guy M. Allard".freeze]
14
- s.date = "2017-06-11"
14
+ s.date = "2018-10-27"
15
15
  s.description = "Ruby client for the Stomp messaging protocol. Note that this gem is no longer supported on rubyforge.".freeze
16
16
  s.email = ["brianm@apache.org".freeze, "marius@stones.com".freeze, "morellon@gmail.com".freeze, "allard.guy.m@gmail.com".freeze]
17
17
  s.executables = ["catstomp".freeze, "stompcat".freeze]
@@ -35,45 +35,39 @@ Gem::Specification.new do |s|
35
35
  "adhoc/stomp_adhoc_common.rb",
36
36
  "bin/catstomp",
37
37
  "bin/stompcat",
38
+ "examples/EXAMPLES.md",
38
39
  "examples/amqdurasub.rb",
39
- "examples/artemis/artlogger.rb",
40
40
  "examples/artemis/cliwaiter_not_reliable.rb",
41
- "examples/artemis/cliwaiter_reliable.rb",
42
- "examples/client11_ex1.rb",
43
- "examples/client11_putget1.rb",
44
- "examples/conn11_ex1.rb",
45
- "examples/conn11_ex2.rb",
46
- "examples/conn11_hb1.rb",
47
- "examples/consume_file.rb",
48
- "examples/consumer.rb",
41
+ "examples/artemis/cliwaiter_reliable_hb.rb",
42
+ "examples/client_conndisc.rb",
43
+ "examples/client_putget.rb",
44
+ "examples/conn_conndisc.rb",
45
+ "examples/conn_putget.rb",
49
46
  "examples/contrib.sh",
50
47
  "examples/contributors.rb",
51
48
  "examples/examplogger.rb",
52
- "examples/get11conn_ex1.rb",
53
- "examples/get11conn_ex2.rb",
54
- "examples/lflogger.rb",
49
+ "examples/historical/consumer.rb",
50
+ "examples/historical/publisher.rb",
51
+ "examples/historical/topic_consumer.rb",
52
+ "examples/historical/topic_publisher.rb",
55
53
  "examples/logexamp.rb",
56
- "examples/logexamp_ssl.rb",
57
- "examples/publish_file.rb",
58
- "examples/publish_file_conn.rb",
59
- "examples/publisher.rb",
60
- "examples/put11conn_ex1.rb",
61
- "examples/putget11_rh1.rb",
62
- "examples/ssl_common.rb",
63
- "examples/ssl_ctxoptions.rb",
64
- "examples/ssl_newparm.rb",
65
- "examples/ssl_uc1.rb",
66
- "examples/ssl_uc1_ciphers.rb",
67
- "examples/ssl_uc2.rb",
68
- "examples/ssl_uc2_ciphers.rb",
69
- "examples/ssl_uc3.rb",
70
- "examples/ssl_uc3_ciphers.rb",
71
- "examples/ssl_uc4.rb",
72
- "examples/ssl_uc4_ciphers.rb",
73
- "examples/ssl_ucx_default_ciphers.rb",
74
- "examples/stomp11_common.rb",
75
- "examples/topic_consumer.rb",
76
- "examples/topic_publisher.rb",
54
+ "examples/putget_file.rb",
55
+ "examples/putget_rephdrs.rb",
56
+ "examples/ssl/SSL.md",
57
+ "examples/ssl/misc/ssl_ctxoptions.rb",
58
+ "examples/ssl/misc/ssl_newparm.rb",
59
+ "examples/ssl/misc/ssl_ucx_default_ciphers.rb",
60
+ "examples/ssl/ssl_common.rb",
61
+ "examples/ssl/sslexall.sh",
62
+ "examples/ssl/uc1/ssl_uc1.rb",
63
+ "examples/ssl/uc1/ssl_uc1_ciphers.rb",
64
+ "examples/ssl/uc2/ssl_uc2.rb",
65
+ "examples/ssl/uc2/ssl_uc2_ciphers.rb",
66
+ "examples/ssl/uc3/ssl_uc3.rb",
67
+ "examples/ssl/uc3/ssl_uc3_ciphers.rb",
68
+ "examples/ssl/uc4/ssl_uc4.rb",
69
+ "examples/ssl/uc4/ssl_uc4_ciphers.rb",
70
+ "examples/stomp_common.rb",
77
71
  "lib/client/utils.rb",
78
72
  "lib/connection/heartbeats.rb",
79
73
  "lib/connection/netio.rb",
@@ -115,7 +109,7 @@ Gem::Specification.new do |s|
115
109
  ]
116
110
  s.homepage = "https://github.com/stompgem/stomp".freeze
117
111
  s.licenses = ["Apache-2.0".freeze]
118
- s.rubygems_version = "2.6.11".freeze
112
+ s.rubygems_version = "2.7.6".freeze
119
113
  s.summary = "Ruby client for the Stomp messaging protocol".freeze
120
114
 
121
115
  if s.respond_to? :specification_version then