bunny 1.3.0 → 2.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. checksums.yaml +5 -5
  2. data/.github/ISSUE_TEMPLATE.md +18 -0
  3. data/.gitignore +7 -1
  4. data/.rspec +1 -3
  5. data/.travis.yml +21 -14
  6. data/CONTRIBUTING.md +132 -0
  7. data/ChangeLog.md +887 -1
  8. data/Gemfile +13 -13
  9. data/LICENSE +1 -1
  10. data/README.md +46 -60
  11. data/Rakefile +54 -0
  12. data/bunny.gemspec +5 -11
  13. data/docker-compose.yml +28 -0
  14. data/docker/Dockerfile +24 -0
  15. data/docker/apt/preferences.d/erlang +3 -0
  16. data/docker/apt/sources.list.d/bintray.rabbitmq.list +2 -0
  17. data/docker/docker-entrypoint.sh +26 -0
  18. data/docker/rabbitmq.conf +29 -0
  19. data/examples/connection/automatic_recovery_with_basic_get.rb +1 -1
  20. data/examples/connection/automatic_recovery_with_client_named_queues.rb +1 -1
  21. data/examples/connection/automatic_recovery_with_multiple_consumers.rb +1 -1
  22. data/examples/connection/automatic_recovery_with_republishing.rb +1 -1
  23. data/examples/connection/automatic_recovery_with_server_named_queues.rb +1 -1
  24. data/examples/connection/channel_level_exception.rb +1 -9
  25. data/examples/connection/disabled_automatic_recovery.rb +1 -1
  26. data/examples/connection/heartbeat.rb +1 -1
  27. data/examples/consumers/high_and_low_priority.rb +1 -1
  28. data/examples/guides/extensions/alternate_exchange.rb +2 -0
  29. data/examples/guides/extensions/basic_nack.rb +1 -1
  30. data/examples/guides/extensions/dead_letter_exchange.rb +1 -1
  31. data/examples/guides/getting_started/hello_world.rb +2 -0
  32. data/examples/guides/getting_started/weathr.rb +2 -0
  33. data/examples/guides/queues/one_off_consumer.rb +2 -0
  34. data/examples/guides/queues/redeliveries.rb +4 -2
  35. data/lib/bunny.rb +8 -4
  36. data/lib/bunny/channel.rb +268 -153
  37. data/lib/bunny/channel_id_allocator.rb +6 -4
  38. data/lib/bunny/concurrent/continuation_queue.rb +34 -13
  39. data/lib/bunny/consumer_work_pool.rb +34 -6
  40. data/lib/bunny/cruby/socket.rb +48 -21
  41. data/lib/bunny/cruby/ssl_socket.rb +65 -4
  42. data/lib/bunny/exceptions.rb +25 -4
  43. data/lib/bunny/exchange.rb +24 -28
  44. data/lib/bunny/get_response.rb +1 -1
  45. data/lib/bunny/heartbeat_sender.rb +3 -2
  46. data/lib/bunny/jruby/socket.rb +23 -6
  47. data/lib/bunny/jruby/ssl_socket.rb +5 -0
  48. data/lib/bunny/queue.rb +31 -22
  49. data/lib/bunny/reader_loop.rb +31 -18
  50. data/lib/bunny/session.rb +448 -159
  51. data/lib/bunny/test_kit.rb +14 -0
  52. data/lib/bunny/timeout.rb +1 -12
  53. data/lib/bunny/transport.rb +205 -98
  54. data/lib/bunny/version.rb +1 -1
  55. data/repl +1 -1
  56. data/spec/config/enabled_plugins +1 -0
  57. data/spec/config/rabbitmq.conf +13 -0
  58. data/spec/higher_level_api/integration/basic_ack_spec.rb +175 -16
  59. data/spec/higher_level_api/integration/basic_cancel_spec.rb +77 -11
  60. data/spec/higher_level_api/integration/basic_consume_spec.rb +60 -55
  61. data/spec/higher_level_api/integration/basic_consume_with_objects_spec.rb +6 -6
  62. data/spec/higher_level_api/integration/basic_get_spec.rb +31 -7
  63. data/spec/higher_level_api/integration/basic_nack_spec.rb +22 -19
  64. data/spec/higher_level_api/integration/basic_publish_spec.rb +11 -100
  65. data/spec/higher_level_api/integration/basic_qos_spec.rb +32 -4
  66. data/spec/higher_level_api/integration/basic_reject_spec.rb +94 -16
  67. data/spec/higher_level_api/integration/basic_return_spec.rb +4 -4
  68. data/spec/higher_level_api/integration/channel_close_spec.rb +51 -10
  69. data/spec/higher_level_api/integration/channel_open_spec.rb +12 -12
  70. data/spec/higher_level_api/integration/connection_recovery_spec.rb +424 -221
  71. data/spec/higher_level_api/integration/connection_spec.rb +300 -126
  72. data/spec/higher_level_api/integration/connection_stop_spec.rb +31 -19
  73. data/spec/higher_level_api/integration/consumer_cancellation_notification_spec.rb +17 -17
  74. data/spec/higher_level_api/integration/dead_lettering_spec.rb +34 -11
  75. data/spec/higher_level_api/integration/exchange_bind_spec.rb +5 -5
  76. data/spec/higher_level_api/integration/exchange_declare_spec.rb +32 -31
  77. data/spec/higher_level_api/integration/exchange_delete_spec.rb +12 -12
  78. data/spec/higher_level_api/integration/exchange_unbind_spec.rb +5 -5
  79. data/spec/higher_level_api/integration/exclusive_queue_spec.rb +5 -5
  80. data/spec/higher_level_api/integration/heartbeat_spec.rb +26 -8
  81. data/spec/higher_level_api/integration/message_properties_access_spec.rb +49 -49
  82. data/spec/higher_level_api/integration/predeclared_exchanges_spec.rb +2 -2
  83. data/spec/higher_level_api/integration/publisher_confirms_spec.rb +156 -42
  84. data/spec/higher_level_api/integration/publishing_edge_cases_spec.rb +19 -19
  85. data/spec/higher_level_api/integration/queue_bind_spec.rb +23 -23
  86. data/spec/higher_level_api/integration/queue_declare_spec.rb +129 -34
  87. data/spec/higher_level_api/integration/queue_delete_spec.rb +2 -2
  88. data/spec/higher_level_api/integration/queue_purge_spec.rb +5 -5
  89. data/spec/higher_level_api/integration/queue_unbind_spec.rb +6 -6
  90. data/spec/higher_level_api/integration/read_only_consumer_spec.rb +9 -9
  91. data/spec/higher_level_api/integration/sender_selected_distribution_spec.rb +10 -10
  92. data/spec/higher_level_api/integration/tls_connection_spec.rb +224 -89
  93. data/spec/higher_level_api/integration/toxiproxy_spec.rb +76 -0
  94. data/spec/higher_level_api/integration/tx_commit_spec.rb +1 -1
  95. data/spec/higher_level_api/integration/tx_rollback_spec.rb +1 -1
  96. data/spec/higher_level_api/integration/with_channel_spec.rb +2 -2
  97. data/spec/issues/issue100_spec.rb +11 -11
  98. data/spec/issues/issue141_spec.rb +13 -14
  99. data/spec/issues/issue202_spec.rb +1 -1
  100. data/spec/issues/issue224_spec.rb +40 -0
  101. data/spec/issues/issue465_spec.rb +32 -0
  102. data/spec/issues/issue549_spec.rb +30 -0
  103. data/spec/issues/issue78_spec.rb +21 -24
  104. data/spec/issues/issue83_spec.rb +5 -6
  105. data/spec/issues/issue97_spec.rb +44 -45
  106. data/spec/lower_level_api/integration/basic_cancel_spec.rb +15 -16
  107. data/spec/lower_level_api/integration/basic_consume_spec.rb +20 -21
  108. data/spec/spec_helper.rb +8 -26
  109. data/spec/stress/channel_close_stress_spec.rb +64 -0
  110. data/spec/stress/channel_open_stress_spec.rb +15 -9
  111. data/spec/stress/channel_open_stress_with_single_threaded_connection_spec.rb +7 -7
  112. data/spec/stress/concurrent_consumers_stress_spec.rb +18 -16
  113. data/spec/stress/concurrent_publishers_stress_spec.rb +16 -19
  114. data/spec/stress/connection_open_close_spec.rb +9 -9
  115. data/spec/stress/merry_go_round_spec.rb +105 -0
  116. data/spec/tls/client_key.pem +49 -25
  117. data/spec/tls/generate-server-cert.sh +8 -0
  118. data/spec/tls/server-openssl.cnf +10 -0
  119. data/spec/tls/server.csr +16 -0
  120. data/spec/tls/server_key.pem +49 -25
  121. data/spec/toxiproxy_helper.rb +28 -0
  122. data/spec/unit/bunny_spec.rb +5 -5
  123. data/spec/unit/concurrent/atomic_fixnum_spec.rb +6 -6
  124. data/spec/unit/concurrent/condition_spec.rb +8 -8
  125. data/spec/unit/concurrent/linked_continuation_queue_spec.rb +2 -2
  126. data/spec/unit/concurrent/synchronized_sorted_set_spec.rb +16 -16
  127. data/spec/unit/exchange_recovery_spec.rb +39 -0
  128. data/spec/unit/version_delivery_tag_spec.rb +3 -3
  129. metadata +65 -47
  130. data/.ruby-version +0 -1
  131. data/lib/bunny/compatibility.rb +0 -24
  132. data/lib/bunny/system_timer.rb +0 -20
  133. data/spec/compatibility/queue_declare_spec.rb +0 -44
  134. data/spec/compatibility/queue_declare_with_default_channel_spec.rb +0 -33
  135. data/spec/higher_level_api/integration/basic_recover_spec.rb +0 -18
  136. data/spec/higher_level_api/integration/confirm_select_spec.rb +0 -19
  137. data/spec/higher_level_api/integration/consistent_hash_exchange_spec.rb +0 -50
  138. data/spec/higher_level_api/integration/merry_go_round_spec.rb +0 -85
  139. data/spec/stress/long_running_consumer_spec.rb +0 -83
  140. data/spec/tls/cacert.pem +0 -18
  141. data/spec/tls/client_cert.pem +0 -18
  142. data/spec/tls/server_cert.pem +0 -18
  143. data/spec/unit/system_timer_spec.rb +0 -10
