beetle 0.3.0.rc.5 → 0.3.0.rc.6

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/beetle.gemspec CHANGED
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
34
34
  s.specification_version = 3
35
35
  s.add_runtime_dependency("uuid4r", [">= 0.1.2"])
36
36
  s.add_runtime_dependency("bunny", ["= 0.7.8"])
37
- s.add_runtime_dependency("redis", ["= 2.2.0"])
37
+ s.add_runtime_dependency("redis", ["= 2.2.2"])
38
38
  s.add_runtime_dependency("hiredis", ["= 0.3.2"])
39
39
  s.add_runtime_dependency("amq-client", ["= 0.8.3"])
40
40
  s.add_runtime_dependency("amq-protocol", ["= 0.8.1"])
@@ -44,8 +44,6 @@ Gem::Specification.new do |s|
44
44
  s.add_development_dependency("rake", [">= 0.8.7"])
45
45
  s.add_development_dependency("mocha", [">= 0"])
46
46
  s.add_development_dependency("rcov", [">= 0"])
47
- s.add_development_dependency("redgreen", [">= 0"])
48
- s.add_development_dependency("wirble", [">= 0"])
49
47
  s.add_development_dependency("cucumber", [">= 0.7.2"])
50
48
  s.add_development_dependency("daemon_controller", [">= 0"])
51
49
  end
@@ -39,7 +39,7 @@ module TestDaemons
39
39
  end
40
40
 
41
41
  def restart(delay=1)
42
- redis.shutdown rescue Errno::ECONNREFUSED
42
+ redis.shutdown
43
43
  sleep delay
44
44
  `redis-server #{config_filename}`
45
45
  end
@@ -50,4 +50,23 @@ class Redis #:nodoc:
50
50
  info = info_with_rescue
51
51
  info["role"] == "slave" && info["master_host"] == host && info["master_port"] == port.to_s
52
52
  end
53
+
54
+ # redis 2.2.2 shutdown implementation does not disconnect from the redis server.
55
+ # this leaves the connection in an inconsistent state and causes the next command to silently fail.
56
+ # this in turn breaks our cucumber test scenarios.
57
+ # fix this here, until a new version is released which fixes the problem.
58
+
59
+ alias_method :broken_shutdown, :shutdown
60
+
61
+ # Synchronously save the dataset to disk and then shut down the server.
62
+ def shutdown
63
+ synchronize do
64
+ begin
65
+ @client.call_without_reply [:shutdown]
66
+ ensure
67
+ @client.disconnect
68
+ end
69
+ end
70
+ end
71
+
53
72
  end
@@ -1,3 +1,3 @@
1
1
  module Beetle
2
- VERSION = "0.3.0.rc.5"
2
+ VERSION = "0.3.0.rc.6"
3
3
  end
data/script/console~ ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env ruby
2
+ $:.unshift(File.expand_path("../lib",__FILE__))
@@ -60,4 +60,19 @@ module Beetle
60
60
  assert defined?(Hiredis)
61
61
  end
62
62
  end
63
+
64
+ class BrokenRedisShutdownTest < Test::Unit::TestCase
65
+ def setup
66
+ @r = Redis.new(:host => "localhost", :port => 6390)
67
+ end
68
+
69
+ # if this test fails after upgrading redis, we can probably remove
70
+ # our custom shutdown method from redis_ext.rb
71
+ test "redis shutdown implementation is broken" do
72
+ @r.client.expects(:call_without_reply).with([:shutdown]).once
73
+ @r.client.expects(:disconnect).never
74
+ @r.broken_shutdown
75
+ end
76
+ end
77
+
63
78
  end
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.3.0.rc.5
4
+ version: 0.3.0.rc.6
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -13,11 +13,12 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2011-10-21 00:00:00.000000000Z
16
+ date: 2011-10-22 00:00:00.000000000 +02:00
17
+ default_executable: beetle
17
18
  dependencies:
18
19
  - !ruby/object:Gem::Dependency
19
20
  name: uuid4r
20
- requirement: &2156300280 !ruby/object:Gem::Requirement
21
+ requirement: &2151634120 !ruby/object:Gem::Requirement
21
22
  none: false
22
23
  requirements:
23
24
  - - ! '>='
@@ -25,10 +26,10 @@ dependencies:
25
26
  version: 0.1.2
26
27
  type: :runtime
27
28
  prerelease: false
