amqp 0.9.10 → 1.0.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. data/.travis.yml +0 -3
  2. data/CHANGELOG +4 -0
  3. data/Gemfile +1 -0
  4. data/README.md +72 -81
  5. data/amqp.gemspec +14 -5
  6. data/docs/08Migration.textile +0 -4
  7. data/docs/AMQP091ModelExplained.textile +0 -5
  8. data/docs/Bindings.textile +0 -4
  9. data/docs/Clustering.textile +0 -4
  10. data/docs/ConnectingToTheBroker.textile +1 -5
  11. data/docs/ConnectionEncryptionWithTLS.textile +0 -4
  12. data/docs/DocumentationGuidesIndex.textile +0 -4
  13. data/docs/Durability.textile +0 -4
  14. data/docs/ErrorHandling.textile +40 -106
  15. data/docs/Exchanges.textile +0 -4
  16. data/docs/GettingStarted.textile +6 -10
  17. data/docs/PatternsAndUseCases.textile +1 -4
  18. data/docs/Queues.textile +0 -4
  19. data/docs/RabbitMQVersions.textile +0 -4
  20. data/docs/RunningTests.textile +0 -4
  21. data/docs/TestingWithEventedSpec.textile +0 -4
  22. data/docs/Troubleshooting.textile +0 -4
  23. data/docs/VendorSpecificExtensions.textile +0 -4
  24. data/examples/error_handling/hello_world_producer.rb +1 -1
  25. data/examples/issues/issue_121.rb +23 -0
  26. data/examples/patterns/request_reply/client.rb +2 -1
  27. data/examples/patterns/request_reply/server.rb +1 -0
  28. data/examples/publishing/returned_messages.rb +1 -1
  29. data/lib/amqp.rb +0 -7
  30. data/lib/amqp/channel.rb +15 -33
  31. data/lib/amqp/client.rb +2 -2
  32. data/lib/amqp/compatibility/ruby187_patchlevel_check.rb +4 -4
  33. data/lib/amqp/connection.rb +0 -1
  34. data/lib/amqp/consumer.rb +2 -2
  35. data/lib/amqp/exceptions.rb +1 -10
  36. data/lib/amqp/exchange.rb +5 -5
  37. data/lib/amqp/queue.rb +23 -47
  38. data/lib/amqp/session.rb +4 -4
  39. data/lib/amqp/version.rb +1 -1
  40. data/spec/integration/basic_get_spec.rb +24 -80
  41. data/spec/integration/basic_return_spec.rb +3 -3
  42. data/spec/integration/channel_level_exception_with_multiple_channels_spec.rb +1 -0
  43. data/spec/integration/exchange_declaration_spec.rb +102 -71
  44. data/spec/integration/extensions/rabbitmq/publisher_confirmations_spec.rb +17 -1
  45. data/spec/integration/fanout_exchange_routing_spec.rb +1 -1
  46. data/spec/integration/immediate_messages_spec.rb +59 -0
  47. data/spec/integration/multiple_consumers_per_queue_spec.rb +101 -39
  48. data/spec/integration/queue_redeclaration_with_incompatible_attributes_spec.rb +12 -25
  49. data/spec/integration/regressions/concurrent_publishing_on_the_same_channel_spec.rb +1 -1
  50. data/spec/integration/reply_queue_communication_spec.rb +2 -1
  51. data/spec/integration/store_and_forward_spec.rb +9 -6
  52. data/spec/integration/topic_subscription_spec.rb +4 -5
  53. data/spec/spec_helper.rb +2 -8
  54. data/spec/unit/amqp/connection_spec.rb +1 -3
  55. metadata +112 -116
  56. data/examples/deprecated/default_thread_local_channel_instance.rb +0 -34
  57. data/examples/legacy/ack.rb +0 -70
  58. data/examples/legacy/callbacks.rb +0 -45
  59. data/examples/legacy/clock.rb +0 -74
  60. data/examples/legacy/hashtable.rb +0 -60
  61. data/examples/legacy/logger.rb +0 -92
  62. data/examples/legacy/multiclock.rb +0 -56
  63. data/examples/legacy/pingpong.rb +0 -51
  64. data/examples/legacy/primes-simple.rb +0 -29
  65. data/examples/legacy/primes.rb +0 -74
  66. data/examples/legacy/stocks.rb +0 -59
  67. data/lib/amqp/deprecated/fork.rb +0 -17
  68. data/lib/amqp/deprecated/logger.rb +0 -100
  69. data/lib/amqp/deprecated/mq.rb +0 -22
  70. data/lib/amqp/deprecated/rpc.rb +0 -169
  71. data/lib/amqp/ext/em.rb +0 -3
  72. data/lib/amqp/ext/emfork.rb +0 -72
  73. data/lib/amqp/logger.rb +0 -19
  74. data/lib/amqp/rpc.rb +0 -20
  75. data/lib/mq.rb +0 -35
  76. data/lib/mq/logger.rb +0 -4
  77. data/lib/mq/rpc.rb +0 -4
  78. data/spec/integration/remove_individual_binding_spec.rb +0 -51
