jeudi déc. 17, 2009

Enregistrement du séminaire en ligne GlassFish v3 (novembre 2009)

En attendant que les présentations de la conférence virtuelle Java EE 6 et GlassFish v3 soient disponibles (encore quelques jours), voici l'adresse pour voir ou revoir la présentation GlassFish v3 qui date de début novembre.

J'ai parcouru rapidement la présentation (en francais) et hormis la plance intitulée "D'ici Noël" (Devoxx et lancement de JavaEE 6 et GlassFish v3 ont tous été des succès), tout reste d'actualité.

samedi oct. 31, 2009

Bug hunting and FishCAT'ing

If anything, the traffic on the "issues" GlassFish mailing list should be a hint on the stabilization work going on before v3 is declared final later this year.

At the same time the FishCAT team is also busy testing the latest releases.

mercredi oct. 07, 2009

Attending and presenting at Java2Days this week in Sofia

I'll be attending the Java2Days conference at the end of this week in Sofia, Bulgaria.

The conference is quite geared towards server-side Java with Spring and Java EE getting great coverage with SpringSource employees and Java EE expert group member Reza Rahman.

My first talk on Thursday is on GlassFish v3 while the second is on portability of J2EE/JavaEE applications (lessons learned while migrating customer applications to GlassFish). Should be fun!

mercredi sept. 16, 2009

JavaZone presentation posted (video)

My GlassFish v3 presentation from last week's JavaZone is already posted along with many others. If you're interested in the demos, feel free to skip right to them:
Demo #1 (developer features) @ 7:01
Demo #2 (Java EE 6) @ 21:00
Demo #3 (GlassFish à la carte) @ 26:00
Demo #4 (OSGi) @ 36:50
Demo #5 (RESTful admin) @ 49:00

There's also an offline version (close to 200MB of MPEG-4 for QuickTime in 640x480 format).

vendredi sept. 11, 2009

Which GlassFish v3 download bundle is right for me?

(updated October 2010)

You may have read the (recently updated) page comparing GlassFish v2 and v3 and decided to go with v3. The next question you might ask yourself is which bundle should I download? Why is the zip archive bigger than it "installer" equivalent? Here is some data to help you decide.

Zip or installer?
The zip installer is new in v3 and the same for all platforms. As the name implies, unzipping is all you need to do. A default domain1 is already available. If you use the graphical installer (now open source, which makes the difference between community and Sun-branded version even smaller, but see later paragraph on that), you'll be able to change port, JDK, install, etc. This "installer" bundle comes in two flavors - windows and Unix-like (an .sh script which works on Linux, Solaris, and the Mac). The installer also let's you do silent installs with a statefile which can be produced without doing any actual install.

