casualjim
1/12/2011 - 7:12 AM

A jruby jetty launcher for an exploded war

A jruby jetty launcher for an exploded war

#!/path/to/jruby -J-Xmx256m -J-Xms128m -J-Xmn64m --server --headless

include Java 
import java.lang.System

PORT = ENV["PORT"] || 8888
WEB_PATH = ENV['WEB_PATH'] || File.expand_path("..", __FILE__)

System.set_property("logback.configurationFile", "#{WEB_PATH}/WEB-INF/classes/logback.xml")

Dir["#{WEB_PATH}/WEB-INF/lib/*.jar"].each { |d| require d }
$CLASSPATH << "#{WEB_PATH}/WEB-INF/classes"

import org.eclipse.jetty.server.Server
import org.eclipse.jetty.webapp.WebAppContext

server = Server.new(PORT.to_i)
server.set_graceful_shutdown 5000

context = WebAppContext.new
context.set_descriptor "#{WEB_PATH}/WEB-INF/web.xml"
context.set_resource_base WEB_PATH
context.set_context_path "/"

server.set_handler context

puts "Starting jetty in #{WEB_PATH} on #{PORT}"
server.start
server.join
description "ConnFu demo application"
start on runlevel [2345]
stop on runlevel [!2345]

console none

# the following ensures that the process is restarted when it should die unexpectedly
respawn

exec sudo -u randomuser -H bash -c "cd /home/randomuser/connfu-demo; PORT=14080 /home/randomuser/.rvm/rubies/jruby-1.5.6/bin/ruby -J-Xmx256m -J-Xms128m -J-Xmn64m --server --headless connfu-demo-server"