@@ -28,9 +28,7 @@ describe AMQP, 'class object' do
28
28
  :logging => false,
29
29
  :ssl => false,
30
30
  :broker => nil,
31
- :frame_max => 131072,
32
- :heartbeat => 0,
33
- :auth_mechanism => "PLAIN"
31
+ :frame_max => 131072
34
32
  }
35
33
  end
36
34
 
metadata CHANGED
@@ -1,101 +1,109 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: amqp
3
- version: !ruby/object:Gem::Version
4
- version: 0.9.10
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ hash: 2787483469
5
+ prerelease: 6
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ - pre
11
+ - 1
12
+ version: 1.0.0.pre1
6
13
  platform: ruby
7
- authors:
14
+ authors:
8
15
  - Aman Gupta
9
16
  - Jakub Stastny aka botanicus
10
17
  - Michael S. Klishin
11
- autorequire:
18
+ autorequire:
12
19
  bindir: bin
13
20
  cert_chain: []
14
- date: 2013-03-05 00:00:00.000000000 Z
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
21
+
22
+ date: 2012-06-22 00:00:00 Z
23
+ dependencies:
24
+ - !ruby/object:Gem::Dependency
17
25
  name: eventmachine
18
- version_requirements: !ruby/object:Gem::Requirement
19
- requirements:
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: !binary |-
23
- MA==
26
+ prerelease: false
27
+ requirement: &id001 !ruby/object:Gem::Requirement
24
28
  none: false
25
- requirement: !ruby/object:Gem::Requirement
26
- requirements:
29
+ requirements:
27
30
  - - ">="
28
- - !ruby/object:Gem::Version
29
- version: !binary |-
30
- MA==
31
- none: false
32
- prerelease: false
31
+ - !ruby/object:Gem::Version
32
+ hash: 3
33
+ segments:
34
+ - 0
35
+ version: "0"
33
36
  type: :runtime
34
- - !ruby/object:Gem::Dependency
37
+ version_requirements: *id001
38
+ - !ruby/object:Gem::Dependency
35
39
  name: amq-client
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 0.9.12
41
- none: false
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: 0.9.12
47
- none: false
48
40
  prerelease: false
41
+ requirement: &id002 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ hash: 2787483469
47
+ segments:
48
+ - 1
49
+ - 0
50
+ - 0
51
+ - pre
52
+ - 1
53
+ version: 1.0.0.pre1
49
54
  type: :runtime
50
- - !ruby/object:Gem::Dependency
55
+ version_requirements: *id002
56
+ - !ruby/object:Gem::Dependency
51
57
  name: amq-protocol
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - "~>"
55
- - !ruby/object:Gem::Version
56
- version: 1.2.0
57
- none: false
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: 1.2.0
63
- none: false
64
58
  prerelease: false
59
+ requirement: &id003 !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ~>
63
+ - !ruby/object:Gem::Version
64
+ hash: 2787483469
65
+ segments:
66
+ - 1
67
+ - 0
68
+ - 0
69
+ - pre
70
+ - 1
71
+ version: 1.0.0.pre1
65
72
  type: :runtime
66
- description: Widely used, feature-rich asynchronous AMQP RabbitMQ client with batteries included.
67
- email:
68
- - !binary |-
69
- bWljaGFlbEBub3ZlbWJlcmFpbi5jb20=
70
- - !binary |-
71
- c3Rhc3RueUAxMDFpZGVhcy5jeg==
73
+ version_requirements: *id003
74
+ description: Widely used, feature-rich asynchronous AMQP 0.9.1 client with batteries included.
75
+ email:
76
+ - michael@novemberain.com
77
+ - stastny@101ideas.cz
72
78
  executables: []
79
+
73
80
  extensions: []
74
- extra_rdoc_files:
81
+
82
+ extra_rdoc_files:
75
83
  - README.md
