hazelcast-client 0.0.3-jruby → 0.0.4-jruby
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/README.rdoc +8 -0
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/lib/hazelcast-client.rb +1 -1
- data/lib/hazelcast-client/lock.rb +27 -0
- data/lib/hazelcast-client/queue.rb +3 -1
- data/test/test_map.rb +1 -1
- data/test/test_queue.rb +3 -2
- metadata +5 -6
data/README.rdoc
CHANGED
@@ -32,6 +32,14 @@ Let's open another console to check how this distributed hash works:
|
|
32
32
|
|
33
33
|
>> 1
|
34
34
|
|
35
|
+
== Client
|
36
|
+
|
37
|
+
You can get your own client by providing the group name, password and hosts:
|
38
|
+
|
39
|
+
client = Hazelcast::Client.new 'dev', 'dev-pass', 'localhost'
|
40
|
+
|
41
|
+
|
42
|
+
|
35
43
|
== Note on Patches/Pull Requests
|
36
44
|
|
37
45
|
* Fork the project.
|
data/Rakefile
CHANGED
@@ -25,7 +25,7 @@ begin
|
|
25
25
|
gem.executables = FileList['bin/*'].map { |f| File.basename(f) }
|
26
26
|
gem.require_paths = ["lib"]
|
27
27
|
|
28
|
-
gem.add_dependency "hazelcast-jars", "1.9.
|
28
|
+
gem.add_dependency "hazelcast-jars", "1.9.4.8"
|
29
29
|
end
|
30
30
|
Jeweler::GemcutterTasks.new
|
31
31
|
rescue LoadError
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4
|
data/lib/hazelcast-client.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
class Java::ComHazelcastClient::LockClientProxy
|
2
|
+
|
3
|
+
# lock()
|
4
|
+
# unlock()
|
5
|
+
|
6
|
+
def locking(options = {})
|
7
|
+
raise "Must provide a block" unless block_given?
|
8
|
+
tries = options[:tries] || 1
|
9
|
+
timeout = options[:timeout] || 5
|
10
|
+
unit = options[:unit] || :seconds
|
11
|
+
unit = java.util.concurrent.TimeUnit.const_get unit.to_s.upcase if unit.is_a? Symbol
|
12
|
+
failed = options[:failed] || false
|
13
|
+
result = nil
|
14
|
+
while tries > 0
|
15
|
+
if try_lock(timeout, unit)
|
16
|
+
tries = 0
|
17
|
+
result = yield
|
18
|
+
unlock
|
19
|
+
return result
|
20
|
+
else
|
21
|
+
tries -= 1
|
22
|
+
end
|
23
|
+
end
|
24
|
+
failed
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
|
1
3
|
class Java::ComHazelcastClient::QueueClientProxy
|
2
4
|
|
3
5
|
alias_method :unlearned_poll, :poll
|
@@ -5,5 +7,5 @@ class Java::ComHazelcastClient::QueueClientProxy
|
|
5
7
|
def poll(timeout = 5, unit = :seconds)
|
6
8
|
unlearned_poll timeout, java.util.concurrent.TimeUnit.const_get(unit.to_s.upcase)
|
7
9
|
end
|
8
|
-
|
10
|
+
|
9
11
|
end
|
data/test/test_map.rb
CHANGED
data/test/test_queue.rb
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/helper')
|
2
|
+
require 'yaml'
|
2
3
|
|
3
4
|
class TestRubyHazeQueue < Test::Unit::TestCase
|
4
5
|
|
5
6
|
def test_single_queing
|
6
7
|
tasks = CLIENT.queue :test_single
|
7
8
|
qty = 50
|
8
|
-
qty.times { |idx| tasks.put
|
9
|
+
qty.times { |idx| tasks.put idx }
|
9
10
|
found = []
|
10
11
|
while !tasks.empty? do
|
11
12
|
task = tasks.poll
|
12
|
-
found << task
|
13
|
+
found << YAML::load(task)
|
13
14
|
end
|
14
15
|
assert !found.empty?
|
15
16
|
assert_equal found.size, qty
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: hazelcast-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.4
|
6
6
|
platform: jruby
|
7
7
|
authors:
|
8
8
|
- Adrian Madrid
|
@@ -10,8 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date:
|
14
|
-
default_executable: hazelcast-client-console
|
13
|
+
date: 2012-02-10 00:00:00 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: hazelcast-jars
|
@@ -21,7 +20,7 @@ dependencies:
|
|
21
20
|
requirements:
|
22
21
|
- - "="
|
23
22
|
- !ruby/object:Gem::Version
|
24
|
-
version: 1.9.
|
23
|
+
version: 1.9.4.8
|
25
24
|
type: :runtime
|
26
25
|
version_requirements: *id001
|
27
26
|
description: Hazelcast::Client is a little gem that wraps the Java Hazelcast Client library into a more comfortable JRuby package.
|
@@ -41,6 +40,7 @@ files:
|
|
41
40
|
- VERSION
|
42
41
|
- bin/hazelcast-client-console
|
43
42
|
- lib/hazelcast-client.rb
|
43
|
+
- lib/hazelcast-client/lock.rb
|
44
44
|
- lib/hazelcast-client/map.rb
|
45
45
|
- lib/hazelcast-client/queue.rb
|
46
46
|
- lib/hazelcast-client/topic.rb
|
@@ -48,7 +48,6 @@ files:
|
|
48
48
|
- test/test_map.rb
|
49
49
|
- test/test_queue.rb
|
50
50
|
- test/test_topic.rb
|
51
|
-
has_rdoc: true
|
52
51
|
homepage: ""
|
53
52
|
licenses: []
|
54
53
|
|
@@ -72,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
72
71
|
requirements: []
|
73
72
|
|
74
73
|
rubyforge_project: hazelcast-client
|
75
|
-
rubygems_version: 1.
|
74
|
+
rubygems_version: 1.8.9
|
76
75
|
signing_key:
|
77
76
|
specification_version: 3
|
78
77
|
summary: Connecting to a Hazelcast Cluster has never been easier!
|