The IPS/pkg/updatetool feature of GlassFish (which I've been talking about it a fair bit on this blog) is quite unique for an appserver, and as you may already know this is written in python and thus ships with a "native" minimal python runtime. As a consequence, to avoid having lots of different artifacts (one per platform), the ZIP or installer bundles do not contain this by default. The zip version will require the user to install pkg and updatetool the first time the command is invoked (network access is required). The installer will offer to do that as part of laying out the bits.

You may also note that the ZIP bundle is actually bigger (25% to 30%) than the installer archive. This is because pack200 (un-)compression (much more efficient on JAR files than PKZIP) kicks in as part of the installer process.

Web or Full profile?
That's an easy one since no matter which one you chose, you can install or remove packages to get the feature-set offered by the other profile. The download page (for instance on has the details of what's included in which profile. With only 30 MB, the smallest download is a Web profile installer. The largest is the zip archive of the full profile at 70MB.

GlassFish Open Source Edition or Oracle GlassFish Server?
Technically speaking, the differences are minimal. The license and the branding (a new feature in v3, the software is now fully and easily brand-able) are the two notable differences (another minor one is the different IPS repositories). Feature-wise, the two distributions are the same. Of course, the big difference lies in the fact that only the Oracle-branded version (Oracle GlassFish Server) is supported and usable in production only with a commercial license (otherwise the use is under the OTN evaluation license). It is also quite easy to upgrade an Open Source Edition installation into Oracle GlassFish Server.

mercredi sept. 09, 2009

GlassFish v3 at JavaZone - slides, demos and screencasts

Here are the slides that I presented on GlassFish v3 at the JavaZone conference today. All five demos went fine (some with the help of the audience), and I even got questions at the end. I'm not sure what the plans are for making the conference talks available (delay, format), so here are the five demos (almost identical) in various screencasts :

Painless development with GlassFish (deploy on change, session preservation, etc...). Use it today on any GlassFish v3 install.
Painless Java EE 6 development (James Gosling himself, only using NetBeans, not Eclipse like I did). Starts at 12:21. Same as above - any v3 version.
• GlassFish à la Carte - Part 1, Part 2, Part 3 (the closest to what I showed) - Same as above, IPS has been there from day one (much improved in recent builds though).
Extending GlassFish v3, OSGi-style (by Jerome Dochez, the GlassFish architect), note that recent promoted builds of GlassFish v3 now ships with the Felix OSGi declarative service bundle by default, no need to install it manually.
• (I don't know of a screencast showing the RESTful admin, but Rajeshwar blog would be a good start and Ludo's JavaFX demo a fun illustration). Using recent promoted builds is recommended.

Update: the video is available (streaming + QT format). Demo timing are documented here.

Let's enjoy the rest of the conference now...

mardi sept. 08, 2009

GlassFishZone in Oslo

I'm flying out to Oslo in a few hours to present at JavaZone on GlassFish v3. The slides and demos are now ready. This talk will focus exclusively on v3 and a bit of Java EE 6 (just can't do justice to it in the little time that I have). I had initially listed 7 demos but quickly found out that this would be way too much to cram into the 1-hour slot, so there's only going to be 5 fairly short demos (tooling, Java EE 6, packaging, OSGi, and RESTful admin). Let's hope they all go well ;)

Since this is partly new material and certainly has some new demos I wanted to test-run this in terms of timing and sequencing of demos. So I presented this yesterday at work to several colleagues and it's amazing how much you learn by presenting it just once. Ideally I would dry-run every presentation but it needs to feel a little real with somebody listening or else I just don't get into it. Anyhow, I'll be using a shorter version for the conference but the slides I'll post will have more details.

Session details:
"GlassFish v3 - The future of app servers and Java EE is here... well almost"
• Sep 9th, 14:15 - 15:15
• Room: Sal 3

