beetle 0.4.0 → 0.4.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4440f43f6c12064520bcf671c092da94206d83c4
4
- data.tar.gz: 8f23d433a36db5942fe08b15a2024f8d979cc28b
3
+ metadata.gz: 8bc8a9a807e4dc4700014a8141bc0655a148f640
4
+ data.tar.gz: 8edb6370ac5ffce29a3413e92e95b1c77a64f5e0
5
5
  SHA512:
6
- metadata.gz: 975fc5dbb57fdf533628a11ae7f77518945e548e7f4c041961663928efa438329d178b3fc7724af56f890542144578b4201318708352ab23418c44baa440e91b
7
- data.tar.gz: 2b641c7cb51d17243454f5a52ace536825dda13f211f1e37660cb7d6f014d4cf6ba1e5d695de6ea126e2af795c78212d8afc3726c427d40361fcfc02553a3406
6
+ metadata.gz: 3663209bba33abb84e9f83b202b86887487b913d9d3314f19f872fdebd8366b8da6fbe9906b8638854c7e47f55b95af5c72357f5f9d0d68820c3891a70cc17db
7
+ data.tar.gz: 0627f275d36fa6b18abe866405ade5dcffd8bbb4f48df360aacf94c0b0743394feef73432c19efdaa8c92b3e0f7bdb6d124b190f2c7e4ebe2c23727c05666b39
data/README.rdoc CHANGED
@@ -87,7 +87,6 @@ At runtime, Beetle will use
87
87
 
88
88
  For development, you'll need
