JRuby 1.0.2 released - Improved Windows experience and Rails 1.2.5 support
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 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 -
Edit Controller
C:\workarea\samples\rails\hello>vim app\controllers\say_controller.rbAdd
@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 -
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:
-
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 -
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
- Login or register to post comments
- Printer-friendly version
- arungupta's blog
- 785 reads





