Arun Gupta, Miles to go ...

Arun Gupta is a technology enthusiast, a passionate runner, and a community guy who works for Sun Microsystems.
« Previous month (Oct 2007) | Main | Next page of month (Nov 2007) »

http://blogs.sun.com/arungupta/date/20071128 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:

  1. 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.
  2. What is the frequency of adding wrappers of newer version of toolkits, specifically Dojo toolkit ? Can I add/create the wrappers myself ?

    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.
  3. 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:
    • iPhone
    • 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.

  4. 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.
  5. 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.
  6. Does jMaki work with Ajax4J and DWR ?
     
    jMaki works fine with DWR find a sample app here:
      https://ajax.dev.java.net/servlets/ProjectDocumentList?folderID=6977&expandFolder=6977&folderID=0

    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:

  1. Is there any tooling for adding Security, Reliability and Transactions for Contract-First development ?

    Yes, this is explained here.
  2. 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.
  3. 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:

  1. 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.
  2. Can the number of JRuby instances created by GlassFish be configured ?

    Yes, it can be configured as defined here.
  3. 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.

 

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

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20071127 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 ...

  1. There is no conference planner on the website. You already saw my workaround above :)
  2. Why a Certificate is required for viewing individual session details ? Here is the certificate warning presented by Firefox:



    At least get the certificate by a Trusted Authority :(

Technorati: conf glassfish foss.in sun netbeans ubuntu

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20071126 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:

  1. In a new Web project, right-click and select "Web Service from WSDL..." as shown below:

  2. Specify the Web Service Name, package name and chose the location of the WSDL as shown below:



    The Web Service port name is chosen for you. Alternatively, you can click on "Browse..." button next to "Web Service Port:" and select the appropriate port.
  3. Click on "Finish" and the Web Services Designer is shown as shown below:

  4. Right-click on the Project and select on "Undeploy and Deploy" to deploy the project.
  5. Expand the "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.
  6. In the Web Services Designer, select "Reliable Message Delivery".
  7. Right-click on the project, select "Clean" to clean all the generated files. Again right-click on the project and then select "Undeploy and Deploy" to deploy the project again.
  8. As in step 5 above, test the Web service. The packaged WSDL now contains the appropriate policy assertions and Reliable Message Delivery is enabled on the endpoint.

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

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20071121 Wednesday November 21, 2007

GlassFish @ FOSS.IN 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:

  • When ? Dec 4-8, 2007
  • Where ? National Science Symposium Center, Indian Institute of Science, Bangalore
  • Schedule - At this this this is a list of all the events happening with NO date/time/location assigned to them. It seems slightly late knowing that the conference is less than 3 weeks ago. And of course there is no individualized page where I can pick/choose the sessions of my interest.
  • Register here - The registration process is slightly confusing by introducing different kinds of delegates and the way payment is made. It is primitive too because you register on the Web and then pay at the event (no Credit Card payments). The rules are stern, for example no reissuing of conference badge.
  • Know more - Join the Mailing List. The traffic is becoming high as the date is approaching.
  • Live stats of registered attendees is a good. More than 1000 delegates have registered so far with a significant chunk from outside Bangalore (like me :).
  • FOSS.IN is still Looking for Volunteers, help them out!

Where can you find Sun ?

  • Talks
    • "The OpenSolaris Project: Getting Involved" by Jim Grisanzio
    • "PostgreSQL 8.3: a Story of Hundreds of Patches" by Josh Berkus
    • "The Virtuous Cycle: Sun's FOSS Philosophy and Strategy" by Simon Phipps
    • "OpenJDK and Mobile & Embedded: The First Year" by Roger Brinkley
    • "Packaging Java Applications for Ubuntu Platform" by Harpreet Singh
  • Project Days
    • Open Solaris
    • OpenOffice
  • Sun Booths
  • In the hallways
  • Elsewhere in the conference

Where can you find me ?

  • Around GlassFish Booth in the Expo
  • Likely giving 1 or more BoF
  • Likely giving 1 or more Lightning Talk
  • Taking pictures

What can you do before the event ?

  • Download GlassFish
  • Try one or more screencasts to get a feel
  • Where can you hear the latest and greatest about GlassFish - Of course, TheAquarium. So use your favorite RSS reader and subscribe to it.
  • Find and talk to me about GlassFish, I'd love to hear your feedback.
  • And you can monitor other Sun FOSS.IN bloggers.

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

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20071120 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.

  1. How to build support for jMaki in other languages such as Perl ?

    The best option is to check out jMaki workspace and look at Jmaki.php and XmlHttpProxy.php.

    The basics are relatively easy but not always obvious. There is no runtime spec so it's hard to get all the little details right: Theming, API keys, and the Proxy behavior are pretty specific. Please feel free to ask a question on jMaki Forums. It would be helpful if you can help us create such a document while adding support for Perl.
  2. Is it possible to point a DataTable widget to a Database table, introspect the database table and auto-generate the rows/columns ?

    Java Persistence API (in Java) and ActiveRecord (in Rails) already serve this purpose. There are detailed instructions for jMaki/JPA and jMaki/ActiveRecord. At this time there are no plans to tie closely to the database. Please file an RFE if you like this feature.
  3. Do we have any comparisons between jMaki and Open Laszlo ?
     
    We need to understand Open Laszlo better to prepare a comparison. At this time no comparison is available.
  4. How are topics implemented ? What is the data structure that implements them ?
     
    The topic name is a String / Regular expression Object. The topic names can also include wildcards (start, include, end with a *). The payload must be an object (strings are objects). https://ajax.dev.java.net/publishsubscribe.html provides some more details.
  5. Do we have any performance data on large data sets - e.g. 15,000 rows in a Data Table widget ?

    Carla has a good sample that explains how pagination can be achieved for large data sets. The real question is "how much can you realistically cache on the client?". There are lots of algorithms and that can be more application logic. If you are going to deal with sets like this then the Dojo Grid is supposed to be good as it handles client-side caching and paging. We'll be adding it as a widget for the dojo 1.0 push.
  6. Are there any widgets that support streaming video ?

    Not yet but it would be very easy to wrap a widget like that. For example, please look at Sound extension that is available as wrapper over Flash.
  7. How to prevent scripting attack on jMaki-wrapped widgets ?

    jMaki wrappers are very trivial. The data from an external domain is not processed in any manner and instead passed on to the underlying toolkits. We make sure the wrappers are well tested and rely on the underlying toolkits to test their widgets.

And now for the Metro session:

  1. How more recent Metro jars be installed on GlassFish ?

    A stand-alone build of Metro can be downloaded from metro.dev.java.net. This build comes with wsit-on-glassfish.xml script and can be used to override the jars in an existing GlassFish v2 installation.
  2. Why Reliable Messaging is required if TCP/IP already provides reliability ?

    TCP/IP provides reliability at the network level. The Reliable Messaging support in Metro implements a transport-independent messaging protocol (defined by the WS-Reliable Messaging spec) with a SOAP Binding. This allows the SOAP message to be used in alternate transports such as JMS or SMTP. It also enables Reliability between a Client and Endpoint with multiple intermediaries in-between which is not possible with TCP/IP.
  3. Is the "Test Web service" feature available outside NetBeans ?

    The "Test Web service" feature in NetBeans makes use of Tester application in GlassFish. It is a web application that dynamically generates the JSP pages by introspecting the WSDL. Currently it only works only for methods that have primitive types in the signature.
  4. What would it take to run Metro on Embedded Jetty ?

    Servlet-based endpoints can be easily deployed on Jetty as explained here. The different variants of Endpoint.publish() currently runs only on Light-weight HTTP server bundled along with Java SE 6. An RFE has already been filed for this functionality and it will be fixed in a future release of Metro.
  5. Does Metro Security integrate with Active Directory ?

    Even though Metro Security cannot be directly integrated with ActiveDirectory, Authentication can be plugged through the integration of Metro with OpenSSO.
  6. What specific performance improvements have we made in Metro ?

    Here are some of the key performance improvements:
    • Revisited some of the key abstractions. The physical data representation was hidden from the user and yet backed by different implementations such as InputStream, JAXB objects, DOM node, Source, etc.
    • Faster, type-safe read access to commonly used properties such as Target Endpoint Address and SOAPAction. Also lazy reading.
    • Headers are made randomly accessible.
    • Filtering of data was enabled by creating an additional wrapper instead and delaying the actual filtering
    • Mostly JAXB is used to write the JAX-WS payload. There were numerous improvements made in JAXB such as:
      • Collapsing the layers and write directly to OutputStream instead of using StAX.
      • Pre-encode tag names to UTF-8
      • Numbers are converted straight to byte stream
      • Namespace prefixes encoded just once and reused
      • Lazy reading and writing of attachments (for example image is encoded in to JPEG byte stream)

    Metro team also presented a BoF 2526 on these improvements at JavaOne 2006.

  7. How much traffic is bloated because of enabling Reliability or Security ?

    There is a definite bloating of messages that happen when either Reliability or Security or Transactions are enabled. I'll provide the exact numbers in a later blog but all the messages are clearly defined by the existing specifications.

Feel free to ask any other questions in Metro Forum and jMaki Forum.

Technorati: conf webservices jmaki glassfish netbeans web2.0 q&a

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20071119 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.

  1. Software pre-requisite
    1. Subversion client (for example Tigris)
    2. Maven 2.0.x
    3. JRuby 1.0.x (I used JRuby 1.0.2 and lets say installed in JRUBY_HOME).  Make sure JRUBY_HOME/bin is in your path.
  2. Build the Gem
    1. 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:

    2. Build the gem by giving the command:

      mvn install

      And success is achieved by seeing the following in the console:

      [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.
  3. Install the Gem
    1. Change to the directory where the Gem is available

      cd target\dependency\glassfish\pkg
    2. Install the Gem as:

      C:\testbed\ruby\jruby-1.0.2\bin\jruby -S gem install GlassFish-10.0.0-java.gem
      Successfully installed GlassFish, version 10.0.0

And 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

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20071118 Sunday November 18, 2007

Dilbert: Career in Engineering

Technorati: dilbert engineering

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20071115 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:

  1. Install and Configure JRuby 1.0.2. The GlassFish v3 Gem does not work on Windows (JRUBY-1549) with JRuby 1.0.2 and you need to use the JRuby trunk workaround.
    1. Download and Unzip JRuby1.0.2 (lets say JRUBY_HOME).
    2. Include 'JRUBY_HOME/bin' in your environment PATH.
    3. Install Rails (with all dependencies) in JRuby installation by giving the command:

      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.5
    4. Install ActiveRecord-JDBC as shown below:

      C:\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.5
  2. Download and Install GlassFish V3 Gem.
  3. Install and Configure Database
    1. Download and install MySQL Community Server 5.0 (lets say MYSQL_HOME).
    2. Start MySQL database by giving the command 'mysqld-nt --user root --console' in MYSQL_HOME/bin directory on Windows or './bin/mysqld_safe' from MYSQL_HOME directory on Unix flavors.
    3. In a different shell window, create a database and grant privileges by giving the following commands:
       
      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;
      Bye
  4. Install and Configure Mephisto
    1. Download and Unzip Mephisto 0.7.3.
    2. Install Mephisto as described here. The two steps are summarized below for convenience:
      1. Copy 'MEPHISTO_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.
      2. Bootstrap the development database using the command:

        C:\testbed\mephisto-0.7.3>jruby -S rake db:bootstrap -J-DRAILS_ENV=development

        and that shows the following output in the console:

        (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/MephistoBlog
  5. Deploy Mephisto on GlassFish v3 Gem as shown below:

    C:\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 ms
  6. Mephisto is now deployed at http://localhost:8080/mephisto-0.7.3



    and shows the following output in GlassFish console:

    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]
  7. The exact same application can be easily deployed on WEBrick as shown below:

    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.png

This 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

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20071114 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.

  1. Download blogapps-examples (1.0.4 as of this writing).
  2. Go to the directory blogapps-examples-1.0.4\java and invoke ant.
  3. Go to 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=1000
  4. If you are running behind a firewall, add proxy host and port information to Grabber.bat as:

    java -Dhttp.proxyHost=<proxy host> -Dhttp.proxyPort=<proxy port> -classpath %_cp_% com.manning.blogapps.extra02.Grabber %1 %2 %3
  5. And run the script Grabber.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

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20071113 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:

  1. Read the Topics
  2. Understand the Criteria
  3. Submit Paper

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.

Technorati: conf javaone

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20071109 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:

  1. 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

  2. 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

  3. 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

  4. 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

  5. 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 %>

  6. 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:

  1. 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

  2. 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

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20071108 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:

  • All the binding information cannot be captured in the generated stubs
  • Quality-of-service may change between the stub generation and actual invocation.

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

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20071107 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

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20071106 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:

  • Is GlassFish supported on AIX ?

    GlassFish v2 is supported on Solaris Sparc, Solaris x86, Windows, Linux and Mac. The next Update Release (scheduled next year) will be supported on AIX.

  • Is GlassFish v3 modular architecture based on OSGI ?

    Read the relationship between v3 and OSGI here.

  • What is the difference between GlassFish v2 and Application Server 9.1 ?

    The codebase for GlassFish v2 and App Server 9.1 is exactly same. However there are two differences between them:

    • GUI-based installer

    • You can buy support for App Server 9.1

  • How is GlassFish v3 different from v2 ?

    GlassFish v3 is the next version of GlassFish v2. Here are the main differences:

    • Smaller (<100 KB kernel)

    • Faster (starts in < 1 second)

    • Modular (starts up only the required container)

    • Will be Java EE 6 compatible

    • First stable version will be available next year

  • Can a J2EE 1.4 application be deployed on Java EE5 ?

    Yes, a J2EE 1.4 application using only the standard features can be deployed on Java EE 5 compliant App server like GlassFish.



Key-Yoe presented on OpenESB. The slides are available here and the questions are:

  • What are the timelines for next release of the product ?

    It is scheduled mid 2008.

  • Are JBI components supported in Eclipse ?

    JBI components can be supported in Eclipse through extensions or plugins.  Efforts are either in progress and have been demonstrated.  One such effort can be referenced at http://incubator.apache.org/servicemix/extending-eclipse-wtp-to-support-jbi.html

  • What is the difference between JBI, SCA and SDO ?

    SDO (Service Data Object) is included in the SCA (Service Component Architecture) standard.  There are differing views on the differences between JBI and SCA/SDO and listed at: http://www.osoa.org/display/Main/Relationship+of+SCA+and+JBI

  • Can Open ESB be deployed in a container other than GlassFish ?

    Yes.  It is possible to deploy OpenESB on JBoss, but it requires some tweaking.  OpenESB can also be deployed on WebSphere.  Refer to this entry,
    http://blogs.sun.com/annies/entry/openesb_on_websphere.

  • What are the main difference between OpenESB and Service Mix ?

    Service Mix is an open source ESB based on the JBI specification, as well.  So, the JBI concepts in the presentation apply to Service Mix, too. So, the primary difference is implementation and the platform it supports. Service Mix runs on more platforms than OpenESB.  But, Open ESB has more emphasis on tools and has a more comprehensive environment using Netbeans IDE for creating SOA/Composite applications that run in Open ESB environment.



Wang Yu & Jim Jiang presented on the Special Features of GlassFish. The slides are available here and the questions are:

  • What is the mechanism behind Comet ARP ?

    ARP (and Comet) allows for "parking" a request when some conditions are not satisfied, and "continuation" the request processing at the later time. Based on NIO, ARP will keep a HTTP connection open for a long time, but will not hold a thread on the connection, which is more scalable.

  • How Comet can be enabled ?

    By adding <property name="cometSupport" value="true"/> property to HTTP listener.

  • How much is the performance impact because of enabling Comet ?

    There is no performance impact.

  • How to build Comet apps ?

    They are very rich API for Comet application. Read more details here, here, ICEfaces supports Grizzly Comet natively, and GWT will soon as well.



Vihang Pathak presented on Open Portal. The slides are available here and the questions are:

  • How to contribute to the community ?

    There are many ways to participate and they are documented at https://portal.dev.java.net/public/GetInvolved.html.

  • What are the next steps for Open Portal ?

    The next release is 7.2 which will happen from the source thats in the open. The roadmap for post-7.2 is in works and will be finalized and communicated shortly.

  • What are the Advantages of Open Portal as compared to BEA's ?

    Open source is the first and biggest but not the only advantage. Sun's Portal (which is now open source) has been rated in the magic quadrant for many consecutive years by Gartner. It is enterprise class, true to the definition here, http://wiki.java.net/bin/view/OpenPortal/EnterpriseClassDefinition.

  • Will SSO work between Open Portal and existing applications ?

    Yes, if the existing applications are already using the same SSO solution (Access Manager).

  • What JSRs are supported ?

    JSR 168, JSR 286, JSR 170



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:

  • Is there any performance comparison with the current version of Axis2 1.4?

    The current performance benchmarks are with Axis2 1.1.1 and available here. Some more performance improvements have gone in Metro since then but no results are available.
  • How can I manually edit the configuration file to change the enterprise features ?

    The recommended way is to enable/modify any of the enterprise features using NetBeans IDE. Hand editing the configuration file requires to understand the syntax of policy assertions and the inner workings of Metro.
  • How does Metro compare with XFire ?

    A matrix comparing several Web services stacks is available here.

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

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20071105 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:

Technorati: conf traveltips beijing china

del.icio.us | furl | simpy | slashdot | technorati | digg |
|
« Previous month (Oct 2007) | Main | Next page of month (Nov 2007) »

Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.