Miles to go …

June 30, 2008

Substruct on GlassFish v3 – Ruby-on-Rails E-Commerce Application

Filed under: web2.0 — arungupta @ 5:00 am


Substruct is an open-source E-Commerce project written using Ruby-on-Rails framework. It provides a simple e-commerce platform, content management system and customer response system – all in one.

I found out about this application from Sang “Passion” Shin’s Lab 5542 (part of FREE 20-week course on Ruby-on-Rails starting on Jul 15, 2008). But instead of using standard WEBrick/Mongrel deployment, I describe the steps to deploy this application using GlassFish v3 Gem. The GlassFish Gem installation is described here.

  1. Download and install Substruct

    ~/samples/jruby >gunzip -c substruct_rel_1-0-a3.tar.gz  | tar xvf -
    substruct_rel_1-0-a3/
    substruct_rel_1-0-a3/app/
    substruct_rel_1-0-a3/app/controllers/
    substruct_rel_1-0-a3/app/controllers/application.rb
    . . .
    substruct_rel_1-0-a3/vendor/rails/railties/test/rails_info_test.rb
    substruct_rel_1-0-a3/vendor/rails/railties/test/secret_key_generation_test.rb
    substruct_rel_1-0-a3/vendor/rails/Rakefile
    substruct_rel_1-0-a3/vendor/rails/release.rb
  2. Install the required gems for Substruct
    ~/samples/jruby >~/testbed/jruby-1.1.2/bin/jruby -S gem install RedCloth fastercsv mime-types mini_magick ezcrypto jruby-openssl –no-ri –no-rdoc
    JRuby limited openssl loaded. gem install jruby-openssl for full support.
    http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
    Bulk updating Gem source index for: http://gems.rubyforge.org/
    Successfully installed RedCloth-3.0.4
    Successfully installed fastercsv-1.2.3
    Successfully installed mime-types-1.15
    Successfully installed rubyforge-1.0.0
    Successfully installed hoe-1.5.3
    Successfully installed mini_magick-1.2.3
    Successfully installed ezcrypto-0.7
    Successfully installed jruby-openssl-0.2.3
    8 gems installed
  3. Create the database
    ~/samples/jruby/substruct_rel_1-0-a3 >~/testbed/jruby-1.1.2/bin/jruby -S rake db:create
    (in /Users/arungupta/samples/jruby/substruct_rel_1-0-a3)
    [SUBSTRUCT WARNING]
    Mail server settings have not been initialized.
    Check to make sure they’ve been set in the admin panel.
  4. And bootstrap it as
    ~/samples/jruby/substruct_rel_1-0-a3 >~/tesbted/jruby-1.1.2/bin/jruby -S rake substruct:db:bootstrap
    (in /Users/arungupta/samples/jruby/substruct_rel_1-0-a3)
    Checking requirements…
    Initializing database…
    [SUBSTRUCT WARNING]
    Mail server settings have not been initialized.
    Check to make sure they’ve been set in the admin panel.
    — create_table(“content_nodes”, {:force=>true})
       -> 0.3020s
    — add_index(“content_nodes”, ["name"], {:name=>”name”})
       -> 0.0140s
    — add_index(“content_nodes”, ["type", "id"], {:name=>”type”})
    . . .
    — initialize_schema_information()
       -> 0.0200s
    — columns(“schema_info”)
       -> 0.0650s
    Clearing previous data…
    Removing all sessions…
    Loading default data…
    …done.
    ================================================================================

    Thanks for trying Substruct 1.0.a3

    Now you can start the application with ’script/server’
    visit: http://localhost:3000/admin, and log in with admin / admin.

    For help, visit the following:
      Official Substruct Sites
        – http://substruct.subimage.com
        – http://code.google.com/p/substruct/
      Substruct Google Group – http://groups.google.com/group/substruct

    – Subimage LLC – http://www.subimage.com

  5. And finally run it on the GlassFish as:
    ~/samples/jruby >~/testbed/jruby-1.1.2/bin/jruby -S glassfish_rails substruct_rel_1-0-a3
    May 28, 2008 1:47:46 PM com.sun.enterprise.glassfish.bootstrap.ASMain main
    INFO: Launching GlassFish on HK2 platform
    May 28, 2008 1:47:46 PM com.sun.enterprise.glassfish.bootstrap.ASMainHK2 findDerbyClient
    INFO: Cannot find javadb client jar file, jdbc driver not available
    May 28, 2008 1:47:47 PM com.sun.enterprise.v3.services.impl.GrizzlyProxy start
    INFO: Listening on port 3000
    May 28, 2008 1:47:47 PM com.sun.enterprise.v3.services.impl.GrizzlyEmbeddedHttpConfigurator configureSSL
    WARNING: pewebcontainer.all_ssl_protocols_disabled
    May 28, 2008 1:47:47 PM com.sun.enterprise.v3.services.impl.GrizzlyEmbeddedHttpConfigurator configureSSL
    WARNING: pewebcontainer.all_ssl_ciphers_disabled
    May 28, 2008 1:47:47 PM com.sun.enterprise.v3.services.impl.GrizzlyProxy start
    INFO: Listening on port 3131
    May 28, 2008 1:47:47 PM com.sun.enterprise.v3.services.impl.GrizzlyProxy start
    INFO: Listening on port 3838
    May 28, 2008 1:47:48 PM com.sun.enterprise.v3.admin.adapter.AdminConsoleAdapter setContextRoot
    INFO: Admin Console Adapter: context root: /admin
    May 28, 2008 1:47:48 PM com.sun.enterprise.rails.RailsDeployer registerAdapter
    INFO: Loading application substruct_rel_1-0-a3 at /
    May 28, 2008 1:47:48 PM 
    INFO: Starting Rails instances
    May 28, 2008 1:47:56 PM com.sun.grizzly.jruby.RubyObjectPool$1 run
    INFO: Rails instance instantiation took : 8800ms
    May 28, 2008 1:47:56 PM com.sun.enterprise.v3.server.AppServerStartup run
    INFO: Glassfish v3 started in 10403 ms

