Wednesday May 14, 2008
WAR-based
packaging and dispatching of Rails application on Java Application
Servers is going through third iteration based what is used for
packaging and dispatching:
| ~/testbed/jruby-1.1.1
>bin/jruby -S gem
install rails warbler --no-ri --no-rdoc JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL Updating metadata for 289 gems from http://gems.rubyforge.org/ .............................................................................................................................. .............................................................................................................................. ..................................... complete Successfully installed activesupport-2.0.2 Successfully installed activerecord-2.0.2 Successfully installed actionpack-2.0.2 Successfully installed actionmailer-2.0.2 Successfully installed activeresource-2.0.2 Successfully installed rails-2.0.2 Successfully installed warbler-0.9.9 7 gems installed |
| ~/testbed/jruby-1.1.1/samples/rails
>../../bin/jruby
-S rails hello -d mysql create create app/controllers create app/helpers create app/models create app/views/layouts create config/environments . . . create doc/README_FOR_APP create log/server.log create log/production.log create log/development.log create log/test.log |
| config.frameworks -= [ :active_record, :active_resource, :action_mailer ] |
| ~/testbed/jruby-1.1.1/samples/rails/hello
>../../../bin/jruby
-S warble JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL jar cf hello.war -C tmp/war . |
| ~/testbed/glassfish/v2ur2/glassfish
>bin/asadmin
start-domain --verbose Starting Domain domain1, please wait. May 13, 2008 11:23:44 AM com.sun.enterprise.admin.servermgmt.launch.ASLauncher buildCommand INFO: /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/bin/java . . . [#|2008-05-13T11:34:13.252-0700|INFO|sun-appserver9.1|javax.enterprise.system.container.web|_ThreadID=10;_ThreadName=main;4848;|WEB0712: Starting Sun-Java-System/Application-Server HTTP/1.1 on 4848|#] [#|2008-05-13T11:34:13.691-0700|INFO|sun-appserver9.1|javax.enterprise.system.core.selfmanagement|_ThreadID=10;_ThreadName=main;|SMGT0007: Self Management Rules service is enabled|#] [#|2008-05-13T11:34:13.718-0700|INFO|sun-appserver9.1|javax.enterprise.system.core|_ThreadID=10;_ThreadName=main;|Application server startup complete.|#] |
| ~/testbed/jruby-1.1.1/samples/rails/hello
>~/testbed/glassfish/v2ur2/glassfish/bin/asadmin
deploy hello.war Command deploy executed successfully. |
| [#|2008-05-13T11:34:23.330-0700|INFO|sun-appserver9.1|javax.enterprise.system.tools.admin|_ThreadID=14;_ThreadName=httpWorkerThread-4848-0;/private/tmp/s1astempdomain1server1547440193/hello.war;|ADM1006:Uploading
the file to:[/private/tmp/s1astempdomain1server1547440193/hello.war]|#] [#|2008-05-13T11:34:26.019-0700|INFO|sun-appserver9.1|javax.enterprise.system.tools.deployment|_ThreadID=15;_ThreadName=Thread-30;|deployed with moduleid = hello|#] [#|2008-05-13T11:34:30.626-0700|INFO|sun-appserver9.1|javax.enterprise.system.container.web|_ThreadID=16;_ThreadName=httpWorkerThread-4848-1;|PWC1412: WebModule[/hello] ServletContext.log():Info: using runtime pool timeout of 30 seconds|#] [#|2008-05-13T11:34:30.626-0700|INFO|sun-appserver9.1|javax.enterprise.system.container.web|_ThreadID=16;_ThreadName=httpWorkerThread-4848-1;|PWC1412: WebModule[/hello] ServletContext.log():Warning: no initial runtimes specified.|#] [#|2008-05-13T11:34:30.627-0700|INFO|sun-appserver9.1|javax.enterprise.system.container.web|_ThreadID=16;_ThreadName=httpWorkerThread-4848-1;|PWC1412: WebModule[/hello] ServletContext.log():Warning: no max runtimes specified.|#] |

| ~/testbed/jruby-1.1.1/samples/rails/hello
>../../../bin/jruby
script/generate controller home index JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL exists app/controllers/ exists app/helpers/ create app/views/home exists test/functional/ create app/controllers/home_controller.rb create test/functional/home_controller_test.rb create app/helpers/home_helper.rb create app/views/home/index.html.erb |
| def
index @greeting = "Hello from Rack!!" # access Servlet Context @server_info = $servlet_context.get_server_info # alternative way to get Servlet Context #@server_info2 = request.env['java.servlet_context'].get_server_info # access Servlet Request @method = request.env['java.servlet_request'].get_method @request_uri = request.env['java.servlet_request'].get_request_uri @protocol = request.env['java.servlet_request'].get_protocol @port = request.env['java.servlet_request'].get_server_port end |
| <%=
@greeting %><br><br> Hosted on "<%= @server_info %>" on port "<%= @port %>"<br> <%= @method %> <%= @request_uri %> <%= @protocol %> |

|
<filter> <filter-name>RackFilter</filter-name> <filter-class>org.jruby.rack.RackFilter</filter-class> </filter> <filter-mapping> <filter-name>RackFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.jruby.rack.rails.RailsServletContextListener</listener-class> </listener> |
Posted by Arun Gupta in web2.0 | Comments[0]
|
|
|
|
Sunday May 04, 2008
GlassFish v3 Gem 0.2.0 released
A newer version of GlassFish
v3 Gem for Ruby
on Rails is now available.
What's new ?
| ~/testbed/jruby-1.1.1
>bin/jruby -S gem
list glassfish *** LOCAL GEMS *** glassfish (0.1.2) |
| ~/testbed/jruby-1.1.1
>bin/jruby -S gem
uninstall
glassfish Successfully uninstalled glassfish-0.1.2-universal-java Remove executables: glassfish_rails, asadmin, asadmin.bat in addition to the gem? [Yn] y Removing glassfish_rails Removing asadmin Removing asadmin.bat |
| ~/testbed/jruby-1.1.1
>bin/jruby -S gem
install glassfish JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL Successfully installed glassfish-0.2.0-universal-java 1 gem installed |
Posted by Arun Gupta in web2.0 | Comments[0]
|
|
|
|
Saturday May 03, 2008
JRuby 1.1.1, Rails 2.0.2, Warbler now in GlassFish v2 Update Center
Vivek updated
JRuby module in GlassFish v2 UR2
Update Center.
It now contains JRuby 1.1.1 + Rails 2.0.2 and Warbler (instead of
Goldspike) for packaging the app.
Read all details on how to download, install and getting started here.
The image below shows a snapshot of Update Center with the latest
module selected:

After following all
the steps (had to manually set executable perms on
jruby-1.1.1/bin/jruby), your application is now hosted at
"http://localhost:8080/HelloWorldRailsApp/say/hello" and shows the
following output:

The generated "HelloWorldRailsApp.war" is approx 8.5 Mb and could
quickly grow depending upon the gems installed and other factors. As an
alternative, you can consider shared deployment as explained in each
sample's GLASSFISH_README.txt.
Send us feedback at Forums
or webtier@glassfish.
Technorati: rubyonrails
jruby ruby glassfish
updatecenter
Posted by Arun Gupta in web2.0 | Comments[1]
|
|
|
|
Monday April 21, 2008
JRuby and GlassFish v2 - Another successful deployment @ WorldxChange Communication NZ
![]() |
From proof-of-concept to production in 8 weeks, WorldxChange Communication NZ's online billing system is another succes story of JRuby and GlassFish v2. The portal is designed solely using NetBeans 6.1 IDE. |
Posted by Arun Gupta in web2.0 | Comments[0]
|
|
|
|
Monday April 14, 2008
Rails and Java EE integration - Native Rails on GlassFish v3
The last part of this tri-series blog (Part
1, Part
2) will show how a Rails application can be deployed on
GlassFish - without the need of Goldspike,
Warbler
or any other gem or plugin. Yes, that's a native Rails app deployment
on GlassFish v3.
GlassFish
v3 is next version of GlassFish v2 and the focus is
modularization, enablement of non-Java EE containers and modularity - download
b09.
Rails
powered by GlassFish provides all the details on why
GlassFish provides an industry-grade and functionally-rich Application
Server.
Now detailed steps:
|
~/testbed/jruby-1.1/samples/rails >../../bin/jruby -S rails
railsee3 create create app/controllers create app/helpers create app/models . . . create log/production.log create log/development.log create log/test.log |
| <!DOCTYPE
web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>server.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> |
| <?xml
version="1.0" encoding="UTF-8"?> <!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN" "http://www.sun.com/software /appserver/dtds/sun-web-app_2_5-0.dtd"> <sun-web-app error-url=""> <context-root>/servlet</context-root> <class-loader delegate="true"/> </sun-web-app> |
| JRUBY_HOME="/Users/arungupta/testbed/jruby-1.1" |
| ~/testbed/jruby-1.1/samples/rails
>~/testbed/glassfish/v3/p2b9/glassfish/bin/asadmin
deploy --force=true railsee3 railsee3 deployed successfully Command deploy executed successfully. |


| ~/testbed/jruby-1.1/samples/rails/railsee3
>../../../bin/jruby
script/generate controller home index JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL exists app/controllers/ exists app/helpers/ create app/views/home exists test/functional/ create app/controllers/home_controller.rb create test/functional/home_controller_test.rb create app/helpers/home_helper.rb create app/views/home/index.html.erb |
| class
HomeController < ApplicationController include Java def index url = java.net.URL.new("http://localhost:8080/servlet/hello"); conn = url.open_connection; reader = java.io.BufferedReader.new(java.io.InputStreamReader.new(conn.get_input_stream)); @servlet_output = ""; input_line = reader.read_line; while input_line != nil @servlet_output << input_line; input_line = reader.read_line; end reader.close; end end |
| <h1>Home#index</h1> <p>Find me in app/views/home/index.html.erb</p> <%= @servlet_output %> |

Posted by Arun Gupta in web2.0 | Comments[11]
|
|
|
|
Tuesday April 08, 2008
JRuby 1.1 released - ready for production!
JRuby 1.1 is released
and ready for production use today. You can unleash the potential in 3
simple steps - download,
unzip & get
started. Here is a quote from the announcement:
more and more reports of
applications exceeding Ruby 1.8.6 performance; we are even beating Ruby
1.9 in some microbenchmarks
This is validated by 1
(Oct 2007), 2
(Nov 2007), 3
(Feb 2008), 4
(Feb 2008) and many other hidden/unknown reports. You can easily
configure JRuby 1.1 as the platform of your choice in NetBeans 6.1 as
described in TOTD
#27.
Now, match this blazing performance of JRuby with GlassFish
v3 gem (only 2.4 Mb) which provides a superior
solution for developing and deploying Rails application. The
main reasons for using GlassFish instead of WEBrick/Mongrel/LightTPD
are:
| ~/testbed/jruby-1.1
>bin/jruby -S gem
install glassfish JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL Updating metadata for 93 gems from http://gems.rubyforge.org ............................................................................................. complete Successfully installed glassfish-0.1.2-universal-java 1 gem installed |
Posted by Arun Gupta in web2.0 | Comments[2]
|
|
|
|
Monday April 07, 2008
Rails and Java EE integration - Warbler instead of Goldspike
Part
1 of this tri-series blog explained how a Java EE
Servlet and Rails application can be packaged together as WAR file
using Goldspike
plugin and deployed on GlassFish
v2 UR1. There are few issues with Goldspike as explained here.
A better and recommended option is to use Warbler
for packaging which provides a minimal, flexible and Ruby-like way to
create WAR. Warbler really cleans up the packagingof WAR, for example
excluding .svn directories, tests and migrations - really nice. For
now, it uses RailsServlet for dispatching but even that is pluggable.
This blog, Part 2, will explain how to generate a WAR file using
Warbler. Rails
powered by GlassFish provides all the details on why
GlassFish provides an industry-grade and functionally-rich Application
Server.
Now detailed steps:
| ~/testbed/jruby-1.1
>bin/jruby -S gem
install warbler JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL Updating metadata for 35 gems from http://gems.rubyforge.org ................................... complete Successfully installed warbler-0.9.4 1 gem installed Installing ri documentation for warbler-0.9.4... Installing RDoc documentation for warbler-0.9.4... |
|
~/testbed/jruby-1.1/samples/rails >../../bin/jruby -S rails
railsee2 create create app/controllers create app/helpers create app/models . . . create log/production.log create log/development.log create log/test.log |
| config.frameworks -= [ :active_record, :active_resource, :action_mailer ] |
| <!DOCTYPE
web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>server.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> |
| ~/testbed/jruby-1.1/samples/rails/railsee2
>~/testbed/jruby-1.1/bin/jruby
-S warble JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL jar cf railsee2.war -C tmp/war . |
| ~/testbed/jruby-1.1/samples/rails/railsee2
>~/testbed/glassfish/v2ur1/glassfish/bin/asadmin
deploy railsee2.war Command deploy executed successfully. |


| ~/testbed/jruby-1.1/samples/rails/railsee2
>../../../bin/jruby
script/generate controller home index JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL exists app/controllers/ exists app/helpers/ create app/views/home exists test/functional/ create app/controllers/home_controller.rb create test/functional/home_controller_test.rb create app/helpers/home_helper.rb create app/views/home/index.html.erb |
| class
HomeController < ApplicationController include Java def index url = java.net.URL.new("http://localhost:8080/railsee2/hello"); conn = url.open_connection; reader = java.io.BufferedReader.new(java.io.InputStreamReader.new(conn.get_input_stream)); @servlet_output = ""; input_line = reader.read_line; while input_line != nil @servlet_output << input_line; input_line = reader.read_line; end reader.close; end end |
| <h1>Home#index</h1> <p>Find me in app/views/home/index.html.erb</p> <%= @servlet_output %> |

Posted by Arun Gupta in web2.0 | Comments[2]
|
|
|
|
Friday April 04, 2008
Rails and Java EE integration - Servlet co-bundled and invoked from Rails
One of the several
advantages of deploying Rails
applications on GlassFish
is - co-hosting Rails and Java EE applications in the same container.
The screencast
#web9 shows how Rails applications can be easily deployed on
GlassFish.
This blog takes the JRuby-on-Rails (jRoR) and Java EE integration to
the next level. It show how a Java EE Servlet can be co-bundled within
a jRoR application. And then it shows how such a servlet can be easily
invoked from a Rails view. It uses WAR-based
mode for deploying jRoR applications on GlassFish.
Here are the detailed steps:
| ~/testbed/jruby-1.1RC3
>bin/jruby -S gem
install
activerecord-jdbc-adapter JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL Successfully installed activerecord-jdbc-adapter-0.8 1 gem installed Installing ri documentation for activerecord-jdbc-adapter-0.8... Installing RDoc documentation for activerecord-jdbc-adapter-0.8... |
|
~/testbed/jruby-1.1RC3/samples/rails >../../bin/jruby -S rails
railsee1 create create app/controllers create app/helpers create app/models create app/views/layouts create config/environments create config/initializers 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/initializers/inflections.rb create config/initializers/mime_types.rb 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/console create script/destroy create script/generate create script/performance/benchmarker create script/performance/profiler create script/performance/request 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/422.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 |
| config.frameworks -= [ :active_record, :active_resource, :action_mailer ] |
|
~/testbed/jruby-1.1RC3/samples/rails/railsee1
>../../../bin/jruby
script/plugin install
svn://rubyforge.org/var/svn/jruby-extras/trunk/rails-integration/plugins/goldspike A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/test A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/test/war_config_test_config.rb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/test/test_java_library.rb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/test/test_maven_library.rb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/test/test_create_war.rb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/Rakefile A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/init.rb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/tasks A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/tasks/war.rake A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/lib A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/lib/util.rb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/lib/war_config.rb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/lib/run.rb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/lib/java_library.rb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/lib/packer.rb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/lib/create_war.rb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/install.rb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/generators A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/generators/goldspike A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/generators/goldspike/goldspike_generator.rb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/generators/goldspike/templates A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/generators/goldspike/templates/web.xml.erb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/generators/goldspike/templates/war.rb A /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1/vendor/plugins/goldspike/README Exported revision 960. exists config create config/war.rb create WEB-INF create WEB-INF/web.xml.erb |

| String
name = request.getParameter("name"); if (name == null || name.equals("")) name = "Duke"; out.println("<h1>Servlet HelloServlet at " + request.getContextPath () + " says Hello " + name + "!</h1>"); |
| <servlet> <servlet-name>hello</servlet-name> <servlet-class>server.HelloServlet</servlet-class> </servlet> |
| <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> |
|
~/testbed/jruby-1.1RC3/samples/rails/railsee1
>../../../bin/jruby
-S rake war:standalone:create (in /Users/arungupta/testbed/jruby-1.1RC3/samples/rails/railsee1) info: Assembling web application info: Packing needed Java libraries ... info: adding Java library jruby-complete-1.1RC3 info: adding Java library goldspike-1.6 info: adding Java library activation-1.1 info: adding Java library commons-pool-1.3 info: adding Java library bcprov-jdk14-124 info: Packing needed Ruby gems ... info: adding Ruby gem rails version 2.0.2 info: adding Ruby gem rake version 0.8.1 info: adding Ruby gem activesupport version 2.0.2 info: adding Ruby gem activerecord version 2.0.2 info: adding Ruby gem actionpack version 2.0.2 info: adding Ruby gem actionmailer version 2.0.2 info: adding Ruby gem activeresource version 2.0.2 info: adding Ruby gem activerecord-jdbc-adapter version 0.8 info: Packing needed files ... info: Creating web archive |
| ~/testbed/jruby-1.1RC3/samples/rails/railsee1
>~/testbed/glassfish/v2ur1/glassfish/bin/asadmin
deploy railsee1.war Command deploy executed successfully. |


| ~/testbed/jruby-1.1RC3/samples/rails/railsee1
>../../../bin/jruby
script/generate controller home index JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL exists app/controllers/ exists app/helpers/ create app/views/home exists test/functional/ create app/controllers/home_controller.rb create test/functional/home_controller_test.rb create app/helpers/home_helper.rb create app/views/home/index.html.erb |
| class
HomeController < ApplicationController include Java def index url = java.net.URL.new("http://localhost:8080/railsee1/hello"); conn = url.open_connection; reader = java.io.BufferedReader.new(java.io.InputStreamReader.new(conn.get_input_stream)); @servlet_output = ""; input_line = reader.read_line; while input_line != nil @servlet_output << input_line; input_line = reader.read_line; end reader.close; end end |
| <h1>Home#index</h1> <p>Find me in app/views/home/index.html.erb</p> <%= @servlet_output %> |

Posted by Arun Gupta in web2.0 | Comments[4]
|
|
|
|
Thursday April 03, 2008
This blog provides how you can get started with Merb on JRuby
1.1 RC3.
Merb is another MVC framework (just like Rails) but with a pluggable
ORM, JavaScript library and Template language. Rails has built-in
support for these using ActiveRecord, Script.aculo.us
and ERB
templates. Making it pluggable keeps the core very lightweight and
still providing support for a particular feature using plugins. Another
big advantage of Merb is that unlike Rails it's thread-safe.
There
are already third party supports for ActiveRecord, DataMapper and
Sequel ORMs. I will hopefully be able to build support for Java
Persistence API ORM in Merb. Until then, here is how you
install and get started with Merb on JRuby 1.1 RC3.
Install Merb on JRuby as:
| Macintosh-187:jruby-1.1RC3
arungupta$ bin/jruby -S
gem install merb mongrel JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL Updating metadata for 339 gems from http://gems.rubyforge.org ......................................................................................................... ......................................................................................................... ......................................................................................................... ........................ complete Successfully installed abstract-1.0.0 Successfully installed erubis-2.5.0 Successfully installed json_pure-1.1.2 Successfully installed rack-0.3.0 Successfully installed hpricot-0.6-java Successfully installed mime-types-1.15 Successfully installed merb-core-0.9.2 Successfully installed merb-action-args-0.9.2 Successfully installed merb-assets-0.9.2 Successfully installed activesupport-2.0.2 Successfully installed rubigen-1.2.4 Successfully installed merb-gen-0.9.2 Successfully installed merb-haml-0.9.2 Successfully installed merb-builder-0.9.2 Successfully installed mailfactory-1.2.3 Successfully installed merb-mailer-0.9.2 Successfully installed merb-parts-0.9.2 Successfully installed merb-cache-0.9.2 Successfully installed merb-more-0.9.2 Successfully installed merb-0.9.2 Successfully installed gem_plugin-0.2.3 Successfully installed mongrel-1.1.4-java 22 gems installed Installing ri documentation for json_pure-1.1.2... Installing ri documentation for rack-0.3.0... Installing ri documentation for hpricot-0.6-java... Installing ri documentation for mime-types-1.15... Installing ri documentation for merb-core-0.9.2... Installing ri documentation for merb-action-args-0.9.2... Installing ri documentation for merb-assets-0.9.2... Installing ri documentation for activesupport-2.0.2... Installing ri documentation for rubigen-1.2.4... Installing ri documentation for merb-gen-0.9.2... Installing ri documentation for merb-haml-0.9.2... Installing ri documentation for merb-builder-0.9.2... Installing ri documentation for mailfactory-1.2.3... Installing ri documentation for merb-mailer-0.9.2... Installing ri documentation for merb-parts-0.9.2... Installing ri documentation for merb-cache-0.9.2... Installing ri documentation for gem_plugin-0.2.3... Installing ri documentation for mongrel-1.1.4-java... Installing RDoc documentation for json_pure-1.1.2... Installing RDoc documentation for rack-0.3.0... Installing RDoc documentation for hpricot-0.6-java... Installing RDoc documentation for mime-types-1.15... Installing RDoc documentation for merb-core-0.9.2... Installing RDoc documentation for merb-action-args-0.9.2... Installing RDoc documentation for merb-assets-0.9.2... Installing RDoc documentation for activesupport-2.0.2... Installing RDoc documentation for rubigen-1.2.4... Installing RDoc documentation for merb-gen-0.9.2... Installing RDoc documentation for merb-haml-0.9.2... Installing RDoc documentation for merb-builder-0.9.2... Installing RDoc documentation for mailfactory-1.2.3... Installing RDoc documentation for merb-mailer-0.9.2... Installing RDoc documentation for merb-parts-0.9.2... Installing RDoc documentation for merb-cache-0.9.2... Installing RDoc documentation for gem_plugin-0.2.3... Installing RDoc documentation for mongrel-1.1.4-java... |
| Macintosh-187:jruby-1.1RC3
arungupta$ cd samples/ Macintosh-187:samples arungupta$ mkdir merb Macintosh-187:samples arungupta$ cd merb/ Macintosh-187:merb arungupta$ ../../bin/jruby -S merb-gen app hello RubiGen::Scripts::Generate create app create autotest create config create public create spec create app/controllers create app/helpers create app/views create app/views/exceptions create app/views/layout create config/environments create public/images create public/stylesheets create autotest/discover.rb create autotest/merb.rb create autotest/merb_rspec.rb create config/rack.rb create config/router.rb create config/init.rb create public/merb.fcgi create spec/spec.opts create spec/spec_helper.rb create app/controllers/application.rb create app/controllers/exceptions.rb create app/helpers/global_helpers.rb create app/views/exceptions/internal_server_error.html.erb create app/views/exceptions/not_acceptable.html.erb create app/views/exceptions/not_found.html.erb create app/views/layout/application.html.erb create config/environments/development.rb create config/environments/production.rb create config/environments/rake.rb create config/environments/test.rb create public/images/merb.jpg create public/stylesheets/master.css create /Rakefile |
| Macintosh-187:hello
arungupta$ ls -la total 8 drwxr-xr-x 8 arungupta arungupta 272 Apr 1 22:20 . drwxr-xr-x 3 arungupta arungupta 102 Apr 1 22:20 .. -rw-r--r-- 1 arungupta arungupta 3334 Apr 1 22:20 Rakefile drwxr-xr-x 5 arungupta arungupta 170 Apr 1 22:20 app drwxr-xr-x 5 arungupta arungupta 170 Apr 1 22:20 autotest drwxr-xr-x 6 arungupta arungupta 204 Apr 1 22:20 config drwxr-xr-x 5 arungupta arungupta 170 Apr 1 22:20 public drwxr-xr-x 4 arungupta arungupta 136 Apr 1 22:20 spec |
| Macintosh-187:hello
arungupta$ ../../../bin/jruby
-S merb JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL ~ Loaded DEVELOPMENT Environment... ~ Compiling routes... ~ Using 'share-nothing' cookie sessions (4kb limit per client) ~ Using Mongrel adapter |

Posted by Arun Gupta in web2.0 | Comments[4]
|
|
|
|
Thursday March 27, 2008
Slides & Demos for Rails/GlassFish/jMaki session at TSS JS
As reported earlier,
I presented on "Rails
powered by GlassFish and jMaki" yesterday at The
Server Side Java Symposium - Las Vegas. The slides are
available here.
The demos shown in the talk are available at:
![]() |
![]() |
![]() |