stomp 1.4.3 → 1.4.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/README.md +46 -3
- data/examples/artemis/artlogger.rb +41 -0
- data/examples/artemis/cliwaiter_not_reliable.rb +66 -0
- data/examples/artemis/cliwaiter_reliable.rb +61 -0
- data/examples/contrib.sh +2 -2
- data/examples/examplogger.rb +5 -3
- data/examples/ssl_uc1.rb +4 -2
- data/lib/client/utils.rb +10 -7
- data/lib/connection/heartbeats.rb +13 -11
- data/lib/connection/netio.rb +47 -14
- data/lib/connection/utils.rb +15 -5
- data/lib/stomp/client.rb +13 -6
- data/lib/stomp/connection.rb +10 -6
- data/lib/stomp/constants.rb +6 -4
- data/lib/stomp/errors.rb +25 -2
- data/lib/stomp/version.rb +4 -4
- data/spec/client_spec.rb +33 -18
- data/spec/spec_helper.rb +1 -0
- data/stomp.gemspec +21 -17
- data/test/MultiBrokerUnitTestExample.sh +65 -0
- data/test/test_anonymous.rb +29 -47
- data/test/test_client.rb +131 -131
- data/test/test_connection.rb +49 -51
- data/test/test_connection1p.rb +45 -76
- data/test/test_helper.rb +15 -2
- data/test/test_message.rb +18 -35
- data/test/test_ssl.rb +4 -10
- data/test/unitst.sh +3 -2
- metadata +7 -3
data/lib/connection/utils.rb
CHANGED
@@ -11,7 +11,7 @@ module Stomp
|
|
11
11
|
|
12
12
|
private
|
13
13
|
|
14
|
-
# Support multi-homed servers.
|
14
|
+
# Support multi-homed servers.
|
15
15
|
def _expand_hosts(hash)
|
16
16
|
new_hash = hash.clone
|
17
17
|
new_hash[:hosts_cloned] = hash[:hosts].clone
|
@@ -137,8 +137,16 @@ module Stomp
|
|
137
137
|
rescue Exception => aex
|
138
138
|
raise if aex.is_a?(Stomp::Error::LoggerConnectionError)
|
139
139
|
end
|
140
|
-
|
141
|
-
|
140
|
+
if max_reconnect_attempts?
|
141
|
+
$stderr.print "In socket() Reached MaxReconnectAttempts"
|
142
|
+
### _dump_threads()
|
143
|
+
mt = @parameters[:client_main]
|
144
|
+
if !mt.nil?
|
145
|
+
mt.raise Stomp::Error::MaxReconnectAttempts
|
146
|
+
Thread::exit
|
147
|
+
end
|
148
|
+
raise Stomp::Error::MaxReconnectAttempts
|
149
|
+
end
|
142
150
|
sleep(@reconnect_delay)
|
143
151
|
@connection_attempts += 1
|
144
152
|
|
@@ -236,11 +244,14 @@ module Stomp
|
|
236
244
|
# __old_receive receives a frame, blocks until the frame is received.
|
237
245
|
def __old_receive()
|
238
246
|
# The receive may fail so we may need to retry.
|
239
|
-
while
|
247
|
+
while true
|
240
248
|
begin
|
241
249
|
used_socket = socket()
|
242
250
|
return _receive(used_socket)
|
243
251
|
rescue Stomp::Error::MaxReconnectAttempts
|
252
|
+
unless slog(:on_miscerr, log_params, "Reached MaxReconnectAttempts")
|
253
|
+
$stderr.print "Reached MaxReconnectAttempts\n"
|
254
|
+
end
|
244
255
|
raise
|
245
256
|
rescue
|
246
257
|
@failure = $!
|
@@ -274,4 +285,3 @@ module Stomp
|
|
274
285
|
end # class Connection
|
275
286
|
|
276
287
|
end # module Stomp
|
277
|
-
|
data/lib/stomp/client.rb
CHANGED
@@ -88,6 +88,8 @@ module Stomp
|
|
88
88
|
|
89
89
|
@logger = @parameters[:logger] ||= Stomp::NullLogger.new
|
90
90
|
@start_timeout = @parameters[:start_timeout] || 0
|
91
|
+
@parameters[:client_main] = Thread::current
|
92
|
+
## p [ "CLINDBG", @parameters[:client_main] ]
|
91
93
|
check_arguments!()
|
92
94
|
|
93
95
|
# p [ "cldbg01", @parameters ]
|
@@ -170,22 +172,26 @@ module Stomp
|
|
170
172
|
# which will be used as a callback listener.
|
171
173
|
# Accepts a transaction header ( :transaction => 'some_transaction_id' ).
|
172
174
|
def subscribe(destination, headers = {})
|
173
|
-
raise
|
175
|
+
raise Stomp::Error::NoListenerGiven unless block_given?
|
176
|
+
headers = headers.symbolize_keys
|
177
|
+
raise Stomp::Error::DestinationRequired unless destination
|
174
178
|
# use subscription id to correlate messages to subscription. As described in
|
175
179
|
# the SUBSCRIPTION section of the protocol: http://stomp.github.com/.
|
176
180
|
# If no subscription id is provided, generate one.
|
177
181
|
headers = headers.merge(:id => build_subscription_id(destination, headers))
|
178
182
|
if @listeners[headers[:id]]
|
179
|
-
raise
|
183
|
+
raise Stomp::Error::DuplicateSubscription
|
180
184
|
end
|
181
185
|
@listeners[headers[:id]] = lambda {|msg| yield msg}
|
182
186
|
@connection.subscribe(destination, headers)
|
183
187
|
end
|
184
188
|
|
185
189
|
# Unsubscribe from a subscription by name.
|
186
|
-
def unsubscribe(
|
187
|
-
headers = headers.
|
188
|
-
|
190
|
+
def unsubscribe(destination, headers = {})
|
191
|
+
headers = headers.symbolize_keys
|
192
|
+
raise Stomp::Error::DestinationRequired unless destination
|
193
|
+
headers = headers.merge(:id => build_subscription_id(destination, headers))
|
194
|
+
@connection.unsubscribe(destination, headers)
|
189
195
|
@listeners[headers[:id]] = nil
|
190
196
|
end
|
191
197
|
|
@@ -243,6 +249,8 @@ module Stomp
|
|
243
249
|
# block on receipt.
|
244
250
|
# Accepts a transaction header ( :transaction => 'some_transaction_id' ).
|
245
251
|
def publish(destination, message, headers = {})
|
252
|
+
headers = headers.symbolize_keys
|
253
|
+
raise Stomp::Error::DestinationRequired unless destination
|
246
254
|
if block_given?
|
247
255
|
headers = headers.merge(:receipt => register_receipt_listener(lambda {|r| yield r}))
|
248
256
|
end
|
@@ -351,4 +359,3 @@ module Stomp
|
|
351
359
|
end # Class
|
352
360
|
|
353
361
|
end # Module
|
354
|
-
|
data/lib/stomp/connection.rb
CHANGED
@@ -156,6 +156,7 @@ module Stomp
|
|
156
156
|
@transmit_semaphore = Mutex.new
|
157
157
|
@read_semaphore = Mutex.new
|
158
158
|
@socket_semaphore = Mutex.new
|
159
|
+
@gets_semaphore = Mutex.new
|
159
160
|
|
160
161
|
@subscriptions = {}
|
161
162
|
@failure = nil
|
@@ -335,12 +336,13 @@ module Stomp
|
|
335
336
|
|
336
337
|
# Subscribe subscribes to a destination. A subscription name is required.
|
337
338
|
# For Stomp 1.1+ a session unique subscription ID is also required.
|
338
|
-
def subscribe(
|
339
|
+
def subscribe(destination, headers = {}, subId = nil)
|
339
340
|
raise Stomp::Error::NoCurrentConnection if @closed_check && closed?
|
340
341
|
raise Stomp::Error::ProtocolErrorEmptyHeaderKey if headers.has_key?("")
|
341
342
|
raise Stomp::Error::ProtocolErrorEmptyHeaderValue if @protocol == Stomp::SPL_10 && headers.has_value?("")
|
342
343
|
headers = headers.symbolize_keys
|
343
|
-
|
344
|
+
raise Stomp::Error::DestinationRequired unless destination
|
345
|
+
headers[:destination] = destination
|
344
346
|
if @protocol >= Stomp::SPL_11
|
345
347
|
raise Stomp::Error::SubscriptionRequiredError if (headers[:id].nil? && subId.nil?)
|
346
348
|
headers[:id] = subId if headers[:id].nil?
|
@@ -350,7 +352,7 @@ module Stomp
|
|
350
352
|
|
351
353
|
# Store the subscription so that we can replay if we reconnect.
|
352
354
|
if @reliable
|
353
|
-
subId =
|
355
|
+
subId = destination if subId.nil?
|
354
356
|
raise Stomp::Error::DuplicateSubscription if @subscriptions[subId]
|
355
357
|
@subscriptions[subId] = headers
|
356
358
|
end
|
@@ -360,12 +362,13 @@ module Stomp
|
|
360
362
|
|
361
363
|
# Unsubscribe from a destination. A subscription name is required.
|
362
364
|
# For Stomp 1.1+ a session unique subscription ID is also required.
|
363
|
-
def unsubscribe(
|
365
|
+
def unsubscribe(destination, headers = {}, subId = nil)
|
364
366
|
raise Stomp::Error::NoCurrentConnection if @closed_check && closed?
|
365
367
|
raise Stomp::Error::ProtocolErrorEmptyHeaderKey if headers.has_key?("")
|
366
368
|
raise Stomp::Error::ProtocolErrorEmptyHeaderValue if @protocol == Stomp::SPL_10 && headers.has_value?("")
|
367
369
|
headers = headers.symbolize_keys
|
368
|
-
|
370
|
+
raise Stomp::Error::DestinationRequired unless destination
|
371
|
+
headers[:destination] = destination
|
369
372
|
if @protocol >= Stomp::SPL_11
|
370
373
|
raise Stomp::Error::SubscriptionRequiredError if (headers[:id].nil? && subId.nil?)
|
371
374
|
headers[:id] = subId unless headers[:id]
|
@@ -374,7 +377,7 @@ module Stomp
|
|
374
377
|
slog(:on_unsubscribe, log_params, headers)
|
375
378
|
transmit(Stomp::CMD_UNSUBSCRIBE, headers)
|
376
379
|
if @reliable
|
377
|
-
subId =
|
380
|
+
subId = destination if subId.nil?
|
378
381
|
@subscriptions.delete(subId)
|
379
382
|
end
|
380
383
|
end
|
@@ -387,6 +390,7 @@ module Stomp
|
|
387
390
|
raise Stomp::Error::ProtocolErrorEmptyHeaderKey if headers.has_key?("")
|
388
391
|
raise Stomp::Error::ProtocolErrorEmptyHeaderValue if @protocol == Stomp::SPL_10 && headers.has_value?("")
|
389
392
|
headers = headers.symbolize_keys
|
393
|
+
raise Stomp::Error::DestinationRequired unless destination
|
390
394
|
headers[:destination] = destination
|
391
395
|
_headerCheck(headers)
|
392
396
|
slog(:on_publish, log_params, message, headers)
|
data/lib/stomp/constants.rb
CHANGED
@@ -26,10 +26,10 @@ module Stomp
|
|
26
26
|
SPL_11 = "1.1"
|
27
27
|
SPL_12 = "1.2"
|
28
28
|
|
29
|
-
# Stomp 1.0 and 1.1
|
29
|
+
# Stomp 1.0 and 1.1 and 1.2
|
30
30
|
SUPPORTED = [SPL_10, SPL_11, SPL_12]
|
31
31
|
|
32
|
-
#
|
32
|
+
# UTF-8 Encoding Name
|
33
33
|
UTF8 = "UTF-8"
|
34
34
|
#
|
35
35
|
# Octet 0
|
@@ -175,8 +175,10 @@ module Stomp
|
|
175
175
|
["SRP-RSA-AES-256-CBC-SHA","TLSv1/SSLv3",256,256],
|
176
176
|
]
|
177
177
|
|
178
|
+
HAND_SHAKE_DATA = "\x15\x03\x03\x00\x02\x02\n"
|
179
|
+
|
178
180
|
original_verbose, $VERBOSE = $VERBOSE, nil # try to shut off warnings
|
179
|
-
|
181
|
+
|
180
182
|
# stomp URL regex pattern, for e.g. login:passcode@host:port or host:port
|
181
183
|
URL_REPAT = '((([\w~!@#$%^&*()\-+=.?:<>,.]*\w):([\w~!@#$%^&*()\-+=.?:<>,.]*))?@)?([\w\.\-]+):(\d+)'
|
182
184
|
|
@@ -185,5 +187,5 @@ module Stomp
|
|
185
187
|
FAILOVER_REGEX = /^failover:(\/\/)?\(stomp(\+ssl)?:\/\/#{URL_REPAT}(,stomp(\+ssl)?:\/\/#{URL_REPAT})*\)(\?(.*))?$/
|
186
188
|
|
187
189
|
$VERBOSE = original_verbose
|
188
|
-
|
190
|
+
|
189
191
|
end # Module Stomp
|
data/lib/stomp/errors.rb
CHANGED
@@ -5,6 +5,22 @@ module Stomp
|
|
5
5
|
# Module level container for Stomp gem error classes.
|
6
6
|
module Error
|
7
7
|
|
8
|
+
# NoListenerGiven is raised if:
|
9
|
+
# * No listener block is passed to Client#subscribe
|
10
|
+
class NoListenerGiven < RuntimeError
|
11
|
+
def message
|
12
|
+
"No listener given"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# DestinationRequired is raised if:
|
17
|
+
# * No destination is passed to subscribe, unsubscribe, publish
|
18
|
+
class DestinationRequired < RuntimeError
|
19
|
+
def message
|
20
|
+
"Destination required"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
8
24
|
# InvalidFormat is raised if:
|
9
25
|
# * During frame parsing if a malformed frame is detected.
|
10
26
|
class InvalidFormat < RuntimeError
|
@@ -216,7 +232,7 @@ module Stomp
|
|
216
232
|
end
|
217
233
|
end
|
218
234
|
|
219
|
-
# LoggerConnectionError is not raised by the gem. It may be
|
235
|
+
# LoggerConnectionError is not raised by the gem. It may be
|
220
236
|
# raised by client logic in callback logger methods to signal
|
221
237
|
# that a connection should not proceed.
|
222
238
|
class LoggerConnectionError < RuntimeError
|
@@ -298,7 +314,14 @@ module Stomp
|
|
298
314
|
end
|
299
315
|
end
|
300
316
|
|
317
|
+
# HandShakeDetectedError is raised if:
|
318
|
+
# * A normal read detects inbound handskake data
|
319
|
+
class HandShakeDetectedError < RuntimeError
|
320
|
+
def message
|
321
|
+
"Handshake data found, possible mismatched port and sslparams"
|
322
|
+
end
|
323
|
+
end
|
324
|
+
|
301
325
|
end # module Error
|
302
326
|
|
303
327
|
end # module Stomp
|
304
|
-
|
data/lib/stomp/version.rb
CHANGED
@@ -4,10 +4,10 @@ module Stomp
|
|
4
4
|
|
5
5
|
# Define the gem version.
|
6
6
|
module Version #:nodoc: all
|
7
|
-
MAJOR =
|
8
|
-
MINOR =
|
9
|
-
PATCH =
|
10
|
-
# PATCH = "
|
7
|
+
MAJOR = 1
|
8
|
+
MINOR = 4
|
9
|
+
PATCH = 4
|
10
|
+
# PATCH = "4.plvl.001"
|
11
11
|
STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
|
12
12
|
end
|
13
13
|
end
|
data/spec/client_spec.rb
CHANGED
@@ -132,6 +132,7 @@ describe Stomp::Client do
|
|
132
132
|
describe "(created with positional params)" do
|
133
133
|
before(:each) do
|
134
134
|
@client = Stomp::Client.new('testlogin', 'testpassword', 'localhost', '12345', false)
|
135
|
+
@cli_thread = @client.parameters[:client_main]
|
135
136
|
end
|
136
137
|
|
137
138
|
it "should properly parse the URL provided" do
|
@@ -140,7 +141,8 @@ describe Stomp::Client do
|
|
140
141
|
:host => 'localhost',
|
141
142
|
:port => 12345}],
|
142
143
|
:logger => null_logger,
|
143
|
-
:reliable => false
|
144
|
+
:reliable => false,
|
145
|
+
:client_main => @cli_thread)
|
144
146
|
Stomp::Client.new('testlogin', 'testpassword', 'localhost', '12345', false)
|
145
147
|
end
|
146
148
|
|
@@ -151,6 +153,7 @@ describe Stomp::Client do
|
|
151
153
|
describe "(created with non-authenticating stomp:// URL and non-TLD host)" do
|
152
154
|
before(:each) do
|
153
155
|
@client = Stomp::Client.new('stomp://foobar:12345')
|
156
|
+
@cli_thread = @client.parameters[:client_main]
|
154
157
|
end
|
155
158
|
|
156
159
|
it "should properly parse the URL provided" do
|
@@ -159,7 +162,8 @@ describe Stomp::Client do
|
|
159
162
|
:host => 'foobar',
|
160
163
|
:port => 12345}],
|
161
164
|
:logger => null_logger,
|
162
|
-
:reliable => false
|
165
|
+
:reliable => false,
|
166
|
+
:client_main => @cli_thread)
|
163
167
|
Stomp::Client.new('stomp://foobar:12345')
|
164
168
|
end
|
165
169
|
|
@@ -171,6 +175,7 @@ describe Stomp::Client do
|
|
171
175
|
|
172
176
|
before(:each) do
|
173
177
|
@client = Stomp::Client.new('stomp://foo-bar:12345')
|
178
|
+
@cli_thread = @client.parameters[:client_main]
|
174
179
|
end
|
175
180
|
|
176
181
|
it "should properly parse the URL provided" do
|
@@ -179,7 +184,8 @@ describe Stomp::Client do
|
|
179
184
|
:host => 'foo-bar',
|
180
185
|
:port => 12345}],
|
181
186
|
:logger => null_logger,
|
182
|
-
:reliable => false
|
187
|
+
:reliable => false,
|
188
|
+
:client_main => @cli_thread)
|
183
189
|
Stomp::Client.new('stomp://foo-bar:12345')
|
184
190
|
end
|
185
191
|
|
@@ -191,6 +197,7 @@ describe Stomp::Client do
|
|
191
197
|
|
192
198
|
before(:each) do
|
193
199
|
@client = Stomp::Client.new('stomp://test-login:testpasscode@foobar:12345')
|
200
|
+
@cli_thread = @client.parameters[:client_main]
|
194
201
|
end
|
195
202
|
|
196
203
|
it "should properly parse the URL provided" do
|
@@ -199,7 +206,8 @@ describe Stomp::Client do
|
|
199
206
|
:host => 'foobar',
|
200
207
|
:port => 12345}],
|
201
208
|
:logger => null_logger,
|
202
|
-
:reliable => false
|
209
|
+
:reliable => false,
|
210
|
+
:client_main => @cli_thread)
|
203
211
|
Stomp::Client.new('stomp://test-login:testpasscode@foobar:12345')
|
204
212
|
end
|
205
213
|
|
@@ -211,6 +219,7 @@ describe Stomp::Client do
|
|
211
219
|
|
212
220
|
before(:each) do
|
213
221
|
@client = Stomp::Client.new('stomp://test-login:testpasscode@foo-bar:12345')
|
222
|
+
@cli_thread = @client.parameters[:client_main]
|
214
223
|
end
|
215
224
|
|
216
225
|
it "should properly parse the URL provided" do
|
@@ -219,7 +228,8 @@ describe Stomp::Client do
|
|
219
228
|
:host => 'foo-bar',
|
220
229
|
:port => 12345}],
|
221
230
|
:logger => null_logger,
|
222
|
-
:reliable => false
|
231
|
+
:reliable => false,
|
232
|
+
:client_main => @cli_thread)
|
223
233
|
Stomp::Client.new('stomp://test-login:testpasscode@foo-bar:12345')
|
224
234
|
end
|
225
235
|
|
@@ -231,6 +241,7 @@ describe Stomp::Client do
|
|
231
241
|
|
232
242
|
before(:each) do
|
233
243
|
@client = Stomp::Client.new('stomp://host.foobar.com:12345')
|
244
|
+
@cli_thread = @client.parameters[:client_main]
|
234
245
|
end
|
235
246
|
|
236
247
|
after(:each) do
|
@@ -242,7 +253,8 @@ describe Stomp::Client do
|
|
242
253
|
:host => 'host.foobar.com',
|
243
254
|
:port => 12345}],
|
244
255
|
:logger => null_logger,
|
245
|
-
:reliable => false
|
256
|
+
:reliable => false,
|
257
|
+
:client_main => @cli_thread)
|
246
258
|
Stomp::Client.new('stomp://host.foobar.com:12345')
|
247
259
|
end
|
248
260
|
|
@@ -254,6 +266,7 @@ describe Stomp::Client do
|
|
254
266
|
|
255
267
|
before(:each) do
|
256
268
|
@client = Stomp::Client.new('stomp://testlogin:testpasscode@host.foobar.com:12345')
|
269
|
+
@cli_thread = @client.parameters[:client_main]
|
257
270
|
end
|
258
271
|
|
259
272
|
it "should properly parse the URL provided" do
|
@@ -262,7 +275,8 @@ describe Stomp::Client do
|
|
262
275
|
:host => 'host.foobar.com',
|
263
276
|
:port => 12345}],
|
264
277
|
:logger => null_logger,
|
265
|
-
:reliable => false
|
278
|
+
:reliable => false,
|
279
|
+
:client_main => @cli_thread)
|
266
280
|
Stomp::Client.new('stomp://testlogin:testpasscode@host.foobar.com:12345')
|
267
281
|
end
|
268
282
|
|
@@ -272,6 +286,8 @@ describe Stomp::Client do
|
|
272
286
|
|
273
287
|
describe "(created with failover URL)" do
|
274
288
|
before(:each) do
|
289
|
+
@client = Stomp::Client.new('failover://(stomp://login1:passcode1@localhost:61616,stomp://login2:passcode2@remotehost:61617)')
|
290
|
+
@cli_thread = @client.parameters[:client_main]
|
275
291
|
#default options
|
276
292
|
@parameters = {
|
277
293
|
:initial_reconnect_delay => 0.01,
|
@@ -286,17 +302,14 @@ describe Stomp::Client do
|
|
286
302
|
end
|
287
303
|
it "should properly parse a URL with failover://" do
|
288
304
|
url = "failover://(stomp://login1:passcode1@localhost:61616,stomp://login2:passcode2@remotehost:61617)"
|
289
|
-
|
290
305
|
@parameters[:hosts] = [
|
291
306
|
{:login => "login1", :passcode => "passcode1", :host => "localhost", :port => 61616, :ssl => false},
|
292
307
|
{:login => "login2", :passcode => "passcode2", :host => "remotehost", :port => 61617, :ssl => false}
|
293
308
|
]
|
294
|
-
|
295
309
|
@parameters.merge!({:logger => null_logger})
|
296
|
-
|
297
310
|
expect(Stomp::Connection).to receive(:new).with(@parameters)
|
298
|
-
|
299
|
-
|
311
|
+
@parameters[:client_main] = @cli_thread
|
312
|
+
client = Stomp::Client.new(url)
|
300
313
|
expect(client.parameters).to eq(@parameters)
|
301
314
|
end
|
302
315
|
|
@@ -310,9 +323,8 @@ describe Stomp::Client do
|
|
310
323
|
]
|
311
324
|
|
312
325
|
@parameters.merge!({:logger => null_logger})
|
313
|
-
|
326
|
+
@parameters[:client_main] = @cli_thread
|
314
327
|
expect(Stomp::Connection).to receive(:new).with(@parameters)
|
315
|
-
|
316
328
|
client = Stomp::Client.new(url)
|
317
329
|
expect(client.parameters).to eq(@parameters)
|
318
330
|
end
|
@@ -326,10 +338,11 @@ describe Stomp::Client do
|
|
326
338
|
]
|
327
339
|
|
328
340
|
@parameters.merge!({:logger => null_logger})
|
329
|
-
|
341
|
+
@parameters[:client_main] = @cli_thread
|
330
342
|
expect(Stomp::Connection).to receive(:new).with(@parameters)
|
331
343
|
|
332
344
|
client = Stomp::Client.new(url)
|
345
|
+
@parameters[:client_main] = client.parameters[:client_main]
|
333
346
|
expect(client.parameters).to eq(@parameters)
|
334
347
|
end
|
335
348
|
|
@@ -342,10 +355,11 @@ describe Stomp::Client do
|
|
342
355
|
]
|
343
356
|
|
344
357
|
@parameters.merge!({:logger => null_logger})
|
345
|
-
|
358
|
+
@parameters[:client_main] = @cli_thread
|
346
359
|
expect(Stomp::Connection).to receive(:new).with(@parameters)
|
347
360
|
|
348
361
|
client = Stomp::Client.new(url)
|
362
|
+
@parameters[:client_main] = client.parameters[:client_main]
|
349
363
|
expect(client.parameters).to eq(@parameters)
|
350
364
|
end
|
351
365
|
|
@@ -373,10 +387,11 @@ describe Stomp::Client do
|
|
373
387
|
]
|
374
388
|
|
375
389
|
@parameters.merge!({:logger => null_logger})
|
376
|
-
|
390
|
+
@parameters[:client_main] = @cli_thread
|
377
391
|
expect(Stomp::Connection).to receive(:new).with(@parameters)
|
378
392
|
|
379
393
|
client = Stomp::Client.new(url)
|
394
|
+
@parameters[:client_main] = client.parameters[:client_main]
|
380
395
|
expect(client.parameters).to eq(@parameters)
|
381
396
|
end
|
382
397
|
|
@@ -419,7 +434,7 @@ describe Stomp::Client do
|
|
419
434
|
describe 'given headers hash' do
|
420
435
|
subject { headers }
|
421
436
|
it 'is immutable' do
|
422
|
-
|
437
|
+
expect match(original_headers)
|
423
438
|
end
|
424
439
|
end
|
425
440
|
end
|