vendredi févr. 11, 2011

Java EE 6 training for TogoJUG

Following the example set by my colleague Geertjan, I delivered a half-day Java EE 6 tutorial to a group of a dozen or so students from Togo and a person or two from Burkina-Faso over skype. The material was heavily based on the Java EE 6 Tutorial delivered with Antonio Goncalves at Devoxx and available from

The students gathered at the Université Catholique de l'Afrique de l'Ouest in Lomé, Togo for this session put together by Horacio who I had met last summer in Brazzaville. Here's a picture of the group attending this short training :

mardi févr. 01, 2011

Developing Web Applications with Java EE 6 Webinar - Replay and Q&A transcript

The third webinar of the GlassFish Webinar Series aired Thursday last week and we had a good turnout with only limited technical problems (!).

I was presenting on "Building a Web Application with Java EE 6" and the replay is now available from the GlassFish YouTube Channel with the Q&A transcript now posted as well.

The webinar covered some basics for JSF 2.0, JAX-RS 1.1, and CDI 1.0. It is really close to the Java EE 6 Hands-On Lab delivered at JavaOne SF, Sao Paulo, Beijing and other places. The source code is on with a detailed guide.

Upcoming webinars are announced on

lundi janv. 31, 2011

Packaging libraries with EARs

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

Hong's recent packaging response on the GlassFish Forum reminded me of other similar problems faced by GlassFish users.