@@ -0,0 +1,8 @@
1
+ #!/bin/sh
2
+
3
+ DIRNAME=$(dirname "$0")
4
+
5
+ openssl req -sha256 -new -key $DIRNAME/server_key.pem -out $DIRNAME/server.csr -subj "/CN=mercurio" -config $DIRNAME/server-openssl.cnf
6
+ openssl x509 -sha256 -req -in $DIRNAME/server.csr -CA $DIRNAME/ca_certificate.pem -CAkey $DIRNAME/ca_key.pem -CAcreateserial -CAserial $DIRNAME/ca.srl -out $DIRNAME/server_certificate.pem -days 3650 -extensions v3_req -extfile $DIRNAME/server-openssl.cnf
7
+
8
+ echo "Written new server CSR and certificate"
@@ -0,0 +1,10 @@
1
+ [req]
2
+ req_extensions = v3_req
3
+ distinguished_name = req_distinguished_name
4
+ [req_distinguished_name]
5
+ [ v3_req ]
6
+ basicConstraints = CA:FALSE
7
+ keyUsage = nonRepudiation, digitalSignature, keyEncipherment
8
+ subjectAltName = @alt_names
9
+ [alt_names]
10
+ IP.1 = 127.0.0.1
@@ -0,0 +1,16 @@
1
+ -----BEGIN CERTIFICATE REQUEST-----
2
+ MIICkjCCAXoCAQAwEzERMA8GA1UEAwwIbWVyY3VyaW8wggEiMA0GCSqGSIb3DQEB
3
+ AQUAA4IBDwAwggEKAoIBAQCkvvzm5nB3CDqTFEYQnfOy8DwJLm34MvdrKQAThzDy
4
+ qa37sb4IC0YclBFbZfsw8+paK+Rpo2Vlhzclb66z0cGs9SvxuKkJ45w0fk0ctxMg
5
+ tvWISRGZR7LMw5u0q2m61dK0FTGSl+qzJohb5Dklb6BApoGoIPH+eYraVxHR29x2
6
+ x8hqzBt5TpiUW8bu7LPQJbX0mYGhKQDf86kao+sptRQ2045D7vB3jrkPhq0XZVJi
7
+ QymzOSSejYSN1oZ464DtT+dpLBYHEVJoJPu4r4kY/8A7v+93PWQaDERKBfvwWHfV
8
+ U44xn7R/aojSvNT7kQILsf2BnfJlMwoedWQLxPddmB3PAgMBAAGgOjA4BgkqhkiG
9
+ 9w0BCQ4xKzApMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgXgMA8GA1UdEQQIMAaHBH8A
10
+ AAEwDQYJKoZIhvcNAQELBQADggEBAFyfaotajM/h2dyodKJqO6stAIpxiQXTds8V
11
+ 5ZHDozBxzLZkeBIY+hsqh/owmqomk56swui+336WAKIBwIJyJrtIl8C/lupGaTbR
12
+ BouWWbyZOQAE2ExHcUgdGEOVoCN2ieBR4RVQ8Id4GAlHvlFGPqakaLMV6Zc7VqDh
13
+ vxdOLgATEE+MhebTo9yOHj14qdvzhi5w3ZEg1kdfOuGN9I4gJcv4PWwudBhn4wE7
14
+ oHAIP2nixROI7cZcZ9fBrimcdGQsXNZLTXiGzNra4utOXuQ7w5qoiEhHoxXalowE
15
+ KvEA9otLadjtULg6DRd3zYuIyrUiBIRUHZ1p2xSnd/lLekbMfCQ=
16
+ -----END CERTIFICATE REQUEST-----
@@ -1,27 +1,51 @@
1
1
  -----BEGIN RSA PRIVATE KEY-----
