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

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



    C:\workarea\samples\rails>cd hello



    C:\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
  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"

      end

    end
  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:



    <h1>Say#hello</h1>

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

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

    	http://localhost:3000/say/hello
    in 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:


  1. Download
    and

    Install
    the gem



    C:\workspaces\jruby-trunk>bin\jruby -S gem install 
    glassfish-gem-10.0-SNAPSHOT.gem

    Successfully installed GlassFish, version 10.0.0
  2. 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.GrizzlyAdapter
    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: 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
    [http://localhost/hello/say/hello]

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

Technorati:
jrubyonglassfish
jruby
glassfish
windows
rubyonrails
v3

Related Topics >>