Wednesday November 28, 2007
Metro, jMaki & JRuby/GlassFish Q&A from a Preso - Toronto & Montreal
I presented on Metro, jMaki and JRuby-on-GlassFish at a partner meeting on Nov 21 in Toronto and Montreal (yeah, both cities in the same day). That makes it 3 cities (the first one being Seattle) total for now!
I've given multiple talks all over the world to different types of audience but this was my first experience in terms of talking for 3 hours in the morning, flying to another city and then repeating the sessions. GlassFish (both v2 and v3), NetBeans IDE and Windows Vista behaved properly through all the demos. And my talks are typically demo intensive so it was fun! I enjoyed the overall experience (talking, demos, flying) :)
As always, the fun part was interaction with the audience and I always learn something new every time. And, in order to share the knowledge with you, here is the consolidated list of questions from both the cities:
Although the jmaki framework will work on these browsers some widgets may not work (such as those that use SVG) depending on the browser.
And now for the Metro session:
And finally for the JRuby-on-GlassFish session:
Feel free to ask any other questions in Metro Forum and jMaki Forum or GlassFish forum or JRuby user list.
Technorati: conf webservices metro jmaki glassfish jrubyonglassfish ruby jruby netbeans web2.0 q&a
Posted by Arun Gupta in webservices | Comments[0]
|
|
|
|
|
Tuesday November 27, 2007
FOSS.IN schedules now available - Almost 1600 registrants
FOSS.IN schedules are finally published, phew!
The conference is starting next Monday and this is living on the edge! This is the 7th year of the conference and I hope the scheduling is done little more in advance next year. This will allows us non-Bangaloreans to plan our activities around FOSS :)
I'll be giving "Packaging Java Applications for Ubuntu Platform" on Dec 4th, 4pm in A/120. See you there!
I'll publish the slides here after the talk.
Here are some other talks that I'd like to attend:
| Date | Topic | Time |
| 12/6, Thu | FOSS.IN inaguration | 10:00am-10:30am |
| 12/6, Thu | User to Hacker in 90 minutes: The Tools and Techniques needed to actually contribute to Open Source | 3:30pm-5:00pm |
| 12/7, Fri | The Virtuous Cycle: Sun's FOSS philosophy and strategy | 11:30am-1:00pm |
| 12/7, Fri | Hacking the Fox | 3:30pm-5:00pm |
I'd like to attend some talks on 12/8 but have to catch a flight in the afternoon. But otherwise the momentum is building pretty strong with almost 1600 registrants.
And then of course, you can find me around the GlassFish booth in the Expo.
Some more rant ...

Technorati: conf glassfish foss.in sun netbeans ubuntu
Posted by Arun Gupta in webservices | Comments[0]
|
|
|
|
|
Monday November 26, 2007
TOTD #19: How to Add Metro Quality-of-Service to Contract-First Endpoint ?
This TOTD explains how to add Reliability and Security to a Contract-First Endpoint using NetBeans IDE.
In the Contract-First, the contract, i.e. the WSDL, is defined first as
opposed to starting from Java. The Metro programming model starts with a Java
Service Endpoint Interface (SEI) and uses
Web
Service Designer to specify Security, Reliability and Transactions support.
This blog uses the WSDL bundled with the fromwsdl sample of
Metro download and adds
Quality-of-Service attributes to it.
Here are the steps to enable Reliable Messaging to Contract-First endpoint:
Web Service from
WSDL..." as shown below:

Browse..." button next to "Web Service Port:" and
select the appropriate port.Finish" and the Web Services Designer is shown as
shown below:
Undeploy and Deploy"
to deploy the project. Web Services" tree, select the newly added Web
service and right-click on "Test Web Service". The Tester page
is shown in a browser with links to the packaged WSDL file and text boxes
and buttons to invoke the Web service.Reliable Message Delivery".Clean" to clean all the
generated files. Again right-click on the project and then select "Undeploy
and Deploy" to deploy the project again.As described in screencast #ws7, Security can be added to a Contract-First endpoint using the steps listed above.
Please leave suggestions on other TOTD that you'd like to see. A complete archive is available here.
Technorati: totd glassfish webservices netbeans metro wsdl reliability contractfirst
Posted by Arun Gupta in webservices | Comments[13]
|
|
|
|
|
Wednesday November 21, 2007

