Metro, jMaki & JRuby/GlassFish Q&A from a Preso - Toronto & Montreal
By arungupta on Nov 27, 2007
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:
- How much Ajax/jMaki support is available in Portal ?
The Portal Pack plugin for NetBeans can support JMaki 1.0 for building JSR 168 or JSR 286 portlets that use jMaki widgets. There is no other explicit support on the Portal server for JMaki.
The portlets using jMaki widgets can be deployed on the Sun Portal Server and they should work without any issues. The only catch is that a slight configuration is required to get these portlets to work with the Portal's Ajax container. This is to work around the cross-domain Ajax restrictions of the browser.
- What is the frequency of adding wrappers of newer version of
toolkits, specifically Dojo toolkit ? Can I add/create the wrappers
Frequency depends on the toolkits. Dojo revs about every 6 months with the first major rev just last month. Anyone can create and add wrappers to the palette in NetBeans as explained here. Adding to Eclipse is on a per-web app basis and it will be enabled on palette-basis in the near future.
- What level of browser support is available for jMaki,
especially for the ones that are not mainstream ?
Here is the list of supported browsers from jMaki's website:
- IE 6 and 7 on Windows XP and Vista
- Firefox 1.5 and 2.x on Solaris, Linux, Windows XP/Vista
- Safari 2.x and Firefox 1.5 on Mac OS
Unofficially jMaki runs on:
- Opera 9.2+
- Opera Mobile
- Older versions of Netscape
Although the jmaki framework will work on these browsers some widgets may not work (such as those that use SVG) depending on the browser.
- When will a .NET version of jMaki be available ?
If the demand is great we will be more than happy to work to make a version available. The greater the demand the sooner we could do this. If there is interest in the developer community on starting work on a .NET version we could accelerate this process. Please file an RFE if you are interested.
- Can the jMaki widgets be rendered to Flash ?
Absolutely. We previously used some Flash Yahoo Maps and we use Flash for Sound. We are looking at having more media based widgets and it's only a matter of hours in the day that are slowing us down.
- Does jMaki work with Ajax4J and DWR ?
jMaki works fine with DWR find a sample app here:
As for Ajax4JSF (Ajax4J seems to not be active) we should work fine as jMaki widgets can be exposed as fully qualified JSF 1.1 or dynamic faces components. We also work with Facelets (see the jMaki samples for more).
And now for the Metro session:
- Is there any tooling for adding Security, Reliability and Transactions
for Contract-First development ?
Yes, this is explained here.
- Can the apps using JDK 1.4 as the deployment environment use
any of the Metro capabilities ?
Yes and No :) No because Metro programming model uses annotations heavily and that feature is available in Java SE 5 onwards. Yes because once the production environment is upgraded to Java SE 5 (it should work because of backwards compatibility, always good to check though ;) then you can develop your applications using the JDK 1.4 and deploy them on the upgraded production environment.
- How the Web service messages generated by Metro be logged ?
The different options to log Web service messages in Metro are explained here.
And finally for the JRuby-on-GlassFish session:
- Other than simplicity and productivity, why should I use
JRuby or Ruby at all ?
Rails is the main reason for Ruby to gain popularity. And JRuby provides the simplicity of Ruby along with power of Java libraries.
- Can the number of JRuby instances created by GlassFish be
Yes, it can be configured as defined here.
- With JRuby 1.0.2, there are significant performance
differences between Ruby, Java and JRuby. What is being done to
address that ?
The recent releases of JRuby are much more better performing so it's recommended to use a more recent release. And with some JRuby Performance Tweaks the performance is at par with C Ruby (MRI). Also see JRuby on Rails Fast Enough for performance benchmark results.
- Is there any tooling for adding Security, Reliability and Transactions for Contract-First development ?