gene_pool 1.1.0 → 1.1.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.
- data/History.txt +11 -0
- data/VERSION +1 -1
- data/gene_pool.gemspec +2 -2
- data/lib/gene_pool.rb +1 -1
- data/test/gene_pool_test.rb +28 -28
- metadata +3 -3
data/History.txt
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
=== 1.1.1 / 2010-11-18
|
|
2
|
+
|
|
3
|
+
* Bug fixes
|
|
4
|
+
* In with_connection_auto_retry, add check for e.message =~ /expired/ as JRuby exception won't be a
|
|
5
|
+
Timeout::Error at this point (http://jira.codehaus.org/browse/JRUBY-5194)
|
|
6
|
+
|
|
7
|
+
=== 1.1.0 / 2010-11-11
|
|
8
|
+
|
|
9
|
+
* 1 enhancement:
|
|
10
|
+
* Added with_connection_auto_retry to automatically retry yield block if a non-timeout exception occurs
|
|
11
|
+
|
|
1
12
|
=== 1.0.1 / 2010-09-12
|
|
2
13
|
|
|
3
14
|
* Bug Fixes
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.1.
|
|
1
|
+
1.1.1
|
data/gene_pool.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{gene_pool}
|
|
8
|
-
s.version = "1.1.
|
|
8
|
+
s.version = "1.1.1"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Brad Pardee"]
|
|
12
|
-
s.date = %q{2010-11-
|
|
12
|
+
s.date = %q{2010-11-18}
|
|
13
13
|
s.description = %q{Generic pooling library for creating a connection pool}
|
|
14
14
|
s.email = %q{bradpardee@gmail.com}
|
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/gene_pool.rb
CHANGED
data/test/gene_pool_test.rb
CHANGED
|
@@ -12,16 +12,13 @@ class GenePool
|
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
class DummyConnection
|
|
15
|
+
attr_reader :count
|
|
15
16
|
def initialize(count, sleep_time=nil)
|
|
16
17
|
sleep sleep_time if sleep_time
|
|
17
18
|
@count = count
|
|
18
19
|
@closed = false
|
|
19
20
|
end
|
|
20
21
|
|
|
21
|
-
def to_i
|
|
22
|
-
@count
|
|
23
|
-
end
|
|
24
|
-
|
|
25
22
|
def to_s
|
|
26
23
|
@count.to_s
|
|
27
24
|
end
|
|
@@ -63,7 +60,6 @@ class GenePoolTest < Test::Unit::TestCase
|
|
|
63
60
|
@logger = nil
|
|
64
61
|
# Override sleep in individual tests
|
|
65
62
|
@sleep = nil
|
|
66
|
-
@timeout = 5
|
|
67
63
|
counter = 0
|
|
68
64
|
mutex = Mutex.new
|
|
69
65
|
@gene_pool = GenePool.new(:name => 'TestGenePool',
|
|
@@ -74,9 +70,7 @@ class GenePoolTest < Test::Unit::TestCase
|
|
|
74
70
|
mutex.synchronize do
|
|
75
71
|
count = counter += 1
|
|
76
72
|
end
|
|
77
|
-
|
|
78
|
-
DummyConnection.new(count, @sleep)
|
|
79
|
-
end
|
|
73
|
+
DummyConnection.new(count, @sleep)
|
|
80
74
|
end
|
|
81
75
|
end
|
|
82
76
|
|
|
@@ -90,7 +84,7 @@ class GenePoolTest < Test::Unit::TestCase
|
|
|
90
84
|
should 'create 1 connection' do
|
|
91
85
|
(1..3).each do |i|
|
|
92
86
|
@gene_pool.with_connection do |conn|
|
|
93
|
-
assert_equal conn.
|
|
87
|
+
assert_equal conn.count, 1
|
|
94
88
|
assert_equal 1, @gene_pool.connections.size
|
|
95
89
|
assert_equal 1, @gene_pool.checked_out.size
|
|
96
90
|
assert_same conn, @gene_pool.connections[0]
|
|
@@ -104,8 +98,8 @@ class GenePoolTest < Test::Unit::TestCase
|
|
|
104
98
|
conn1 = @gene_pool.checkout
|
|
105
99
|
(1..3).each do |i|
|
|
106
100
|
@gene_pool.with_connection do |conn2|
|
|
107
|
-
assert_equal 1, conn1.
|
|
108
|
-
assert_equal 2, conn2.
|
|
101
|
+
assert_equal 1, conn1.count
|
|
102
|
+
assert_equal 2, conn2.count
|
|
109
103
|
assert_equal 2, @gene_pool.connections.size
|
|
110
104
|
assert_equal 2, @gene_pool.checked_out.size
|
|
111
105
|
assert_same conn1, @gene_pool.connections[0]
|
|
@@ -123,9 +117,9 @@ class GenePoolTest < Test::Unit::TestCase
|
|
|
123
117
|
@gene_pool.with_connection do |conn1|
|
|
124
118
|
conn2 = @gene_pool.renew(conn1)
|
|
125
119
|
conn3 = @gene_pool.renew(conn2)
|
|
126
|
-
assert_equal 1, conn1.
|
|
127
|
-
assert_equal 2, conn2.
|
|
128
|
-
assert_equal 3, conn3.
|
|
120
|
+
assert_equal 1, conn1.count
|
|
121
|
+
assert_equal 2, conn2.count
|
|
122
|
+
assert_equal 3, conn3.count
|
|
129
123
|
assert_equal 1, @gene_pool.connections.size
|
|
130
124
|
assert_equal 1, @gene_pool.checked_out.size
|
|
131
125
|
end
|
|
@@ -167,12 +161,10 @@ class GenePoolTest < Test::Unit::TestCase
|
|
|
167
161
|
should 'handle aborted connection' do
|
|
168
162
|
@gene_pool.with_connection do |conn1|
|
|
169
163
|
@sleep = 2
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
rescue Timeout::Error => e
|
|
175
|
-
#pass
|
|
164
|
+
e = assert_raises Timeout::Error do
|
|
165
|
+
Timeout.timeout(1) do
|
|
166
|
+
@gene_pool.with_connection { |conn2| }
|
|
167
|
+
end
|
|
176
168
|
end
|
|
177
169
|
assert_equal 1, @gene_pool.connections.size
|
|
178
170
|
assert_equal 1, @gene_pool.checked_out.size
|
|
@@ -182,7 +174,10 @@ class GenePoolTest < Test::Unit::TestCase
|
|
|
182
174
|
# Do another test just to be sure nothings hosed
|
|
183
175
|
@sleep = nil
|
|
184
176
|
@gene_pool.with_connection do |conn1|
|
|
185
|
-
assert 1, conn1.
|
|
177
|
+
assert 1, conn1.count
|
|
178
|
+
@gene_pool.with_connection do |conn2|
|
|
179
|
+
assert 3, conn2.count
|
|
180
|
+
end
|
|
186
181
|
end
|
|
187
182
|
end
|
|
188
183
|
|
|
@@ -192,7 +187,7 @@ class GenePoolTest < Test::Unit::TestCase
|
|
|
192
187
|
(1..pool_size).each do |i|
|
|
193
188
|
c = @gene_pool.checkout
|
|
194
189
|
conns << c
|
|
195
|
-
assert_equal i, c.
|
|
190
|
+
assert_equal i, c.count
|
|
196
191
|
assert_equal i, @gene_pool.connections.size
|
|
197
192
|
assert_equal i, @gene_pool.checked_out.size
|
|
198
193
|
assert_equal conns, @gene_pool.connections
|
|
@@ -237,7 +232,7 @@ class GenePoolTest < Test::Unit::TestCase
|
|
|
237
232
|
assert_equal 0, @gene_pool.checked_out.size
|
|
238
233
|
end
|
|
239
234
|
ival_conns = []
|
|
240
|
-
@gene_pool.each { |conn| ival_conns << conn.
|
|
235
|
+
@gene_pool.each { |conn| ival_conns << conn.count }
|
|
241
236
|
ival_conns.sort!
|
|
242
237
|
assert_equal (1..pool_size).to_a, ival_conns
|
|
243
238
|
end
|
|
@@ -251,7 +246,7 @@ class GenePoolTest < Test::Unit::TestCase
|
|
|
251
246
|
conn.fail_on(i)
|
|
252
247
|
assert_equal 1, @gene_pool.connections.size
|
|
253
248
|
assert_equal 1, @gene_pool.checked_out.size
|
|
254
|
-
assert_equal i+1, conn.
|
|
249
|
+
assert_equal i+1, conn.count
|
|
255
250
|
end
|
|
256
251
|
assert_equal stat, conns[0].closed?
|
|
257
252
|
assert !conns[1].closed?
|
|
@@ -270,20 +265,25 @@ class GenePoolTest < Test::Unit::TestCase
|
|
|
270
265
|
assert_match %r%Dummy exception%, e.message
|
|
271
266
|
assert_equal 0, @gene_pool.connections.size
|
|
272
267
|
assert_equal 0, @gene_pool.checked_out.size
|
|
268
|
+
@gene_pool.with_connection do |conn|
|
|
269
|
+
assert_equal 3, conn.count
|
|
270
|
+
end
|
|
273
271
|
end
|
|
274
272
|
|
|
275
273
|
should 'not auto-retry on timeout' do
|
|
276
|
-
@sleep = 2
|
|
277
|
-
@timeout = 1
|
|
278
274
|
e = assert_raises Timeout::Error do
|
|
279
|
-
|
|
275
|
+
Timeout.timeout(1) do
|
|
276
|
+
@gene_pool.with_connection_auto_retry do |conn|
|
|
277
|
+
sleep 2
|
|
278
|
+
assert false, true
|
|
279
|
+
end
|
|
280
280
|
end
|
|
281
281
|
end
|
|
282
282
|
assert_equal 0, @gene_pool.connections.size
|
|
283
283
|
assert_equal 0, @gene_pool.checked_out.size
|
|
284
284
|
@sleep = 0
|
|
285
285
|
@gene_pool.with_connection_auto_retry do |conn|
|
|
286
|
-
assert_equal 2, conn.
|
|
286
|
+
assert_equal 2, conn.count
|
|
287
287
|
assert_equal 1, @gene_pool.checked_out.size
|
|
288
288
|
end
|
|
289
289
|
assert_equal 1, @gene_pool.connections.size
|
metadata
CHANGED
|
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
|
5
5
|
segments:
|
|
6
6
|
- 1
|
|
7
7
|
- 1
|
|
8
|
-
-
|
|
9
|
-
version: 1.1.
|
|
8
|
+
- 1
|
|
9
|
+
version: 1.1.1
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- Brad Pardee
|
|
@@ -14,7 +14,7 @@ autorequire:
|
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
16
|
|
|
17
|
-
date: 2010-11-
|
|
17
|
+
date: 2010-11-18 00:00:00 -05:00
|
|
18
18
|
default_executable:
|
|
19
19
|
dependencies: []
|
|
20
20
|
|