Wednesday Jan 19, 2011 is now GlassFish-powered

Mollom logo

Drupal creator and leader Dries Buytaert announced last month that Mollom was betting the farm on GlassFish (well, its backend at least). Mollom is a popular web service which helps websites keep spam and other unwanted content such as website spam and profanity off of their web site. I know of a few sites myself that could use some help...

Dries and lodgON's Johan Vos, the architect being the move to GlassFish, were nice enough to share more details on the motivations, challenges and results in this adoption story as well as in this new episode of the GlassFish Podcast (#72). Update: Johan now has a post up on his experience moving to Java EE 6 and GlassFish 3.0.1.

This Java EE 6 application has been running in production for several months now and shows impressive results.
Update : you can now read even more about the specifics of this architecture in this article published on
Update 2: now has a blog post with the background for this project, the GlassFish choice and some forward-looking statements.

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.

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.

Thursday Oct 21, 2010

46 GlassFish Videos! 31K Views!

We have been adding videos to our YouTube channel: GlassFishVideos.  The latest video is from Vince, where he covers the features he has been adding (see GlassFish 3.1 and NetBeans 6.10).

GlassFishVideos now has 46 videos grouped into different playlists. Stats as I write this note are 10,029 channel views, 31,518 upload views and 248 subscribers, which is pretty good for a channel we started in late July; we are declaring it a success and will continue to post videos there.

Below is the full list of videos; subscribe to the channel to stay informed.

HTML5 Series (3)

OSGi enabled Java EE Applications (6)

JavaOne 2010 (2)

GlassFish 3.1 Series (8)

GlassFish 3.0 Series (7)

More GlassFish v3 Videos (5)

JavaEE 6 and GlassFish 3 with Eclipse Series (5)

Java EE 6 and GlassFish 3 with NetBeans 6.9 Series (5)

The GlassFish v2 Classic (1)

Fun Videos

We also have a few fun videos, including some old Sun Promo Videos.

Wednesday Oct 13, 2010

WebSockets and HTML5 on GlassFish

Santiago has started writing about HTML5 and GlassFish 3.

Last week he showed a simple Web application that controls an HTML5 video object remotely (post).  The example works using WebSockets connected from the server to two browser windows - playback activity in the master window is reflected instantaneously on the slave window.  Simple code but helps understand how these features can be used.

This week Santiago created a screencast (HD) based on that example and posted it to GlassFishVideos. I just placed it in a HTML5 playlist together with an earlier video from Alexis on WebSockets support in Milestone 2 of GlassFish 3.1.

I'll use this opportunity to capture a few key links on this area, hopefully it will save you some time.

HTML5 really is a collection of specifications, carried in different places: W3C, WHAT WG, IETF.  Some of the specifications relate to document syntax/semantics, some to (JavaScript) APIs, some to protocols.  The whole set is available as a (large) single document: Web Applications 1.0; a nice table is in the WHAT's FAQ: What are the various versions of the spec.

A good entry point is, which includes the specs for Web Applications 1.0, HTML 5 and Web Workers and plenty of other good content like FAQ and Wiki. HTML 5 properly describes the document format and semantics (Wikipedia,  WHAT's Editors Draft, W3C Editor's Draft). There are many HTML5 tutorials out there; I like Mark Pilgrim's Dive into HTML5 (avail under CC-BY-3.0 License).

Websockets (Wikipedia, API@W3C, Protocol@IETF) is the technology used in Santiago's example. Gregor Roth recently published a two part series that also covered WebSockets as well as Server-Sent Events, a higher-level API intended to manipulate the DOM from the server side.

Expect more HTML5 posts and videos; in the meantime, enjoy!

Update: some Twitter feedback suggested we tried the HTML 5 video enclosure, so we did! Feedback is welcome on how tit works for your browser and the video can be seen here on YouTube.

Thursday Sep 09, 2010

Mapping GlassFish 3.1 Milestones to Promoted Builds

Harald asked for help in mapping Milestones to Promoted builds. The map is implicit in the 3.1 Build Schedule and in the list of Promoted Builds, but the explicit map is:

• Milestone 7 - Build 30 (target date 11/23)
• Milestone 6 - Build 26 (target date 10/26)
• Milestone 5 - Build 20 (target date 9/14)
• Milestone 4 - Build 16
• Milestone 3 - Build 10
• Milestone 2 - Build 6
• Milestone 1 - Build 2

The functionality of promoted builds is cumulative. People should try using the latest promoted build; if that shows a regression, try the latest build that corresponds to a milestone... and file a bug.

Remember that all these are bleeding edge builds. If you are interested in stable builds you should use either 3.0.1 or 2.1.1, either the GlassFish Server Open Source Edition or the Oracle GlassFish Server (also see GlassFishForBusiness).

Wednesday Sep 08, 2010

All GlassFish 3.1 Screencasts

