class TestKafka::JavaRunner
Constants
- JAR_PATTERNS
- MAX_HEAP_SIZE
Attributes
java_class[R]
kafka_path[R]
tmp_dir[R]
Public Class Methods
new(id, tmp_dir, java_class, port, kafka_path, properties={})
click to toggle source
# File lib/test_kafka/java_runner.rb, line 15 def initialize(id, tmp_dir, java_class, port, kafka_path, properties={}) @id = id @tmp_dir = tmp_dir @java_class = java_class @port = port @kafka_path = kafka_path @properties = properties end
Public Instance Methods
pid()
click to toggle source
# File lib/test_kafka/java_runner.rb, line 44 def pid data = File.read(pid_path) data.to_i if data end
start()
click to toggle source
# File lib/test_kafka/java_runner.rb, line 26 def start write_properties run end
stop()
click to toggle source
# File lib/test_kafka/java_runner.rb, line 31 def stop daemon_controller.stop end
with_interruption() { || ... }
click to toggle source
# File lib/test_kafka/java_runner.rb, line 35 def with_interruption stop begin yield ensure start end end
Private Instance Methods
classpath()
click to toggle source
# File lib/test_kafka/java_runner.rb, line 52 def classpath JAR_PATTERNS.flat_map { |pat| Dir.glob(kafka_path + "/" + pat) }.join(":") end
config_dir()
click to toggle source
# File lib/test_kafka/java_runner.rb, line 106 def config_dir "#{tmp_dir}/config" end
config_path()
click to toggle source
# File lib/test_kafka/java_runner.rb, line 102 def config_path "#{config_dir}/#{@id}.properties" end
daemon_controller()
click to toggle source
# File lib/test_kafka/java_runner.rb, line 60 def daemon_controller @dc ||= DaemonController.new( :identifier => @id, :start_command => "#{java_command} >>#{log_path} 2>&1 & echo $! > #{pid_path}", :ping_command => [:tcp, '127.0.0.1', @port], :pid_file => pid_path, :log_file => log_path, :start_timeout => 25 ) end
java_command()
click to toggle source
# File lib/test_kafka/java_runner.rb, line 56 def java_command "exec java -Xmx#{MAX_HEAP_SIZE}M -server -cp #{classpath} #{java_class} #{config_path}" end
log_dir()
click to toggle source
# File lib/test_kafka/java_runner.rb, line 98 def log_dir "#{tmp_dir}/log" end
log_path()
click to toggle source
# File lib/test_kafka/java_runner.rb, line 94 def log_path "#{log_dir}/#{@id}.log" end
pid_dir()
click to toggle source
# File lib/test_kafka/java_runner.rb, line 90 def pid_dir "#{tmp_dir}/pid" end
pid_path()
click to toggle source
# File lib/test_kafka/java_runner.rb, line 86 def pid_path "#{pid_dir}/#{@id}.pid" end
run()
click to toggle source
# File lib/test_kafka/java_runner.rb, line 71 def run FileUtils.mkdir_p(log_dir) FileUtils.mkdir_p(pid_dir) daemon_controller.start end
write_properties()
click to toggle source
# File lib/test_kafka/java_runner.rb, line 77 def write_properties FileUtils.mkdir_p(config_dir) File.open(config_path, "w+") do |f| @properties.each do |k,v| f.puts "#{k}=#{v}" end end end