I'll be attending FOSS.IN, Dec 4-8 in Silicon Valley of India (more popularly known as Bangalore). This is going to be my first formal conference in India so I am excited! Find me and talk anything about GlassFish.
Sun Microsystems has held open systems to be the cornerstone of its business philosophy since the beginning. Today, through shared technology innovation, Sun's continued commitment to Open Source is reflected in its leadership and key contributions to the many projects including GlassFish, OpenSolaris, OpenOffice.org, GNOME, Grid Engine, java.net, NetBeans, and Mozilla. And here as well, Sun is a Principal Sponsor of the event.
Here are some important links:
Where can you find Sun ?
Where can you find me ?
What can you do before the event ?
And of course, I'm looking forward to feast on Sambar/Dosa - one of the finest dishes in the whole world :)
I'll be there, will you ? Stay tuned for pictures from the event!
Technorati: conf glassfish foss.in sun netbeans
Posted by Arun Gupta in webservices | Comments[6]
|
|
|
|
|
Tuesday November 20, 2007
Metro and jMaki Q&A from a Preso
I presented on Metro and jMaki in a invitation-only gathering on Nov 15. The audience in both the sessions was pretty interactive. Even though the sessions were invitation-only, I'm posting some of the questions asked during the sessions along with their answers.
Jmaki.php and XmlHttpProxy.php.And now for the Metro session:
wsit-on-glassfish.xml script and can
be used to override the jars in an existing
GlassFish v2
installation.Metro team also presented a BoF 2526 on these improvements at JavaOne 2006.
Feel free to ask any other questions in Metro Forum and jMaki Forum.
Technorati: conf webservices jmaki glassfish netbeans web2.0 q&a
Posted by Arun Gupta in webservices | Comments[1]
|
|
|
|
|
Monday November 19, 2007
TOTD #18: How to Build The GlassFish v3 Gem for JRuby ?
Jerome posted the instructions to build GlassFish v3 Gem for JRuby - very simple and easy. A binary version of Gem is available here.
JRUBY_HOME). Make sure
JRUBY_HOME/bin is in your path.As explained in
Jerome's
entry, you can check out complete GlassFish v3 workspace or just the
Gem code. Here is how you'll check out only the Gem code on a Windows
machine using Tigris Subversion client:

And after the check out is complete, you'll see:

mvn install[INFO] (in
C:/workspaces/glassfish/gem/target/dependency/glassfish)
[WARNING] mkdir -p pkg
[INFO] Successfully built RubyGem
[INFO] Name: GlassFish
[WARNING] mv GlassFish-10.0.0-java.gem pkg/GlassFish-10.0.0-java.gem
[INFO] Version: 10.0.0
[INFO] File: GlassFish-10.0.0-java.gem
[INFO] [install:install]
[INFO] Installing
C:\workspaces\glassfish\gem\target\gem-10.0-SNAPSHOT.jar to C:\Users\Arun
Gupta\.m2\repository\org\glassfish\distributions\gem\10.0-SNAPSHOT\gem-10.0-SNAPSHOT.jar
[INFO] [install:install-file {execution: install-gem}]
[INFO] Installing
C:\workspaces\glassfish\gem\target\dependency\glassfish\pkg\GlassFish-10.0.0-java.gem
to C:\Users\Arun
Gupta\.m2\repository\org\glassfish\distributions\GlassFish-Gem\10.0-SNAPSHOT\GlassFish-Gem-10.0-SNAPSHOT.gem
[INFO]
------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 2 minutes 2 seconds
[INFO] Finished at: Fri Nov 16 17:56:12 PST 2007
[INFO] Final Memory: 11M/20M
[INFO]
------------------------------------------------------------------------
The Gem is available in target\dependency\glassfish\pkg
directory.cd target\dependency\glassfish\pkgC:\testbed\ruby\jruby-1.0.2\bin\jruby -S gem install
GlassFish-10.0.0-java.gem
Successfully installed GlassFish, version 10.0.0And use it!
Please leave suggestions on other TOTD that you'd like to see. A complete archive is available here.
Technorati: totd v3 jruby ruby rubyonrails glassfish gem jrubyonglassfish
Posted by Arun Gupta in Finance | Comments[2]
|
|
|
|
|
Sunday November 18, 2007
Dilbert: Career in Engineering

