stomp 1.4.4 → 1.4.5

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