You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by mf...@apache.org on 2013/03/01 17:19:42 UTC

[1/2] git commit: Core: Added support for jruby Puma server

Core: Added support for jruby Puma server

The 'puma' web server is much faster and reliable
than java webrick.


Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/07525157
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/07525157
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/07525157

Branch: refs/heads/master
Commit: 07525157137e7e13dba72f39a8dc0ef559fdb4f7
Parents: 75e3db4
Author: Michal Fojtik <mf...@redhat.com>
Authored: Mon Dec 10 15:31:04 2012 +0100
Committer: Michal fojtik <mf...@redhat.com>
Committed: Fri Mar 1 17:19:27 2013 +0100

----------------------------------------------------------------------
 server/Gemfile         |    1 +
 server/bin/deltacloudd |   24 +++++++++++++++++-------
 2 files changed, 18 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltacloud/blob/07525157/server/Gemfile
----------------------------------------------------------------------
diff --git a/server/Gemfile b/server/Gemfile
index 4df57fe..bd56845 100644
--- a/server/Gemfile
+++ b/server/Gemfile
@@ -4,6 +4,7 @@ gemspec
 
 platforms :jruby do
   gem 'jruby-openssl'
+  gem 'puma'
 end
 
 group :development do

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/07525157/server/bin/deltacloudd
----------------------------------------------------------------------
diff --git a/server/bin/deltacloudd b/server/bin/deltacloudd
index 8cb8702..836bc55 100755
--- a/server/bin/deltacloudd
+++ b/server/bin/deltacloudd
@@ -178,7 +178,6 @@ if !options[:daemon] || options[:daemon] && !have_thin
     msg << ":: http://#{ENV["API_HOST"]}:#{ENV["API_PORT"]}/#{api_uri}"
   end
   puts msg
-  puts
 end
 
 if ENV['API_USER'] && ENV['API_PASSWORD']
@@ -192,11 +191,11 @@ unless have_thin
 
   puts "To start Deltacloud as a daemon, install 'thin' (gem install thin)\n\n" if options[:daemon]
 
+  port = ENV["API_PORT"].to_i
   # Read in config.ru and convert it to an instance of Rack::Builder
   cfgfile = File.read(File.join($top_srcdir, 'config.ru'))
   inner_app = eval("Rack::Builder.new {(" + cfgfile + "\n )}.to_app",
                    nil, 'config.ru')
-
   app = Rack::Builder.new {
     use Rack::CommonLogger # apache-like logging
     use Rack::Reloader #if options[:env] == "development"
@@ -208,11 +207,22 @@ unless have_thin
   port = ENV["API_PORT"].to_i
   puts "=> Ctrl-C to shutdown server"
   Dir::chdir($top_srcdir)
-  Rack::Server::start(:app => app,
-                      :server => :webrick,
-                      :Host => ENV["API_HOST"],
-                      :Port => port,
-                      :AccessLog => [])
+
+  if RUBY_PLATFORM == 'java'
+    require 'puma'
+    events = Puma::Events.new STDOUT, STDERR
+    server = Puma::Server.new app, events
+    server.add_tcp_listener ENV['API_HOST'], port
+    server.run(false)
+  else
+    # There's a bug with string ports on JRuby so convert to int
+    # http://jira.codehaus.org/browse/JRUBY-4868
+    puts "=> Ctrl-C to shutdown server"
+    Rack::Server::start(:app => app,
+                        :Host => ENV["API_HOST"],
+                        :Port => port,
+                        :AccessLog => [])
+  end
 else
   argv_opts = ARGV.clone
   argv_opts << ['start'] unless Thin::Runner.commands.include?(options[0])