2
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
27
51
  -----END RSA PRIVATE KEY-----
@@ -0,0 +1,28 @@
1
+ module RabbitMQ
2
+ module Toxiproxy
3
+ RABBITMQ_UPSTREAM_HOST = if !ENV["LOCAL_RABBITMQ"].nil?
4
+ # a local Toxiproxy/RabbitMQ combination
5
+ "localhost"
6
+ else
7
+ # docker-compose
8
+ "rabbitmq"
9
+ end
10
+
11
+ def setup_toxiproxy
12
+ ::Toxiproxy.populate([{
13
+ name: "rabbitmq",
14
+ listen: "0.0.0.0:11111",
15
+ upstream: "#{RABBITMQ_UPSTREAM_HOST}:5672"
16
+ }])
17
+ rabbitmq_toxiproxy.enable
18
+ end
19
+
20
+ def cleanup_toxiproxy
21
+ ::Toxiproxy.populate()
22
+ end
23
+
24
+ def rabbitmq_toxiproxy
25
+ ::Toxiproxy[/rabbitmq/]
26
+ end
27
+ end
28
+ end
@@ -2,14 +2,14 @@ require "spec_helper"
2
2
 
3
3
  describe Bunny do
4
4
  it "has library version" do
5
- Bunny::VERSION.should_not be_nil
6
- Bunny.version.should_not be_nil
5
+ expect(Bunny::VERSION).not_to be_nil
6
+ expect(Bunny.version).not_to be_nil
7
7
  end
