Thursday Dec 30, 2010

GlassFish in 2010 - What a year!


A lot has happened over the past 12 months! For the GlassFish team as for many people that came from Sun, it's been a challenging, yet exciting year.

It all started in January with the EU finally agreeing to the Sun acquisition by Oracle and a first set of changes. Later in March the GlassFish roadmap committed Oracle to the open source project with multiple supported releases in the next few years (with additional heads in the team).

Later that year, the external contributions from the community increased significantly and by June the team had released the "100-day" (Oracle-branded) 3.0.1 release, right in time for the 5-year celebration of GlassFish (with five years of TheAquarium soon after).

While re-stating the commercial strategy for GlassFish, the team worked hard on releasing no less than seven 3.1 milestones, producing and aggregating screencasts. This all lead up to the JavaOne conference with very nice reference customers, clear direction for GlassFish from top-level Oracle management and overal momentum throughout the conference. In Java SE land, "Plan B" was shared with the community.

With Java EE momentum building up, GlassFish was busy with the 3.1 work, adapting to the new infrastructure, and adopting new HTML 5 features. In the meantime OpenJDK, the JCP and others made the news with IBM joining OpenJDK, followed by Apple soon after with JCP elections and JSR votes confirming the proposed roadmap (JavaSE 7 mid-2011).

You can browse through a number of additional posts all tagged with frontpage.

Sunday Dec 19, 2010

It's time to start talking about Java EE 7

Java EE Seven

Update: a Java EE 7 discussion with Roberto Chinnici was posted on the GlassFish Podcast.

It's been one year since Java EE 6 was released (December 2009) and it's now time to start talking about Java EE 7. In fact at JavaOne San Francisco in September, at Devoxx in November and at JavaOne Sao Paulo and Beijing in December, the technical keynotes have gradually introduced what Oracle would like to see addressed in this release. In particular, I would recommend this replay of "The Future Roadmap of Java EE" (subscription required).

The theme for Java EE 7 is "The Cloud" and to be a "little" bit more precise, we're talking about multi-tenancy, application versioning, support for NRDBMS stores but also about modularity, trying to leverage what will be done at the JavaSE level. Of all the APIs up for a new version, JAX-RS and JPA seem to be the closest to being filed as JSRs.

The JAX-RS 2.0 draft JSR mentions a client API, MVC support, asynch support (inspired by Atmosphere), hypermedia support, better integration with @Inject/CDI, and more. Paul Sandoz has his slide decks from Devoxx available here. JPA 2.1 has a long list of potential enhancements, ranging from dynamic definition of PU, more control on persistence context synchronization, mapping between JPQL and criteria queries and much more.

You can also expect a Servlet alignment with the current state of HTML5 and WebSockets, a JSF 2.2 version (HTML5, file upload component, ...), some work on EJB 3.2, a modernization of the JMS API (finally!), and maybe something around a caching API. Of course, all it's still early days and a lot can change once the expert groups form and get to work. Nevertheless, there is a lot to be excited about!

Saturday Dec 11, 2010

Supported customers - read this


Oracle GlassFish Server customers and former Sun GlassFish Enterprise customers were using SunSolve to get to individual patches and GlassFish patch releases (see this Blog entry on "GlassFish For Business" for how we deliver support) up until now.

SunSolve is being retired (see this earlier heads-up blog) and you are encouraged to read this Transition to My Oracle Support FAQ for Legacy Sun Customers.

My Oracle Support (MOS) will integrate all the existing services and become the single support portal for all of your Oracle support needs. The full migration should be effective by the time you read these lines (Dec 13th 2010). MOS has been open to former Sun customers for a little while to set up and verify account credentials using your Sun contract number to register. More details on accessing the service using standard Oracle SSO accounts can be found in this FAQ.

Once you're able to log into MOS, you'll need to add Support Identifiers to your account. All legacy Sun patches (probably the most important feature to many GlassFish customers) are available in the Patches section on My Oracle Support.

Monday Dec 06, 2010

Quartet JSR Votes - The results are in!

Java Community Process Logo

Some three weeks ago, following community discussions and feedback, Oracle announced that JSRs for Java SE 7, Java SE 8, along with two others for Coin (small language changes) and Lambda ("closures") were filed and up for voting. These two earlier posts gave some context about the "P" in JCP : "How to Read a JSR" and "The JSR Inception Votes by the EC").

The results are now in, and as Henrik Stahl discusses on his blog, all four submissions pass the ballot. Here are the vote details :

• Java SE 7 Release Contents (JSR 336): 12 YES, 3 NO, 0 Abstain.
• Java SE 8 Release Contents (JSR 337): 12 YES, 3 NO, 0 Abstain.
• Lambda Expressions for the Java Programming Language (JSR 335): 13 YES, 1 NO, 1 Abstain.
• Small Enhancements to the Java Programming Language, aka Project Coin (JSR 334): 13 YES, 1 NO, 1 Abstain.

