amq-client 0.7.0.alpha21 → 0.7.0.alpha22
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/examples/eventmachine_adapter/authentication/connection_open_failure_due_to_invalid_vhost.rb +30 -0
- data/examples/eventmachine_adapter/basic_return.rb +2 -1
- data/lib/amq/client/adapters/coolio.rb +4 -15
- data/lib/amq/client/adapters/event_machine.rb +7 -27
- data/lib/amq/client/connection.rb +0 -1
- data/lib/amq/client/exchange.rb +5 -2
- data/lib/amq/client/version.rb +1 -1
- data/spec/integration/coolio/basic_return_spec.rb +1 -1
- data/spec/integration/eventmachine/basic_return_spec.rb +1 -1
- metadata +6 -6
- data/bin/jenkins.sh +0 -23
data/examples/eventmachine_adapter/authentication/connection_open_failure_due_to_invalid_vhost.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
__dir = File.join(File.dirname(File.expand_path(__FILE__)), "..")
|
5
|
+
require File.join(__dir, "example_helper")
|
6
|
+
|
7
|
+
begin
|
8
|
+
EventMachine.run do
|
9
|
+
|
10
|
+
show_stopper = Proc.new {
|
11
|
+
EM.stop
|
12
|
+
}
|
13
|
+
|
14
|
+
Signal.trap "INT", show_stopper
|
15
|
+
Signal.trap "TERM", show_stopper
|
16
|
+
|
17
|
+
EventMachine.add_timer(4, show_stopper)
|
18
|
+
|
19
|
+
AMQ::Client::EventMachineClient.connect(:port => 9689,
|
20
|
+
:vhost => "/a/b/c/#{rand}/d/#{Time.now.to_i}",
|
21
|
+
:user => "amq_client_gem",
|
22
|
+
:password => "amq_client_gem_password",
|
23
|
+
:timeout => 0.3) do |client|
|
24
|
+
raise "Connected, authenticated. This is not what this example is supposed to do!"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
rescue AMQ::Client::TCPConnectionFailed => e
|
28
|
+
puts "TCP connection has failed, as expected. Shutting down…"
|
29
|
+
EventMachine.stop if EventMachine.reactor_running?
|
30
|
+
end
|
@@ -10,8 +10,9 @@ amq_client_example "basic.return example" do |client|
|
|
10
10
|
queue = AMQ::Client::Queue.new(client, channel).declare(false, false, false, true)
|
11
11
|
|
12
12
|
exchange = AMQ::Client::Exchange.new(client, channel, "amq.fanout", :fanout)
|
13
|
-
exchange.on_return do |method|
|
13
|
+
exchange.on_return do |method, header, body|
|
14
14
|
puts "Handling a returned message: exchange = #{method.exchange}, reply_code = #{method.reply_code}, reply_text = #{method.reply_text}"
|
15
|
+
puts "Body of the returned message: #{body}"
|
15
16
|
end
|
16
17
|
|
17
18
|
10.times do |i|
|
@@ -154,21 +154,18 @@ module AMQ
|
|
154
154
|
define_callback :tcp_connection_failure, &block
|
155
155
|
end
|
156
156
|
|
157
|
-
# Sets a callback for successful connection (after we receive tune-ok)
|
158
|
-
#
|
159
|
-
# @api public
|
160
|
-
def on_open(&block)
|
161
|
-
define_callback :open, &block
|
162
|
-
end # on_open(&block)
|
163
|
-
|
164
157
|
|
165
158
|
# Called by AMQ::Client::Connection after we receive connection.open-ok.
|
166
159
|
#
|
167
160
|
# @api private
|
168
161
|
def connection_successful
|
162
|
+
@authenticating = false
|
163
|
+
opened!
|
164
|
+
|
169
165
|
exec_callback_yielding_self(:connect)
|
170
166
|
end
|
171
167
|
|
168
|
+
|
172
169
|
# Called by AMQ::Client::Connection after we receive connection.close-ok.
|
173
170
|
#
|
174
171
|
# @api private
|
@@ -178,14 +175,6 @@ module AMQ
|
|
178
175
|
closed!
|
179
176
|
end
|
180
177
|
|
181
|
-
# Called by AMQ::Client::Connection after we receive connection.tune.
|
182
|
-
#
|
183
|
-
# @api private
|
184
|
-
def open_successful
|
185
|
-
@authenticating = false
|
186
|
-
opened!
|
187
|
-
exec_callback_yielding_self(:open)
|
188
|
-
end # open_successful
|
189
178
|
|
190
179
|
# Called by Socket if it could not connect.
|
191
180
|
#
|
@@ -59,26 +59,16 @@ module AMQ
|
|
59
59
|
end
|
60
60
|
|
61
61
|
|
62
|
-
# Defines a callback that will be executed when AMQP connection is considered open
|
63
|
-
#
|
64
|
-
# size. You can define more than one callback.
|
62
|
+
# Defines a callback that will be executed when AMQP connection is considered open:
|
63
|
+
# client and broker has agreed on max channel identifier and maximum allowed frame
|
64
|
+
# size and authentication succeeds. You can define more than one callback.
|
65
65
|
#
|
66
|
-
# @see
|
66
|
+
# @see on_possible_authentication_failure
|
67
67
|
# @api public
|
68
68
|
def on_connection(&block)
|
69
69
|
@connection_deferrable.callback(&block)
|
70
70
|
end # on_connection(&block)
|
71
71
|
|
72
|
-
# Defines a callback that will be executed when AMQP connection is considered open,
|
73
|
-
# before client and broker has agreed on max channel identifier and maximum allowed frame
|
74
|
-
# size. You can define more than one callback.
|
75
|
-
#
|
76
|
-
# @see #on_connection
|
77
|
-
# @api public
|
78
|
-
def on_open(&block)
|
79
|
-
@connection_opened_deferrable.callback(&block)
|
80
|
-
end # on_open(&block)
|
81
|
-
|
82
72
|
# Defines a callback that will be run when broker confirms connection termination
|
83
73
|
# (client receives connection.close-ok). You can define more than one callback.
|
84
74
|
#
|
@@ -283,18 +273,11 @@ module AMQ
|
|
283
273
|
# Called by AMQ::Client::Connection after we receive connection.open-ok.
|
284
274
|
# @api public
|
285
275
|
def connection_successful
|
286
|
-
@connection_deferrable.succeed
|
287
|
-
end # connection_successful
|
288
|
-
|
289
|
-
|
290
|
-
# Called by AMQ::Client::Connection after we receive connection.tune.
|
291
|
-
# @api public
|
292
|
-
def open_successful
|
293
276
|
@authenticating = false
|
294
|
-
@connection_opened_deferrable.succeed
|
295
|
-
|
296
277
|
opened!
|
297
|
-
|
278
|
+
|
279
|
+
@connection_deferrable.succeed
|
280
|
+
end # connection_successful
|
298
281
|
|
299
282
|
|
300
283
|
# Called by AMQ::Client::Connection after we receive connection.close-ok.
|
@@ -344,9 +327,6 @@ module AMQ
|
|
344
327
|
@chunk_buffer = ""
|
345
328
|
@connection_deferrable = Deferrable.new
|
346
329
|
@disconnection_deferrable = Deferrable.new
|
347
|
-
# succeeds when connection is open, that is, vhost is selected
|
348
|
-
# and client is given green light to proceed.
|
349
|
-
@connection_opened_deferrable = Deferrable.new
|
350
330
|
|
351
331
|
# used to track down whether authentication succeeded. AMQP 0.9.1 dictates
|
352
332
|
# that on authentication failure broker must close TCP connection without sending
|
data/lib/amq/client/exchange.rb
CHANGED
@@ -150,12 +150,15 @@ module AMQ
|
|
150
150
|
end # handle
|
151
151
|
|
152
152
|
|
153
|
-
self.handle(Protocol::Basic::Return) do |client, frame|
|
153
|
+
self.handle(Protocol::Basic::Return) do |client, frame, content_frames|
|
154
154
|
channel = client.connection.channels[frame.channel]
|
155
155
|
method = frame.decode_payload
|
156
156
|
exchange = channel.find_exchange(method.exchange)
|
157
157
|
|
158
|
-
|
158
|
+
header = content_frames.shift
|
159
|
+
body = content_frames.map { |frame| frame.payload }.join
|
160
|
+
|
161
|
+
exchange.exec_callback(:return, method, header, body)
|
159
162
|
end
|
160
163
|
|
161
164
|
end # Exchange
|
data/lib/amq/client/version.rb
CHANGED
@@ -19,7 +19,7 @@ describe "AMQ::Client::CoolioClient", "Basic.Return", :nojruby => true do
|
|
19
19
|
# hence, no auto-delete
|
20
20
|
delayed(0.4) { queue.delete }
|
21
21
|
|
22
|
-
exchange = AMQ::Client::Exchange.new(client, channel, "direct-exchange", :direct).declare.on_return do |method|
|
22
|
+
exchange = AMQ::Client::Exchange.new(client, channel, "direct-exchange", :direct).declare.on_return do |method, header, body|
|
23
23
|
@returned_messages << method.reply_text
|
24
24
|
end
|
25
25
|
|
@@ -18,7 +18,7 @@ describe AMQ::Client::EventMachineClient, "Basic.Return" do
|
|
18
18
|
# hence, no auto-delete
|
19
19
|
delayed(0.4) { queue.delete }
|
20
20
|
|
21
|
-
exchange = AMQ::Client::Exchange.new(client, channel, "direct-exchange", :direct).declare.on_return do |method|
|
21
|
+
exchange = AMQ::Client::Exchange.new(client, channel, "direct-exchange", :direct).declare.on_return do |method, header, body|
|
22
22
|
@returned_messages << method.reply_text
|
23
23
|
end
|
24
24
|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: amq-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: -
|
4
|
+
hash: -3702664448
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 7
|
9
9
|
- 0
|
10
10
|
- alpha
|
11
|
-
-
|
12
|
-
version: 0.7.0.
|
11
|
+
- 22
|
12
|
+
version: 0.7.0.alpha22
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Jakub Stastny
|
@@ -20,7 +20,7 @@ autorequire:
|
|
20
20
|
bindir: bin
|
21
21
|
cert_chain: []
|
22
22
|
|
23
|
-
date: 2011-05-
|
23
|
+
date: 2011-05-14 00:00:00 Z
|
24
24
|
dependencies:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: eventmachine
|
@@ -80,7 +80,6 @@ files:
|
|
80
80
|
- LICENSE
|
81
81
|
- README.textile
|
82
82
|
- amq-client.gemspec
|
83
|
-
- bin/jenkins.sh
|
84
83
|
- bin/set_test_suite_realms_up.sh
|
85
84
|
- examples/coolio_adapter/basic_consume.rb
|
86
85
|
- examples/coolio_adapter/basic_consume_with_acknowledgements.rb
|
@@ -93,6 +92,7 @@ files:
|
|
93
92
|
- examples/coolio_adapter/queue_bind.rb
|
94
93
|
- examples/coolio_adapter/queue_purge.rb
|
95
94
|
- examples/coolio_adapter/queue_unbind.rb
|
95
|
+
- examples/eventmachine_adapter/authentication/connection_open_failure_due_to_invalid_vhost.rb
|
96
96
|
- examples/eventmachine_adapter/authentication/plain_password_with_custom_role_credentials.rb
|
97
97
|
- examples/eventmachine_adapter/authentication/plain_password_with_default_role_credentials.rb
|
98
98
|
- examples/eventmachine_adapter/authentication/plain_password_with_incorrect_credentials_handled_with_a_callback.rb
|
@@ -253,7 +253,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
253
253
|
requirements: []
|
254
254
|
|
255
255
|
rubyforge_project: amq-client
|
256
|
-
rubygems_version: 1.8.
|
256
|
+
rubygems_version: 1.8.2
|
257
257
|
signing_key:
|
258
258
|
specification_version: 3
|
259
259
|
summary: amq-client is a fully-featured, low-level AMQP 0.9.1 client
|
data/bin/jenkins.sh
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
|
3
|
-
echo -e "\n\n==== Setup ===="
|
4
|
-
source /etc/profile
|
5
|
-
git fetch && git reset origin/master --hard
|
6
|
-
|
7
|
-
echo -e "\n\n==== Ruby 1.9.2 Head ===="
|
8
|
-
rvm use 1.9.2-head@ruby-amqp
|
9
|
-
gem install bundler --no-ri --no-rdoc
|
10
|
-
bundle install --path vendor/bundle/1.9.2 --without development; echo
|
11
|
-
bundle update amq-protocol evented-spec; echo
|
12
|
-
bundle exec rspec spec
|
13
|
-
return_status=$?
|
14
|
-
|
15
|
-
echo -e "\n\n==== Ruby 1.8.7 ===="
|
16
|
-
rvm use 1.8.7@ruby-amqp
|
17
|
-
gem install bundler --no-ri --no-rdoc
|
18
|
-
bundle install --path vendor/bundle/1.8.7 --without development; echo
|
19
|
-
bundle update; echo
|
20
|
-
bundle exec rspec spec
|
21
|
-
return_status=$(expr $return_status + $?)
|
22
|
-
|
23
|
-
test $return_status -eq 0
|