76
- - docs/08Migration.textile
77
- - docs/AMQP091ModelExplained.textile
78
- - docs/Bindings.textile
79
- - docs/Clustering.textile
80
- - docs/ConnectingToTheBroker.textile
81
- - docs/ConnectionEncryptionWithTLS.textile
82
- - docs/DocumentationGuidesIndex.textile
83
84
  - docs/Durability.textile
84
- - docs/ErrorHandling.textile
85
85
  - docs/Exchanges.textile
86
- - docs/GettingStarted.textile
87
86
  - docs/PatternsAndUseCases.textile
88
- - docs/Queues.textile
89
- - docs/RabbitMQVersions.textile
87
+ - docs/ConnectingToTheBroker.textile
88
+ - docs/ConnectionEncryptionWithTLS.textile
90
89
  - docs/RunningTests.textile
91
- - docs/TestingWithEventedSpec.textile
90
+ - docs/DocumentationGuidesIndex.textile
92
91
  - docs/Troubleshooting.textile
92
+ - docs/RabbitMQVersions.textile
93
+ - docs/Queues.textile
94
+ - docs/08Migration.textile
93
95
  - docs/VendorSpecificExtensions.textile
94
- files:
95
- - ".gitignore"
96
- - ".rspec"
97
- - ".travis.yml"
98
- - ".yardopts"
96
+ - docs/AMQP091ModelExplained.textile
97
+ - docs/Bindings.textile
98
+ - docs/GettingStarted.textile
99
+ - docs/ErrorHandling.textile
100
+ - docs/Clustering.textile
101
+ - docs/TestingWithEventedSpec.textile
102
+ files:
103
+ - .gitignore
104
+ - .rspec
105
+ - .travis.yml
106
+ - .yardopts
99
107
  - CHANGELOG
100
108
  - Gemfile
101
109
  - README.md
@@ -140,7 +148,6 @@ files:
140
148
  - examples/channels/qos_aka_prefetch.rb
141
149
  - examples/channels/qos_aka_prefetch_without_callback.rb
142
150
  - examples/connection/connect_and_immediately_disconnect.rb
143
- - examples/deprecated/default_thread_local_channel_instance.rb
144
151
  - examples/error_handling/automatic_recovery_of_channel_and_queues.rb
145
152
  - examples/error_handling/automatically_recovering_hello_world_consumer.rb
146
153
  - examples/error_handling/automatically_recovering_hello_world_consumer_that_uses_a_server_named_queue.rb
@@ -194,21 +201,12 @@ files:
194
201
  - examples/inspecting_server_information.rb
195
202
  - examples/issues/amq_client_issue_7.rb
196
203
  - examples/issues/amq_protocol_issue_14.rb
204
+ - examples/issues/issue_121.rb
197
205
  - examples/issues/issue_75.rb
198
206
  - examples/issues/issue_79.rb
199
207
  - examples/issues/issue_80.rb
200
208
  - examples/issues/issue_93.rb
201
209
  - examples/issues/issue_94.rb
202
- - examples/legacy/ack.rb
203
- - examples/legacy/callbacks.rb
204
- - examples/legacy/clock.rb
205
- - examples/legacy/hashtable.rb
206
- - examples/legacy/logger.rb
207
- - examples/legacy/multiclock.rb
208
- - examples/legacy/pingpong.rb
209
- - examples/legacy/primes-simple.rb
210
- - examples/legacy/primes.rb
211
- - examples/legacy/stocks.rb
212
210
  - examples/patterns/command/consumer.rb
213
211
  - examples/patterns/command/producer.rb
214
212
  - examples/patterns/event/consumer.rb
@@ -265,28 +263,17 @@ files:
265
263
  - lib/amqp/compatibility/ruby187_patchlevel_check.rb
266
264
  - lib/amqp/connection.rb
267
265
  - lib/amqp/consumer.rb
268
- - lib/amqp/deprecated/fork.rb
269
- - lib/amqp/deprecated/logger.rb
270
- - lib/amqp/deprecated/mq.rb
271
- - lib/amqp/deprecated/rpc.rb
272
266
  - lib/amqp/exceptions.rb
273
267
  - lib/amqp/exchange.rb
274
- - lib/amqp/ext/em.rb
275
- - lib/amqp/ext/emfork.rb
276
268
  - lib/amqp/extensions/rabbitmq.rb
277
269
  - lib/amqp/header.rb
278
270
  - lib/amqp/int_allocator.rb