Google and Apache voted no on the umbrella JSRs. Overall, neither the results nor the comments (check them out in the result links above) are really surprising for anyone that has been following the recent Java news. With this ratification, the Java standard will progress through the Java Community Process while the open source reference implementation will be delivered through the OpenJDK project. Java SE 7 is due in 2011 (see OpenJDK roadmap) and Java SE 8 in 2012. Java is moving forward again!

Saturday Nov 27, 2010

The Aquarium turns 5!

The First Post in TheAquarium was on Nov 30th, 2005 and I'm using that as an excuse to put together a 5 year retrospective, but here I want to highlight this graph from Google Trends:

That uptick at the end of 2005 aligns well the start of the TheAquarium. Causality between the two events is hard to prove, but I'll go ahead and claim that's the case.

As you can see, GlassFish grew very nicely for three years until it peaked with the launch of Sun's GlassFish Portfolio (the "E" flag in the chart). If you look carefully you can also see smaller spikes that correspond to the IBM rumor and the Oracle announcement.  After that the graph shows a decline, and later a stabilization. The next phase for GlassFish and TheAquarium will be the release GlassFish 3.1, the first new major release under Oracle, at the beginning of 2011.

TheAquarium has been in the top 3 for "Popular Blogs" at Blogs.Sun.Com - number 1 recently - and that traffic has fueled the growth of GlassFish but the impact of TheAquarium goes beyond its numbers as it helps keep the community connected and informed.

Happy Birthday, TheAquarium, and looking forward to what will bring the next 5 years!

Tuesday Nov 23, 2010

GlassFish source repository on the new - now live!


Following the earlier first wave of projects migrating to the new infrastructure, the main GlassFish project is now almost fully available and the glassfish-svn repository is now available for checkins.

Jane is suggesting the following two options to start using the new environment :

Check-out source to a clean workspace:
svn checkout

Switch workspace to the new GlassFish SVN repository
1. cd <v3-dir>
2. svn switch --relocate
3. svn info and verify the following:
Repository Root:

Several people have reported that they were able to follow these instructions (with fast checkout!) and commit code. If any of the above doesn't work, please report your issues (here or on the DEV alias). More in further posts about the other services (mailing lists, bug tracking, website, etc.). So far so good.

Update: Eirik was kind enough to quickly update to the new location. Enjoy!

Saturday Nov 20, 2010

From Download to Testing a Clustered Deployment in Under 10 Minutes

Arun's latest screencast shows off GlassFish 3.1's HA and Centralized Administration.

The video shows how to create a 2-instance cluster on a single machine using the web-based Administration Console, deploy the canonical clusterjsp application, and show session fail-over capabilities in GlassFish 3.1.  From download to testing an application with high availability all in under 10 minutes...

Arun's video is at our official YouTube channel; follow the links to GlassFishVideos, or directly to GlassFish 3.1 Clustering, High Availability and Centralized Administration.

As of the writing this note, the channel has more than 300 subscribers with more than 14K channel views and more than 56K upload views.  Subscribe to not miss any of the content; so far there are 51 videos.

Not like JBoss - GlassFish Commercial Support

We use GlassFishForBusiness to announce all GlassFish releases, both public and restricted. Recently, one of its readers asked:

Will GlassFish become just like JBoss, with an open source (so-called, "General Availability") branch with few releases (most notably, only versions x.y.0 and no corrective versions) and only a commercial version which fixes even the most critical issues?

(A similar observation is described here)

We have addressed these questions previously ([1], [2], [3]) but those entries were a bit stale. I just did a cleanup pass at GFFB to update the content; check out:

To preempt accusations of unfairness, another obvious difference between JBoss and GlassFish is that JBoss does not have closed source AddOns while Oracle GlassFish Server does. But, as a counter, if you don't think Oracle's AddOns (and support and sustaining) don't give you value, don't buy them.

Wednesday Nov 17, 2010

How to Read a JSR

As promised, here is a basic Reading Guide to a Java Specification Request (JSR). Technical terms are described in the JCP process (current version is 2.7); the initiation process is in Section 1. I've added some historical background and context.

Examples and comments are as applied to the 4 JSRs just submitted: 334 (Coin), 335 (Lambda), 336 (Java SE 7) and 337 (Java SE 8)

Caveat! I do not work for the JCP office and if there are any discrepancies between the excerpts below and the JCP Document, the official rules win, hands down!

The Submitting Member is the JCP member that is submitting the JSR; for these 4 JSRs, it's Oracle.

The Specification Lead is the JCP member, or the employee of a JCP member that will lead the Expert Group. In our case they are: Joe Darcy (Coin), Brian Goetz (Lambda) and Mark Reinhold (Java SE 7 and Java SE 8).

