beetle 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
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