28
- version_requirements: *2156300280
29
+ version_requirements: *2151634120
29
30
  - !ruby/object:Gem::Dependency
30
31
  name: bunny
31
- requirement: &2156298900 !ruby/object:Gem::Requirement
32
+ requirement: &2151633580 !ruby/object:Gem::Requirement
32
33
  none: false
33
34
  requirements:
34
35
  - - =
@@ -36,21 +37,21 @@ dependencies:
36
37
  version: 0.7.8
37
38
  type: :runtime
38
39
  prerelease: false
39
- version_requirements: *2156298900
40
+ version_requirements: *2151633580
40
41
  - !ruby/object:Gem::Dependency
41
42
  name: redis
42
- requirement: &2156289280 !ruby/object:Gem::Requirement
43
+ requirement: &2151633100 !ruby/object:Gem::Requirement
43
44
  none: false
44
45
  requirements:
45
46
  - - =
46
47
  - !ruby/object:Gem::Version
47
- version: 2.2.0
48
+ version: 2.2.2
48
49
  type: :runtime
49
50
  prerelease: false
50
- version_requirements: *2156289280
51
+ version_requirements: *2151633100
51
52
  - !ruby/object:Gem::Dependency
52
53
  name: hiredis
53
- requirement: &2156282480 !ruby/object:Gem::Requirement
54
+ requirement: &2151632560 !ruby/object:Gem::Requirement
54
55
  none: false
55
56
  requirements:
56
57
  - - =
@@ -58,10 +59,10 @@ dependencies:
58
59
  version: 0.3.2
59
60
  type: :runtime
60
61
  prerelease: false
61
- version_requirements: *2156282480
62
+ version_requirements: *2151632560
62
63
  - !ruby/object:Gem::Dependency
63
64
  name: amq-client
64
- requirement: &2156280400 !ruby/object:Gem::Requirement
65
+ requirement: &2151632020 !ruby/object:Gem::Requirement
65
66
  none: false
66
67
  requirements:
67
68
  - - =
@@ -69,10 +70,10 @@ dependencies:
69
70
  version: 0.8.3
70
71
  type: :runtime
71
72
  prerelease: false
72
- version_requirements: *2156280400
73
+ version_requirements: *2151632020
73
74
  - !ruby/object:Gem::Dependency
74
75
  name: amq-protocol
75
- requirement: &2156276300 !ruby/object:Gem::Requirement
76
+ requirement: &2151631540 !ruby/object:Gem::Requirement
76
77
  none: false
77
78
  requirements:
78
79
  - - =
@@ -80,10 +81,10 @@ dependencies:
80
81
  version: 0.8.1
81
82
  type: :runtime
82
83
  prerelease: false
83
- version_requirements: *2156276300
84
+ version_requirements: *2151631540
84
85
  - !ruby/object:Gem::Dependency
85
86
  name: amqp
86
- requirement: &2156268980 !ruby/object:Gem::Requirement
87
+ requirement: &2151631000 !ruby/object:Gem::Requirement
87
88
  none: false
88
89
  requirements:
89
90
  - - =
@@ -91,10 +92,10 @@ dependencies:
91
92
  version: 0.8.0
92
93
  type: :runtime
93
94
  prerelease: false
94
- version_requirements: *2156268980
95
+ version_requirements: *2151631000
95
96
  - !ruby/object:Gem::Dependency
96
97
  name: activesupport
97
- requirement: &2156253980 !ruby/object:Gem::Requirement
98
+ requirement: &2151630480 !ruby/object:Gem::Requirement
98
99
  none: false
99
100
  requirements:
100
101
  - - ! '>='
@@ -102,10 +103,10 @@ dependencies:
102
103
  version: 2.3.4
103
104
  type: :runtime
104
105
  prerelease: false
105
- version_requirements: *2156253980
106
+ version_requirements: *2151630480
106
107
  - !ruby/object:Gem::Dependency
107
108
  name: daemons
108
- requirement: &2156249880 !ruby/object:Gem::Requirement
109
+ requirement: &2151629940 !ruby/object:Gem::Requirement
109
110
  none: false
110
111
  requirements:
111
112
  - - ! '>='
@@ -113,10 +114,10 @@ dependencies:
113
114
  version: 1.0.10
114
115
  type: :runtime
115
116
  prerelease: false
116
- version_requirements: *2156249880
117
+ version_requirements: *2151629940
117
118
  - !ruby/object:Gem::Dependency
118
119
  name: rake