Our Official Channel at YouTube is GlassFishVideos.  It's still very new - we started it just a bit over a month ago - but it already has over 4,580 channel views.  Not at the level of the Lady Java videos ([1], [2], [3]), but it is a good beginning.

We currently have 31 videos at GlassFishVideos.  They mostly cover GlassFish 3 and are grouped into series.  We are currently trying to cover the features in the new, ongoing, release: GlassFish 3.1.

All the most recent screencasts have been based on the 3.1 Milestones; we hope to have screencasts covering Milestone 5 before JavaOne:

Videos on GlassFish Milestone 4:

GlassFish 3.1 Open Source Edition - New JDBC Features (Alexis)
Application-scoped resources in GlassFish 3.1 (Alexis)

Videos on GlassFish Milestone 3:

GlassFish 3.1 Admin Console as of Milestone 3 (Alexis)
Hudson Plugin for GlassFish prototype (Alexis)

Videos on GlassFish 3.1 Milestone 2:

Clustered (SSH) management and deployment for M2 (Alexis)
WebSockets 101 (Alexis)

Videos on GlassFish 3.1 Milestone 1:

Application Versioning in GlassFish 3.1 Milestone 1 (Alexis)
Basic Clustering demo for GlassFish Open Source Edition 3.1  (Alexis)

GlassFish 3.0 Series

More GlassFish v3 Videos

JavaEE 6 and GlassFish 3 with Eclipse Series

Java EE 6 and GlassFish 3 with NetBeans 6.9 Series

The GlassFish v2 Classic

Tuesday Sep 07, 2010

Java EE 6 Update 1 with JDK 6 U21 - and Using the Update Tool

We have released new Java EE 6 SDK w/ JDK 6 bundles using JDK 6 U21 (the good one, not this one). All bundles, including the non-JDK bundles which have not changed since June 17, 2010, are now at OTN; check the SDK download page, or navigate directly to the SDK w/ JDK bundles for Web Profile and Full Platform.

All the IPS packages have been refreshed; those for SDK w/ JDK have the new JDK components while those for the SDK w/o JDK have changed only very slightly. Since I normally use a Mac, I use an SDK w/o JDK; in that case, the only file changed is the about_sdk.html in the sdk-branding IPS component (or about_sdk_web.html in sdk-branding-web for web profile).

If you have installed the Java EE 6 SDK and enabled its Desktop Notifier, the update machinery will (eventually) detect the new packages, which will activate the following sequence:

First you will see the notifier; you can either dismiss it, or you can click on it to continue the update process

Next you will be presented an overview of the available updates.  There may be more than one, depending on what you have installed in your machine. For each one, you will be shown the size of the download (3.4KB in this case - since it is just one file in one component) and you will be asked to accept the license.

You can also manage the details for the installation process... and you are given an opportunity to look at the Ads :-)

The next step is the actual download, and a report on its completion.

At this point you can ask for details of the installed software. For example, you can go look at what components have been installed and their properties, or what AddOns are available, or what repositories you are using.

As you can see, this is all very painless. The upgrade is almost a no-op in this case but the same exact process will be used for larger updates and, since IPS underlies all the GlassFish 3 distributions, this also applies to the Commercial Distributions from Oracle.

The Oracle official documentation has very good explanations for all these tasks (thanks, Scott!); see Chapter 10: Extending and Updating GlassFish Server, specially Upgrading to Oracle GlassFish Server from the Oracle GlassFish Server Open Source Edition and Updating Installed Components. Commercial patches are installed in exactly the same way - which, compared to the previous approach, has customers really happy.

Saturday May 15, 2010

Towards GlassFish 3.1 - Best Thing since Sliced Bread

A lot of progress on GlassFish Server Open Source Edition 3.1.  If everything goes according to plan, by the end of the year we will have a release that has all the benefits of 3.0 and of 2.1.1.  From 3.0 it remains modular, embeddable and with JavaEE 6 and OSGi support.  From 2.1 it adds clustering and HA. It will continue to be Open Source and will interoperate with key Oracle middleware components. 

The development of 3.1 is documented at our GlassFish Wiki; key links include the Plan for 3.1, the Feature List, Engineering Schedule and the Functional Specs. Chris Kasso has started weekly engineering meetings.

Each main feature has an overview page describing it; over the next few weeks I will do a series of spotlights on these features. It can be the best thing since Sliced Bread :)

Wednesday May 05, 2010

Focus on GlassFish 3 means no GlassFish 2.1.2

We have adjusted slightly our Roadmap for GlassFish Server Open Source Edition. Oracle does not currently need an Oracle-branded 2.1.2, which means we can drop that release - at least for now - and stay focused on the GlassFish 3 family.  The 3.0.1 release remains and is making very good progress, and so is 3.1 - regular builds of both are now available. We recently updated the GlassFish wiki with a plan description for 3.0.1; the plan for 3.1 is in progress.

This is a good moment to remind of Oracle's standard safe harbor statement: "... intended to outline our general product direction.  It is intended for information purposes only...".

