Sunday Apr 22, 2012

Great Indian Developer Summit 2012 Trip Report

I attended the fifth, and my first, Great Indian Developer Summit in the Silicon Valley of India, Bangalore. The conference is spread over 4 days with each day covering .NET, Web, Java, and Workshops respectively. The Java track had 800+ attendees (roughly based on a cursory headcount for the opening keynote) and the hall was packed. The theater style seating allowed the attendees to enjoy the wide screen presentations.

Another unique and cool thing about the conference is that they create life size posters of all the speakers and display them outside the speakers' room. This not only help you identify your room easily but also makes you feel like a celebrity ;-) Here are some pictures of the posters:

Venkat's opening keynote is always fun. He talked about "Refactor your Language Knowledge Portfolio: We're What We Can Code In". His entertaining presentation style keeps the audience engaged and laughing. His Essence vs Ceremony analogy was particularly impressive and I recommend reading that blog.

I gave three presentations and a hands-on workshop and the slides are now available.

This presentation gave an overview of JMS 2.0 and the new features coming there. This presentation had 200+ attendees and 50% of the audience were existing users of JMS. There was a lot interactivity during/after the session. Do you know JMS 2.0 Early Draft is already available ?

The primary goal of this specification is to provide a simplified API and clarify the ambiguities discovered over the past few years. Check out this blog for a quick comparison between the existing and the simplified API. If you have any feature request then its highly recommended to file a JIRA issue at

This presentation gave an overview of JAX-RS 2.0. Do you know that Early Draft 2 is already available ? Check out this blog for a brief overview of the new features coming in JAX-RS 2.0. You can find the latest updates at and also follow @gf_jersey.

This presentation explained the key concepts of how GlassFish PaaS-enable your Java EE application. The talk also showed how a Java EE application can be deployed where all he services required by the application are dynamically provisioned. A working version of the application, along with instructions, are available at A video of the application in action is shown below:

The video also shows how the cluster dynamically adjusts to meet the elasticity constraints pre-defined for the application.

The Java EE 6 hands-on lab had about 20 attendees. The self-pace instructions can be downloaded here. I was pretty amazed by the level of interaction. There was one particular guy who who came from the PHP land, was taking notes on a paper notebook, and was asking the most intelligent questions. There were other experienced J2EE/Java EE users who also enjoyed the simplicity introduced in the platform.

And somehow for the past few days the question of Java EE 6 over Spring has come up during each such engagement. My views are clearly expressed at Why Java EE 6 is better than Spring. And do read the interesting discussion in the comments, all the way to the end.

The conference was well organized with a personal introduction of each speaker. The rooms were well marked and the projectors worked very well. The conference crew was very helpful and prompt in reminding about the time remaining. However a 45 minute session is a few minutes too short and so had to tweak my existing slide deck to meet the time requirements.

Multiple conflicting talks were arranged such as Mike's Java EE 7 and mine JMS 2.0, Venkat's "Java 8: A Sneak Peak" and Simon's "Java SE 8 & Beyond". This feedback was conveyed to the organizers. Hopefully they'll be able to do a better job of this next time around.

On a personal side, I enjoyed a team dinner at BBQ Nation and is definitely worth visiting once at least. And could also manage to enjoy a lunch at MTR with Vivek. The ITC Windsor is a nice hotel with a decent fitness center and a great restaurant. The breakfast buffet had a great variety and very scrumptious.

Here are some pictures captured from the event:

And now the complete album:

The Java EE 7 platform will be much more mature by this time next year and who knows I might even submit a Java EE 7 hands-on lab!

Thank you Salt March Media for putting up a great show and providing me an opportunity to present. Looking forward to my participation again next year!

Monday Oct 03, 2011

Java EE PaaS using GlassFish 4.0 - JavaOne 2011 Technical Keynote

The JavaOne 2011 Technical Keynote explained how a Java EE application can be easily deployed in a PaaS environment using GlassFish 4.0.

The Java EE application, built from scratch, allows conference organizers to publish details about their conference such as tracks, sessions, and speakers. It also allows attendees to register for the conference and prepare their schedule. The application is built as a typical 3-tier Java EE 6 application using JavaServer Faces (with PrimeFaces widgets) for the front-end, Enterprise JavaBeans for the middle tier business logic, and Java Persistence API for connectivity with the database.

Deploying this application to GlassFish 4.0 highlights the following points:

  • Dynamic Service Provisioning: The service dependencies are discovered by introspecting the application archive and the required services such as Java EE, Database, and Load Balancer are provisioned. These services may be provisioned as part of an application deployment as is the case here, or a deployment can use pre-provisioned services that could be shared by different apps.
  • Elasticity using Auto-scaling: The Java EE cluster is automatically resized to meet the growing demands using auto-scaling. The decision to dynamically grow or shrink is based upon metrics that are collected during the application flow.
  • Highly Available Cluster: The Java EE cluster is highly available with session failover capabilities.

GlassFish 4.0 is a release in development that will allow for PaaS environments in the native and virtualized mode. The native mode provisions all the services on a non-virtualized environment such as a laptop/desktop and easy-to-replicate development and debugging mode. The virtualized mode allows a PaaS administrator to provision all the services in a private or public cloud, in an IaaS-agnostic manner, and provides for scalable deployments by supporting Elasticity to scale up (vertically) or scale out (horizontally) and to scale down to meet the changing needs. The Service Provisioning and Elasticity functionalities can be automatically done by the system or allow for manual action.

Follow the instructions to deploy this application in the native mode:

  1. Download the sample application, unzip, and build as mvn package.
  2. Download platform-specific Load Balancer zip file (Windows, Mac, Ubuntu, Ubuntu-64).
  3. Download GlassFish 4.0 build b04 and unzip.
    1. Copy "" to the "glassfish3\glassfish\config" directory.
      1. On Unix machines, the Load Balancer is installed in the directory "/u01/glassfish". Make sure to create this directory and change directory ownership to your login id..
      2. On Windows machines, the Load Balancer is created in the "C:\glassfish" directory.
      3. Check that you are able ping your hostname, such as ping `hostname`
    2. Start the domain as: asadmin start-domain
    3. Enable PaaS Console as: asadmin enable paas-console
    4. Configure GlassFish for the native mode as: asadmin create-ims-config-native
    5. Create a template for load balancer as: asadmin create-template --indexes ServiceType=LB,VirtualizationType=Native LBNative
    6. Follow the instructions in the video below (starting at 5:24) to deploy the application using PaaS Console. Applications not using database functionality or not relying upon a SQL for the database initialization can be deployed using CLI as: asadmin --availabilityenabled=true <APP-NAME>.war

Enjoy the video below for a more detailed explanation of the installation steps, application flow, dynamic service provisioning, high availability and session failover, and auto-scaling using elasticity in the virtualized mode.


Send us feedback at the GlassFish Forums.

An active copy of this page is maintained at



profile image
Arun Gupta is a technology enthusiast, a passionate runner, author, and a community guy who works for Oracle Corp.

Java EE 7 Samples

Stay Connected


« July 2016