Skip to main content

JRuby 1.0.2 released - Improved Windows experience and Rails 1.2.5 support

Posted by arungupta on November 9, 2007 at 7:16 AM PST

JRuby 1.0.2
was released
last week.

A total of 99 issues were fixed but I'm particularly excited
about JRUBY-1347,
JRUBY-1401 and
JRUBY-1410. These are
some issues that I faced (1347

1350 here
1401 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

Now the details.

Here is the command sequence for creating and hosting a trivial
Hello World on WEBrick:

  1. 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:

    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
  2. Create a template application

    C:\workarea\samples\rails>\testbed\ruby\jruby-1.0.2\bin\jruby -S rails 


    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
  3. Add a controller

    C:\workarea\samples\rails>cd hello

    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
  4. 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 < ApplicationController

      def hello

        @hello_string = "Hello from 1.0.2"


  5. 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:


    <p>Find me in app/views/say/hello.rhtml</p>

    <%= @hello_string %>
  6. Start WEBrick and view the page

    in a browser window:


    => Booting WEBrick...

    => Rails application started on

    => 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 - - [07/Nov/2007:17:22:38 PST] "GET /say/hello HTTP/1.1" 200 81

    - -> /say/hello


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:

  1. Download

    the gem

    C:\workspaces\jruby-trunk>bin\jruby -S gem install 

    Successfully installed GlassFish, version 10.0.0
  2. Start GlassFish v3 and view the page


    C:\workarea\samples\rails>\workspaces\jruby-trunk\bin\jruby -S 
    glassfish_rails hello

    Nov 8, 2007 2:39:07 PM

    INFO: Listening on port 8080

    Nov 8, 2007 2:39:08 PM

    INFO: Supported containers : php,phobos,jruby,web

    Nov 8, 2007 2:39:08 PM com.sun.grizzly.standalone.StaticResourcesAdapter

    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


    Processing SayController#hello (for at 2007-11-08 14:39:27) [GET]

    Nov 8, 2007 2:39:27 PM sun.reflect.NativeMethodAccessorImpl invoke0

    INFO: Session ID: 46e3279ab4f2d776b4d76010cc7b38af

    Nov 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/hello

    Nov 8, 2007 2:39:27 PM sun.reflect.NativeMethodAccessorImpl invoke0

    INFO: Completed in 0.01100 (90 reqs/sec) | Rendering: 0.00900 (81%) | 200 OK

A comprehensive list of JRuby on GlassFish documentation is
available here.


Related Topics >>