Coin targets Java SE 7; Lambda targets Java SE 8.

The Initial Expert Group Membership is an initial list of JCP members that have already expressed interest to the EG Lead to participate in the EG. Normally that list is expanded further before the EG starts working.

Increased Transparency was one of the drivers for JCP 2.7 and each JSRs must include a description of how transparency will be achieved in the EG in that is in Section 2.15. The new transparency requirements and infrastructure means that interested parties can follow the activities of the EG without being a member of the EG.

Every JSR has a link to a form to nominate experts to an EG; for instance this one is for Coin. The EG lead decides who to accept; normally it needs to balance representation and expertise with manageability.

The Supporting This JSR section lists JCP members that support the initiation of the JSR. Normally, but not always, these members will also be in the Initial EG Membership. It would be reasonable to expect that EC members that support a JSR will vote for it, but, AFAIK, there is no requirement for that.

Section 2.2 indicates the target platform and section 2.4 what Executive Committee will vote on the JSR. All 4 JSRs will be voted by the SE/EE Executive committee - see the results of the most recent election.

The JSR review is a 2 week period when anybody can review and comment on a new JSR. Comments can be posted through a BBoard; for example this one is for Coin.

EC voting is described in Section A.5; refer to it for a full description but, in a nutshell:

  • "A.5.3 EC Members may cast two types of votes: "yes" and "no". Alternatively, a Member may explicitly abstain or, in the extreme and undesirable case, not vote at all."
  • "A.5.4 Only "yes" and "no" votes count in determining the result of an EC ballot"
  • "A.5.5 Except where noted otherwise in this document, EC ballots are approved if (a) a majority of the votes cast are "yes" votes, and (b) a minimum of 5 "yes" votes are cast. Ballots are otherwise rejected.
  • "A.5.9 EC ballots to approve UJSRs for new Platform Edition Specifications or JSRs that propose changes to the Java language, are approved if (a) at least a two-thirds majority of the votes cast are "yes" votes, (b) a minimum of 5 "yes" votes are cast, and (c) Sun casts one of the "yes" votes. Ballots are otherwise rejected."
  • Note that there are a number of other rules described in that section.