Technorati: dilbert engineering
Posted by Arun Gupta in General | Comments[2]
|
|
|
|
|
Thursday November 15, 2007
Mephisto with GlassFish v3 Gem
In an Earlier Post, I described how Mephisto (a popular web publishing system based on Ruby on Rails) can be deployed on GlassFish V3. Both JRuby and GlassFish has matured since then and this post will provide the updated instructions to deploy Mephisto using GlassFish v3 Gem.
Here are the exact steps:
JRUBY_HOME/bin' in your environment PATH.C:\workspaces\jruby-trunk>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.5C:\workspaces\jruby-trunk>bin\jruby -S gem install
activerecord-jdbc -y --no-rdoc --no-ri
Need to update 1 gems from http://gems.rubyforge.org
.
complete
Successfully installed ActiveRecord-JDBC-0.5mysqld-nt --user root --console'
in MYSQL_HOME/bin directory on Windows or './bin/mysqld_safe'
from MYSQL_HOME directory on Unix flavors.C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqladmin --u root
create mephisto_development
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.0.45-community-nt MySQL Community Edition (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> grant all on mephisto_development.* to arun@localhost identified
by 'noway';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit;
ByeMEPHISTO_HOME/config/database.example.yml'
to 'MEPHISTO_HOME/config/database.yml'. There is no need to
specify the JDBC adapter
ActiveRecord 0.5 onwards and that allows to use the default
database configuration file.C:\testbed\mephisto-0.7.3>jruby -S rake db:bootstrap -J-DRAILS_ENV=development
(in C:/testbed/mephisto-0.7.3)
mkdir -p C:/testbed/mephisto-0.7.3/config/../log
-- create_table("assets", {:force=>true})
-> 0.3330s
-- create_table("assigned_sections", {:force=>true})
-> 0.2000s
-- create_table("cached_pages", {:force=>true})
-> 0.2980s
-- create_table("content_versions", {:force=>true})
-> 0.2130s
-- create_table("contents", {:force=>true})
-> 0.2190s
-- create_table("events", {:force=>true})
-> 0.2680s
-- create_table("memberships", {:force=>true})
-> 0.1890s
-- create_table("sections", {:force=>true})
-> 0.1500s
-- create_table("sessions", {:force=>true})
-> 0.1200s
-- add_index("sessions", ["session_id"], {:name=>"sessions_session_id_index"})
-> 0.3220s
-- create_table("sites", {:force=>true})
-> 1.1240s
-- add_index("sites", ["host"], {:name=>"index_sites_on_host"})
-> 0.3490s
-- create_table("taggings", {:force=>true})
-> 0.1950s
-- create_table("tags", {:force=>true})
-> 0.1840s
-- create_table("users", {:force=>true})
-> 0.2750s
-- initialize_schema_information()
-> 0.2740s
-- columns("schema_info")
-> 0.0170s
copied default theme to C:/testbed/mephisto-0.7.3/config/../themes/site-1...
================================================================================
Thank you for trying out Mephisto 0.7.3: Noh-Varr Edition!
Now you can start the application with script/server, visit
http://mydomain.com/admin, and log in with admin / test.
For help, visit the following:
Official Mephisto Site - http://mephistoblog.com
The Mephisto Community Wiki - http://mephisto.stikipad.com/
The Mephisto Google Group - http://groups.google.com/group/MephistoBlogC:\testbed>\workspaces\jruby-trunk\bin\jruby -S glassfish_rails
mephisto-0.7.3
And that shows the following output in the console:
Nov 14, 2007 6:37:51 PM com.sun.enterprise.v3.services.impl.GrizzlyAdapter
postConstruct
INFO: Listening on port 8080
Nov 14, 2007 6:37:51 PM
com.sun.enterprise.v3.services.impl.DeploymentService postConstruct
INFO: Supported containers : php,phobos,jruby,web
Nov 14, 2007 6:37:52 PM com.sun.grizzly.standalone.StaticResourcesAdapter
<init>
INFO: New Servicing page from: C:\testbed\mephisto-0.7.3\public
Nov 14, 2007 6:38:00 PM com.sun.enterprise.v3.server.AppServerStartup run
INFO: Glassfish v3 started in 9054 mshttp://localhost:8080/mephisto-0.7.3

Nov 14, 2007 6:24:08 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO:
Processing MephistoController#dispatch (for 127.0.0.1 at 2007-11-14
18:24:08) [GET]
Nov 14, 2007 6:24:08 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: Parameters: {"action"=>"dispatch", "controller"=>"mephisto",
"path"=>[]}
Nov 14, 2007 6:24:09 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: ←[4;36;1mSQL (0.001000)←[0m ←[0;1mSET SQL_AUTO_IS_NULL=0←[0m
Nov 14, 2007 6:24:09 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: ←[4;35;1mSite Columns (0.046000)←[0m ←[0mSHOW FIELDS FROM sites←[0m
Nov 14, 2007 6:24:09 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: ←[4;36;1mSite Load (0.010000)←[0m ←[0;1mSELECT * FROM sites WHERE (sites.`host`
= 'localhost') LIMIT 1←[0m
Nov 14, 2007 6:24:09 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: ←[4;35;1mSite Load (0.017000)←[0m ←[0mSELECT * FROM sites ORDER BY id
LIMIT 1←[0m
Nov 14, 2007 6:24:09 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: ←[4;36;1mSection Columns (0.010000)←[0m ←[0;1mSHOW FIELDS FROM
sections←[0m
Nov 14, 2007 6:24:09 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: ←[4;35;1mSection Load (0.005000)←[0m ←[0mSELECT * FROM sections WHERE
(sections.site_id =1) AND (sections.`path` = '') LIMIT 1←[0m
Nov 14, 2007 6:24:09 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: ←[4;36;1mArticle Columns (0.024000)←[0m ←[0;1mSHOW FIELDS FROM
contents←[0m
Nov 14, 2007 6:24:09 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: ←[4;35;1mUser Columns (0.013000)←[0m ←[0mSHOW FIELDS FROM users←[0m
Nov 14, 2007 6:24:09 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: ←[4;36;1mArticle Load Including Associations (0.027000)←[0m
←[0;1mSELECT contents.`id` AS t0_r0, contents.`article_id` AS t0_r1,
contents.`user_id` AS t0_r2, contents.`title` AS t0_r3, contents.`permalink`
AS t0_r4, contents.`excerpt` AS t0_r5, contents.`body` AS t0_r6,
contents.`excerpt_html` AS t0_r7, contents.`body_html` AS t0_r8,
contents.`created_at` AS t0_r9, contents.`updated_at` AS t0_r10,
contents.`published_at` AS t0_r11, contents.`type` AS t0_r12,
contents.`author` AS t0_r13, contents.`author_url` AS t0_r14,
contents.`author_email` AS t0_r15, contents.`author_ip` AS t0_r16,
contents.`comments_count` AS t0_r17, contents.`updater_id` AS t0_r18,
contents.`version` AS t0_r19, contents.`site_id` AS t0_r20,
contents.`approved` AS t0_r21, contents.`comment_age` AS t0_r22,
contents.`filter` AS t0_r23, contents.`user_agent` AS t0_r24,
contents.`referrer` AS t0_r25, users.`id` AS t1_r0, users.`login` AS t1_r1,
users.`email` AS t1_r2, users.`crypted_password` AS t1_r3, users.`salt` AS
t1_r4, users.`activation_code` AS t1_r5, users.`activated_at` AS t1_r6,
users.`created_at` AS t1_r7, users.`updated_at` AS t1_r8, users.`deleted_at`
AS t1_r9, users.`token` AS t1_r10, users.`token_expires_at` AS t1_r11,
users.`filter` AS t1_r12, users.`admin` AS t1_r13 FROM contents LEFT O
UTER JOIN users ON users.id = contents.user_id INNER JOIN assigned_sections
ON contents.id = assigned_sections.article_id WHERE ((assigned_sections.section_id
= 1)) AND (contents.published_at <= '2007-11-15 02:24:09' AND
contents.published_at IS NOT NULL) AND ( (contents.`type` = 'Article' ) )
ORDER BY contents.published_at desc LIMIT 15←[0m
Nov 14, 2007 6:24:09 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: ←[4;35;1mSection Load (0.009000)←[0m ←[0mSELECT * FROM sections WHERE
(sections.site_id =1) ORDER BY position←[0m
Nov 14, 2007 6:24:09 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: Completed in 1.12200 (0 reqs/sec) | Rendering: 0.00100 (0%) | DB:
0.16200 (14%) | 200 OK [http://localhost/mephisto-0.7.3]
Nov 14, 2007 6:24:11 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO:
Processing AssetsController#show (for 127.0.0.1 at 2007-11-14 18:24:11)
[GET]
Nov 14, 2007 6:24:11 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: Parameters: {"ext"=>"css", "dir"=>"stylesheets", "action"=>"show",
"controller"=>"assets", "path"=>"main"}
Nov 14, 2007 6:24:11 PM sun.reflect.NativeMethodAccessorImpl invoke0
INFO: ←[4;36;1mSite Columns (0.030000)←[0m ←[0;1mSHOW FIELDS FROM sites←[0m
Nov 14, 2007 6:24:11 PM sun.reflect.GeneratedMethodAccessor5 invoke
INFO: ←[4;35;1mSite Load (0.018000)←[0m ←[0mSELECT * FROM sites WHERE (sites.`host`
= 'localhost') LIMIT 1←[0m
Nov 14, 2007 6:24:11 PM sun.reflect.GeneratedMethodAccessor5 invoke
INFO: ←[4;36;1mSite Load (0.011000)←[0m ←[0;1mSELECT * FROM sites ORDER BY
id LIMIT 1←[0m
Nov 14, 2007 6:24:12 PM sun.reflect.GeneratedMethodAccessor5 invoke
INFO: Completed in 0.33500 (2 reqs/sec) | Rendering: 0.00100 (0%) | DB:
0.05900 (17%) | 200 OK [http://localhost/mephisto-0.7.3/stylesheets/main.css]
Nov 14, 2007 6:24:14 PM sun.reflect.GeneratedMethodAccessor5 invoke
INFO:
Processing AssetsController#show (for 127.0.0.1 at 2007-11-14 18:24:14)
[GET]
Nov 14, 2007 6:24:14 PM sun.reflect.GeneratedMethodAccessor5 invoke
INFO: Parameters: {"ext"=>"png", "dir"=>"images", "action"=>"show",
"controller"=>"assets", "path"=>"bg"}
Nov 14, 2007 6:24:14 PM sun.reflect.GeneratedMethodAccessor5 invoke
INFO: ←[4;35;1mSite Columns (0.009000)←[0m ←[0mSHOW FIELDS FROM sites←[0m
Nov 14, 2007 6:24:14 PM sun.reflect.GeneratedMethodAccessor5 invoke
INFO: ←[4;36;1mSite Load (0.017000)←[0m ←[0;1mSELECT * FROM sites WHERE (sites.`host`
= 'localhost') LIMIT 1←[0m
Nov 14, 2007 6:24:14 PM sun.reflect.GeneratedMethodAccessor5 invoke
INFO: ←[4;35;1mSite Load (0.007000)←[0m ←[0mSELECT * FROM sites ORDER BY id
LIMIT 1←[0m
Nov 14, 2007 6:24:14 PM sun.reflect.GeneratedMethodAccessor5 invoke
INFO: Sending data bg.png
Nov 14, 2007 6:24:14 PM sun.reflect.GeneratedMethodAccessor5 invoke
INFO: Completed in 0.27900 (3 reqs/sec) | Rendering: 0.00000 (0%) | DB:
0.03300 (11%) | 200 OK [http://localhost/mephisto-0.7.3/images/bg.png]C:\testbed\mephisto-0.7.3>\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-14 18:17:57] INFO WEBrick 1.3.1
[2007-11-14 18:17:57] INFO ruby 1.8.5 (2007-11-01) [java]
[2007-11-14 18:17:58] INFO WEBrick::HTTPServer#start: pid=11245030 port=3000
127.0.0.1 - - [14/Nov/2007:18:18:11 PST] "GET / HTTP/1.1" 200 1326
In this case, Mephisto gets deployed at http://localhost:3000
and WEBrick console shows the following:
- -> /
127.0.0.1 - - [14/Nov/2007:18:18:14 PST] "GET /stylesheets/main.css
HTTP/1.1" 200 3168
http://localhost:3000/ -> /stylesheets/main.css
127.0.0.1 - - [14/Nov/2007:18:18:17 PST] "GET /favicon.ico HTTP/1.1" 200 0
- -> /favicon.ico
127.0.0.1 - - [14/Nov/2007:18:18:16 PST] "GET /images/bg.png HTTP/1.1" 200
142
http://localhost:3000/stylesheets/main.css -> /images/bg.pngThis shows how a popular Ruby application can be deployed on WEBrick or GlassFish V3 Gem without any change.
Let us know if you have tried other Rails applications on GlassFish v3 by leaving a comment.
Technorati: glassfish mephisto rubyonrails ror jrubyonglassfish v3 gem ruby jruby
Posted by Arun Gupta in web2.0 | Comments[3]
|
|
|
|
|
Wednesday November 14, 2007
TOTD #17: Backing Up your Blog Posts on Roller
This TOTD explains how to back up your blog posts hosted on Roller-based installations. The instructions are borrowed from Rich's original post.
blogapps-examples-1.0.4\java and invoke
ant.blogapps-examples-1.0.4\java\ex02\dist\grabber
directory and edit config.properties to match your settings. My
config file looks like:download_dir=./bsc_saved
blog_apitype=metaweblog
blog_username=arungupta
blog_password=<my password>
blog_id=arungupta
blog_url=http://blogs.sun.com/roller-services/xmlrpc
max_entries=1000Grabber.bat as:java -Dhttp.proxyHost=<proxy host> -Dhttp.proxyPort=<proxy port> -classpath
%_cp_% com.manning.blogapps.extra02.Grabber %1 %2 %3Grabber.bat.All the blog entries are locally stored in the directory specified in
config.properties (./bsc_saved in this case). And a convenient
grabber-index.html page is generated that indexes all the entries.
There are multiple directories in my blog resources. Moreover I'd like to link the resources to my backed up blog posts as well. So backing up resources seems like a slightly more involved process so I'll try that later. Otherwise Grabber is very cool and convenient for those in-flight and airport lounge times :)
Please leave suggestions on other TOTD that you'd like to see. A complete archive is available here.
Technorati: totd blogs roller grabber
Posted by Arun Gupta in General | Comments[5]
|
|
|
|
|
Tuesday November 13, 2007
JavaOne 2008 - CFP Closes Nov 16
It's that time of year again! JavaOne 2008 is scheduled for May 6-9, 2008 in Moscone Center, San Francisco, California.
JavaOne 2008 Call For Papers closes Nov 16 (this Friday). This is your chance to reach out to more than 15,000 developers and share the cool technology that you are working on. The three step process to submit the paper is:
You can submit either a Technical Session (TS), Birds-of-Feather session (BOF) or Panel Session (PS). The detailed difference between each of these is explained here but the key difference is that a TS is a more formal presentation where as BOFs are more informal geared towards interactivity with the audience. In a PS multiple domain experts discuss a hot topic and audience may be allowed to ask questions.
Have a look at JavaOne 2007 site archive.
Once again, the Call for Papers deadline is Friday, Nov 16, 2007, so if you have a talk you would like to submit, please do so asap.
Posted by Arun Gupta in webservices | Comments[11]
|
|
|
|
|
Friday November 09, 2007
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.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
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/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:
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 gem ruby
Posted by Arun Gupta in web2.0 | Comments[3]
|
|
|
|
|
Thursday November 08, 2007
TOTD #16: Optimizing Metro Stubs by locally packaging the WSDL
When Metro stubs are used to invoke a Web service endpoint, two invocations are made over the network - one for retrieving the WSDL and the other for sending the request message.
The second invocation is easy to explain because that's when the actual message is sent to the endpoint.
The first invocation to retrieve the WSDL is necessary because the generated stubs contain only the portable method signatures and annotations. All the binding specific information, such as quality-of-service policy assertions, are retrieved at the runtime. This approach was taken because of two reasons:
However if the WSDL is not expected to change then you can consider locally packaging the WSDL with the client. In this case the locally packaged WSDL, instead of accessing over the network, is used to retrieve the binding information.
Metro runtime is integrated in GlassFish and can also be installed on Tomcat. Vivek explained the several Tooling options with Metro - NetBeans IDE being the most comprehensive.
Several screencasts are available to get you started with Metro.
Please leave suggestions on other TOTD that you'd like to see. A complete archive is available here.
Technorati: webservices metro glassfish netbeans performance totd
Posted by Arun Gupta in webservices | Comments[0]
|
|
|
|
|
Wednesday November 07, 2007
Screencast #Web10: CRUD using jMaki and JPA
![]() |
This screencast shows how to create a simple
jMaki application, using
NetBeans IDE, that performs
some of the
CRUD operations on a Data Table widget. It uses Java Persistence API
(JPA) to connect to the database and the application is deployed on
GlassFish. The rest of the CRUD
operations can be easily built using the same methodology. The steps followed in this screencast are also described in detail. Enjoy it here! |
Technorati: screencast jmaki netbeans glassfish jpa database crud
Posted by Arun Gupta in web2.0 | Comments[3]
|
|
|
|
|
Tuesday November 06, 2007
GlassFish Day Beijing 2007 - By the Community, For the Community
Nov 3rd was the Community Day events as part of Sun Tech Days, Beijing. GlassFish, Open Solaris and NetBeans Day were conducted as part of the event. This blog provides a report on GlassFish Day.
The GlassFish Day started with approximately 100 people in the room. I personally enjoyed the entire day because I had to give only a 10 minute welcome session and no other talks :) However the emphasis of this particular event was to empower the local community about GlassFish so that they can help us spread the word further. And that was served very well. Most of the speakers were local and thus the title - By the Community, For the Community.
![]() |
It was very nice to meet Jim Jiang, Ada Li, Wang Yu, Liang Yan (Left to Right in the first picture) and Jason Huang (the second picture) who co-authored the first GlassFish book in Chinese. You can order the book from here. | |
![]() |
![]() |
|
The audience was very interactive through out all the sessions. Next is a list of the questions asked in each session (along with their answers).
Ada Li presented on GlassFish, Java EE 5 and their Future. The slides are available here and the questions are:
|
|
Key-Yoe presented on OpenESB. The slides are available here and the questions are:
|
|
Wang Yu & Jim Jiang presented on the Special Features of GlassFish. The slides are available here and the questions are:
|
|
Vihang Pathak presented on Open Portal. The slides are available here and the questions are:
|
|
Jason Huang presented on Open MQ. The slides are available here and Jason continued the discussion with attendees after the session finished just in time.
Tao Li presented on Metro - The Web services stack in GlassFish. The slides are available here and the questions are:
|
|
And the complete album from all the community events is available here:
All the presentations are also available here.
The event staff was meticulous and very helpful. They took care of all the details including getting the room ready on time, lining up the attendees and making sure the door is closed at all times. It was a great experience in all.
Next stop @ FOSS.IN.
Technorati: conf suntechday glassfish webservices netbeans opensolaris
Posted by Arun Gupta in webservices | Comments[3]
|
|
|
|
|
Monday November 05, 2007
Wangfujing Street - Authentic China in Beijing
If you want to see authentic China in Beijing without going to country side or hotungs, Wangfujing Street has it. This street is located at Wangfujing station using Line 1 of Subway.
This street has big name stores (with big bill boards), shopping malls and lots of people. Especially the side streets which sell street food are just amazing. Scorpion and Sea Horse are some of the common dishes but I just could not muster the courage to try them.
|
|
|
|
The Beijing 2008 Olympics store was crowded and had some nice goodies. No bargaining there though ;)
You can also buy all sort of mementoes like magnet, playing cards, decoration pieces etc from in the side streets. And here you DO need to exercise your bargaining skills.
A complete album is available here:
Today's Page Hits: 313
Total # blog entries: 1002