Module: ZK::Server
- Defined in:
- lib/zk-server.rb,
lib/zk-server/base.rb,
lib/zk-server/config.rb,
lib/zk-server/cluster.rb,
lib/zk-server/command.rb,
lib/zk-server/logging.rb,
lib/zk-server/version.rb,
lib/zk-server/sub_process.rb,
lib/zk-server/java_embedded.rb
Defined Under Namespace
Modules: Logging
Classes: Base, Cluster, Command, Config, JavaEmbedded, SubProcess
Constant Summary
collapse
- ZK_JAR_GEM =
'slyphon-zookeeper_jar'
- LOG4J_GEM =
'slyphon-log4j'
- VERSION =
"1.1.8"
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.logger ⇒ Object
Returns the value of attribute logger.
7
8
9
|
# File 'lib/zk-server/logging.rb', line 7
def logger
@logger
end
|
Class Method Details
.clear ⇒ Object
80
81
82
|
# File 'lib/zk-server.rb', line 80
def self.clear
@server = nil if @server and not @server.running?
end
|
.default_log4j_props_path ⇒ Object
131
132
133
|
# File 'lib/zk-server.rb', line 131
def self.default_log4j_props_path
File.expand_path('../zk-server/log4j.properties', __FILE__)
end
|
.get_jar_paths_from_gem(gem_name) ⇒ Object
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/zk-server.rb', line 96
def self.get_jar_paths_from_gem(gem_name)
spec = get_spec_for(gem_name)
if spec.respond_to?(:lib_dirs_glob)
glob = "#{spec.lib_dirs_glob}/**/*.jar"
else
glob = "#{spec.load_paths.first}/**/*.jar"
end
Dir[glob].tap do |ary|
raise "gem #{gem_name} did not contain any jars (using glob: #{glob.inspect})" if ary.empty?
end
end
|
.get_spec_for(gem_name) ⇒ Object
110
111
112
113
114
115
116
|
# File 'lib/zk-server.rb', line 110
def self.get_spec_for(gem_name)
not_found = proc do
raise "could not locate the #{gem_name} Gem::Specification! wtf?!"
end
Bundler.load.specs.find(not_found) { |s| s.name == gem_name }
end
|
.java_binary_path ⇒ Object
122
123
124
|
# File 'lib/zk-server.rb', line 122
def self.java_binary_path
@java_binary_path ||= which('java')
end
|
.java_binary_path=(path) ⇒ Object
118
119
120
|
# File 'lib/zk-server.rb', line 118
def self.java_binary_path=(path)
@java_binary_path = path
end
|
.jruby? ⇒ Boolean
37
38
39
|
# File 'lib/zk-server.rb', line 37
def self.jruby?
defined?(::JRUBY_VERSION)
end
|
.jruby_18? ⇒ Boolean
41
42
43
|
# File 'lib/zk-server.rb', line 41
def self.jruby_18?
jruby? and ruby_187?
end
|
.jruby_19? ⇒ Boolean
45
46
47
|
# File 'lib/zk-server.rb', line 45
def self.jruby_19?
jruby? and ruby_19?
end
|
.log4j_jar_path ⇒ Object
92
93
94
|
# File 'lib/zk-server.rb', line 92
def self.log4j_jar_path
@log4j_jar_path ||= get_jar_paths_from_gem(LOG4J_GEM).first
end
|
.mri_187? ⇒ Boolean
25
26
27
|
# File 'lib/zk-server.rb', line 25
def self.mri_187?
ruby_187? and not rubinius? and not jruby?
end
|
.new(opts = {}) {|Config| ... } ⇒ Object
Create a new Process instance. if a block is given
then yield the Config object to the block
57
58
59
60
61
62
63
|
# File 'lib/zk-server.rb', line 57
def self.new(opts={})
klass = jruby? ? JavaEmbedded : SubProcess
klass.new(opts).tap do |server|
yield server.config if block_given?
end
end
|
.rubinius? ⇒ Boolean
49
50
51
|
# File 'lib/zk-server.rb', line 49
def self.rubinius?
defined?(::Rubinius)
end
|
.ruby_187? ⇒ Boolean
33
34
35
|
# File 'lib/zk-server.rb', line 33
def self.ruby_187?
RUBY_VERSION == '1.8.7'
end
|
.ruby_19? ⇒ Boolean
29
30
31
|
# File 'lib/zk-server.rb', line 29
def self.ruby_19?
false|(RUBY_VERSION =~ /\A1\.9/)
end
|
.run(opts = {}, &blk) ⇒ Object
runs a server as a singleton instance. use ZK::Server.shutdown to stop and ZK::Server.clear
to reset
67
68
69
|
# File 'lib/zk-server.rb', line 67
def self.run(opts={}, &blk)
@server ||= new(opts, &blk).tap { |s| s.run }
end
|
.server ⇒ Object
a singleton server instance (if start was called)
72
73
74
|
# File 'lib/zk-server.rb', line 72
def self.server
@server
end
|
.shutdown ⇒ Object
76
77
78
|
# File 'lib/zk-server.rb', line 76
def self.shutdown
@server and @server.shutdown
end
|
.which(bin_name) ⇒ Object
126
127
128
129
|
# File 'lib/zk-server.rb', line 126
def self.which(bin_name)
if_none = proc { "Could not find #{bin_name} in PATH: #{ENV['PATH'].inspect}" }
ENV['PATH'].split(':').map{|n| File.join(n, bin_name) }.find(if_none) {|x| File.executable?(x) }
end
|
.zk_jar_path ⇒ Object
84
85
86
87
88
89
90
|
# File 'lib/zk-server.rb', line 84
def self.zk_jar_path
@zk_jar_path ||= get_jar_paths_from_gem(ZK_JAR_GEM).first
end
|