Skip to content

Instantly share code, notes, and snippets.

@mikewadhera
Created April 30, 2009 09:42
Show Gist options
  • Save mikewadhera/104371 to your computer and use it in GitHub Desktop.
Save mikewadhera/104371 to your computer and use it in GitHub Desktop.
require "jruby"
module JettyRails
class Runner
attr_reader :servers
def initialize(config = {})
@servers = {}
config.symbolize_keys!
if config[:servers].nil?
add_server(config)
else
config[:servers].each do |server_config|
server_config.symbolize_keys!
server_config.reverse_merge!(config)
server_config.delete(:servers)
add_server(server_config)
end
end
if config[:jms]
require "activemq-all-5.2.0"
require "jruby/rack/queues/activemq"
JRuby::Rack::Queues::ActiveMQ.configure do |mq|
mq.url = 'vm://localhost'
mq.queues = %w(background_tasks)
end
end
end
def add_server(config = {})
server = JettyRails::Server.new(config)
@servers[server.config[:port]] = server
end
def start
server_threads = ThreadGroup.new
@servers.each do |base, server|
log("Starting server #{base}")
server_threads.add(Thread.new do
server.start
end)
end
server_threads.list.each {|thread| thread.join } unless server_threads.list.empty?
end
private
def log(msg)
$stdout.puts(msg)
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment