JRuby 1.0.2 was released last week.
A total of 99 issues were fixed but I’m particularly excited about JRUBY-1347, JRUBY-1350, JRUBY-1401 and JRUBY-1410. These are some issues that I faced (1347 here, 1350 here, 1401 here, 1410 here) on my primary development machine – Windows.
Here is the status report:
-
On Windows only, the latest Rails gem (1.2.5) is now working with stable release of JRuby (1.0.2 as of today).
-
On Windows only, GlassFish v3 gem does not work with JRuby 1.0.2 but works with the JRuby trunk (JRUBY-1549). The gem works correctly on Solaris and Mac.
-
JRuby 1.0.2 bundles will be available on GlassFish Update Center soon.
Now the details.
Here is the command sequence for creating and hosting a trivial Hello World on WEBrick:
-
Install Rails
C:\testbed\ruby\jruby-1.0.2>bin\jruby -S gem install rails --include-dependencies --no-ri --no-rdoc
Bulk updating Gem source index for: http://gems.rubyforge.org
Successfully installed rails-1.2.5
Successfully installed activesupport-1.4.4
Successfully installed activerecord-1.15.5
Successfully installed actionpack-1.13.5
Successfully installed actionmailer-1.3.5
Successfully installed actionwebservice-1.2.5 -
Create a template application
C:\workarea\samples\rails>\testbed\ruby\jruby-1.0.2\bin\jruby -S rails hello
create
create app/controllers
create app/helpers
create app/models
create app/views/layouts
create config/environments
create components
create db
create doc
create lib
create lib/tasks
create log
create public/images
create public/javascripts
create public/stylesheets
create script/performance
create script/process
create test/fixtures
create test/functional
create test/integration
create test/mocks/development
create test/mocks/test
create test/unit
create vendor
create vendor/plugins
create tmp/sessions
create tmp/sockets
create tmp/cache
create tmp/pids
create Rakefile
create README
create app/controllers/application.rb
create app/helpers/application_helper.rb
create test/test_helper.rb
create config/database.yml
create config/routes.rb
create public/.htaccess
create config/boot.rb
create config/environment.rb
create config/environments/production.rb
create config/environments/development.rb
create config/environments/test.rb
create script/about
create script/breakpointer
create script/console
create script/destroy
create script/generate
create script/performance/benchmarker
create script/performance/profiler
create script/process/reaper
create script/process/spawner
create script/process/inspector
create script/runner
create script/server
create script/plugin
create public/dispatch.rb
create public/dispatch.cgi
create public/dispatch.fcgi
create public/404.html
create public/500.html
create public/index.html
create public/favicon.ico
create public/robots.txt
create public/images/rails.png
create public/javascripts/prototype.js
create public/javascripts/effects.js
create public/javascripts/dragdrop.js
create public/javascripts/controls.js
create public/javascripts/application.js
create doc/README_FOR_APP
create log/server.log
create log/production.log
create log/development.log
create log/test.log -
Add a controller
C:\workarea\samples\rails>cd helloC:\workarea\samples\rails\hello>\testbed\ruby\jruby-1.0.2\bin\jruby script\generate controller say hello
exists app/controllers/
exists app/helpers/
create app/views/say
exists test/functional/
create app/controllers/say_controller.rb
create test/functional/say_controller_test.rb
create app/helpers/say_helper.rb
create app/views/say/hello.rhtml -
Edit Controller
C:\workarea\samples\rails\hello>vim app\controllers\say_controller.rb
Add
@hello_string = "Hello from 1.0.2"in hello helper. The updated file looks like:class SayController < ApplicationControllerdef hello
@hello_string = "Hello from 1.0.2"
end
end -
Edit View
C:\workarea\samples\rails\hello>vim app\views\say\hello.rhtml
and add
<%= @hello_string %>as the last line. The updated file looks like:<h1>Say#hello</h1>
<p>Find me in app/views/say/hello.rhtml</p>
<%= @hello_string %> -
Start WEBrick and view the page
http://localhost:3000/say/helloin a browser window:C:\workarea\samples\rails\hello>\testbed\ruby\jruby-1.0.2\bin\jruby script\server
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2007-11-07 17:22:01] INFO WEBrick 1.3.1
[2007-11-07 17:22:01] INFO ruby 1.8.5 (2007-11-01) [java]
[2007-11-07 17:22:01] INFO WEBrick::HTTPServer#start: pid=11245030 port=3000
127.0.0.1 - - [07/Nov/2007:17:22:38 PST] "GET /say/hello HTTP/1.1" 200 81
- -> /say/hello
The GlassFish v3 Gem does not work with JRuby 1.0.2 (JRUBY-1549) on Windows. It works very well on Solaris and Mac. For Windows, you need to use the JRuby trunk (checkout and build):
After you’ve built the JRuby trunk, you can create a similar new application and run it on GlassFish v3 gem as:
-
C:\workspaces\jruby-trunk>bin\jruby -S gem install glassfish-gem-10.0-SNAPSHOT.gem
Successfully installed GlassFish, version 10.0.0 -
Start GlassFish v3 and view the page
http://localhost:8080/hello/say/hello:C:\workarea\samples\rails>\workspaces\jruby-trunk\bin\jruby -S glassfish_rails hello
Nov 8, 2007 2:39:07 PM com.sun.enterprise.v3.services.impl.Grizzly
Adapter postConstruct
INFO: Listening on port 8080
Nov 8, 2007 2:39:08 PM com.sun.enterprise.v3.services.impl.DeploymentService postConstruct
INFO: Supported containers : php,phobos,jruby,web
Nov 8, 2007 2:39:08 PM com.sun.grizzly.standalone.StaticResourcesAdapter <init>
INFO: New Servicing page from: C:\workarea\samples\rails\hello\public
Nov 8, 2007 2:39:15 PM com.sun.enterprise.v3.server.AppServerStartup run
INFO: Glassfish v3 started in 7588 ms
Nov 8, 2007 2:39:27 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO:Processing SayController#hello (for 127.0.0.1 at 2007-11-08 14:39:27) [GET]
Nov 8, 2007 2:39:27 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: Session ID: 46e3279ab4f2d776b4d76010cc7b38afNov 8, 2007 2:39:27 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: Parameters: {"action"=>"hello", "controller"=>"say"}Nov 8, 2007 2:39:27 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: Rendering say/helloNov 8, 2007 2:39:27 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: Completed in 0.01100 (90 reqs/sec) | Rendering: 0.00900 (81%) | 200 OK [http://localhost/hello/say/hello]
A comprehensive list of JRuby on GlassFish documentation is available here.
Technorati: jrubyonglassfish jruby glassfish windows rubyonrails v3 gem ruby
Related posts:- TOTD #14: How to generate JRuby-on-Rails Controller on Windows (#9893)
- TOTD #13: Setup Mongrel for JRuby-on-Rails applications on Windows
- First JRuby on Rails App in GlassFish V3
- JRuby 1.1.3 released – Getting Started with GlassFish
- TOTD #24: Getting Started with Rails 2.0.x in JRuby 1.0.3 and JRuby 1.1RC1
[Trackback] In an Earlier Post, I described how Mephisto (a popular web publishing system based on Ruby on Rails) can be deployed on GlassFish V3. Both JRuby and GlassFish has matured since then and this post will provide the updated instructions…
Comment by Arun Gupta's Blog — November 15, 2007 @ 6:19 am
On Windows only, GlassFish v3 gem does not work with JRuby 1.0.2 but works with the JRuby trunk (JRUBY-1549). The gem works correctly on Solaris and Mac.
Comment by laptop batteries — November 26, 2008 @ 8:49 pm
Please submit a new bug at:
http://rubyforge.org/tracker/?func=add&group_id=5450&atid=21080
Comment by Arun Gupta — November 27, 2008 @ 8:44 am