As always, the agenda is diverse (with some usual suspects) and there's is a number of sessions that I'll try to attend (conflicts preventing) - EJB 3.1, Google App Engine, Ioke (Ola Bini's new language), JSR 330/Guice (that one is in parallel with my session unfortunately), developing for the cloud, class-loaders, hudson (Kohsuke will be there, I'm sure that his session will be packed and that there will be people talking to him hours after he's done ;) , debugging your production (btrace, ...), and more. But if the organisers still have those headphones in the main room with sessions showing in parallel on 6-7 screens I might do the usual zapping (not very nice to speaker I must admit).

lundi août 31, 2009

New screencast - Django setup for GlassFish v3

In this new short (4-min) screencast, I'm mostly following Vivek's instructions on how to setup GlassFish v3 for Django deployments. I'm using a recent promoted build and getting the jython distro straight using the GlassFish updatetool.

Everything is pretty much straightforward, but making it part of the default GlassFish v3 distribution (it's currently an optional add-on) would make it as simple as install/deploy.

vendredi juil. 10, 2009

Top reasons why GlassFish v3 is a lightweight server

This blog has moved to
Follow the link for the most up-to-date version of this blog entry.

I have been involved in helping a couple of consultants put together a presentation on the future of app servers and one thing that struck me was that in the resulting slides, they equated lightweight appserver with the use of the Spring framework. Using Spring in WebSphere doesn't make any lighter. I don't think that deploying an archive with 90% being runtime qualifies as lightweight (hence the SpringSource tc and dm server offerings), but I also think that painting every application server as being monolithic and heavyweight is a gross caricature, so here are my top reasons why GlassFish \*is\* a lightweight application server.

#1 • Download size
For some people download size matters. For them and for everybody else, GlassFish v3 downloads start at 30MB for the web profile (get it here). The updatetool will then help you scale up or down from there. Of course you can also start with the "a la carte" approach and go even lighter (20MB for a functional RESTful+EJB31 server). Some others are fighting hard to fit on a single DVD or CD.

#2 • Pay for what you use
With the extensible architecture of GlassFish v3, services and containers and brought online only when artifacts using them are deployed to the runtime. Deploy your first WAR and the web container will take a couple of seconds to start. Deploy your second webapp in a fraction of a second. Remove the last webapp and the web container will not be restarted on subsequent server restarts. Some people call that on-demand services.

#3 • Fast (re)deployment
Beyond incremental compilation (which most IDE's offer nowadays) and deploy-on-change (simply save the source and reload the web page), the time to (re)deploy an application is key to a developer's productivity. The GlassFish team has spent time optimizing that process to offer sub-second redeploy time for simple applications. GlassFish v3 also offers the preservation of sessions across redeployments which is a pretty safe operation (new class-loader, new application) and costs less than 5 seconds to recreate a Spring context (for instance with the jpetstore demo on my laptop), and even less on traditional JavaEE webapps. This is all built into the product with no configuration or add-on required. Check out this recent (and short) screencast for an illustration.

#4 • Startup time
Even in the days of (fast) redeploy, startup time still matters to both developers and operations. GlassFish v3 starts in about 3 seconds with a warm felix cache. Starting the web container is about an extra 3 seconds. Deploying individual applications depends largely on their size and complexity but let's say that it starts at around 100ms and should not go beyond 30 seconds. Starting GlassFish v3 with Apache Roller already deployed (not exactly the lightest webapp there is out there) will cost you about 20 seconds.

#5 • Memory consumption
One might think the OSGi nature or the application server introduces an unwelcome memory overhead. For an application servers like GlassFish v3, that certainly isn't a problem as a base GlassFish v3 runtime is using less than 20MB (another "side effect" of the modular & extensible architecture) and a non-trivial application only 50MB of heap (as reported by visualvm). Not quite small enough to run on a feature phone, but that may well happen sooner than we all think, especially when using the Static mode (no OSGi) and the embedded api.

#6 • Spring \*and\* OSGi
No need to choose between standard JavaEE, Spring, and OSGi. You can have all of the above in a single integrated product. In fact you can even use the unmodified OSGi-fied Spring DM version of the framework, and make it available at the expense of a couple of clicks in the update tool. The HK2 layer in GlassFish v3 is abstracting OSGi away and manages to have GlassFish retain its lightweight feel while allowing for Java EE components to inject any OSGi-based declarative services at the expense of a standard @Resource annotation. I don't know if you think this lightweight but I certainly find this to be an elegant integration.

#7 • Open Source
GlassFish is open source, so you can make it whatever you want, even a heavyweight monster if you so decide! Certainly the barrier to entry for using GlassFish is very lightweight.

But the real question is - is GlassFish v3 lightweight for you(r application)?
Whatever the answer is, I'd love to hear your comments and experience!

jeudi juin 18, 2009

GlassFish at Lyon JUG

JUG's in France have been popping up here and there at an amazing rate in the past 18 months since Antonio and the team have started the Paris JUG. I think we're somewhere in the 12 JUGs or so. For a country that didn't have any really active one only 2 years ago that's just amazing.

I was down in Lyon earlier this week for a JUG meeting (this was only their third meeting) on Groovy and GlassFish where over 60 people showed up. Come to think of it, when adding up all the JUGs, I think we average about 1000 attendees very months, that's the equivalent of a pretty decent conference. The feedback I've received was pretty good. I did a demo-heavy presentation focused on GlassFish v3 (most importantly the modularity and extensibility) and the 30-minute Q&A session took me to demo v2 (Enterprise Manager), explain the pricing model and monetization strategy, discuss more generally the Java EE and app server statuses, and deflect the best I could some Oracle-related questions...

My slides are here and you can read some notes on the event here (in French).

mercredi juin 10, 2009

GlassFish v3 a la carte screencast - Part 1

This blog has moved to
Follow the link for the most up-to-date version of this blog entry.

Given the modular approach taken in GlassFish v3 (170+ OSGi bundles in v3 Preview) and the IPS/pkg(5) tooling provided, I created a first screencast showing the following :
• install the IPS toolkit image (download), a 5MB bootstrap
• define the repository to get to the GlassFish v3 bits ( in this case)
• install the minimum set of packages required to create and start a domain (using the pkg command-line and the graphical updatetool)

The full-size (and offline) video is available here (15MB, video/x-m4v).
Further screencasts will show how one can add selected features (containers) to deploy specific applications.

Of course you don't have to be fiddling around with the various GlassFish v3 packages and could also be downloading one of two GlassFish v3 Preview distributions: web profile and full Java EE 6. Even then you'll only pay for what you use.

dimanche mai 31, 2009

Pre-versions GlassFish v3 et Java EE 6 disponibles

Avec quelques heures d'avance sur le démarrage de JavaOne 2009, Sun vient d'annoncer la sortie de GlassFish v3 Preview (à ne pas confondre avec Prelude sorti l'année passée) qui propose une implémentation de Java EE 6 en attendant le mois de septembre et les versions finales.

GlassFish v3 Preview est disponible en deux versions pour refléter le profil Web défini par la spec Java EE 6 (la modularité du serveur et son updatetool permet de passer facilement d'une version à l'autre). Cette version propose une implémentation complète d'un appserver (contrairement à Prelude qui ne proposait qu'un web container). On y trouve donc un conteneur EJB 3.1 (local ou distant), JSR 299 et Bean Validation (merci JBoss), JAX-RS (Jersey), JSF 2.0 (Mojarra), JAX-WS 2.2 (Metro), et d'autres encore.

Bien entendu, le socle technique reste basé sur OSGi (par défaut Felix dans le cas de v3 Preview), l'extensibilité reste offerte par HK2 (pour n'avoir qu'une seule ligne de commande, un seul fichier de config et une seule console d'admin web extensible quels que soient les modules présents) et les fonctionnalités de productivité (temps de démarrage, deploy on change, préservation des sessions sur redéploiement) sont là et élargies à Eclipse (3.4) en plus de NetBeans (6.7 RC). Mon petit doigt me dit que tout ceci sera démontré lors de la technical keynote de JavaOne du mardi après-midi.

Il y a également le support des langages et frameworks dynamiques: Groovy/Grails et jRubyOnRails, mais aussi désormais Jython (encore en Release Candidate) et Django. Tous sont disponibles sur l'updatecenter (ou on trouve également un package hibernate). Au delà des profils Java EE 6, la modularité de GlassFish v3 permet de se monter un serveur à la carte et d'imaginer par exemple une solution légère alliant Grizzly et Jersey (une combinaison populaire).

Et maintenant, place à JavaOne!

dimanche déc. 14, 2008

GlassFish Prelude presentation online (Wien version)

Sun Austria put up a very nice event a couple of weeks ago. Well organized, well attended, good conversations.
The slides are now available and they include my GlassFish v3 Prelude slide deck.

dimanche nov. 23, 2008

Le clustering dans GlassFish (v2)

Baptiste me demande ou est passé le cluster "fantastique" (envolée du dimanche soir? :) dans GlassFish v3 Prelude? En réalité, cela fait partie des fonctionnalités qui ne sont pas encore intégrées dans cette nouvelle version de GlassFish et qui justifient de rester sur GlassFish v2 (si on exclu mod_jk, bien présent lui dans v3). L'ensemble des différences est résumé dans ce tableau comparatif.

Ce commentaire me donne l'occasion de mentionner le document récent de mon collègue Satya qui résume (et simplifie quelque peu) la mise en oeuvre du clustering dans GlassFish v2. Les retours habituels des utilisateurs: simple et administrable. A noter qu'il reste des choix à faire pour définir la topologie de déploiement la plus appropriée. C'est le sujet du récent "White Paper": "GlassFish HA Reference Config Guide" (enregistrement gratuit mais nécessaire).

lundi nov. 17, 2008

Grails 1.0.4 now on the GlassFish v3 Update Center

Only a few days after SpringSource acquisition of G2One, Graeme Rocher announced the release of Grails 1.0.4 this past Friday (latest Spring 2.5.6, some new features, all that ahead of the 1.1 version).

I'm happy to report that thanks to Vivek and others, GlassFish v3 Prelude now offers this update as the default one-click Grails install. If you already have installed 1.0.3 using the GlassFish update center, you will be notified (startup log, admin console, and update tool) of the new version being available.

This makes my week-old "Zero to Grails..." screencast slightly obsolete but if you haven't used GlassFish v3 Prelude or its update center, its probably still a good intro.


This blog has moved

Alexis Moussine-Pouchkine's Weblog

GlassFish - Stay Connected


« avril 2014

No bookmarks in folder


No bookmarks in folder