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"weiterführende Links und QuellenGlassFish Gem 1.0.0 is available
GlassFish Gem 1.0.0 Release Notes
RubyForge GlassFish Gem
GemCutter GlassFish Gem
GlassFish Wiki JRuby
JRuby on Rails With GlassFish Gem
Kommentar schreiben