119
- requirement: &2156225200 !ruby/object:Gem::Requirement
120
+ requirement: &2151629420 !ruby/object:Gem::Requirement
120
121
  none: false
121
122
  requirements:
122
123
  - - ! '>='
@@ -124,10 +125,10 @@ dependencies:
124
125
  version: 0.8.7
125
126
  type: :development
126
127
  prerelease: false
127
- version_requirements: *2156225200
128
+ version_requirements: *2151629420
128
129
  - !ruby/object:Gem::Dependency
129
130
  name: mocha
130
- requirement: &2156214080 !ruby/object:Gem::Requirement
131
+ requirement: &2151628940 !ruby/object:Gem::Requirement
131
132
  none: false
132
133
  requirements:
133
134
  - - ! '>='
@@ -135,10 +136,10 @@ dependencies:
135
136
  version: '0'
136
137
  type: :development
137
138
  prerelease: false
138
- version_requirements: *2156214080
139
+ version_requirements: *2151628940
139
140
  - !ruby/object:Gem::Dependency
140
141
  name: rcov
141
- requirement: &2156209740 !ruby/object:Gem::Requirement
142
+ requirement: &2151628460 !ruby/object:Gem::Requirement
142
143
  none: false
143
144
  requirements:
144
145
  - - ! '>='
@@ -146,32 +147,10 @@ dependencies:
146
147
  version: '0'
147
148
  type: :development
148
149
  prerelease: false
149
- version_requirements: *2156209740
150
- - !ruby/object:Gem::Dependency
151
- name: redgreen
152
- requirement: &2156172620 !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ! '>='
156
- - !ruby/object:Gem::Version
157
- version: '0'
158
- type: :development
159
- prerelease: false
160
- version_requirements: *2156172620
161
- - !ruby/object:Gem::Dependency
162
- name: wirble
163
- requirement: &2156171940 !ruby/object:Gem::Requirement
164
- none: false
165
- requirements:
166
- - - ! '>='
167
- - !ruby/object:Gem::Version
168
- version: '0'
169
- type: :development
170
- prerelease: false
171
- version_requirements: *2156171940
150
+ version_requirements: *2151628460
172
151
  - !ruby/object:Gem::Dependency
173
152
  name: cucumber
174
- requirement: &2156171120 !ruby/object:Gem::Requirement
153
+ requirement: &2151627860 !ruby/object:Gem::Requirement
175
154
  none: false
176
155
  requirements:
177
156
  - - ! '>='
@@ -179,10 +158,10 @@ dependencies:
179
158
  version: 0.7.2
180
159
  type: :development
181
160
  prerelease: false
182
- version_requirements: *2156171120
161
+ version_requirements: *2151627860
183
162
  - !ruby/object:Gem::Dependency
184
163
  name: daemon_controller
185
- requirement: &2156167680 !ruby/object:Gem::Requirement
164
+ requirement: &2151627360 !ruby/object:Gem::Requirement
186
165
  none: false
187
166
  requirements:
188
167
  - - ! '>='
@@ -190,7 +169,7 @@ dependencies:
190
169
  version: '0'
191
170
  type: :development
192
171
  prerelease: false
193
- version_requirements: *2156167680
172
+ version_requirements: *2151627360
194
173
  description: A highly available, reliable messaging infrastructure
195
174
  email: opensource@xing.com
196
175
  executables:
@@ -245,6 +224,7 @@ files:
245
224
  - features/support/test_daemons/redis_configuration_client.rb
246
225
  - features/support/test_daemons/redis_configuration_server.rb
247
226
  - script/console
227
+ - script/console~
248
228
  - script/start_rabbit
249
229
  - beetle.gemspec
250
230
  - Rakefile
@@ -271,6 +251,7 @@ files:
271
251
  - test/colorized_test_output.rb
272
252
  - test/test_helper.rb
273
253
  - bin/beetle
254
+ has_rdoc: true
274
255
  homepage: http://xing.github.com/beetle/
275
256
  licenses: []
276
257
  post_install_message: ! " *********************************************************************************************\n\n
@@ -295,7 +276,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
295
276
  version: 1.3.7
296
277
  requirements: []
297
278
  rubyforge_project:
298
- rubygems_version: 1.8.10
279
+ rubygems_version: 1.6.2
299
280
  signing_key:
300
281
  specification_version: 3
301
282
  summary: High Availability AMQP Messaging with Redundant Queues