279
271
  - lib/amqp/integration/rails.rb
280
- - lib/amqp/logger.rb
281
272
  - lib/amqp/queue.rb
282
- - lib/amqp/rpc.rb
283
273
  - lib/amqp/session.rb
284
274
  - lib/amqp/utilities/event_loop_helper.rb
285
275
  - lib/amqp/utilities/server_type.rb
286
276
  - lib/amqp/version.rb
287
- - lib/mq.rb
288
- - lib/mq/logger.rb
289
- - lib/mq/rpc.rb
290
277
  - spec/integration/authentication_spec.rb
291
278
  - spec/integration/automatic_binding_for_default_direct_exchange_spec.rb
292
279
  - spec/integration/automatic_recovery_predicate_spec.rb
@@ -304,6 +291,7 @@ files:
304
291
  - spec/integration/fanout_exchange_routing_spec.rb
305
292
  - spec/integration/headers_exchange_routing_spec.rb
306
293
  - spec/integration/hello_world_spec.rb
294
+ - spec/integration/immediate_messages_spec.rb
307
295
  - spec/integration/mandatory_messages_spec.rb
308
296
  - spec/integration/message_acknowledgement_spec.rb
309
297
  - spec/integration/message_metadata_access_spec.rb
@@ -319,7 +307,6 @@ files:
319
307
  - spec/integration/regressions/concurrent_publishing_on_the_same_channel_spec.rb
320
308
  - spec/integration/regressions/empty_message_body_spec.rb
321
309
  - spec/integration/regressions/issue66_spec.rb
322
- - spec/integration/remove_individual_binding_spec.rb
323
310
  - spec/integration/reply_queue_communication_spec.rb
324
311
  - spec/integration/store_and_forward_spec.rb
325
312
  - spec/integration/stress/publishing_of_messages_with_incrementing_sizes_spec.rb
@@ -332,32 +319,41 @@ files:
332
319
  - spec/unit/amqp/client_spec.rb
333
320
  - spec/unit/amqp/connection_spec.rb
334
321
  - spec/unit/amqp/int_allocator_spec.rb
335
- homepage: http://rubyamqp.info
336
- licenses: []
337
- post_install_message:
338
- rdoc_options:
339
- - "--include=examples --main README.md"
340
- require_paths:
322
+ homepage: http://github.com/ruby-amqp/amqp
323
+ licenses:
324
+ - Ruby
325
+ post_install_message: "[\e[32mVersion 1.0.0\e[0m] [API] All public API bits deprecated in 0.8.0 are COMPLETELY REMOVED\n"
326
+ rdoc_options:
327
+ - --include=examples --main README.md
328
+ require_paths:
341
329
  - lib
342
- required_ruby_version: !ruby/object:Gem::Requirement
343
- requirements:
344
- - - ">="
345
- - !ruby/object:Gem::Version
346
- version: !binary |-
347
- MA==
330
+ required_ruby_version: !ruby/object:Gem::Requirement
348
331
  none: false
349
- required_rubygems_version: !ruby/object:Gem::Requirement
350
- requirements:
332
+ requirements:
351
333
  - - ">="
352
- - !ruby/object:Gem::Version
353
- version: !binary |-
354
- MA==
334
+ - !ruby/object:Gem::Version
335
+ hash: 3
336
+ segments:
337
+ - 0
338
+ version: "0"
339
+ required_rubygems_version: !ruby/object:Gem::Requirement
355
340
  none: false
341
+ requirements:
342
+ - - ">"
343
+ - !ruby/object:Gem::Version
344
+ hash: 25
345
+ segments:
346
+ - 1
347
+ - 3
348
+ - 1
349
+ version: 1.3.1
356
350
  requirements: []
351
+
357
352
  rubyforge_project: amqp
358
- rubygems_version: 1.8.24
359
- signing_key:
353
+ rubygems_version: 1.8.15
354
+ signing_key:
360
355
  specification_version: 3
361
- summary: Widely used, feature-rich asynchronous RabbitMQ client with batteries included
356
+ summary: Widely used, feature-rich asynchronous AMQP 0.9.1 client with batteries included
362
357
  test_files: []
