lundi novembre 23, 2009
|
GlassFish Embedded Reloaded, an appserver in your pocket It wasn't enough for GlassFish v3 to be broken into 200+ OSGi bundles executable on different OSGi implementations such as Felix or Equinox (or even without OSGi, i.e. in "Static" mode), we also had to make it embeddable.
In a previous entry, I discussed GlassFish embedded is in-process integration of the GlassFish v3 features (not just the web container) using an API to start/stop/configure the server and its containers and to deploy/undeploy applications.
While this definition and the use-cases (testing, shipping shrink-wrapped apps, ...) has not changed since GlassFish v3 Prelude which shipped a year ago, the API has substantially evolved (up to promoted build 65 in late September I believe) as you can read below and can now be considered stable. As you'll see later in this post, the deployment can be trivial. An overview of the API
Main classes are :
The API offer a flexible inner-class Builder pattern :
Let me walk you through a simple example which deploys an existing WAR from a
First the logic :
The startup process :
The deployment :
... and the cleaning up :
The above example is only scratching the surface. You can deploy exploded archives (check out the There are two modes for running GlassFish Embedded :
• implanted: this uses an existing GlassFish installation and requires having • autonomous: for easier distribution an all-in-one JAR file is available in two flavors: full profile (40 MB) and web profile (30 MB). Not bad for a full-blown app server! The complete application+runtime bundle can then be deployed using Maven, an installer (such as IzPack), a jar file (eventually wrapped in an .exe) or even via Java Web Start. Still early daysWhether you're using the implanted or autonomous mode (using the uber-jar), you'll be running the same code, simply using different entry paths. Because of the different packaging and the temporary filesystem layout the autonomous mode uses, differences are always possible. Many issues were fixed in the past couple of months thanks, including some by users themselves. Note that there is no OSGi involved in the embedded mode (I don't think this is a limitation, but it's certainly an important data point). It is much like running in static mode (same classloader hierarchy). There are also some limitations such as TimerEJB not being supported for the time being. But other than that, a non-trivial application like Hudson deploys to GlassFish embedded like a charm. If this sounds interesting to you, please use a recent promoted build (b73 and above) or wait (a few weeks) for the GlassFish v3 final release in December (2009) and certainly ask questions on the USERS mailing list (or forum), and share your experience via blogs, tweets, etc... ( nov. 23 2009, 04:38:56 PM CET ) Permalink Comments [0]Atmosphere jeudi, Devoxx lundi
Avec servlet 3, managed beans, bean validation, etc... cette session ira clairement au delà du contenu du bouquin d'Antonio (pourtant déjà très riche). Reste la question du JSR 299 qui mérite une session à lui tout seul (difficile de ne faire qu'une intro, la technologie a un ticket d'entrée non négligeable). En tout cas je trouve la progression dans la douzaine de démos plutôt sympa (une idée d'Antonio). Pour ce qui est du contenu GlassFish (keynote, sessions, etc...): les détails sont ici. ( nov. 11 2009, 11:24:55 AM CET ) Permalink Comments [1]La présentation du séminaire GlassFish ( nov. 09 2009, 03:02:00 PM CET ) Permalink Comments [0]
Webinar GlassFish - aujourd'hui à 16h
Jérôme Dochez (l'architecte de GlassFish) et Didier Burkhalter (la cheville ouvrière de nombreux projets GlassFish en entreprise) seront là pour m'aider à répondre au question pendant et après la présentation qui sera relativement courte (environ 30 minutes). A tout à l'heure. ( nov. 03 2009, 08:26:21 AM CET ) Permalink Comments [0]
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.
Je ne sais pas si c'est pour fêter la sortie de GlassFish v2.1.1, mais Oracle vient de publier des nouvelles largement rassurantes sur GlassFish dans une nouvelle FAQ sur l'avenir de plusieurs produits Sun dans l'eco-système Oracle une fois l'acquisition finalisée. Il y est entre autre question de continuer un support actif à la communauté et aux clients GlassFish ainsi que d'alignements technologiques entre GlassFish Enterprise et Weblogic. Pour qui connaît les deux offres, je pense que cela apparaîtra assez naturel.
Quoi qu'il en soit, comme je le disais en début de billet, c'est la version 2.1.1 qui est rendue aujourd'hui disponible en même temps que Sun GlassFish Communication Server 2.0 (Sailfin 2.0), l'offre de serveur d'application Telco (SIP, Diameter, etc...) développée avec Ericsson. En attendant la version 3 en décembre, voici donc une version pour tous les clients actuels de GlassFish qui attendent avant tout des évolutions mineures (pour eux, plus de 200 bugs corrigés ce n'est pas mineur) pour leurs systèmes en production plus que des nouveautés comme v3 en apportera. Rarement l'équipe GlassFish aura été aussi sollicitée. GlassFish 2.1.1 est une mise à jour de la version la plus largement déployée de GlassFish en production (niveau d'API Java EE 5). On y trouve de nouvelles versions de composants importants (Java MQ 4.4 / Jersey 1.0.3 / JSF 1.2_13 / Grizzly 1.0.30 / Metro 1.1.6), le support de AIX 6 et de mod_jk ainsi qu'une nouvelle option de partage de charge (par connexion) dans l'ORB. Enfin, le méchanisme de gestion de groupe Shoal propose des améliorations des node agents pour une meilleure détection (plus rapide, plus fiable) des noeuds d'un cluster. Bien entendu cette version continue de proposer une extreme simplicité pour la mise en place d'un cluster et les outils de gestion production GlassFish Enterprise Manager. Téléchargement de GlassFish 2.1.1 ici: https://glassfish.dev.java.net/downloads/v2.1.1-final.html et n'oubliez pas le séminaire en ligne GlassFish de la semaine prochaine. ( oct. 29 2009, 08:39:57 AM CET ) Permalink Comments [3]On don't think this will quite stop people from asking (me and others on the team) the same question, but this new FAQ from Oracle certainly has some positive information on GlassFish's future. The blogosphere and twitosphere have been quite active on that news today... ( oct. 28 2009, 11:55:28 PM CET ) Permalink Comments [2]Séminaire en ligne GlassFish la semaine prochaine
Mardi le 3 novembre 2009 (dans une semaine) à 16h00 Le format est classique: 45 minutes de présentation et le reste de questions/réponses. N'oubliez pas de vous inscrire pour obtenir les détails (URL et mot de passe). ( oct. 28 2009, 09:47:46 AM CET ) Permalink Comments [1]
• Servlet 3.0 (JSR 315) support in Maia
Attending and presenting at Java2Days this week in Sofia
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! ( oct. 07 2009, 10:13:50 AM CEST ) Permalink Comments [0]Using the EJBContainer API with or without Maven (but with GlassFish v3)
Updated this blog on October 28th as you no longer need to have a full GlassFish install to test EJBs
There are at least two ways to start GlassFish in embedded mode: using
The goal is to write something like as simple as this to test your EJB :
EJB's found in the classpath of the running code above will automatically be deployed and made available via lookups.
Calls to
To use
You could restrict this to a smaller set of GlassFish artifacts but for non-trivial tests (if you use JPA for instance), you would start to have a fairly long list of dependencies so the above sounds like a reasonable thing to do. This will require Maven to download the GlassFish All-in-one JAR file (40MB or so). The reason I wrote it would be trickier with maven is that you need to pass a property during the
Starting the appserver this way (with or without Maven) exercises the actual GlassFish code, not another implementation or a customized fork. There are some limitations to what you can run and in particular port configuration is ignored (not listening on any) and only local EJB interfaces are available (the spec only requires EJB 3.1 lite support). On the other hand, JPA calls are very much possible. This should all work with v3 promoted build 66 (I just tested this with promoted build 70, see above simplification). Adam Bien beat me to covering that topic, but I hope you get some additional info here. In my case the start-up, setup, deploy and shutdown of GlassFish Embedded are worth about 6 seconds. Note that there is no OSGi involved here.
For a complete working example with JPA calls, check out this sample code.
"Le futur de Java" ce jeudi à l'OpenWorldForum
Avec l'imminence du rachat par Oracle de Sun, un point sur Java semblait intéressant et utile. Au programme, le chemin parcouru par Java SE depuis sa mise en Open Source et les avancées prochaines de JDK7, une table ronde sur les langages dynamiques sur la JVM (Groovy, Scala, Fan, et Clojure, ou Jython, JRuby et PHP?), et enfin un point sur Java EE 6 et son implémentation de référence GlassFish v3. Notre Guillaume Laforge sera de la partie pour la table ronde. Ce sera bref (1h30 au total), mais une occasion concrète de faire le point sur les travaux en cours et sur ce que le futur proche nous réserve.
• Programme: http://openworldforum.org/program/floss-java.
GlassFish tip: customize directory listings
With GlassFish being a very capable HTTP server out of the bowser (thank you Grizzly!), it was time for v3 to offer the ability to configure directory listings. It is now possible to have pages listing files per
Configuration can be done inside
You might find it more convenient to have it be part of
Of course there's also the XSLT approach to have yet more control over the presentation. Check the use of 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:
There's also an offline version (close to 200MB of MPEG-4 for QuickTime in 640x480 format). ( sept. 16 2009, 11:06:04 AM CEST ) Permalink Comments [2] |