dimanche janv. 01, 2012

Next trip - Québec!

My first ever work-related trip to Canada will be to Quebec this coming January 11th to deliver a presentation (in French) on Java EE.

This is an Oracle event around Java where I'll be a speaker together with my colleague Mike Keith.

Here are the details if you are interested in attending this free event :
Oracle Canadian Java Briefing (English)
Séance d’information sur Java (French)

lundi nov. 21, 2011

GlassFish Back from Devoxx 2011
Mature Java EE 6 and EE 7 well on its way

I'm back from my 8th (!) Devoxx conference (I don't think I've missed one since 2004) and this conference keeps delivering on the promise of a Java developer paradise week. GlassFish was covered in many different ways and I was not involved in a good number of them which can only be a good sign!

Several folks asked me when my Java EE 6 session with Antonio Goncalves was scheduled (we've been covering this for the past two years in University sessions, hands-on labs and regular sessions). It turns out we didn't team up this year (Antonio was crazy busy preparing for Devoxx France) and I had a regular GlassFish session. Instead, this year, Bert Ertman and Paul Bakker covered the 3-hour Java EE 6 University session ("Duke’s Duct Tape Adventures") on the very first day (using GlassFish) with great success it seems. The Java EE 6 lab was also a hit with a full room of folks covering a lot of technical ground in 2.5 hours (with GlassFish of course).

GlassFish was also mentioned during Cameron Purdy's keynote (pretty natural even if that surprised a number of folks that had not been closely following GlassFish) but also in Stephan Janssen's Keynote as the engine powering Parleys.com.

In fact Stephan was a speaker in the GlassFish session describing how they went from a single-instance Tomcat setup to a clustered GlassFish + MQ environment. Also in the session was Johan Vos (of Mollom fame, along other things). Both of these customer testimonials were made possible because GlassFish has been delivering full Java EE 6 implementations for almost two years now which is plenty of time to see serious production deployments on it.

The Java EE Gathering (BOF) was very well attended and very lively with many spec leads participating and discussing progress and also pain points with folks in the room. Thanks to all those attending this session, a good number of RFE's, and priority points came out of this. While this wasn't a GlassFish session by any means, it's great to have the current RESTful Admin and upcoming Java EE 7 planned features be a satisfactory answer to some of the requests from the attendance.

Last but certainly not least, the GlassFish team is busy with Java EE 7 and version 4 of the product. This was discussed and shown during the Java EE keynote and in greater details in Jerome Dochez' session. If any indication, the tweets on his demo (virtualization, provisioning, etc...) were very encouraging.

Java EE 6 adoption is doing great and GlassFish, being a production-quality reference implementation, is one of the first to benefit from this. And with GlassFish 4.0, we're looking at increasing the product and community adoption by offering a pragmatic technical solution to Java EE PaaS deployments. Stay tuned ! (the impatient in you is encouraged to grab a 4.0 build and provide feedback).

mardi oct. 25, 2011

JAVA Developer Day, développez avec Java EE 6 et GlassFish

Evénement gratuit Java EE et GlassFish la semaine prochaine chez Oracle France :
"Comment exploiter tout le potentiel de Java EE 6 et de GlassFish ? Pour cela, Oracle vous invite à un atelier pratique inédit qui vous permettra de découvrir Java EE 6 et développer avec GlassFish."

jeudi 3 novembre 2010 de 9h30 à 16h30.
Oracle France - 15, boulevard du Général de Gaule 92715 Colombes

Au programme: présentation et labs (venir avec son portable).
Inscriptions en ligne (places limitées).

jeudi oct. 20, 2011

Exemple de code Java EE 6 (example de livre en Français)

Pour faire suite à mon billet du début d'année sur le livre "Développements n-tiers avec JavaEE" aux Editions ENI, voici maintenant l'ensemble du code source développé dans l'ouvrage qui est maintenant disponible. Il s'agit d'une application complète développée tout au cours du livre et testée dans GlassFish 3.1.x.

En parlant de GlassFish, voici un nouvel ouvrage en préparation.

jeudi juil. 28, 2011

Java EE 6 does Java 7 (with GlassFish 3.1.1)

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

Java 7 is here! and so is GlassFish 3.1.1! Get them while they're hot!

New Java versions can sometimes take a bit of time before they're adopted because:
a/ your IDE doesn't support the new version and associated language constructs
b/ you're a server-side developer and it'll be a while before your application server supports that new version of the JDK

Well, with Java 7, things are different with the quasi-simultaneous releases of JDK 7, NetBeans 7.0.1 (coming up very soon) and GlassFish 3.1.1! Here's a new screencast on the GlassFish Youtube Channel showing Java EE 6 development taking advantage of the project Coin features and running on GlassFish 3.1.1 and Java 7 :

lundi mai 30, 2011

Brno Oracle Java Developer Event - Success!

I spent last Thursday in Brno to deliver a number of Java EE talks and a keynote at the Oracle Developer Java Conference. It was great because it had a good developer feel and was similar in spirit to other community-driven conferences that I recently attended. Maybe the best part was the attendance - well over 400 (excluding Oracle employees and speakers) which is great for a first time.

Dalibor Topic fought the ash cloud and managed to reach Brno to kick off the day with a Java keynote with updates on Java 7 and current thinking about Java 8 and beyond. Doug Clarke, Java Persistence Director of Product Management at Oracle was here to cover advanced JPA features as well as recent evolution in EclipseLink with a nice multi-tenancy demo (I understand there's a screencast coming soon). I took this opportunity to interview Doug on EclipseLink. The recording will soon be up on the GlassFish Podcast.

And of course, last but not least, the Prague web services engineering team was strongly represented and covering JAX-RS and Jersey. Given how the last session overran by more than half an hour I'd say this was a successful and engaging presentation. Both Marek (JAX-RS co-spec lead) and Jakub (Jersey lead) blogged about the event and shared code demo.

That's a pretty poor photo there that I have but I'm hoping to see better ones given the presence of a profesional photographer (doing a keynote and three sessions I sure felt like a rockstar with photos of me taken at each of them...).

jeudi mars 17, 2011

Portable Java EE 6 Web Maven Archetype

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

With the growing use of Maven in enterprise projects, starting off with the best possible pom.xml is important. The good news is that there are a number of Java EE 6-related archetypes which can help you get started while offering IDE independance. The bad news is that their quality and portability in particular varies significantly.

The Java EE 6 platform APIs are now in Maven central : javaee-api:6.0 and javaee-web-api:6.0. These should be used with a provided scope and your POM should contain dependencies for the actual implementation (check this 3.1 download page for how to work with GlassFish).

Consider using that simple platform dependency rather than replying on archetypes introducing a long list of dependencies mixing APIs and implementations.

mercredi mars 16, 2011

Nouveau livre Java EE 6 aux Editions Eni

Jérôme Lafosse, ancien du CNAM et consultant formateur Java, vient de sortir son nouveau livre: "Développements n-tiers avec JavaEE".

Un nouveau livre sur Java EE et sur GlassFish, ça commence à devenir une habitude! J'ai participé à la relecture de plusieurs livres autour de Java et je dois dire que je trouve que les auteurs sont fous de consacrer autant d'énergie à rédiger le contenu et à le refaire plusieurs fois avant la sortie finale de l'ouvrage. Celui-ci n'échappe pas à la règle.

Au delà d'être écrit en français, ce livre est différent dans la mesure ou il ne se consacre pas exclusivement aux nouveautés de Java EE 6 mais s'adresse plutôt aux personnes qui souhaitent une couverture exhaustive de Java EE et n'ayant que des connaissances minimales sur le sujet. Par "exhaustif" j'entends qu'il couvre des technologies récentes comme CDI, Bean Validation, JAX-RS, comme des plus "traditionnelles" comme Servlet, EJB ou JSF mais aussi toutes les étapes de mises en oeuvre, y compris versioning d'applications, clustering GlassFish. Jérôme a suivi de près les développements de GlassFish 3.1 pour pouvoir proposer son livre seulement quelques jours après la sortie de GlassFish 3.1.

Le livre est imposant avec ses 900 pages (!) mais il couvre le développement complet d'une application ainsi que l'installation et l'utilisation de GlassFish, Hudson, NetBeans, Subversion, ANT, Eclipse, JUnit, et Selenium. Et pour ne rien gâcher l'éditeur propose la version numérique pour toute personne achetant le livre (c'est fou que ça ne soit pas une pratique plus répandue).

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 beginningee6.kenai.com.

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 :

lundi janv. 31, 2011

Packaging libraries with EARs

This blog has moved to alexismp.wordpress.com
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.

jeudi déc. 23, 2010

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 :-).

mardi déc. 14, 2010

Another day in Beijing, another set of photos

5 talks done! Two to go!

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

vendredi nov. 05, 2010

JFall 2010 - Yet another great Java conference

The folks in the NLJUG certainly know how to build a community and run events. JFall 2010 was in a new location this year (rather small Nijkerk, but you can get to pretty much anywhere in The Netherlands by train) and it was sold out at 1000+ attendees. And this is just a couple of weeks before Devoxx, another major Java conference literally miles away.

The conference started off with Danny Coward's keynote which was really well attended. His content had meat (JavaME, JavaSE, JavaFX, and JavaEE) and the feedback was positive. At diner with Bert and the rest of the NLJUG team the day before, I was told that my Java EE 6 talk had the most registrations and indeed the room which was used for the keynote looked far from empty even with 6 tracks in parallel. My talk focused on Java EE 6, how we got there, and what's causing the revival of flamewars on some community sites and overall excitement for the new platform. I managed to cram servlet3, ejb31, and cdi10 in a 3-minute closing demo. Reading the tweets after the talk seemed to indicate that people liked the session and learned several things.

Later in the day, I delivered a hands-on lab no less than three time with a total of 60 or so participants getting a feel for Java EE 6. The updated code and instructions for the labs are here. This went well after I realized we'd have no network and moved to non-Maven projects. GlassFish 3.0.1 and NetBeans 6.9.1 proved to be a good simple and sufficient combination for the labs (most people installed them on the spot).

I really enjoyed the discussions there on the night before, after a my talk, over lunch, during the labs and on the train on my way back. Lots of energy. So much for a dying Java community and technology!

lundi sept. 27, 2010

javaOne 2010 : Java EE 6 Panel "What do we do now?" notes

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

I was privileged to be moderating this year's Java EE panel at JavaOne (session 313278). We had a great list of panelists and a lively discussion. Here are my notes:

Panelists (from left to right)
• Adam Bien (individual)
• Jim Knutson (IBM)
• Emmanuel Bernard (JBoss, Red Hat)
• Reza Rahman (individual, Caucho)
• Krasimir Semerdzhiev (SAP)
• Roberto Chinnici (Oracle, spec lead)
• David Blevins (OpenEJB, Apache Geronimo)
• Alexis MP (Oracle, moderator)

Platform and API Adoption
JBoss is feature-complete (RC1) for the Web Profile, probably final in the Fall. Two more months before Caucho Resin is final. WebSphere is in Beta and WebLogic is working on it (GlassFish of course, has had a full implementation since the spec was released in December 2009).

Jim (IBM): adoption for JSF 2.0 (performance), servlet 3.0 and JPA 2.0 (mappings) seem to be very strong. Also JAX-RS (which unfortunately is not in the web profile and as such not part of the upcoming Resin 4 release). Krasimir (SAP) mentions EJB 3.x. Reza says people are very satisfied after studying Java EE 6. In some cases Java EE is back in people's radar. Emmanuel (JBoss): people like the consistency and tight integration of the platform. David (OpenEJB) : achievements with EJB's in WARs, singletons, asynch may replace JMS. Roberto (Oracle) on JAX-RS having helped REST become a mainstream technology for Java developers. Adam: migrated all his EAR's to WAR's, removed Quartz and replaced it with EJB Timer, removed a bunch of interfaces. RESTful resources as EJB removes layers, this is good. Event model in CDI is maybe one of the best features. Some of Adam's customers use EJB's and CDI without knowing that it's JavaEE which is the best possible sign that they're focusing on business logic.

CDI is a bit of a special case. Some think that it's powerful but that this power comes with complexity attached. Adam disagrees in terms of complexity of code (@Inject is really all you need to get started). JBoss/Emmanuel says that people are excited by CDI but portable extensions still not known by most. Jim: not that much demand for the time being, complexity might be causing some people to shy away from it but there is a lot of power there and adoption will come no doubt about it. Reza: the fact that it's part of the web profile is the reason they're certifying, also all Resin early adopters are coming for its CDI implementation. Need to re-align more of the platform in Java EE 7. Adam: CDI is like insurance, if there's a need for integrating additional frameworks, anything's possible with portable extensions, yet 90% of the projects don't need it. SAP: CDI is great but some people still haven't gotten their heads around Java EE 5 yet.

Java EE vs. Spring
Adam: I would never put Spring and Java EE together because there's too much overlap. Also from a business point of view, you'd need support from two companies (Spring and AS vendor) which typically don't like each other, so that's a big risk. Reza: there are a several reasons to integrate both: gradual migration, leveraging Spring's work (integration APIs). Adam replies that for new applications, there really should only be one as the injection styles overlap too much. IBM says it's hard to align technologies like Spring with the specification planing requirements, in particular JSR 330 does not quite allow for the integration of Spring, using a CDI-style of injection will offer greater fidelity. EE needs more work there. David Blevins says they're looking at a Guice implementation of CDI. Krasimir agrees that many projects do start from scratch so Java EE is the right choice.

Impact on tooling and testing
Krasimir: EJBContainer is a huge step forward. Emmanuel: tooling should help the developer and not be a requirement. For testing, JBoss has the Arquillian project (sort of next-generation Cargo), also works with GlassFish. David: would be neat to be able to inject resources in test code (OpenEJB working on that). Reza says trend in JavaEE is towards annotation and being more Java-centric (type-safe). Resin has no tooling plans but will integrate with Arquillian and is also developing and end-to-end testing solution. Adam: just use APIs, wizards are always suspicious and prevent people from using different tools (often the case in projects). Still looking for good unit tests (currently using junit 4, jmock, mockito). OpenEJB and GlassFish embedded help too. Roberto says that tools are also there to help people learn (NetBeans has a lot in store for that). Wizards also now produce clean annotation-based code if you decide to use them. Krasimir: tools are key because this is how most people experience and use the platform so they need to improve on a regular basis. Calling people to contribute to Eclipse. IBM: tooling evolved mainly in EE 5. Now more coverage with EE 6.

Questions from the audience
• CDI vs. JSF annotations (@ManagedBeans for instance) ? => Need to streamline some of this in future releases. CDI beans build on top of JSR 250 ManagedBeans. Need more of that throughout the platform.
• SpringMVC and CDI? => Technically possible: use CDI beans as controllers (but Reza says they're not seeing enough demand for SpringMVC to do the work).
• Java EE vs. Spring? => Reza: different approaches, make your own decision. Jim: don't reap out what works well. David: chose the platform you believe in and that will listen to you in the long run.

Java EE.next
Roberto (see also his technical keynote for details): Cloud as a focus, modularity as enabler (built on top of what JDK will offer). Also need to track emerging technologies (WebSockets, HTML 5). Need to evolve the specification and not let it up to vendors to implement. Jim: JavaEE can mostly run in the cloud today, bigger problem is dealing with putting large app together: need a modules system. Krasimir: really wanted modules to be there in EE 6 so couldn't agree more. David: more generalization of the various annotations across the platform. Reza: modularity can't be the only value-proposition of EE.next, also need realignment of underlying technologies.

Java EE 6 is here today, go ahead and try it out!


This blog has moved

Alexis Moussine-Pouchkine's Weblog

GlassFish - Stay Connected


« avril 2014

No bookmarks in folder


No bookmarks in folder