slyphon-zookeeper 0.2.7-java → 0.2.8-java
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +43 -2
- data/ext/Rakefile +1 -1
- data/ext/extconf.rb +11 -3
- data/ext/zookeeper_base.rb +8 -0
- data/ext/zookeeper_c.c +44 -6
- data/java/zookeeper_base.rb +8 -0
- data/lib/zookeeper.rb +10 -0
- data/slyphon-zookeeper.gemspec +2 -1
- data/spec/zookeeper_spec.rb +12 -0
- metadata +25 -9
data/Rakefile
CHANGED
@@ -1,8 +1,49 @@
|
|
1
|
+
def gemset_name
|
2
|
+
ENV.fetch('GEM_HOME').split('@').last
|
3
|
+
end
|
4
|
+
|
1
5
|
namespace :mb do
|
2
6
|
task :build_gems do
|
3
|
-
sh "gem build slyphon-zookeeper.gemspec"
|
7
|
+
sh "rvm 1.8.7 do gem build slyphon-zookeeper.gemspec"
|
4
8
|
ENV['JAVA_GEM'] = '1'
|
5
|
-
sh "gem build slyphon-zookeeper.gemspec"
|
9
|
+
sh "rvm 1.8.7 do gem build slyphon-zookeeper.gemspec"
|
6
10
|
end
|
7
11
|
end
|
8
12
|
|
13
|
+
%w[1.8.7 1.9.2 1.9.3 jruby].each do |rvm_ruby|
|
14
|
+
ruby_with_gemset = "#{rvm_ruby}@#{gemset_name}"
|
15
|
+
|
16
|
+
clobber_task_name = "mb:#{rvm_ruby}:clobber"
|
17
|
+
build_task_name = "mb:#{rvm_ruby}:build"
|
18
|
+
bundle_task_name = "mb:#{rvm_ruby}:bundle_install"
|
19
|
+
rspec_task_name = "mb:#{rvm_ruby}:run_rspec"
|
20
|
+
|
21
|
+
task clobber_task_name do
|
22
|
+
unless rvm_ruby == 'jruby'
|
23
|
+
cd 'ext' do
|
24
|
+
sh "rake clobber"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
task build_task_name => clobber_task_name do
|
30
|
+
unless rvm_ruby == 'jruby'
|
31
|
+
cd 'ext' do
|
32
|
+
sh "rvm #{ruby_with_gemset} do rake build"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
task bundle_task_name => build_task_name do
|
38
|
+
rm_f 'Gemfile.lock'
|
39
|
+
sh "rvm #{ruby_with_gemset} do bundle install"
|
40
|
+
end
|
41
|
+
|
42
|
+
task rspec_task_name => bundle_task_name do
|
43
|
+
sh "rvm #{ruby_with_gemset} do bundle exec rspec spec"
|
44
|
+
end
|
45
|
+
|
46
|
+
task "mb:test_all_rubies" => rspec_task_name
|
47
|
+
end
|
48
|
+
|
49
|
+
|
data/ext/Rakefile
CHANGED
data/ext/extconf.rb
CHANGED
@@ -6,8 +6,16 @@ HERE = File.expand_path(File.dirname(__FILE__))
|
|
6
6
|
BUNDLE = Dir.glob("zkc-*.tar.gz").first
|
7
7
|
BUNDLE_PATH = "c"
|
8
8
|
|
9
|
-
$
|
10
|
-
|
9
|
+
$EXTRA_CONF = ''
|
10
|
+
|
11
|
+
# CLANG!!!! jeez, if apple would only *stop* "thinking different"
|
12
|
+
if cc = RbConfig::CONFIG['CC'] && cc =~ /^gcc/
|
13
|
+
$CC = cc
|
14
|
+
$EXTRA_CONF = "#{$EXTRA_CONF} CC=#{$CC}"
|
15
|
+
end
|
16
|
+
|
17
|
+
$CFLAGS = "#{$CFLAGS}".gsub("$(cflags)", "").gsub("-arch ppc", "")
|
18
|
+
$LDFLAGS = "#{$LDFLAGS}".gsub("$(ldflags)", "").gsub("-arch ppc", "")
|
11
19
|
$CXXFLAGS = " -std=gnu++98 #{$CFLAGS}"
|
12
20
|
$CPPFLAGS = $ARCH_FLAG = $DLDFLAGS = ""
|
13
21
|
|
@@ -16,7 +24,7 @@ DEBUG_CFLAGS = " -O0 -ggdb3 -DHAVE_DEBUG"
|
|
16
24
|
|
17
25
|
if ZK_DEBUG
|
18
26
|
$stderr.puts "*** Setting debug flags. ***"
|
19
|
-
$EXTRA_CONF = " --enable-debug"
|
27
|
+
$EXTRA_CONF = "#{$EXTRA_CONF} --enable-debug"
|
20
28
|
$CFLAGS.gsub!(/ -O[^0] /, ' ')
|
21
29
|
$CFLAGS << DEBUG_CFLAGS
|
22
30
|
end
|
data/ext/zookeeper_base.rb
CHANGED
@@ -134,6 +134,14 @@ class ZookeeperBase < CZookeeper
|
|
134
134
|
super
|
135
135
|
end
|
136
136
|
|
137
|
+
def session_id
|
138
|
+
client_id.session_id
|
139
|
+
end
|
140
|
+
|
141
|
+
def session_passwd
|
142
|
+
client_id.passwd
|
143
|
+
end
|
144
|
+
|
137
145
|
protected
|
138
146
|
def barf_unless_running!
|
139
147
|
@start_stop_mutex.synchronize do
|
data/ext/zookeeper_c.c
CHANGED
@@ -25,6 +25,7 @@
|
|
25
25
|
#include "dbg.h"
|
26
26
|
|
27
27
|
static VALUE Zookeeper = Qnil;
|
28
|
+
static VALUE ZookeeperClientId = Qnil;
|
28
29
|
|
29
30
|
// slyphon: possibly add a lock to this for synchronizing during get_next_event
|
30
31
|
|
@@ -542,12 +543,6 @@ static VALUE method_has_events(VALUE self) {
|
|
542
543
|
return rb_event;
|
543
544
|
}
|
544
545
|
|
545
|
-
static VALUE method_client_id(VALUE self) {
|
546
|
-
FETCH_DATA_PTR(self, zk);
|
547
|
-
const clientid_t *id = zoo_client_id(zk->zh);
|
548
|
-
return UINT2NUM(id->client_id);
|
549
|
-
}
|
550
|
-
|
551
546
|
|
552
547
|
// wake up the event loop, used when shutting down
|
553
548
|
static VALUE method_wake_event_loop_bang(VALUE self) {
|
@@ -612,6 +607,29 @@ static VALUE method_recv_timeout(VALUE self) {
|
|
612
607
|
return INT2NUM(zoo_recv_timeout(zk->zh));
|
613
608
|
}
|
614
609
|
|
610
|
+
/*static VALUE method_client_id(VALUE self) {*/
|
611
|
+
/* FETCH_DATA_PTR(self, zk);*/
|
612
|
+
/* const clientid_t *id = zoo_client_id(zk->zh);*/
|
613
|
+
/* return UINT2NUM(id->client_id);*/
|
614
|
+
/*}*/
|
615
|
+
|
616
|
+
|
617
|
+
// returns a CZookeeper::ClientId object with the values set for session_id and passwd
|
618
|
+
static VALUE method_client_id(VALUE self) {
|
619
|
+
FETCH_DATA_PTR(self, zk);
|
620
|
+
const clientid_t *cid = zoo_client_id(zk->zh);
|
621
|
+
|
622
|
+
VALUE session_id = LL2NUM(cid->client_id);
|
623
|
+
VALUE passwd = rb_str_new2(cid->passwd);
|
624
|
+
|
625
|
+
VALUE client_id_obj = rb_class_new_instance(0, RARRAY_PTR(rb_ary_new()), ZookeeperClientId);
|
626
|
+
|
627
|
+
rb_funcall(client_id_obj, rb_intern("session_id="), 1, session_id);
|
628
|
+
rb_funcall(client_id_obj, rb_intern("passwd="), 1, passwd);
|
629
|
+
|
630
|
+
return client_id_obj;
|
631
|
+
}
|
632
|
+
|
615
633
|
static VALUE klass_method_set_debug_level(VALUE klass, VALUE level) {
|
616
634
|
Check_Type(level, T_FIXNUM);
|
617
635
|
ZKRBDebugging = (FIX2INT(level) == ZOO_LOG_LEVEL_DEBUG);
|
@@ -662,11 +680,31 @@ static void zkrb_define_methods(void) {
|
|
662
680
|
rb_define_method(Zookeeper, "wake_event_loop!", method_wake_event_loop_bang, 0);
|
663
681
|
}
|
664
682
|
|
683
|
+
// class CZookeeper::ClientId
|
684
|
+
// attr_accessor :session_id, :passwd
|
685
|
+
//
|
686
|
+
// def initialize(session_id, passwd)
|
687
|
+
// @session_id = session_id
|
688
|
+
// @passwd = passwd
|
689
|
+
// end
|
690
|
+
// end
|
691
|
+
|
692
|
+
static VALUE zkrb_client_id_method_initialize(VALUE self) {
|
693
|
+
rb_iv_set(self, "@session_id", Qnil);
|
694
|
+
rb_iv_set(self, "@passwd", Qnil);
|
695
|
+
return Qnil;
|
696
|
+
}
|
697
|
+
|
665
698
|
void Init_zookeeper_c() {
|
666
699
|
ZKRBDebugging = 0;
|
667
700
|
/* initialize Zookeeper class */
|
668
701
|
Zookeeper = rb_define_class("CZookeeper", rb_cObject);
|
669
702
|
zkrb_define_methods();
|
703
|
+
|
704
|
+
ZookeeperClientId = rb_define_class_under(Zookeeper, "ClientId", rb_cObject);
|
705
|
+
rb_define_method(ZookeeperClientId, "initialize", zkrb_client_id_method_initialize, 0);
|
706
|
+
rb_define_attr(ZookeeperClientId, "session_id", 1, 1);
|
707
|
+
rb_define_attr(ZookeeperClientId, "passwd", 1, 1);
|
670
708
|
}
|
671
709
|
|
672
710
|
// vim:ts=2:sw=2:sts=2:et
|
data/java/zookeeper_base.rb
CHANGED
@@ -475,6 +475,14 @@ class ZookeeperBase
|
|
475
475
|
@event_queue.clear_reads_on_pop = false
|
476
476
|
@event_queue.selectable_io
|
477
477
|
end
|
478
|
+
|
479
|
+
def session_id
|
480
|
+
@jzk.session_id
|
481
|
+
end
|
482
|
+
|
483
|
+
def session_passwd
|
484
|
+
@jzk.session_passwd.to_s
|
485
|
+
end
|
478
486
|
|
479
487
|
def get_next_event(blocking=true)
|
480
488
|
@event_queue.pop(!blocking).tap do |event|
|
data/lib/zookeeper.rb
CHANGED
@@ -200,6 +200,16 @@ class Zookeeper < ZookeeperBase
|
|
200
200
|
super
|
201
201
|
end
|
202
202
|
|
203
|
+
# return the session id of the current connection as an Fixnum
|
204
|
+
def session_id
|
205
|
+
super
|
206
|
+
end
|
207
|
+
|
208
|
+
# Return the passwd portion of this connection's credentials as a String
|
209
|
+
def session_passwd
|
210
|
+
super
|
211
|
+
end
|
212
|
+
|
203
213
|
protected
|
204
214
|
# used during shutdown, awaken the event delivery thread if it's blocked
|
205
215
|
# waiting for the next event
|
data/slyphon-zookeeper.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "slyphon-zookeeper"
|
6
|
-
s.version = '0.2.
|
6
|
+
s.version = '0.2.8'
|
7
7
|
|
8
8
|
s.authors = ["Phillip Pearson", "Eric Maland", "Evan Weaver", "Brian Wickman", "Neil Conway", "Jonathan D. Simms"]
|
9
9
|
s.email = ["slyphon@gmail.com"]
|
@@ -15,6 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.add_development_dependency 'flexmock', '~> 0.8.11'
|
16
16
|
s.add_development_dependency 'eventmachine', '1.0.0.beta.4'
|
17
17
|
s.add_development_dependency 'evented-spec', '~> 0.9.0'
|
18
|
+
s.add_development_dependency 'rake', '~> 0.9.0'
|
18
19
|
|
19
20
|
s.files = `git ls-files`.split("\n")
|
20
21
|
s.require_paths = ["lib"]
|
data/spec/zookeeper_spec.rb
CHANGED
@@ -951,4 +951,16 @@ describe Zookeeper do
|
|
951
951
|
|
952
952
|
end
|
953
953
|
end
|
954
|
+
|
955
|
+
describe :session_id do
|
956
|
+
it %[should return the session_id as a Fixnum] do
|
957
|
+
@zk.session_id.should be_kind_of(Fixnum)
|
958
|
+
end
|
959
|
+
end
|
960
|
+
|
961
|
+
describe :session_passwd do
|
962
|
+
it %[should return the session passwd as a String] do
|
963
|
+
@zk.session_passwd.should be_kind_of(String)
|
964
|
+
end
|
965
|
+
end
|
954
966
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slyphon-zookeeper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 8
|
10
|
+
version: 0.2.8
|
11
11
|
platform: java
|
12
12
|
authors:
|
13
13
|
- Phillip Pearson
|
@@ -20,7 +20,7 @@ autorequire:
|
|
20
20
|
bindir: bin
|
21
21
|
cert_chain: []
|
22
22
|
|
23
|
-
date:
|
23
|
+
date: 2012-01-27 00:00:00 Z
|
24
24
|
dependencies:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
@@ -89,9 +89,25 @@ dependencies:
|
|
89
89
|
type: :development
|
90
90
|
version_requirements: *id004
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
|
-
name:
|
92
|
+
name: rake
|
93
93
|
prerelease: false
|
94
94
|
requirement: &id005 !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ~>
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
hash: 59
|
100
|
+
segments:
|
101
|
+
- 0
|
102
|
+
- 9
|
103
|
+
- 0
|
104
|
+
version: 0.9.0
|
105
|
+
type: :development
|
106
|
+
version_requirements: *id005
|
107
|
+
- !ruby/object:Gem::Dependency
|
108
|
+
name: slyphon-log4j
|
109
|
+
prerelease: false
|
110
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
95
111
|
none: false
|
96
112
|
requirements:
|
97
113
|
- - "="
|
@@ -103,11 +119,11 @@ dependencies:
|
|
103
119
|
- 15
|
104
120
|
version: 1.2.15
|
105
121
|
type: :runtime
|
106
|
-
version_requirements: *
|
122
|
+
version_requirements: *id006
|
107
123
|
- !ruby/object:Gem::Dependency
|
108
124
|
name: slyphon-zookeeper_jar
|
109
125
|
prerelease: false
|
110
|
-
requirement: &
|
126
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
111
127
|
none: false
|
112
128
|
requirements:
|
113
129
|
- - "="
|
@@ -119,7 +135,7 @@ dependencies:
|
|
119
135
|
- 3
|
120
136
|
version: 3.3.3
|
121
137
|
type: :runtime
|
122
|
-
version_requirements: *
|
138
|
+
version_requirements: *id007
|
123
139
|
description: twitter's zookeeper client
|
124
140
|
email:
|
125
141
|
- slyphon@gmail.com
|
@@ -200,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
200
216
|
requirements: []
|
201
217
|
|
202
218
|
rubyforge_project:
|
203
|
-
rubygems_version: 1.8.
|
219
|
+
rubygems_version: 1.8.10
|
204
220
|
signing_key:
|
205
221
|
specification_version: 3
|
206
222
|
summary: twitter's zookeeper client
|