The welcome screenshot looks like

Now copy GlassFish logo image file to “public/images” directory of your application and add the following line to “app/views/layouts/main.rhtml” file (
on line 36):

<a href=”http://glassfish.org”><%= image_tag(‘/images/glassfish-logo.gif’, :alt => ‘GlassFish’) %></a>

The modified view looks like as shown below:

The updated output looks like:

I tried only the basic deployment and that seem to work. If you try slightly more advanced usecases then the functionality provided by RedCloth, fastercsv, mime-types, mini_magick and ezcrypto gems can be exercised as well. If you are running Substruct, try it and let us know.

If your Rails application does not work on the gem, file bugs here with “jruby” as “subcomponent” (default version is “v3″).

Also check out Redmine on GlassFish v3.

Technorati: rubyonrails glassfish netbeans substruct webtier

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot
Related posts:
  1. TOTD #104: Popular Ruby-on-Rails applications on GlassFish v3 – Redmine, Typo, Substruct
  2. Redmine on GlassFish – Ruby-on-Rails Project Management Application
  3. TOTD #37: SQLite3 with Ruby-on-Rails on GlassFish Gem
  4. TOTD# 36: Writing First Test for a Rails Application
  5. TOTD #24: Getting Started with Rails 2.0.x in JRuby 1.0.3 and JRuby 1.1RC1

4 Comments »

  1. [Trackback] Typo is an open-source Blogging Engine written using Ruby-on-Rails framework. It provides a lean engine that makes blogging easy. It’s main attribtues are ease of use, usability, beauty and excellent support of web standards. I found out about this…

    Comment by Arun Gupta's Blog — August 28, 2008 @ 5:50 am

  2. [Trackback] Typo is an open-source Blogging Engine written using Ruby-on-Rails framework. It provides a lean engine that makes blogging easy. It’s main attribtues are ease of use, usability, beauty and excellent support of web standards. I found out about this…

    Comment by Arun Gupta's Blog — August 28, 2008 @ 5:57 am

  3. [Trackback] GlassFish Gem 0.9.0 was recently released. It can run any Rack-compatible framework such as Rails and Merb. Support for another Rack-based framework&nbsp;Sinatra will be released in the near future. The gem is even extensible and allows to plug any of…

    Comment by Arun Gupta's Blog — November 14, 2008 @ 9:36 am

  4. [...] Substruct on GlassFish – Substruct is an open source E-Commerce project in Ruby-on-Rails. The simplified steps to deploy Substruct on GlassFish v3 are given below (also on GlassFish v3 Gem): [...]

    Pingback by Popular Ruby-on-Rails applications on GlassFish v3 – Redmine, Typo, Substruct « Miles to go … — September 17, 2009 @ 11:18 pm

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress