stomp 1.3.5 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/{CHANGELOG.rdoc → CHANGELOG.md} +57 -40
- data/README.md +708 -0
- data/Rakefile +10 -11
- data/adhoc/.gitignore +7 -0
- data/adhoc/README.md +16 -0
- data/adhoc/issue121_01.rb +129 -0
- data/adhoc/issue121_01_conn.rb +158 -0
- data/adhoc/issue121_02.rb +152 -0
- data/adhoc/issue121_03.rb +157 -0
- data/adhoc/payload_generator.rb +32 -0
- data/adhoc/payload_generator_adhoctest.rb +41 -0
- data/adhoc/stomp_adhoc_common.rb +99 -0
- data/examples/consume_file.rb +63 -0
- data/examples/contrib.sh +6 -0
- data/examples/contributors.rb +106 -0
- data/examples/lflogger.rb +316 -0
- data/examples/publish_file.rb +76 -0
- data/examples/publish_file_conn.rb +75 -0
- data/examples/stomp11_common.rb +7 -1
- data/lib/client/utils.rb +10 -2
- data/lib/connection/heartbeats.rb +1 -0
- data/lib/connection/netio.rb +384 -309
- data/lib/connection/utils.rb +1 -1
- data/lib/stomp/client.rb +30 -23
- data/lib/stomp/connection.rb +28 -23
- data/lib/stomp/constants.rb +4 -0
- data/lib/stomp/errors.rb +9 -0
- data/lib/stomp/version.rb +2 -2
- data/stomp.gemspec +23 -64
- data/test/.gitignore +3 -0
- data/test/test_anonymous.rb +4 -4
- data/test/test_client.rb +14 -11
- data/test/test_connection.rb +4 -4
- data/test/test_connection1p.rb +4 -4
- data/test/test_helper.rb +4 -2
- data/test/test_message.rb +16 -16
- data/test/test_ssl.rb +8 -8
- data/test/test_urlogin.rb +26 -10
- metadata +26 -67
- data/README.rdoc +0 -163
data/lib/connection/utils.rb
CHANGED
data/lib/stomp/client.rb
CHANGED
@@ -30,29 +30,32 @@ module Stomp
|
|
30
30
|
# {:login => "login1", :passcode => "passcode1", :host => "localhost", :port => 61616, :ssl => false},
|
31
31
|
# {:login => "login2", :passcode => "passcode2", :host => "remotehost", :port => 61617, :ssl => false}
|
32
32
|
# ],
|
33
|
-
#
|
34
|
-
# :
|
35
|
-
# :
|
36
|
-
# :
|
37
|
-
# :
|
38
|
-
# :
|
39
|
-
# :
|
40
|
-
# :
|
41
|
-
# :
|
42
|
-
# :
|
43
|
-
# :
|
44
|
-
# :
|
45
|
-
# :
|
46
|
-
# :
|
47
|
-
# :
|
48
|
-
# :
|
49
|
-
# :
|
50
|
-
# :
|
51
|
-
# :
|
52
|
-
# :
|
53
|
-
#
|
54
|
-
#
|
55
|
-
# :
|
33
|
+
# # These are the default parameters and do not need to be set
|
34
|
+
# :reliable => true, # reliable (use failover)
|
35
|
+
# :initial_reconnect_delay => 0.01, # initial delay before reconnect (secs)
|
36
|
+
# :max_reconnect_delay => 30.0, # max delay before reconnect
|
37
|
+
# :use_exponential_back_off => true, # increase delay between reconnect attpempts
|
38
|
+
# :back_off_multiplier => 2, # next delay multiplier
|
39
|
+
# :max_reconnect_attempts => 0, # retry forever, use # for maximum attempts
|
40
|
+
# :randomize => false, # do not radomize hosts hash before reconnect
|
41
|
+
# :connect_timeout => 0, # Timeout for TCP/TLS connects, use # for max seconds
|
42
|
+
# :connect_headers => {}, # user supplied CONNECT headers (req'd for Stomp 1.1+)
|
43
|
+
# :parse_timeout => 5, # IO::select wait time on socket reads
|
44
|
+
# :logger => nil, # user suplied callback logger instance
|
45
|
+
# :dmh => false, # do not support multihomed IPV4 / IPV6 hosts during failover
|
46
|
+
# :closed_check => true, # check first if closed in each protocol method
|
47
|
+
# :hbser => false, # raise on heartbeat send exception
|
48
|
+
# :stompconn => false, # Use STOMP instead of CONNECT
|
49
|
+
# :usecrlf => false, # Use CRLF command and header line ends (1.2+)
|
50
|
+
# :max_hbread_fails => 0, # Max HB read fails before retry. 0 => never retry
|
51
|
+
# :max_hbrlck_fails => 0, # Max HB read lock obtain fails before retry. 0 => never retry
|
52
|
+
# :fast_hbs_adjust => 0.0, # Fast heartbeat senders sleep adjustment, seconds, needed ...
|
53
|
+
# # For fast heartbeat senders. 'fast' == YMMV. If not
|
54
|
+
# # correct for your environment, expect unnecessary fail overs
|
55
|
+
# :connread_timeout => 0, # Timeout during CONNECT for read of CONNECTED/ERROR, secs
|
56
|
+
# :tcp_nodelay => true, # Turns on the TCP_NODELAY socket option; disables Nagle's algorithm
|
57
|
+
# :start_timeout => 0, # Timeout around Stomp::Client initialization
|
58
|
+
# :sslctx_newparm => nil, # Param for SSLContext.new
|
56
59
|
# }
|
57
60
|
#
|
58
61
|
# e.g. c = Stomp::Client.new(hash)
|
@@ -86,6 +89,8 @@ module Stomp
|
|
86
89
|
@start_timeout = @parameters[:start_timeout] || 0
|
87
90
|
check_arguments!()
|
88
91
|
|
92
|
+
# p [ "cldbg01", @parameters ]
|
93
|
+
|
89
94
|
begin
|
90
95
|
Timeout::timeout(@start_timeout) {
|
91
96
|
create_error_handler
|
@@ -93,6 +98,7 @@ module Stomp
|
|
93
98
|
start_listeners()
|
94
99
|
}
|
95
100
|
rescue TimeoutError
|
101
|
+
# p [ "cldbg02" ]
|
96
102
|
ex = Stomp::Error::StartTimeoutException.new(@start_timeout)
|
97
103
|
raise ex
|
98
104
|
end
|
@@ -116,6 +122,7 @@ module Stomp
|
|
116
122
|
end
|
117
123
|
|
118
124
|
def create_connection(autoflush)
|
125
|
+
# p [ "ccon01", @parameters ]
|
119
126
|
@connection = Connection.new(@parameters)
|
120
127
|
@connection.autoflush = autoflush
|
121
128
|
end
|
data/lib/stomp/connection.rb
CHANGED
@@ -67,29 +67,32 @@ module Stomp
|
|
67
67
|
# {:login => "login1", :passcode => "passcode1", :host => "localhost", :port => 61616, :ssl => false},
|
68
68
|
# {:login => "login2", :passcode => "passcode2", :host => "remotehost", :port => 61617, :ssl => false}
|
69
69
|
# ],
|
70
|
-
#
|
71
|
-
# :
|
72
|
-
# :
|
73
|
-
# :
|
74
|
-
# :
|
75
|
-
# :
|
76
|
-
# :
|
77
|
-
# :
|
78
|
-
# :
|
79
|
-
# :
|
80
|
-
# :
|
81
|
-
# :
|
82
|
-
# :
|
83
|
-
# :
|
84
|
-
# :
|
85
|
-
# :
|
86
|
-
# :
|
87
|
-
# :
|
88
|
-
# :
|
89
|
-
# :
|
90
|
-
#
|
91
|
-
#
|
92
|
-
# :
|
70
|
+
# # These are the default parameters and do not need to be set
|
71
|
+
# :reliable => true, # reliable (use failover)
|
72
|
+
# :initial_reconnect_delay => 0.01, # initial delay before reconnect (secs)
|
73
|
+
# :max_reconnect_delay => 30.0, # max delay before reconnect
|
74
|
+
# :use_exponential_back_off => true, # increase delay between reconnect attpempts
|
75
|
+
# :back_off_multiplier => 2, # next delay multiplier
|
76
|
+
# :max_reconnect_attempts => 0, # retry forever, use # for maximum attempts
|
77
|
+
# :randomize => false, # do not radomize hosts hash before reconnect
|
78
|
+
# :connect_timeout => 0, # Timeout for TCP/TLS connects, use # for max seconds
|
79
|
+
# :connect_headers => {}, # user supplied CONNECT headers (req'd for Stomp 1.1+)
|
80
|
+
# :parse_timeout => 5, # IO::select wait time on socket reads
|
81
|
+
# :logger => nil, # user suplied callback logger instance
|
82
|
+
# :dmh => false, # do not support multihomed IPV4 / IPV6 hosts during failover
|
83
|
+
# :closed_check => true, # check first if closed in each protocol method
|
84
|
+
# :hbser => false, # raise on heartbeat send exception
|
85
|
+
# :stompconn => false, # Use STOMP instead of CONNECT
|
86
|
+
# :usecrlf => false, # Use CRLF command and header line ends (1.2+)
|
87
|
+
# :max_hbread_fails => 0, # Max HB read fails before retry. 0 => never retry
|
88
|
+
# :max_hbrlck_fails => 0, # Max HB read lock obtain fails before retry. 0 => never retry
|
89
|
+
# :fast_hbs_adjust => 0.0, # Fast heartbeat senders sleep adjustment, seconds, needed ...
|
90
|
+
# # For fast heartbeat senders. 'fast' == YMMV. If not
|
91
|
+
# # correct for your environment, expect unnecessary fail overs
|
92
|
+
# :connread_timeout => 0, # Timeout during CONNECT for read of CONNECTED/ERROR, secs
|
93
|
+
# :tcp_nodelay => true, # Turns on the TCP_NODELAY socket option; disables Nagle's algorithm
|
94
|
+
# :start_timeout => 0, # Timeout around Stomp::Client initialization
|
95
|
+
# :sslctx_newparm => nil, # Param for SSLContext.new
|
93
96
|
# }
|
94
97
|
#
|
95
98
|
# e.g. c = Stomp::Connection.new(hash)
|
@@ -111,6 +114,8 @@ module Stomp
|
|
111
114
|
@hb_sent = true # Assumed at first
|
112
115
|
@hbs = @hbr = false # Sending/Receiving heartbeats. Assume no for now.
|
113
116
|
@jruby = false # Assumed at first
|
117
|
+
# Initialize some variables
|
118
|
+
@closed, @socket, @hhas10, @rt, @st = true, nil, false, nil, nil
|
114
119
|
if defined?(RUBY_ENGINE) && RUBY_ENGINE =~ /jruby/
|
115
120
|
@jruby = true
|
116
121
|
end
|
data/lib/stomp/constants.rb
CHANGED
@@ -175,6 +175,8 @@ module Stomp
|
|
175
175
|
["SRP-RSA-AES-256-CBC-SHA","TLSv1/SSLv3",256,256],
|
176
176
|
]
|
177
177
|
|
178
|
+
original_verbose, $VERBOSE = $VERBOSE, nil # try to shut off warnings
|
179
|
+
|
178
180
|
# stomp URL regex pattern, for e.g. login:passcode@host:port or host:port
|
179
181
|
URL_REPAT = '((([\w~!@#$%^&*()\-+=.?:<>,.]*\w):([\w~!@#$%^&*()\-+=.?:<>,.]*))?@)?([\w\.\-]+):(\d+)'
|
180
182
|
|
@@ -182,4 +184,6 @@ module Stomp
|
|
182
184
|
#failover:(stomp+ssl://login1:passcode1@remotehost1:61612,stomp://login2:passcode2@remotehost2:61613)
|
183
185
|
FAILOVER_REGEX = /^failover:(\/\/)?\(stomp(\+ssl)?:\/\/#{URL_REPAT}(,stomp(\+ssl)?:\/\/#{URL_REPAT})*\)(\?(.*))?$/
|
184
186
|
|
187
|
+
$VERBOSE = original_verbose
|
188
|
+
|
185
189
|
end # Module Stomp
|
data/lib/stomp/errors.rb
CHANGED
@@ -38,6 +38,15 @@ module Stomp
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
+
# ReceiveTimeout is raised if:
|
42
|
+
# * The read socket shows "not ready" at any time after the timeout
|
43
|
+
# specified by :parse_timeout in the connection hash.
|
44
|
+
class ReceiveTimeout < RuntimeError
|
45
|
+
def message
|
46
|
+
"Receive status timeout"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
41
50
|
# SocketOpenTimeout is raised if:
|
42
51
|
# * A timeout occurs during a socket open.
|
43
52
|
class SocketOpenTimeout < RuntimeError
|
data/lib/stomp/version.rb
CHANGED
data/stomp.gemspec
CHANGED
@@ -5,80 +5,32 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{stomp}
|
8
|
-
s.version = "1.
|
8
|
+
s.version = "1.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Brian McCallister", "Marius Mathiesen", "Thiago Morello", "Guy M. Allard"]
|
12
|
-
s.date = %q{2016-
|
12
|
+
s.date = %q{2016-06-08}
|
13
13
|
s.description = %q{Ruby client for the Stomp messaging protocol. Note that this gem is no longer supported on rubyforge.}
|
14
14
|
s.email = ["brianm@apache.org", "marius@stones.com", "morellon@gmail.com", "allard.guy.m@gmail.com"]
|
15
|
-
s.executables = ["
|
15
|
+
s.executables = ["stompcat", "catstomp"]
|
16
16
|
s.extra_rdoc_files = [
|
17
|
-
"CHANGELOG.rdoc",
|
18
17
|
"LICENSE",
|
19
|
-
"README.
|
20
|
-
"examples/amqdurasub.rb",
|
21
|
-
"examples/client11_ex1.rb",
|
22
|
-
"examples/client11_putget1.rb",
|
23
|
-
"examples/conn11_ex1.rb",
|
24
|
-
"examples/conn11_ex2.rb",
|
25
|
-
"examples/conn11_hb1.rb",
|
26
|
-
"examples/consumer.rb",
|
27
|
-
"examples/examplogger.rb",
|
28
|
-
"examples/get11conn_ex1.rb",
|
29
|
-
"examples/get11conn_ex2.rb",
|
30
|
-
"examples/logexamp.rb",
|
31
|
-
"examples/logexamp_ssl.rb",
|
32
|
-
"examples/publisher.rb",
|
33
|
-
"examples/put11conn_ex1.rb",
|
34
|
-
"examples/putget11_rh1.rb",
|
35
|
-
"examples/ssl_ctxoptions.rb",
|
36
|
-
"examples/ssl_newparm.rb",
|
37
|
-
"examples/ssl_uc1.rb",
|
38
|
-
"examples/ssl_uc1_ciphers.rb",
|
39
|
-
"examples/ssl_uc2.rb",
|
40
|
-
"examples/ssl_uc2_ciphers.rb",
|
41
|
-
"examples/ssl_uc3.rb",
|
42
|
-
"examples/ssl_uc3_ciphers.rb",
|
43
|
-
"examples/ssl_uc4.rb",
|
44
|
-
"examples/ssl_uc4_ciphers.rb",
|
45
|
-
"examples/ssl_ucx_default_ciphers.rb",
|
46
|
-
"examples/stomp11_common.rb",
|
47
|
-
"examples/topic_consumer.rb",
|
48
|
-
"examples/topic_publisher.rb",
|
49
|
-
"lib/client/utils.rb",
|
50
|
-
"lib/connection/heartbeats.rb",
|
51
|
-
"lib/connection/netio.rb",
|
52
|
-
"lib/connection/utf8.rb",
|
53
|
-
"lib/connection/utils.rb",
|
54
|
-
"lib/stomp.rb",
|
55
|
-
"lib/stomp/client.rb",
|
56
|
-
"lib/stomp/codec.rb",
|
57
|
-
"lib/stomp/connection.rb",
|
58
|
-
"lib/stomp/constants.rb",
|
59
|
-
"lib/stomp/errors.rb",
|
60
|
-
"lib/stomp/ext/hash.rb",
|
61
|
-
"lib/stomp/message.rb",
|
62
|
-
"lib/stomp/null_logger.rb",
|
63
|
-
"lib/stomp/slogger.rb",
|
64
|
-
"lib/stomp/sslparams.rb",
|
65
|
-
"lib/stomp/version.rb",
|
66
|
-
"test/test_anonymous.rb",
|
67
|
-
"test/test_client.rb",
|
68
|
-
"test/test_codec.rb",
|
69
|
-
"test/test_connection.rb",
|
70
|
-
"test/test_connection1p.rb",
|
71
|
-
"test/test_helper.rb",
|
72
|
-
"test/test_message.rb",
|
73
|
-
"test/test_ssl.rb",
|
74
|
-
"test/test_urlogin.rb",
|
75
|
-
"test/tlogger.rb"
|
18
|
+
"README.md"
|
76
19
|
]
|
77
20
|
s.files = [
|
78
|
-
"CHANGELOG.
|
21
|
+
"CHANGELOG.md",
|
79
22
|
"LICENSE",
|
80
|
-
"README.
|
23
|
+
"README.md",
|
81
24
|
"Rakefile",
|
25
|
+
"adhoc/.gitignore",
|
26
|
+
"adhoc/README.md",
|
27
|
+
"adhoc/issue121_01.rb",
|
28
|
+
"adhoc/issue121_01_conn.rb",
|
29
|
+
"adhoc/issue121_02.rb",
|
30
|
+
"adhoc/issue121_03.rb",
|
31
|
+
"adhoc/payload_generator.rb",
|
32
|
+
"adhoc/payload_generator_adhoctest.rb",
|
33
|
+
"adhoc/stomp_adhoc_common.rb",
|
82
34
|
"bin/catstomp",
|
83
35
|
"bin/stompcat",
|
84
36
|
"examples/amqdurasub.rb",
|
@@ -87,12 +39,18 @@ Gem::Specification.new do |s|
|
|
87
39
|
"examples/conn11_ex1.rb",
|
88
40
|
"examples/conn11_ex2.rb",
|
89
41
|
"examples/conn11_hb1.rb",
|
42
|
+
"examples/consume_file.rb",
|
90
43
|
"examples/consumer.rb",
|
44
|
+
"examples/contrib.sh",
|
45
|
+
"examples/contributors.rb",
|
91
46
|
"examples/examplogger.rb",
|
92
47
|
"examples/get11conn_ex1.rb",
|
93
48
|
"examples/get11conn_ex2.rb",
|
49
|
+
"examples/lflogger.rb",
|
94
50
|
"examples/logexamp.rb",
|
95
51
|
"examples/logexamp_ssl.rb",
|
52
|
+
"examples/publish_file.rb",
|
53
|
+
"examples/publish_file_conn.rb",
|
96
54
|
"examples/publisher.rb",
|
97
55
|
"examples/put11conn_ex1.rb",
|
98
56
|
"examples/putget11_rh1.rb",
|
@@ -134,6 +92,7 @@ Gem::Specification.new do |s|
|
|
134
92
|
"spec/message_spec.rb",
|
135
93
|
"spec/spec_helper.rb",
|
136
94
|
"stomp.gemspec",
|
95
|
+
"test/.gitignore",
|
137
96
|
"test/test_anonymous.rb",
|
138
97
|
"test/test_client.rb",
|
139
98
|
"test/test_codec.rb",
|
@@ -146,7 +105,7 @@ Gem::Specification.new do |s|
|
|
146
105
|
"test/tlogger.rb"
|
147
106
|
]
|
148
107
|
s.homepage = %q{https://github.com/stompgem/stomp}
|
149
|
-
s.licenses = ["Apache
|
108
|
+
s.licenses = ["Apache-2.0"]
|
150
109
|
s.require_paths = ["lib"]
|
151
110
|
s.rubygems_version = %q{1.3.7}
|
152
111
|
s.summary = %q{Ruby client for the Stomp messaging protocol}
|
data/test/.gitignore
ADDED
data/test/test_anonymous.rb
CHANGED
@@ -203,11 +203,11 @@ class TestAnonymous < Test::Unit::TestCase
|
|
203
203
|
end
|
204
204
|
#
|
205
205
|
assert_raise Stomp::Error::NoCurrentConnection do
|
206
|
-
|
206
|
+
_ = @conn.receive
|
207
207
|
end
|
208
208
|
#
|
209
209
|
assert_raise Stomp::Error::NoCurrentConnection do
|
210
|
-
|
210
|
+
_ = @conn.poll
|
211
211
|
end
|
212
212
|
end
|
213
213
|
|
@@ -225,7 +225,7 @@ class TestAnonymous < Test::Unit::TestCase
|
|
225
225
|
conn_subscribe make_destination
|
226
226
|
@conn.publish make_destination, "a\0"
|
227
227
|
msg = @conn.receive
|
228
|
-
assert_match
|
228
|
+
assert_match(/^<Stomp::Message headers=/ , msg.to_s)
|
229
229
|
checkEmsg(@conn)
|
230
230
|
end
|
231
231
|
|
@@ -309,7 +309,7 @@ class TestAnonymous < Test::Unit::TestCase
|
|
309
309
|
1.upto(@max_threads) do |tnum|
|
310
310
|
Thread.new(@conn) do |amq|
|
311
311
|
while true
|
312
|
-
|
312
|
+
_ = amq.receive
|
313
313
|
lock.synchronize do
|
314
314
|
msg_ctr += 1
|
315
315
|
end
|
data/test/test_client.rb
CHANGED
@@ -449,23 +449,25 @@ class TestClient < Test::Unit::TestCase
|
|
449
449
|
|
450
450
|
# Test basic unsubscribe.
|
451
451
|
def test_unsubscribe
|
452
|
+
@client.close if @client && @client.open? # close setup work
|
453
|
+
@client = nil
|
452
454
|
message = nil
|
453
455
|
dest = make_destination
|
454
456
|
to_send = message_text
|
455
457
|
client = get_client()
|
456
458
|
sid = nil
|
457
|
-
if
|
459
|
+
if client.protocol() == Stomp::SPL_10
|
458
460
|
client.subscribe(dest, :ack => 'client') { |m| message = m }
|
459
461
|
else
|
460
462
|
sid = client.uuid()
|
461
463
|
client.subscribe(dest, :ack => 'client', :id => sid) { |m| message = m }
|
462
464
|
end
|
463
|
-
|
465
|
+
client.publish dest, to_send
|
464
466
|
Timeout::timeout(4) do
|
465
467
|
sleep 0.01 until message
|
466
468
|
end
|
467
469
|
assert_equal to_send, message.body, "first body check"
|
468
|
-
if
|
470
|
+
if client.protocol() == Stomp::SPL_10
|
469
471
|
client.unsubscribe dest
|
470
472
|
else
|
471
473
|
client.unsubscribe dest, :id => sid
|
@@ -474,7 +476,7 @@ class TestClient < Test::Unit::TestCase
|
|
474
476
|
# Same message should remain on the queue. Receive it again with ack=>auto.
|
475
477
|
message_copy = nil
|
476
478
|
client = get_client()
|
477
|
-
if
|
479
|
+
if client.protocol() == Stomp::SPL_10
|
478
480
|
client.subscribe(dest, :ack => 'auto') { |m| message_copy = m }
|
479
481
|
else
|
480
482
|
sid = client.uuid()
|
@@ -485,7 +487,8 @@ class TestClient < Test::Unit::TestCase
|
|
485
487
|
end
|
486
488
|
assert_equal to_send, message_copy.body, "second body check"
|
487
489
|
assert_equal message.headers['message-id'], message_copy.headers['message-id'], "header check" unless ENV['STOMP_RABBIT']
|
488
|
-
checkEmsg(
|
490
|
+
checkEmsg(client)
|
491
|
+
client.close
|
489
492
|
end
|
490
493
|
|
491
494
|
# Test subscribe from a worker thread.
|
@@ -524,7 +527,7 @@ class TestClient < Test::Unit::TestCase
|
|
524
527
|
# this is ugly .....
|
525
528
|
if acli.protocol() == Stomp::SPL_10
|
526
529
|
acli.subscribe(dest) { |m|
|
527
|
-
|
530
|
+
_ = m
|
528
531
|
lock.synchronize do
|
529
532
|
msg_ctr += 1
|
530
533
|
end
|
@@ -533,7 +536,7 @@ class TestClient < Test::Unit::TestCase
|
|
533
536
|
}
|
534
537
|
else
|
535
538
|
acli.subscribe(dest, :id => acli.uuid()) { |m|
|
536
|
-
|
539
|
+
_ = m
|
537
540
|
lock.synchronize do
|
538
541
|
msg_ctr += 1
|
539
542
|
end
|
@@ -547,7 +550,7 @@ class TestClient < Test::Unit::TestCase
|
|
547
550
|
#
|
548
551
|
1.upto(@max_msgs) do |mnum|
|
549
552
|
msg = Time.now.to_s + " #{mnum}"
|
550
|
-
@client.publish(dest,
|
553
|
+
@client.publish(dest, msg)
|
551
554
|
end
|
552
555
|
#
|
553
556
|
max_sleep = (RUBY_VERSION =~ /1\.8\.6/) ? 30 : 5
|
@@ -569,7 +572,7 @@ class TestClient < Test::Unit::TestCase
|
|
569
572
|
#
|
570
573
|
assert_raise Stomp::Error::NoCurrentConnection do
|
571
574
|
m = Stomp::Message.new("")
|
572
|
-
@client.acknowledge(m) {|r|
|
575
|
+
@client.acknowledge(m) {|r| _ = r}
|
573
576
|
end
|
574
577
|
#
|
575
578
|
assert_raise Stomp::Error::NoCurrentConnection do
|
@@ -585,7 +588,7 @@ class TestClient < Test::Unit::TestCase
|
|
585
588
|
end
|
586
589
|
#
|
587
590
|
assert_raise Stomp::Error::NoCurrentConnection do
|
588
|
-
@client.subscribe("dummy_data", {:ack => 'auto'}) {|msg|
|
591
|
+
@client.subscribe("dummy_data", {:ack => 'auto'}) {|msg| _ = msg}
|
589
592
|
end
|
590
593
|
#
|
591
594
|
assert_raise Stomp::Error::NoCurrentConnection do
|
@@ -662,7 +665,7 @@ class TestClient < Test::Unit::TestCase
|
|
662
665
|
ex_vals = dflt_data_ex()
|
663
666
|
ex_vals.each do |hsv|
|
664
667
|
assert_raise ArgumentError do
|
665
|
-
|
668
|
+
_ = Stomp::Client.open(hsv)
|
666
669
|
end
|
667
670
|
end
|
668
671
|
end
|
data/test/test_connection.rb
CHANGED
@@ -203,11 +203,11 @@ class TestConnection < Test::Unit::TestCase
|
|
203
203
|
end
|
204
204
|
#
|
205
205
|
assert_raise Stomp::Error::NoCurrentConnection do
|
206
|
-
|
206
|
+
_ = @conn.receive
|
207
207
|
end
|
208
208
|
#
|
209
209
|
assert_raise Stomp::Error::NoCurrentConnection do
|
210
|
-
|
210
|
+
_ = @conn.poll
|
211
211
|
end
|
212
212
|
end
|
213
213
|
|
@@ -225,7 +225,7 @@ class TestConnection < Test::Unit::TestCase
|
|
225
225
|
conn_subscribe make_destination
|
226
226
|
@conn.publish make_destination, "a\0"
|
227
227
|
msg = @conn.receive
|
228
|
-
assert_match
|
228
|
+
assert_match(/^<Stomp::Message headers=/ , msg.to_s)
|
229
229
|
checkEmsg(@conn)
|
230
230
|
end
|
231
231
|
|
@@ -309,7 +309,7 @@ class TestConnection < Test::Unit::TestCase
|
|
309
309
|
1.upto(@max_threads) do |tnum|
|
310
310
|
Thread.new(@conn) do |amq|
|
311
311
|
while true
|
312
|
-
|
312
|
+
_ = amq.receive
|
313
313
|
lock.synchronize do
|
314
314
|
msg_ctr += 1
|
315
315
|
end
|
data/test/test_connection1p.rb
CHANGED
@@ -34,12 +34,12 @@ class TestConnection1P < Test::Unit::TestCase
|
|
34
34
|
#
|
35
35
|
cha = {:host => "localhost"}
|
36
36
|
assert_raise Stomp::Error::ProtocolErrorConnect do
|
37
|
-
|
37
|
+
_ = Stomp::Connection.open(user, passcode, host, port, false, 5, cha)
|
38
38
|
end
|
39
39
|
#
|
40
40
|
chb = {"accept-version" => "1.0"}
|
41
41
|
assert_raise Stomp::Error::ProtocolErrorConnect do
|
42
|
-
|
42
|
+
_ = Stomp::Connection.open(user, passcode, host, port, false, 5, chb)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -62,11 +62,11 @@ class TestConnection1P < Test::Unit::TestCase
|
|
62
62
|
:max_reconnect_attempts => 10,
|
63
63
|
}
|
64
64
|
assert_raise Stomp::Error::ProtocolErrorConnect do
|
65
|
-
|
65
|
+
_ = Stomp::Connection.open(hash)
|
66
66
|
end
|
67
67
|
hash[:connect_headers] = {"accept-version" => "1.1"}
|
68
68
|
assert_raise Stomp::Error::ProtocolErrorConnect do
|
69
|
-
|
69
|
+
_ = Stomp::Connection.open(hash)
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
data/test/test_helper.rb
CHANGED
@@ -13,8 +13,8 @@ else
|
|
13
13
|
end
|
14
14
|
|
15
15
|
begin
|
16
|
-
|
17
|
-
rescue NameError
|
16
|
+
_ = RUBY_ENGINE
|
17
|
+
rescue NameError
|
18
18
|
RUBY_ENGINE = "unknown"
|
19
19
|
end
|
20
20
|
|
@@ -169,6 +169,7 @@ module TestBase
|
|
169
169
|
def make_destination
|
170
170
|
name = caller_method_name unless name
|
171
171
|
qname = ENV['STOMP_DOTQUEUE'] ? "/queue/test.ruby.stomp." + name : "/queue/test/ruby/stomp/" + name
|
172
|
+
return qname
|
172
173
|
end
|
173
174
|
|
174
175
|
#
|
@@ -182,6 +183,7 @@ module TestBase
|
|
182
183
|
# Check for JRuby before a connection exists
|
183
184
|
def jruby?()
|
184
185
|
jr = defined?(RUBY_ENGINE) && RUBY_ENGINE =~ /jruby/ ? true : false
|
186
|
+
return jr
|
185
187
|
end
|
186
188
|
|
187
189
|
# OK Data For Default Tests
|
data/test/test_message.rb
CHANGED
@@ -104,49 +104,49 @@ class TestMessage < Test::Unit::TestCase
|
|
104
104
|
def test_0040_msg_create
|
105
105
|
#
|
106
106
|
assert_raise(Stomp::Error::InvalidFormat) {
|
107
|
-
|
107
|
+
_ = Stomp::Message.new("junk", false)
|
108
108
|
}
|
109
109
|
#
|
110
110
|
assert_raise(Stomp::Error::InvalidFormat) {
|
111
|
-
|
111
|
+
_ = Stomp::Message.new("command\njunk", false)
|
112
112
|
}
|
113
113
|
#
|
114
114
|
assert_raise(Stomp::Error::InvalidFormat) {
|
115
|
-
|
115
|
+
_ = Stomp::Message.new("command\nheaders\n\njunk", false)
|
116
116
|
}
|
117
117
|
#
|
118
118
|
assert_raise(Stomp::Error::InvalidServerCommand) {
|
119
|
-
|
119
|
+
_ = Stomp::Message.new("junkcommand\nheaders\n\njunk\0\n\n", false)
|
120
120
|
}
|
121
121
|
#
|
122
122
|
assert_raise(Stomp::Error::InvalidFormat) {
|
123
|
-
|
123
|
+
_ = Stomp::Message.new("ERROR\nbadheaders\n\njunk\0\n\n", false)
|
124
124
|
}
|
125
125
|
#
|
126
126
|
assert_nothing_raised {
|
127
|
-
|
127
|
+
_ = Stomp::Message.new("CONNECTED\nh1:val1\n\njunk\0\n", false)
|
128
128
|
}
|
129
129
|
#
|
130
130
|
assert_nothing_raised {
|
131
|
-
|
131
|
+
_ = Stomp::Message.new("MESSAGE\nh1:val1\n\njunk\0\n", false)
|
132
132
|
}
|
133
133
|
#
|
134
134
|
assert_nothing_raised {
|
135
|
-
|
135
|
+
_ = Stomp::Message.new("MESSAGE\nh2:val2\n\n\0", false)
|
136
136
|
}
|
137
137
|
#
|
138
138
|
assert_nothing_raised {
|
139
|
-
|
139
|
+
_ = Stomp::Message.new("RECEIPT\nh1:val1\n\njunk\0\n", false)
|
140
140
|
}
|
141
141
|
#
|
142
142
|
assert_nothing_raised {
|
143
|
-
|
143
|
+
_ = Stomp::Message.new("ERROR\nh1:val1\n\njunk\0\n", false)
|
144
144
|
}
|
145
145
|
|
146
146
|
end
|
147
147
|
|
148
148
|
# Test multiple headers with the same key
|
149
|
-
|
149
|
+
def test_0050_mh_msg_create
|
150
150
|
aframe = bframe = nil
|
151
151
|
assert_nothing_raised {
|
152
152
|
amsg = "MESSAGE\n" +
|
@@ -173,7 +173,7 @@ class TestMessage < Test::Unit::TestCase
|
|
173
173
|
end
|
174
174
|
|
175
175
|
# Test headers with empty key / value
|
176
|
-
|
176
|
+
def test_0060_hdr_ekv
|
177
177
|
#
|
178
178
|
amsg = "MESSAGE\n" +
|
179
179
|
"h1:val1\n" +
|
@@ -183,10 +183,10 @@ class TestMessage < Test::Unit::TestCase
|
|
183
183
|
"payload" +
|
184
184
|
"\0\n"
|
185
185
|
assert_raise Stomp::Error::ProtocolErrorEmptyHeaderKey do
|
186
|
-
|
186
|
+
_ = Stomp::Message.new(amsg, false)
|
187
187
|
end
|
188
188
|
assert_raise Stomp::Error::ProtocolErrorEmptyHeaderKey do
|
189
|
-
|
189
|
+
_ = Stomp::Message.new(amsg, true)
|
190
190
|
end
|
191
191
|
#
|
192
192
|
amsg = "MESSAGE\n" +
|
@@ -197,10 +197,10 @@ class TestMessage < Test::Unit::TestCase
|
|
197
197
|
"payload" +
|
198
198
|
"\0\n"
|
199
199
|
assert_raise Stomp::Error::ProtocolErrorEmptyHeaderValue do
|
200
|
-
|
200
|
+
_ = Stomp::Message.new(amsg, false)
|
201
201
|
end
|
202
202
|
assert_nothing_raised {
|
203
|
-
|
203
|
+
_ = Stomp::Message.new(amsg, true)
|
204
204
|
}
|
205
205
|
end
|
206
206
|
|