Applying the voting rules to the quartet, we have (I'm awaiting confirmationCorrected!):

  • Coin and Lambda require that 2/3rds of the votes cast are YES, a minimum of 5 YES votes, and Sun/Oracle must vote YES.
  • Java SE 7 and Java SE 8 require that 2/3rds of the votes cast are YES, a minimum of 5 YES votes, and Sun/Oracle must vote YES.

Ballot Results will be posted at the JCP site, in the JCP Blog, and in the JCP Announcement Board. We will also post an update here, at TheAquarium.

I think this covers the basics. Check out the full JCP 2.7 process if you want all the details!

Added - I talked with Patrick Curran to confirm under what rule each JSR falls. Since Coin and Lambda have language changes, they require 2/3rds, and since Java SE 7 and 8 include Coin and Lambda, respectively, they also require 2/3rds.

Friday Nov 12, 2010

Apple Joins OpenJDK

Below is the bulk of today's joint press release by Oracle and Apple where they Announce OpenJDK Project for Mac OS X.

For more information on Java, visit:

Java Platform, Standard Edition
JDK 7 Feature Roadmap

Oracle and Apple Announce OpenJDK Project for Mac OS X

REDWOOD SHORES and CUPERTINO, California—November 12, 2010—Oracle and Apple® today announced the OpenJDK project for Mac OS® X. Apple will contribute most of the key components, tools and technology required for a Java SE 7 implementation on Mac OS X, including a 32-bit and 64-bit HotSpot-based Java virtual machine, class libraries, a networking stack and the foundation for a new graphical client. OpenJDK will make Apple’s Java technology available to open source developers so they can access and contribute to the effort.

“We are excited to welcome Apple as a significant contributor in the growing OpenJDK community,” said Hasan Rizvi, Oracle’s senior vice president of Development. “The availability of Java on Mac OS X plays a key role in the cross-platform promise of the Java platform. The Java developer community can rest assured that the leading edge Java environment will continue to be available on Mac OS X in the future. Combined with last month’s announcement of IBM joining the OpenJDK, the project now has the backing of three of the biggest names in software.”

“We’re delighted to be working with Oracle to insure that there continues to be a great version of Java on the Mac,” said Bertrand Serlet, Apple’s senior vice president of Software Engineering. “The best way for our users to always have the most up to date and secure version of Java will be to get it directly from Oracle.”

Apple also confirmed that Java SE 6 will continue to be available from Apple for Mac OS X Snow Leopard® and the upcoming release of Mac OS X Lion. Java SE 7 and future versions of Java for Mac OS X will be available from Oracle. 

Java is a general purpose software development platform that is specifically designed to be open and enable application developers to “write once, run anywhere.” The Java platform is most widely used in business software, web and mobile applications.

Tuesday Nov 09, 2010

First Patch for Oracle GlassFish Server 3.0.1

Yesterday Oracle released the first commercial - just for customers - patch for GlassFish 3.0.1. GlassFish 3.0.1 Patch 1 (also called GlassFish addresses 7 bug fixes. As usual, I've created a new entry in GlassFishForBusiness and have updated the GlassFish 3 Family Overview.

Customers can update to this release from either the Open Source or the Oracle distributions of GlassFish 3.0.1; see Chapter 10 in the Administration Guide.

The structure of the GlassFish 3 family is shown here. For a richer release structure, covering 3 years and 23 releases, check out that for GlassFish 2 here.

Friday Nov 05, 2010

Java.Net Migration is Opt-In!

There is a piece of Sonya's announcement that should be highlighted: the migration of Java.Net projects to the new Kenai-based infrastructure is OPT-IN. As Dalibor also points out:

Any project owner can request that we move their projects, and any community leader can request that we move specific projects in the community. Any project that is not specifically requested by name via the opt-in form by November 30, 2010 will be purged when the CollabNet site goes dark.

We will be keeping tarballs of the CollabNet contents and will be able to distribute them after the site goes dark, however projects that request migration are our top priority.

The opt-in form is here: You can see the list of projects already requested here and here. I checked with Sonya and she says she will provide a better list at as soon as it comes up (which should be on Monday - cross fingers).

First Wave of Java.Net Migration

A few weeks into the acquisition, Ted Farrell announced plans to migrate Java.Net to Kenai infrastructure. For multiple reasons, it took us a bit to implement this, but last week we started with a first wave of GlassFish projects and a bit later Sonya provided Additional Details about the Migration.

Although the migration also involves some CMS changes the main focus right now is on the Forge Migration, from CollabNet Infrastructure to Kenai Infrastructure.

The projects involved in the first wave included Jersey, Metro, Grizzly, Atmosphere, JAX-WS, OpenMQ and several more. The intention was to do a quick migration but that has been delayed, with the current completion target date being Monday. Once the first wave completes, we will start migrating the rest of GlassFish and then other Java.Net projects.

Some additional details at:

Tuesday Nov 02, 2010

Results from the JCP EC Election

The results from the ME and SE/EE JCP Executive Committees are now available. Recall that ratified seats required simple majority of those who cast a vote, while the open are awarded to the nominees who receive the most votes.

Java ME EC:

3 Ratified Seat Candidates: Research in Motion; Samsung; TOTVS.
  Ratified: all 3 candidates.
2 Open Seat Candidates: Stefano Andreani; Aplix Corporation; Paul Grojean; Pavel Lahoda; Rahul Tyagi.
  Elected: Aplix and Stefano Andreani.

Java SE/EE EC:

3 Ratified Seat Candidates: Hologic, Inc; Apache Software Foundation; Red Hat Middleware LLC.
  Ratified: ASF and Red Hat.
  Not Ratified: Hologic.
2 Open Seat Candidates: Azul Systems; Eclipse Foundation; Google; Fabio Haider; Bob Lee; Liferay, Inc; Sam Pullara
  Elected: Eclipse Foundation and Google.

The new members will take their seats on Tuesday, 16 November, and the non-ratification of Hologic means that there will be an additional ratification ballot for that seat.

Full results for the election will be available at the JCP EC Election Page later today. I'm looking forward to the turnout numbers; traditionally the JCP EC election has very low turnout, I hope this election will have a significantly higher turnout.

Added - See Henrik's Comments on JCP EC Election for Oracle's reaction and future plans.

Added - Additional voting details have been announced; the number of votes is roughly in line with the past but the turnout is lower. To the right is a table based on public data:


Sunday Oct 31, 2010

JavaEE 6 SDK - Now Bundled with Java SE 6u22

Oracle (like Sun) provides the Java EE 6 SDK in 4 main bundles: full or Web Profile, and with or without the JDK bundle. We just updated the JDK bundles to reflect the latest JDK: JavaSE 6u22, which includes performance improvements and security vulnerability fixes.

Although the JDK software is only available in the +JDK bundles, the top level about file (e.g. "about_sdk_web.html") has been updated and all bundles are impacted.

The effort to get this update depends on how you install it and whether you are downloading from scratch or not.  For example,  if you have the previous version and use the GlassFish update center, you will only need to update the module that has that about file; see snapshot.  And, if you are not using a +JDK bundle, that's all there is to the update.

For more details of the update process, see this older and longer entry describing the situation for JavaSE 6u21.  Related posts are tagged updatecenter.

PS: At the time of writing this note, the JavaEE SDK download page still seems to have the u21 bundles, but the Update Center repositories have already been updated.