8
8
 
9
9
 
10
10
  it "has AMQP protocol version" do
11
- Bunny::PROTOCOL_VERSION.should == "0.9.1"
12
- AMQ::Protocol::PROTOCOL_VERSION.should == "0.9.1"
13
- Bunny.protocol_version.should == "0.9.1"
11
+ expect(Bunny::PROTOCOL_VERSION).to eq "0.9.1"
12
+ expect(AMQ::Protocol::PROTOCOL_VERSION).to eq "0.9.1"
13
+ expect(Bunny.protocol_version).to eq "0.9.1"
14
14
  end
15
15
  end
@@ -5,31 +5,31 @@ describe Bunny::Concurrent::AtomicFixnum do
5
5
  it "allows retrieving the current value" do
6
6
  af = described_class.new(0)
7
7
 
8
- af.get.should == 0
9
- af.should == 0
8
+ expect(af.get).to eq 0
9
+ expect(af).to eq 0
10
10
  end
11
11
 
12
12
  it "can be updated" do
13
13
  af = described_class.new(0)
14
14
 
15
- af.get.should == 0
15
+ expect(af.get).to eq 0
16
16
  Thread.new do
17
17
  af.set(10)
18
18
  end
19
19
  sleep 0.6
20
- af.get.should == 10
20
+ expect(af.get).to eq 10
21
21
  end
22
22
 
23
23
  it "can be incremented" do
24
24
  af = described_class.new(0)
25
25
 
26
- af.get.should == 0
26
+ expect(af.get).to eq 0
27
27
  10.times do
28
28
  Thread.new do
29
29
  af.increment
30
30
  end
31
31
  end
32
32
  sleep 0.6
33
- af.get.should == 10
33
+ expect(af.get).to eq 10
34
34
  end
35
35
  end
@@ -4,7 +4,7 @@ require "bunny/concurrent/condition"
4
4
  describe Bunny::Concurrent::Condition do
5
5
 
6
6
  describe "#wait" do
7
- 100.times do |i|
7
+ 50.times do |i|
8
8
  it "blocks current thread until notified (take #{i})" do
9
9
  condition = described_class.new
10
10
  xs = []
@@ -12,19 +12,19 @@ describe Bunny::Concurrent::Condition do
12
12
  t = Thread.new do
13
13
  xs << :notified
14
14
 
15
- sleep 0.25
15
+ sleep 0.2
16
16
  condition.notify
17
17
  end
18
18
  t.abort_on_exception = true
19
19
 
20
20
  condition.wait
21
- xs.should == [:notified]
21
+ expect(xs).to eq [:notified]
22
22
  end
23
23
  end
24
24
  end
25
25
 
26
26
  describe "#notify" do
27
- 100.times do |i|
27
+ 50.times do |i|
28
28
  it "notifies a single thread waiting on the latch (take #{i})" do
29
29
  mutex = Mutex.new
30
30
  condition = described_class.new
@@ -42,10 +42,10 @@ describe Bunny::Concurrent::Condition do
42
42
  end
43
43
  t2.abort_on_exception = true
44
44
 
45
- sleep 0.25
45
+ sleep 0.2
46
46
  condition.notify
47
47
  sleep 0.5
48
- xs.should satisfy { |ys| ys.size == 1 && (ys.include?(:notified1) || ys.include?(:notified2)) }
48
+ expect(xs).to satisfy { |ys| ys.size == 1 && (ys.include?(:notified1) || ys.include?(:notified2)) }
49
49
  end
50
50
  end
51
51
  end
@@ -53,7 +53,7 @@ describe Bunny::Concurrent::Condition do
53
53
  describe "#notify_all" do
54
54
  let(:n) { 30 }
55
55
 
56
- 100.times do |i|
56
+ 50.times do |i|
57
57
  it "notifies all the threads waiting on the latch (take #{i})" do
58
58
  mutex = Mutex.new
59
59
  condition = described_class.new
@@ -74,7 +74,7 @@ describe Bunny::Concurrent::Condition do
74
74
  n.times do |i|
75
75
  item = "notified#{i + 1}".to_sym
76
76
 
77
- @xs.should include(item)
77
+ expect(@xs).to include item
78
78
  end
79
79
  end
80
80
  end
@@ -14,7 +14,7 @@ if defined?(JRUBY_VERSION)
14
14
  t.abort_on_exception = true
15
15
 
16
16
  v = subject.poll(500)
17
- v.should == 10
17
+ expect(v).to eq 10
18
18
  end
19
19
  end
20
20
 
@@ -28,7 +28,7 @@ if defined?(JRUBY_VERSION)
28
28
  end
29
29
  t.abort_on_exception = true
30
30
 
31
- lambda { subject.poll(500) }.should raise_error(::Timeout::Error)
31
+ expect { subject.poll(500) }.to raise_error(::Timeout::Error)
32
32
  end
33
33
  end
34
34
  end
@@ -6,42 +6,42 @@ unless ENV["CI"]
6
6
  50.times do |i|
7
7
  it "provides the same API as SortedSet for key operations (take #{i})" do
8
8
  s = described_class.new
