Neuerungen sind neben einigen BugFixes:
- die Implementierung mittels des neu erschienen Glassfish v3 Servers
- die Startzeit wurde um ca. 15% verbessert
- die Unterstützung von Rack (Ruby Webserver Interface) ist komplett
- es ist möglich, Glassfish mittels eines Codeblockes auszuführen
GlassFish::Server.start(:address=>"127.0.0.1", :port=>4000) do use Rack::CommonLogger use Rack::ShowExceptions map "/hello" do use Rack::Lint run Proc.new {[200, {"Content-Type" => "text/html"}, "Hello"]} end end - der Sinatra-Support wurde verbessert
- auf der Kommandozeile kann die IP Adresse mitgegeben werden
- die Konfiguration von Grizzly (NIO based HTTP Lib) kann mittels der
glassfish.ymlfestgelegt werden - man findet es nun auch bei GemCutter
Das Gem kurz erklärt
Das GlassFish-Gem ist eine Deployment Strategy mit der man Ruby on Rails Anwendungen mittels JRuby direkt von der Kommandozeile starten kann. Analog zu Mongrel oder Webrick kann man seine Rails-Anwendung nur mit Hilfe eines Gems starten. Die Installation eines kompletten Java Application Servers kann entfallen.Installation und erstes Starten
- Das Gem mittels
gem install glassfishinstallieren. - In das Rails-Anwendungsverzeichnis wechseln und mittels
glassfishden GlassFish-Server starten. GlassFish startet mit den default Einstellungen. - Unter 127.0.0.1:3000 ist der Server erreichbar.
Konfiguration
Beim Starten kann man dem GlassFish-Server einige Paramter mitgeben. Mittelsglassfish -h bekommt man eine Übersicht der Möglichkeiten angezeigt.
glassfish [OPTION] APPLICATION_PATH
-h, --help: show help
-c, --contextroot PATH: change the context root (default: '/')
-p, --port PORT: change server port (default: 3000)
-a, --address HOST: bind to HOST address (default: 0.0.0.0)
-e, --environment ENV: change rails environment (default: development)
-n --runtimes NUMBER: Number of JRuby runtimes to create initially
--runtimes-min NUMBER: Minimum JRuby runtimes to create
--runtimes-max NUMBER: Maximum number of JRuby runtimes to create
-d, --daemon: Run GlassFish as daemon. Currently works with
Linux and Solaris OS.
-P, --pid FILE: PID file where PID will be written. Applicable
when used with -d option. The default pid file
is tmp/pids/glassfish-<PID>.pid
-l, --log FILE: Log file, where the server log messages will go.
By default the server logs go to
log/development.log file. To see the logs on
console run with -l option without any argument.
--log-level LEVEL: Log level 0 to 7. 0:OFF, 1:SEVERE, 2:WARNING,
3:INFO (default), 4:FINE, 5:FINER, 6:FINEST,
7:ALL.
--config FILE: Configuration file location. Use glassfish.yml
as template. Generate it using 'gfrake config'
command.
APPLICATION_PATH (optional): Path to the application to be run (default:
current).
For further configuration, run GlassFish rake command 'gfrake -T'
Man kann nun entweder die Parameter auf der Kommandozeile angeben (glassfish -p <port> -e production -c <context> -d) oder mittels des Rake-Tasks gfrake config eine glassfish.yml-Datei im /config-Verzeichnis der Rails-Anwendung erzeugen. Die dann in der glassfish.yml angegeben Einstellungen werden bei Ausführung von glassfish ausgelesen und genutzt.
Deployment mittels Capistrano
Jacob Kessler stellt in seinem Blog ein Capistrano-Rezept vor, mit dem das Deployment von Rails-Anwendungen auf den GlassFish zum Kinderspiel wird.
set :context_root, "/"
set :jruby_location, "/home/objectfab/jruby/"
set :gf_port, "3000"
set :environment, "production"
set :jruby_runtimes, "1"
set :jruby_min_runtimes, "1"
set :jruby_max_runtimes, "2"
namespace :gem do
desc "Start Glassfish Gem from a shutdown state"
task :cold do
start
end
desc "Stop a server running Glassfish Gem"
task :stop do
run "kill -INT $(cat #{current_path}/capistrano-#{application})"
end
desc "Starts a server running Glassfish Gem"
task :start do
run "#{jruby_location}bin/jruby -S glassfish --contextroot #{context_root} --port #{gf_port} --environment #{environment} --runtimes #{jruby_runtimes} --runtimes-min #{jruby_min_runtimes} --runtimes-max #{jruby_max_runtimes} -P #{current_path}/capistrano-#{application} --daemon #{release_path}"
end
desc "Restarts a server running Glassfish Gem"
task :restart do
stop
start
end
end
GlassFish Gem 1.0.0 Release Notes
RubyForge GlassFish Gem
GemCutter GlassFish Gem
GlassFish Wiki JRuby
JRuby on Rails With GlassFish Gem
Kommentar schreiben