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.
- 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 - 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 - 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. - 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
- 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):
able style="text-align: left; width: 100%;" cellpadding="2" cellspacing="2">
<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 .
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