9
- s.length.should == 0
9
+ expect(s.length).to eq 0
10
10
 
11
11
  s << 1
12
- s.length.should == 1
12
+ expect(s.length).to eq 1
13
13
  s << 1
14
- s.length.should == 1
14
+ expect(s.length).to eq 1
15
15
  s << 2
16
- s.length.should == 2
16
+ expect(s.length).to eq 2
17
17
  s << 3
18
- s.length.should == 3
18
+ expect(s.length).to eq 3
19
19
  s << 4
20
- s.length.should == 4
20
+ expect(s.length).to eq 4
21
21
  s << 4
22
22
  s << 4
23
23
  s << 4
24
- s.length.should == 4
24
+ expect(s.length).to eq 4
25
25
  s << 5
26
- s.length.should == 5
26
+ expect(s.length).to eq 5
27
27
  s << 5
28
28
  s << 5
29
29
  s << 5
30
- s.length.should == 5
30
+ expect(s.length).to eq 5
31
31
  s << 6
32
- s.length.should == 6
32
+ expect(s.length).to eq 6
33
33
  s << 7
34
- s.length.should == 7
34
+ expect(s.length).to eq 7
35
35
  s << 8
36
- s.length.should == 8
36
+ expect(s.length).to eq 8
37
37
  s.delete 8
38
- s.length.should == 7
38
+ expect(s.length).to eq 7
39
39
  s.delete_if { |i| i == 1 }
40
- s.length.should == 6
40
+ expect(s.length).to eq 6
41
41
  end
42
42
  it "synchronizes common operations needed by Bunny (take #{i})" do
43
43
  s = described_class.new
44
- s.length.should == 0
44
+ expect(s.length).to eq 0
45
45
 
46
46
  10.times do
47
47
  Thread.new do
@@ -66,7 +66,7 @@ unless ENV["CI"]
66
66
  end
67
67
  sleep 0.5
68
68
 
69
- s.length.should == 6
69
+ expect(s.length).to eq 6
70
70
  end
71
71
  end
72
72
  end
@@ -0,0 +1,39 @@
1
+ require 'bunny/channel'
2
+ require 'bunny/exchange'
3
+
4
+ module Bunny
5
+ describe Exchange do
6
+ context "recovery" do
7
+ it "recovers exchange bindings, unless already unbound" do
8
+ ch = instance_double(Bunny::Channel,
9
+ exchange_declare: nil,
10
+ register_exchange: nil)
11
+ src1 = Exchange.new(ch, "direct", "src1")
12
+ src2 = Exchange.new(ch, "direct", "src2")
13
+ src3 = Exchange.new(ch, "direct", "src3")
14
+ dst = Exchange.new(ch, "direct", "dst")
15
+
16
+ original_binds_count = 5
17
+ expected_rebinds_count = 3
18
+ expected_total_binds = original_binds_count + expected_rebinds_count
19
+ allow(ch).to receive(:exchange_bind).exactly(expected_total_binds).times
20
+
21
+ dst.bind(src1, routing_key: "abc")
22
+ dst.bind(src2, routing_key: "def")
23
+ dst.bind(src2, routing_key: "ghi")
24
+ dst.bind(src3, routing_key: "jkl")
25
+ dst.bind(src3, routing_key: "jkl", arguments: {"key" => "value"})
26
+
27
+ allow(ch).to receive(:exchange_unbind).twice
28
+ dst.unbind(src2, routing_key: "def")
29
+ dst.unbind(src3, routing_key: "jkl", arguments: {"key" => "value"})
30
+
31
+ expect(ch).to receive(:exchange_bind).with(src1, dst, routing_key: "abc")
32
+ expect(ch).to receive(:exchange_bind).with(src2, dst, routing_key: "ghi")
33
+ expect(ch).to receive(:exchange_bind).with(src3, dst, routing_key: "jkl")
34
+
35
+ dst.recover_from_network_failure
36
+ end
37
+ end
38
+ end
39
+ end
@@ -8,13 +8,13 @@ describe Bunny::VersionedDeliveryTag, "#stale?" do
8
8
 
9
9
  context "when delivery tag version < provided version" do
10
10
  it "returns true" do
11
- subject.stale?(2).should be_true
11
+ expect(subject.stale?(2)).to eq true
12
12
  end
13
13
  end
14
14
 
15
15
  context "when delivery tag version = provided version" do
16
16
  it "returns false" do
17
- subject.stale?(1).should be_false
17
+ expect(subject.stale?(1)).to eq false
18
18
  end
19
19
  end
20
20
 
@@ -22,7 +22,7 @@ describe Bunny::VersionedDeliveryTag, "#stale?" do
22
22
  it "returns true" do
23
23
  # this scenario is unrealistic but we still can
24
24
  # unit test it. MK.
25
- subject.stale?(0).should be_false
25
+ expect(subject.stale?(0)).to eq false
26
26
  end
27
27
  end
28
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bunny
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 2.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Duncan
@@ -12,44 +12,48 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2014-06-18 00:00:00.000000000 Z
15
+ date: 2020-09-11 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: amq-protocol
19
19
  requirement: !ruby/object:Gem::Requirement
20
20
  requirements:
21
- - - '>='
21
+ - - "~>"
22
22
  - !ruby/object:Gem::Version
23
- version: 1.9.2
23
+ version: '2.3'
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.3.1
24
27
  type: :runtime
25
28
  prerelease: false
26
29
  version_requirements: !ruby/object:Gem::Requirement
27
30
  requirements:
28
- - - '>='
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.3'
34
+ - - ">="
29
35
  - !ruby/object:Gem::Version
30
- version: 1.9.2
31
- description: Easy to use, feature complete Ruby client for RabbitMQ 2.0 and later
36
+ version: 2.3.1
37
+ description: Easy to use, feature complete Ruby client for RabbitMQ 3.3 and later
32
38
  versions.
33
39
  email:
34
- - celldee@gmail.com
35
- - eric@5stops.com
36
- - stastny@101ideas.cz
37
- - michael@novemberain.com
38
- - skaes@railsexpress.de
40
+ - michael.s.klishin@gmail.com
39
41
  executables: []
40
42
  extensions: []
41
43
  extra_rdoc_files:
42
44
  - README.md
43
45
  files:
44
- - .gitignore
45
- - .rspec
46
- - .ruby-version
47
- - .travis.yml
48
- - .yardopts
46
+ - ".github/ISSUE_TEMPLATE.md"
47
+ - ".gitignore"
48
+ - ".rspec"
49
+ - ".travis.yml"
50
+ - ".yardopts"
51
+ - CONTRIBUTING.md
49
52
  - ChangeLog.md
50
53
  - Gemfile
51
54
  - LICENSE
52
55
  - README.md
56
+ - Rakefile
53
57
  - benchmarks/basic_publish/with_128K_messages.rb
54
58
  - benchmarks/basic_publish/with_1k_messages.rb
55
59
  - benchmarks/basic_publish/with_4K_messages.rb
@@ -61,8 +65,13 @@ files:
61
65
  - benchmarks/queue_declare_bind_and_delete.rb
62
66
  - benchmarks/synchronized_sorted_set.rb
63
67
  - benchmarks/write_vs_write_nonblock.rb
64
- - bin/ci/before_build.sh
65
68
  - bunny.gemspec
69
+ - docker-compose.yml
70
+ - docker/Dockerfile
71
+ - docker/apt/preferences.d/erlang
72
+ - docker/apt/sources.list.d/bintray.rabbitmq.list
73
+ - docker/docker-entrypoint.sh
74
+ - docker/rabbitmq.conf
66
75
  - examples/connection/authentication_failure.rb
67
76
  - examples/connection/automatic_recovery_with_basic_get.rb
68
77
  - examples/connection/automatic_recovery_with_client_named_queues.rb
@@ -103,7 +112,6 @@ files:
103
112
  - lib/bunny/authentication/plain_mechanism_encoder.rb
104
113
  - lib/bunny/channel.rb
105
114
  - lib/bunny/channel_id_allocator.rb
106
- - lib/bunny/compatibility.rb
107
115
  - lib/bunny/concurrent/atomic_fixnum.rb
108
116
  - lib/bunny/concurrent/condition.rb
109
117
  - lib/bunny/concurrent/continuation_queue.rb
@@ -129,7 +137,6 @@ files:
129
137
  - lib/bunny/session.rb
130
138
  - lib/bunny/socket.rb
131
139
  - lib/bunny/ssl_socket.rb
132
- - lib/bunny/system_timer.rb
133
140
  - lib/bunny/test_kit.rb
134
141
  - lib/bunny/timeout.rb
135
142
  - lib/bunny/transport.rb
@@ -137,8 +144,8 @@ files:
137
144
  - lib/bunny/versioned_delivery_tag.rb
138
145
  - profiling/basic_publish/with_4K_messages.rb
139
146
  - repl
140
- - spec/compatibility/queue_declare_spec.rb
141
- - spec/compatibility/queue_declare_with_default_channel_spec.rb
147
+ - spec/config/enabled_plugins
148
+ - spec/config/rabbitmq.conf
142
149
  - spec/higher_level_api/integration/basic_ack_spec.rb
143
150
  - spec/higher_level_api/integration/basic_cancel_spec.rb
144
151
  - spec/higher_level_api/integration/basic_consume_spec.rb
@@ -147,16 +154,13 @@ files:
147
154
  - spec/higher_level_api/integration/basic_nack_spec.rb
148
155
  - spec/higher_level_api/integration/basic_publish_spec.rb
149
156
  - spec/higher_level_api/integration/basic_qos_spec.rb
150
- - spec/higher_level_api/integration/basic_recover_spec.rb
151
157
  - spec/higher_level_api/integration/basic_reject_spec.rb
152
158
  - spec/higher_level_api/integration/basic_return_spec.rb
153
159
  - spec/higher_level_api/integration/channel_close_spec.rb
154
160
  - spec/higher_level_api/integration/channel_open_spec.rb
155
- - spec/higher_level_api/integration/confirm_select_spec.rb
156
161
  - spec/higher_level_api/integration/connection_recovery_spec.rb
157
162
  - spec/higher_level_api/integration/connection_spec.rb
158
163
  - spec/higher_level_api/integration/connection_stop_spec.rb