Also note that Oracle continues to support the GlassFish 2 customers through its commercial support.  We recently released Sun GlassFish Enterprise Server 2.1.1 Patch 4 (aka GlassFish 2.1 p10 aka GlassFish 2u2 p16), and we will continue to release patches at regular intervals. An overview of all the patches for the GlassFish 2 family is available at GlassFish For Business.

Sunday Apr 25, 2010

Nightly Builds of GlassFish 3.0.1 and 3.1

This week was the kickoff for GlassFish v3.1 and the release is looking very good: it will keep all the good things in v3 (JavaEE6, modularity, OSGi, open source) and will add Clustering and HA.  Add interop and synergy with Oracle Middleware Products (see Roadmap) and the Oracle machinery (sales / accounts) and I think 3.1 will have a very strong impact in the industry. So...

If you like to live on the bleeding edge and want to help us sharpen the next GlassFish releases, check out 3.0.1 promoted & 3.1 nightly (via @alexismp)

Sunday Apr 04, 2010

Leveraging Servlet 3.0 - Authentication without Forms using GlassFish v3 and Vaadin

The new Servlet 3.0 specification in JavaEE 6 (JSR website, JavaOne Session, VC podcast) packs many new features, including Annotations, Dynamic Registration, Pluggability and Asynchronous Support.

Servlet 3.0 also includes quite a number of security improvements, as described by Kumar a couple of months ago in a Summary of new Security Features in Servlet 3.0. As Ron explains, one of the themes is that Java EE 6 and Servlet 3.0 Converge on Container Security Functionality, another is extra functionality, as explained by Nithya's 3 recent posts ([1], [2], [3]) covering http-method-omission element in web.xml, and the authenticate and login methods of HttpServletRequest.


A great example of the new functionality is Bobby's Authentication Without the Form where he modifies the RIA app in Creating Secure Vaadin Applications using JavaEE 6 to use the new login machinery and thus remove the need for extraneous JSP files.

Bobby's very complete post includes full source code and a nice Screencast; note it requires a recent build of GlassFish 3.0.1 due to a bug in 3fcs.

You may also want to refer to the JavaEE 6 javadocs (e.g. HttpServletRequest) and to the JavaEE 6 Tutorial: Part I (e.g. see Web Application Security) and Part II (requires free registration).

I had not noticed Vaadin previously but it seems to be gaining some popularity; its programming model is strongly server-centric and generates client-code via GWT. You can see a Online Sampler and it recently deployed a Component Directory; its KB has a number of articles on how to use it with GlassFish Server. They also announced deals recently with BlackBelt Factory and with our old Liferay friends.

While chasing the sources for this spotlight I bumped into a number of other Java-based RIA frameworks including: Echo and ZK as well as frameworks like Flex/BlazeDS, GWT, and the JSF-based frameworks we know.

Wednesday Jan 20, 2010

Java EE 5 SDK Update 8 Now Available


We have released an updated version of the JavaEE 5 SDK. Update 8 includes Sun GlassFish Enterprise Server v2.1.1 and Java SE 6 Update 18 (download, release notes and instructions).

Note this is the GlassFish v2 / JavaEE 5-based release; we keep it going in parallel with the new GlassFish v3 / JavaEE 6-based release as it includes features like clustering and HA support (see Comparing v2 and v3).

Expanded from @glassfish.

Upgrade to GlassFish v3 - effortlessly


While GlassFish v3 offers a lot of new features (Java EE 6 and OSGi-based modularity being the most obvious ones), we take compatibility very seriously and want your existing applications currently running in GlassFish v2.1.x or GlassFish v3-Prelude to run unmodified in our latest release.

To that effect GlassFish can detect earlier versions of 'domain.xml' (the all-in-one config file for GlassFish) and upgrade it for you (when you start GlassFish v3 as one option). Please read Bobby's recent post for more on this.

The official documentation can be found in the upgrade guide. That document also covers the 'asupgrade' graphical tool (which ships with the appserver but which wasn't there in Prelude). If you want more technical details on the changes and why they were required, please read this piece. Remember that it was not supported to edit domain.xml by hand back then. It's still not supported today, but who would want to do that when you have 'asadmin', the web console, and now the RESTful API?

As a reminder, when we released GlassFish v3 on December 10th 2009 (together with Java EE 6), we had a blog storm with many many interesting posts about everything-GlassFish v3 which are summarized in previous entries: Part I and Part II.

Expanded from @glassfish.

Sunday Dec 20, 2009

Recordings of GlassFish Virtual Conference Now Available

The recordings of the JavaEE 6 and GlassFish v3 Virtual Conference are now available. Slides are also available. Registration is required in both cases; enjoy!

The VC was a great success; more info on it after the Holiday break.

Credits - The picture shown at the left is that of Jack Mullin who recorded the Bing Crosby's Show on the influential Ampex 200.