When packaging applications in an EAR file, the library JARs need to be placed in the archive lib directory (jars at the archive root level are not added to the classpath and thus available from other EAR artifacts..

The library jars placed in the "/lib" directory of the EAR (the directory name can be overridden in application.xml) will be visible to all sub-modules (JARs, WARs, and RARs) with no further configuration. No need to add Class-Path entries in the EAR manifest.

In the sub-modules, you can use Class-Path entries to explicitly reference library JAR files you may need.

Of course you can also "install" those libraries in the GlassFish "/lib" directory but you may run into other problems since they would be visible and shared from all applications.

GlassFish also offers a asadmin deploy --libraries foo.jar option (something a good number of people end up using when looking for an equivalent to "shared libraries" offered by other containers).

Then of course, if you're like most server-side Java developer you could probably put your application on a diet and remove a few of those JARs to use what's already in the platform.

lundi janv. 10, 2011

Screencast - installing a GlassFish company-internal repository

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

The GlassFish Update Center is a really severely underused feature of the product (IMO). Of course you can install GlassFish and simply ignore the update center and not use it to install updates, 3rd party frameworks, your own packages or upcoming patches but that would be ignoring one of the unique features of the product.

This new screencast shows how to setup a GlassFish Update Center repository behind your company's firewall. It shows access to (which replaced sunsolve) to grab the content of the repository, setting up an internal server (a Publisher), and updating existing GlassFish installs to use it or installing new app servers from this repo.

The offline version is here (75 MB).

The screencast scenario is largely based on this "Extending and Updating GlassFish Server Inside a Closed Network" documentation (for GlassFish 3.0.1) and you may also find "Upgrading to Oracle GlassFish Server From GlassFish Server Open Source Edition" to be useful. Finally, the blog about support from Oracle mentioned at the end of the screencast is here.

lundi janv. 03, 2011

2010 top blog entries and other stats

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

Wishing you a successful 2011 and sharing the obligatory stats for 2010 :

The #1 entry on this blog for 2010 is "GlassFish 3.0.1 is out - Delivering on the community roadmap promise" (June 2010, accounting for more than 7% of the traffic). Other top entries include :
"Using the EJBContainer API with or without Maven (but with GlassFish v3)" (Oct. 2009)
"javaOne 2010 : Java EE 6 Panel "What do we do now?" notes" (Sept. 2010)
"GlassFish without the IDE (quick survival guide)" (March. 2010)

Overal traffic was 46.29% from Google search engines, 29.65% from referring sites, and 11.30% was direct traffic.

More than 20% of visitors come from the US, and almost as much from France. Germany, UK, and India are around 5% each. Suriname, Gibraltar, Tuvalu, Timor-Leste, and Malawi each accounting for a grand total of 1 hit.

Compared to 2009:
• +32% Visits, -9% New Visitors (not sure how to interpret both).
• -12% for Firefox (still #1 at 54%), +180% for Chrome (#2 at 19%), IE still #3 but dropping by 25%
• 87.26% have Java enabled
• 70% still use Windows (Linux is 16% and Mac is 12%)

jeudi déc. 23, 2010

GlassFish Tip: log asadmin commands

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

I don't think I've seen this tip mentioned before in blogs or documentation and yet have had the request from different users and customers. If you want to log all the asadmin commands, simply set the AS_LOGFILE environment variable to the name of a file.

% export AS_LOGFILE=/tmp/asadmin.log
% asadmin ...
% cat /tmp/asadmin.log
12/23/2010 14:31:33 EXIT: 0 asadmin list-domains
12/23/2010 14:32:39 EXIT: 1 asadmin start-domain
12/23/2010 14:33:27 EXIT: 0 asadmin start-domain
12/23/2010 14:33:58 EXIT: 0 asadmin list-domains
12/23/2010 14:34:04 EXIT: 0 asadmin list-applications
12/23/2010 14:34:21 EXIT: 0 asadmin undeploy org.beginningee6.tutorial_demo11_war_1.0
12/23/2010 14:38:13 EXIT: 0 asadmin stop-domain
12/23/2010 14:38:46 EXIT: 1 asadmin start-domain
12/23/2010 14:41:00 EXIT: 0 asadmin --verbose start-domain domain1
12/23/2010 14:41:58 EXIT: 0 asadmin get servers.\*
12/23/2010 14:42:14 EXIT: 0 asadmin get servers.server.server.resource-ref.jdbc/__TimerPool.enabled
12/23/2010 14:44:37 EXIT: 0 asadmin deploy ../../HelloHK2bis.war

If you think this should be the default behavior, file an issue (with "3.2" as the "Fix Version"). I'll vote for it!
If you're trying to troubleshoot asadmin (or simply curious) you can set export AS_DEBUG=true to obtain a chatty output.

Java Podcast on Java EE 7 with Roberto

While in Beijing for JavaOne China, I had the opportunity to do an interview with Roberto Chinnici. It is now available (just in time before the holiday traveling) on the GlassFish Podcast (Episode #71) and focuses mainly on Java EE 7. We talk about cloud, multi-tenancy, application versioning, modularity, timing for the JSRs and the release, and more (JAX-RS, JPA, Web tier, ...).

You'll excuse the background carols, the hotel lobby insisted on celebrating Christmas everyday, all day :-).

mercredi déc. 22, 2010

Random Chinese Signs

We interrupt this program to bring you some "signs" which some of you have requested following my previous Beijing posts.

maybe a quote by Antoine de Saint-Exupéry ?

Men's room in a shopping mall.

Another men's room. No comment...

Behave! (contributed by Geertjan)

mardi déc. 21, 2010

JavaOne Beijing Keynote screencast JavaEE/GlassFish

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

While preparing for my demo in Nandini's JavaOne keynote in Beijing last week, I recorded myself delivering the demo ahead of time (there no such thing as too much preparation :). The scenario is short and doesn't get into many of the details but I thought I'd still share it here. I'd be happy to discuss details about how it was built.

The points I'm making in this short demo are :
• simplified JavaEE programing model
• right-sized Java EE Web profile
• full clustering in upcoming GlassFish 3.1
• OSGi dynamic services using CDI (in GlassFish of course)

For those not able to get to YouTube (bandwidth, great firewall, ...), I've posted the offline file here.

mardi déc. 14, 2010

Another day in Beijing, another set of photos

5 talks done! Two to go!

lundi déc. 13, 2010

More Beijing pictures - JavaOne China

One talk done. Six to go!

dimanche déc. 12, 2010

Some photos ahead of JavaOne Beijing

So I've made it to Beijing, checked in the hotel, walked around the Olympic stadiums and had the privilege to be taken out to diner to a famous roasted duck restaurant. Since there is no twitter here, here are some pictures (more with local "signs" in another post, they're quite funny, inspirational or just really surprising).

Tomorrow is going to be the first very busy day with multiple rehearsals and a first presentation for Java licensees.

mercredi déc. 08, 2010

GlassFish, JavaEE and friends swimming to JavaOne China

While a good number of my Oracle Java evangelist colleagues are in Sao Paulo for JavaOne, I'm busy preparing for JavaOne China which is starting early next week.

This event will have the traditional JavaOne Keynote, Technical Mobile, JavaSE and JavaEE keynotes and a long list of technical sessions. The registration numbers look \*very\* good. I'm still trying to nail down some details for the Java EE and GlassFish demo(s) but everything else is now ready.

The convention center for the event is located right next to the Olympic stadiums. I need to see if I can find the time to visit the bird's nest and the aquatic center. More once the event starts unfolding. Now on to getting some sleep before the trip and crazy event schedule. Here's a small subset of that :

In the Java EE 6 & GlassFish category :

Title Date/TimeLocation
JavaOne Opening Keynote Tuesday, 14:00Plenary Hall
JavaOne Technical Keynote Tuesday, 16:00Plenary Hall
The Java EE 6 Programming Model Explained Tuesday, 10:00Room E2-236 AB
Beginning with the Java EE 6 Platform (LAB) Wednesday, 15:30Exhibition Hall 4-3
Complete Tools Coverage for the Java EE 6 Platform Tuesday, 12:15Room E2-236 AB
Java Persistence API 2.0: An Overview Thursday, 11:45Room E2-236 AB
What's New in Enterprise JavaBean Technology Wednesday, 12:00Room E2-236 AB
Using Contexts and Dependency Injection (CDI) in the Java EE 6 Ecosystem Wednesday, 09:00Room E2-236 AB
The Feel of Java EE 6: Interactive Onstage Hacking Wednesday, 11:00Room E2-236 AB
Secure, Asynchronous Web Applications Using Java Servlet 3.0 and Java EE 6 Thursday, 13:30Room E2-236 AB
Dealing with Asynchronicity in Java Technology-Based Web Services Tuesday, 09:00Room E2-231
Advanced Java API for RESTful Web Services (JAX-RS) Wednesday, 09:00Room E2-231
HK2: Oracle WebLogic Server, Oracle GlassFish Server, and Beyond Tuesday, 11:15Room E2-236 AB
Advanced Web Service Development in Oracle WebLogic Server (LAB) Wednesday, 11:00Exhibition Hall 4-2
Apache Geronimo 3.0: More than Java EE 6 Thursday, 13:30Room E2-231
Oracle GlassFish Server: Product Strategy and Roadmap Tuesday, 09:00Room E2-236 AB
Scaling JPA Applications with Oracle TopLink Grid and Oracle Coherence (LAB) Thursday, 14:30Exhibition Hall 4-2

In the JavaSE & JVM Category :
Title Date/TimeLocation
JDK 7 and Java SE 7 Wednesday, 16:30
Thursday, 10:00
Exhibition Hall 4-6
Room E2-236 AB
The Garbage Collection Mythbusters Wednesday, 10:00Exhibition Hall 4-6
Project Coin: Small Language Changes for the JDK Wednesday, 15:30Exhibition Hall 4-6
Oracle's Java Virtual Machine Strategy Tuesday, 09:00Exhibition Hall 4-6
Using the File System API in the JDK Wednesday, 11:00Exhibition Hall 4-6
Oracle JRockit: Advances in Java Virtual Machine Technology Wednesday, 12:00Room E2-232 B
JVM Analysis: Oracle JRockit Mission Control and Oracle JRockit Flight Recorder (LAB) Tuesday, 12:15Exhibition Hall 4-2
What's Happening with My Application?: Java Virtual Machine Monitoring Tool Tuesday, 10:00Exhibition Hall 4-6

In the Oracle Fusion & WebLogic category :
Title Date/TimeLocation
General Session: Oracle Fusion Middleware Tuesday, 15:00Function Hall B
Oracle Exalogic: Introducing an Optimized Compute Platform for Oracle Fusion Middleware Wednesday, 14:30Room 203 AB
Oracle Fusion Middleware Application Server Roadmap Tuesday, 14:00Room 203 AB
Oracle WebLogic Server for Developers and Architects Tuesday, 09:00Room E2-232 A
Optimizing Oracle WebLogic Server on Sun SPARC Enterprise T-Series Servers Tuesday, 14:00Room 205 AB
Total Oracle WebLogic Server Development with Eclipse, Maven, and Hudson Wednesday, 12:00Exhibition Hall 4-2

dimanche nov. 28, 2010

Screencast - Dynamic OSGi services using CDI and GlassFish 3.1

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

Siva posted a great entry on the use of type-safe injection of dynamic OSGi services as few days ago which was followed by a blog on TheAquarium. There is now a short (4-min) screencast for this :

This demo requires a recent promoted build of GlassFish 3.1.
Check out this wiki page for all things OSGi in GlassFish :

jeudi nov. 25, 2010

Coin on the Mac

I just love how fast this community can move!
Kudos to Henri and Gildas for the continuous build and the .dmg/pkg downloads.


This blog has moved

Alexis Moussine-Pouchkine's Weblog

GlassFish - Stay Connected


« novembre 2015

No bookmarks in folder


No bookmarks in folder