159
- - spec/higher_level_api/integration/consistent_hash_exchange_spec.rb
160
164
  - spec/higher_level_api/integration/consumer_cancellation_notification_spec.rb
161
165
  - spec/higher_level_api/integration/dead_lettering_spec.rb
162
166
  - spec/higher_level_api/integration/exchange_bind_spec.rb
@@ -165,7 +169,6 @@ files:
165
169
  - spec/higher_level_api/integration/exchange_unbind_spec.rb
166
170
  - spec/higher_level_api/integration/exclusive_queue_spec.rb
167
171
  - spec/higher_level_api/integration/heartbeat_spec.rb
168
- - spec/higher_level_api/integration/merry_go_round_spec.rb
169
172
  - spec/higher_level_api/integration/message_properties_access_spec.rb
170
173
  - spec/higher_level_api/integration/predeclared_exchanges_spec.rb
171
174
  - spec/higher_level_api/integration/publisher_confirms_spec.rb
@@ -178,12 +181,16 @@ files:
178
181
  - spec/higher_level_api/integration/read_only_consumer_spec.rb
179
182
  - spec/higher_level_api/integration/sender_selected_distribution_spec.rb
180
183
  - spec/higher_level_api/integration/tls_connection_spec.rb
184
+ - spec/higher_level_api/integration/toxiproxy_spec.rb
181
185
  - spec/higher_level_api/integration/tx_commit_spec.rb
182
186
  - spec/higher_level_api/integration/tx_rollback_spec.rb
183
187
  - spec/higher_level_api/integration/with_channel_spec.rb
184
188
  - spec/issues/issue100_spec.rb
185
189
  - spec/issues/issue141_spec.rb
186
190
  - spec/issues/issue202_spec.rb
191
+ - spec/issues/issue224_spec.rb
192
+ - spec/issues/issue465_spec.rb
193
+ - spec/issues/issue549_spec.rb
187
194
  - spec/issues/issue78_spec.rb
188
195
  - spec/issues/issue83_spec.rb
189
196
  - spec/issues/issue97_attachment.json
@@ -191,23 +198,29 @@ files:
191
198
  - spec/lower_level_api/integration/basic_cancel_spec.rb
192
199
  - spec/lower_level_api/integration/basic_consume_spec.rb
193
200
  - spec/spec_helper.rb
201
+ - spec/stress/channel_close_stress_spec.rb
194
202
  - spec/stress/channel_open_stress_spec.rb
195
203
  - spec/stress/channel_open_stress_with_single_threaded_connection_spec.rb
196
204
  - spec/stress/concurrent_consumers_stress_spec.rb
197
205
  - spec/stress/concurrent_publishers_stress_spec.rb
198
206
  - spec/stress/connection_open_close_spec.rb
199
- - spec/stress/long_running_consumer_spec.rb
200
- - spec/tls/cacert.pem
201
- - spec/tls/client_cert.pem
207
+ - spec/stress/merry_go_round_spec.rb
208
+ - spec/tls/ca_certificate.pem
209
+ - spec/tls/ca_key.pem
210
+ - spec/tls/client_certificate.pem
202
211
  - spec/tls/client_key.pem
203
- - spec/tls/server_cert.pem
212
+ - spec/tls/generate-server-cert.sh
213
+ - spec/tls/server-openssl.cnf
214
+ - spec/tls/server.csr
215
+ - spec/tls/server_certificate.pem
204
216
  - spec/tls/server_key.pem
217
+ - spec/toxiproxy_helper.rb
205
218
  - spec/unit/bunny_spec.rb
206
219
  - spec/unit/concurrent/atomic_fixnum_spec.rb
207
220
  - spec/unit/concurrent/condition_spec.rb
208
221
  - spec/unit/concurrent/linked_continuation_queue_spec.rb
209
222
  - spec/unit/concurrent/synchronized_sorted_set_spec.rb
210
- - spec/unit/system_timer_spec.rb
223
+ - spec/unit/exchange_recovery_spec.rb
211
224
  - spec/unit/version_delivery_tag_spec.rb
212
225
  homepage: http://rubybunny.info
213
226
  licenses:
@@ -219,23 +232,22 @@ require_paths:
219
232
  - lib
220
233
  required_ruby_version: !ruby/object:Gem::Requirement
221
234
  requirements:
222
- - - '>='
235
+ - - ">="
223
236
  - !ruby/object:Gem::Version
224
- version: '0'
237
+ version: '2.2'
225
238
  required_rubygems_version: !ruby/object:Gem::Requirement
226
239
  requirements:
227
- - - '>='
240
+ - - ">="
228
241
  - !ruby/object:Gem::Version
229
242
  version: '0'
230
243
  requirements: []
231
- rubyforge_project:
232
- rubygems_version: 2.2.2
244
+ rubygems_version: 3.1.2
233
245
  signing_key:
234
246
  specification_version: 4
235
247
  summary: Popular easy to use Ruby client for RabbitMQ
236
248
  test_files:
237
- - spec/compatibility/queue_declare_spec.rb
238
- - spec/compatibility/queue_declare_with_default_channel_spec.rb
249
+ - spec/config/enabled_plugins
250
+ - spec/config/rabbitmq.conf
239
251
  - spec/higher_level_api/integration/basic_ack_spec.rb
240
252
  - spec/higher_level_api/integration/basic_cancel_spec.rb
241
253
  - spec/higher_level_api/integration/basic_consume_spec.rb
@@ -244,16 +256,13 @@ test_files:
244
256
  - spec/higher_level_api/integration/basic_nack_spec.rb
245
257
  - spec/higher_level_api/integration/basic_publish_spec.rb
246
258
  - spec/higher_level_api/integration/basic_qos_spec.rb
247
- - spec/higher_level_api/integration/basic_recover_spec.rb
248
259
  - spec/higher_level_api/integration/basic_reject_spec.rb
249
260
  - spec/higher_level_api/integration/basic_return_spec.rb
250
261
  - spec/higher_level_api/integration/channel_close_spec.rb
251
262
  - spec/higher_level_api/integration/channel_open_spec.rb
252
- - spec/higher_level_api/integration/confirm_select_spec.rb
253
263
  - spec/higher_level_api/integration/connection_recovery_spec.rb
254
264
  - spec/higher_level_api/integration/connection_spec.rb
255
265
  - spec/higher_level_api/integration/connection_stop_spec.rb
256
- - spec/higher_level_api/integration/consistent_hash_exchange_spec.rb
257
266
  - spec/higher_level_api/integration/consumer_cancellation_notification_spec.rb
258
267
  - spec/higher_level_api/integration/dead_lettering_spec.rb
259
268
  - spec/higher_level_api/integration/exchange_bind_spec.rb
@@ -262,7 +271,6 @@ test_files:
262
271
  - spec/higher_level_api/integration/exchange_unbind_spec.rb
263
272
  - spec/higher_level_api/integration/exclusive_queue_spec.rb
264
273
  - spec/higher_level_api/integration/heartbeat_spec.rb
265
- - spec/higher_level_api/integration/merry_go_round_spec.rb
266
274
  - spec/higher_level_api/integration/message_properties_access_spec.rb
267
275
  - spec/higher_level_api/integration/predeclared_exchanges_spec.rb
268
276
  - spec/higher_level_api/integration/publisher_confirms_spec.rb
@@ -275,12 +283,16 @@ test_files:
275
283
  - spec/higher_level_api/integration/read_only_consumer_spec.rb
276
284
  - spec/higher_level_api/integration/sender_selected_distribution_spec.rb
277
285
  - spec/higher_level_api/integration/tls_connection_spec.rb
286
+ - spec/higher_level_api/integration/toxiproxy_spec.rb
278
287
  - spec/higher_level_api/integration/tx_commit_spec.rb
279
288
  - spec/higher_level_api/integration/tx_rollback_spec.rb
280
289
  - spec/higher_level_api/integration/with_channel_spec.rb
281
290
  - spec/issues/issue100_spec.rb
282
291
  - spec/issues/issue141_spec.rb
283
292
  - spec/issues/issue202_spec.rb
293
+ - spec/issues/issue224_spec.rb
294
+ - spec/issues/issue465_spec.rb
295
+ - spec/issues/issue549_spec.rb
284
296
  - spec/issues/issue78_spec.rb
285
297
  - spec/issues/issue83_spec.rb
286
298
  - spec/issues/issue97_attachment.json
@@ -288,21 +300,27 @@ test_files:
288
300
  - spec/lower_level_api/integration/basic_cancel_spec.rb
289
301
  - spec/lower_level_api/integration/basic_consume_spec.rb
290
302
  - spec/spec_helper.rb
303
+ - spec/stress/channel_close_stress_spec.rb
291
304
  - spec/stress/channel_open_stress_spec.rb
292
305
  - spec/stress/channel_open_stress_with_single_threaded_connection_spec.rb
293
306
  - spec/stress/concurrent_consumers_stress_spec.rb
294
307
  - spec/stress/concurrent_publishers_stress_spec.rb
295
308
  - spec/stress/connection_open_close_spec.rb
296
- - spec/stress/long_running_consumer_spec.rb
297
- - spec/tls/cacert.pem
298
- - spec/tls/client_cert.pem
309
+ - spec/stress/merry_go_round_spec.rb
310
+ - spec/tls/ca_certificate.pem
311
+ - spec/tls/ca_key.pem
312
+ - spec/tls/client_certificate.pem
299
313
  - spec/tls/client_key.pem
300
- - spec/tls/server_cert.pem
314
+ - spec/tls/generate-server-cert.sh
315
+ - spec/tls/server-openssl.cnf
316
+ - spec/tls/server.csr
317
+ - spec/tls/server_certificate.pem
301
318
  - spec/tls/server_key.pem
319
+ - spec/toxiproxy_helper.rb
302
320
  - spec/unit/bunny_spec.rb
303
321
  - spec/unit/concurrent/atomic_fixnum_spec.rb
304
322
  - spec/unit/concurrent/condition_spec.rb
305
323
  - spec/unit/concurrent/linked_continuation_queue_spec.rb
306
324
  - spec/unit/concurrent/synchronized_sorted_set_spec.rb
307
- - spec/unit/system_timer_spec.rb
325
+ - spec/unit/exchange_recovery_spec.rb
308
326
  - spec/unit/version_delivery_tag_spec.rb