89
89
  * {mocha}[http://github.com/floehopper/mocha]
90
- * {rcov}[http://github.com/relevance/rcov] (for ruby 1.8.7)
91
90
  * {cucumber}[http://github.com/aslakhellesoy/cucumber]
92
91
  * {daemon_controller}[http://github.com/FooBarWidget/daemon_controller]
93
92
 
@@ -105,7 +104,7 @@ For tests, you'll need
105
104
 
106
105
  You can find out more about our work on our {dev blog}[http://devblog.xing.com].
107
106
 
108
- Copyright (c) 2010 {XING AG}[http://www.xing.com/]
107
+ Copyright (c) 2010-2015 {XING AG}[http://www.xing.com/]
109
108
 
110
109
  Released under the MIT license. For full details see MIT-LICENSE included in this
111
110
  distribution.
data/RELEASE_NOTES.rdoc CHANGED
@@ -1,5 +1,8 @@
1
1
  = Release Notes
2
2
 
3
+ == Version 0.4.1
4
+ * Require newer bunny version (0.7.10) to fix publishing of messages larger than frame_max
5
+
3
6
  == Version 0.4.0
4
7
  * Added optional dead lettering feature to mimic RabbitMQ 2.x requeueing behaviour on RabbitMQ 3.x
5
8
 
data/Rakefile CHANGED
@@ -108,3 +108,7 @@ RDoc::Task.new do |rdoc|
108
108
  rdoc.rdoc_files.include('MIT-LICENSE')
109
109
  rdoc.rdoc_files.include('lib/**/*.rb')
110
110
  end
111
+
112
+ task :clean do
113
+ system('rm -f tmp/*.output tmp/*.log tmp/master/* tmp/slave/* tmp/*lock tmp/*pid')
114
+ end
data/beetle.gemspec CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
 
24
24
  s.specification_version = 3
25
25
  s.add_runtime_dependency("uuid4r", [">= 0.1.2"])
26
- s.add_runtime_dependency("bunny", ["= 0.7.9"])
26
+ s.add_runtime_dependency("bunny", ["~> 0.7.10"])
27
27
  s.add_runtime_dependency("redis", [">= 2.2.2", "< 3.2"])
28
28
  s.add_runtime_dependency("hiredis", [">= 0.4.5", "< 0.6"])
29
29
  s.add_runtime_dependency("amq-client", ["= 1.0.2"])
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
31
31
  s.add_runtime_dependency("amqp", ["= 1.0.2"])
32
32
  s.add_runtime_dependency("activesupport", [">= 2.3.4"])
33
33
  s.add_runtime_dependency("eventmachine_httpserver", [">= 0.2.1"])
34
- s.add_runtime_dependency("daemons", [">= 1.0.10"])
34
+ s.add_runtime_dependency("daemons", [">= 1.1.9"])
35
35
 
36
36
  s.add_development_dependency("webmock", [">= 1.21.0"])
37
37
  end
@@ -41,12 +41,13 @@ module TestDaemons
41
41
  def restart(delay = 0)
42
42
  create_dir
43
43
  create_config
44
- daemon_controller.stop
44
+ daemon_controller.stop if running?
45
45
  sleep delay
46
46
  daemon_controller.start
47
47
  end
48
48
 
49
49
  def stop
50
+ return unless running?
50
51
  # TODO: Might need to be moved into RedisConfigurationServer
51
52
  # 10.times do
52
53
  # break if (redis.info["bgsave_in_progress"]) == 0 rescue false
@@ -178,10 +179,12 @@ module TestDaemons
178
179
  @daemon_controller ||= DaemonController.new(
179
180
  :identifier => "Redis test server #{name}",
180
181
  :start_command => "redis-server #{config_filename}",
182
+ :stop_command => "redis-cli -p #{port} shutdown nosave",
181
183
  :ping_command => lambda { running? && available? },
182
184
  :pid_file => pid_file,
183
185
  :log_file => log_file,
184
- :start_timeout => 5
186
+ :start_timeout => 20,
187
+ :stop_timeout => 20,
185
188
  )
186
189
  end
187
190
  end
@@ -1,3 +1,3 @@
1
1
  module Beetle
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
@@ -837,5 +837,16 @@ module Beetle
837
837
  assert_equal "foo", message.routing_key
838
838
  assert_equal "foo", message.key # alias
839
839
  end
840
+
841
+ test "returns the routing key for a dead lettered message" do
842
+ header = header_with_params({})
843
+ header.stubs(:routing_key).returns("bar")
844
+ header.attributes.merge!(headers: {"x-death" => [{"routing-keys" => ["foo"]}]})
845
+
846
+ message = Message.new("somequeue", header, "")
847
+ assert_equal "foo", message.routing_key
848
+ assert_equal "foo", message.key # alias
849
+ end
850
+
840
851
  end
841
852
  end
@@ -218,6 +218,37 @@ module Beetle
218
218
  end
219
219
  end
220
220
 
221
+
222
+ class DeadLetterrngCallBackExecutionTest < MiniTest::Unit::TestCase
223
+ def setup
224
+ @client = Client.new
225
+ @client.config.dead_lettering_enabled = true
226
+ @queue = "somequeue"
227
+ @client.register_queue(@queue)
228
+ @sub = @client.send(:subscriber)
229
+ @exception = Exception.new "murks"
230
+ @handler = Handler.create(lambda{|*args| raise @exception})
231
+ # handler method 'processing_completed' should be called under all circumstances
232
+ @handler.expects(:processing_completed).once
233
+ @callback = @sub.send(:create_subscription_callback, "my myessage", @queue, @handler, :exceptions => 1)
234
+ end
235
+
236
+ def teardown
237
+ @client.config.dead_lettering_enabled = false
238
+ end
239
+
240
+ test "should call reject on the message header when processing the handler returns true on reject? if dead_lettering has been enabled" do
241
+ header = header_with_params({})
242
+ result = mock("result")
243
+ result.expects(:reject?).returns(true)
244
+ Message.any_instance.expects(:process).returns(result)
245
+ @sub.expects(:sleep).never
246
+ header.expects(:reject).with(:requeue => false)
247
+ @callback.call(header, 'foo')
248
+ end
249
+
250
+ end
251
+
221
252
  class CallBackExecutionTest < MiniTest::Unit::TestCase
222
253
  def setup
223
254
  client = Client.new
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beetle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Kaes
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2015-07-14 00:00:00.000000000 Z
15
+ date: 2015-07-16 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: uuid4r
@@ -32,16 +32,16 @@ dependencies:
32
32
  name: bunny
33
33
  requirement: !ruby/object:Gem::Requirement
34
34
  requirements:
35
- - - '='
35
+ - - "~>"
36
36
  - !ruby/object:Gem::Version
37
- version: 0.7.9
37
+ version: 0.7.10
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  requirements:
42
- - - '='
42
+ - - "~>"
43
43
  - !ruby/object:Gem::Version
44
- version: 0.7.9
44
+ version: 0.7.10
45
45
  - !ruby/object:Gem::Dependency
46
46
  name: redis
47
47
  requirement: !ruby/object:Gem::Requirement
@@ -158,14 +158,14 @@ dependencies:
158
158
  requirements:
159
159
  - - ">="
160
160
  - !ruby/object:Gem::Version
161
- version: 1.0.10
161
+ version: 1.1.9
162
162
  type: :runtime
163
163
  prerelease: false
164
164
  version_requirements: !ruby/object:Gem::Requirement
165
165
  requirements:
166
166
  - - ">="
167
167
  - !ruby/object:Gem::Version
168
- version: 1.0.10
168
+ version: 1.1.9
169
169
  - !ruby/object:Gem::Dependency
170
170
  name: webmock
171
171
  requirement: !ruby/object:Gem::Requirement
@@ -284,7 +284,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
284
284
  version: 1.3.7
285
285
  requirements: []
286
286
  rubyforge_project:
287
- rubygems_version: 2.4.5
287
+ rubygems_version: 2.4.7
288
288
  signing_key:
289
289
  specification_version: 3
290
290
  summary: High Availability AMQP Messaging with Redundant Queues