363
- has_rdoc:
358
+
359
+ has_rdoc:
@@ -1,34 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: utf-8
3
-
4
- require "bundler"
5
- Bundler.setup
6
-
7
- $:.unshift(File.expand_path("../../../lib", __FILE__))
8
-
9
- require 'amqp'
10
-
11
- # CODE BELOW IS USING DEPRECATED METHODS. PLEASE CONSIDER NOT USING THEM IF YOU CAN.
12
- #
13
- # The reason why these methods work at all is to make 0.6.x => 0.8.x migration easier so
14
- # people won't be stuck with AMQP (the protocol) 0.8 forever and can benefit from more
15
- # advanced AMQP 0.9.1 features.
16
- #
17
-
18
- EventMachine.run do
19
- connection = AMQP.connect(:host => '127.0.0.1')
20
- puts "Connected to AMQP broker. Running #{AMQP::VERSION} version of the gem..."
21
-
22
- queue = AMQP::Channel.queue("amqpgem.examples.hello_world", :auto_delete => true)
23
- exchange = MQ.direct("")
24
-
25
- queue.subscribe do |payload|
26
- puts "Received a message: #{payload}. Disconnecting..."
27
-
28
- connection.close {
29
- EM.stop { exit }
30
- }
31
- end
32
-
33
- exchange.publish "Hello, world!", :routing_key => queue.name
34
- end
@@ -1,70 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: utf-8
3
-
4
- require "bundler"
5
- Bundler.setup
6
-
7
- $:.unshift(File.expand_path("../../../lib", __FILE__))
8
- require 'amqp'
9
-
10
-
11
- AMQP.start do |connection|
12
- puts "Connected!"
13
- channel = AMQP::Channel.new(connection)
14
- e = channel.fanout("amqp-gem.examples.ack")
15
- q = channel.queue('amqp-gem.examples.q1').bind(e) { puts "Bound #{e.name} to the queue" }
16
-
17
- q.status do |message_count, consumer_count|
18
- puts "Queue #{q.name} has #{message_count} messages and #{consumer_count} consumers"
19
- end
20
-
21
- i = 0
22
-
23
- # Stopping after the second item was acked will keep the 3rd item in the queue
24
- q.subscribe(:ack => true) do |h, m|
25
- puts "Got a message"
26
-
27
- if AMQP.closing?
28
- puts "#{m} (ignored, redelivered later)"
29
- else
30
- puts m
31
- h.ack
32
- end
33
- end # channel.queue
34
-
35
-
36
- 10.times do |i|
37
- puts "Publishing message ##{i}"
38
- e.publish("Totally rad #{i}")
39
- end
40
-
41
-
42
- show_stopper = Proc.new {
43
- q.status do |message_count, consumer_count|
44
- puts "Queue #{q.name} has #{message_count} messages and #{consumer_count} consumers"
45
- end
46
-
47
- q.unbind(e) do
48
- puts "Unbound #{q.name} from #{e.name}"
49
-
50
- e.delete do
51
- puts "Just deleted #{e.name}"
52
- end
53
-
54
- q.delete do
55
- puts "Just deleted #{q.name}"
56
- AMQP.stop do
57
- puts "About to stop EM reactor"
58
- EM.stop
59
- end
60
- end
61
- end
62
- }
63
-
64
- EM.add_timer(3, show_stopper)
65
-
66
- # For ack to work appropriately you must shutdown AMQP gracefully,
67
- # otherwise all items in your queue will be returned
68
- Signal.trap('INT', show_stopper)
69
- Signal.trap('TERM', show_stopper)
70
- end # AMQP.start
@@ -1,45 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: utf-8
3
-
4
- require "bundler"
5
- Bundler.setup
6
-
7
- $:.unshift File.expand_path("../../lib", __FILE__)
8
- require "amqp"
9
-
10
- AMQP.start(:host => "localhost") do |connection|
11
-
12
- # Send Connection.Close on Ctrl+C
13
- trap(:INT) do
14
- unless connection.closing?
15
- connection.close { exit! }
16
- end
17
- end
18
-
19
- @counter = 0
20
- amq = AMQP::Channel.new
21
-
22
- amq.prefetch(64, false) do
23
- puts "basic.qos callback has fired"
24
- end
25
-
26
- amq.recover do
27
- puts "basic.recover callback has fired"
28
- end
29
-
30
- 10.times do
31
- amq.queue("") do |queue|
32
- puts "Queue #{queue.name} is now declared."
33
- puts "All queues: #{amq.queues.map { |q| q.name }.join(', ')}"
34
-
35
- @counter += 1
36
- end
37
- end
38
-
39
- EM.add_timer(0.3) do
40
- connection.disconnect do
41
- puts "AMQP connection is now closed."
42
- EM.stop
43
- end
44
- end
45
- end