Class: TorqBox::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/torqbox/server.rb

Constant Summary collapse

SERVER_DEFAULT_OPTIONS =
{
  :host => 'localhost',
  :port => 8080,
  :log_level => 'INFO'
}
APP_DEFAULT_OPTIONS =
{
  :context => '/',
  :root => '.',
  :rackup => 'config.ru',
  :rack_app => nil
}

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Server

Returns a new instance of Server.



36
37
38
39
40
41
42
43
44
45
# File 'lib/torqbox/server.rb', line 36

def initialize(options)
  options = SERVER_DEFAULT_OPTIONS.merge(options)
  @container = WunderBoss.container
  @container.log_level = options[:log_level]
  @container.register_language('ruby', Java::OrgProjectoddWunderbossRuby::RubyLanguage.new)
  @container.register_component('web', Java::OrgProjectoddWunderbossWeb::WebComponent.new)
  @container.register_component('rack', Java::OrgProjectoddWunderbossRubyRack::RackComponent.new)
  @container.configure('web', 'host' => options[:host], 'port' => options[:port].to_s)
  @logger = @container.get_logger('TorqBox::Server')
end

Instance Method Details

#start(options) ⇒ Object



47
48
49
50
51
52
53
54
55
# File 'lib/torqbox/server.rb', line 47

def start(options)
  options = APP_DEFAULT_OPTIONS.merge(options)
  @logger.info("TorqBox #{::TorqBox::VERSION} starting...")
  app = @container.new_application('ruby')
  app.start('rack', 'context' => options[:context],
            'root' => options[:root],
            'rackup' => options[:rackup],
            'rack_app' => options[:rack_app])
end

#stopObject



57
58
59
60
# File 'lib/torqbox/server.rb', line 57

def stop
  @logger.info("Stopping TorqBox...")
  @container.stop
end