Wednesday Nov 05, 2014

OTN Virtual Technology Summit

The OTN Virtual Technology Summit is a set of free online events covering various technical topics such as Java SE, Java EE but also Middleware, Database, etc.  Each topic will be presented by a subject matter expert coming either from Oracle or from the community (Java Champions, Oracle ACEs, ...). And during each session, a live chat will let participants ask questions and clarifications on the presented subject. You can check the agenda of the different tracks here.

OTN Virtual Technology Summit is a free event so make sure to register for this month OTN VTS!

  • VTS America : November 18th, 2014 – 9am to 12:30pm PST, register here.
  • VTA Asia : November 19th, 2014 – 10:00am to 1:30pm IST, register here.
  • VTS Europe : November 26th, 2014 – 9am to 12:30pm GMT, register here.

Monday Jun 09, 2014

From J2EE to Java EE: what has changed?

See original @Java_EE tweet on 29 May 2014

Yeap, it has been 8 years since the term J2EE was replaced, and still some people refer to it (mostly recruiters, luckily!). But then comes the question: what has changed besides the name? Our community friend Abhishek Gupta worked on this question and provided an excellent response titled "What's in a name? Java EE? J2EE?". But let me give you a few highlights here so you don't lose yourself with YATO (yet another tab opened):

  1. J2EE used to be an infrastructure and resources provider only, requiring developers to depend on external 3rd-party frameworks to then implement application requirements or improve productivity
  2. J2EE used to require hundreds of XML lines of codes to define just a dozen of resources like EJBs, MDBs, Servlets, and so on
  3. J2EE used to support only EAR (Enterprise Archives) with a bunch of other archives like JARs and WARs just to run a simple Web application

And so on, and so on! It was a great technology but still required a lot of work to get something up and running. Remember xDoclet? Remember Struts? The old days of pure Hibernate code? Or when Ajax became a trending topic and we were all implementing it with DWR Servlet? Still, we J2EE developers survived, and learned, and helped evolve the platform to a whole new level of DX (Developer Experience).

A new DX for J2EE suggested a new name. One that referred to the platform as the Enterprise Edition of Java, because "Java is why we're here" quoting Bill Shannon. The release of Java EE 5 included so many features that clearly showed developers the platform was going after all those DX gaps.

  • Radical simplification of the persistence model with the introduction of JPA
  • Support of Annotations following the launch of Java SE 5.0
  • Updated XML APIs with the introduction of StAX
  • Drastic simplification of the EJB component model (with annotations!)
  • Convention over Configuration and Dependency Injection

A few bullets you may say but that represented a whole new DX and a vision for upcoming versions. Clearly, the release of Java EE 5 helped drive the future of the platform by reducing the number of XMLs, Java Interfaces, simplified configurations, provided convention-over-configuration, etc! We then saw the release of Java EE 6 with even more great features like Managed Beans, CDI, Bean Validation, improved JSP and Servlets APIs, JASPIC, the posisbility to deploy plain WARs and so many other improvements it is difficult to list in one sentence. And we've gotta give Spring Framework some credit here: thanks to Rod Johnson and team, concepts like Dependency Injection fit perfectly into the Java EE Platform. Clearly, Spring used to be one of the most inspiring frameworks for the Java EE platform, and it is great to see things like Pivotal and Spring supporting JSR 352 Batch API standard! Cooperation to keep improving DX at maximum in the server-side Java landscape. 

The master piece result of these previous releases is seen and called today as Java EE 7, which by providing a newly and improved JavaServer Faces release, with new features for Web Development like WebSockets API, improved JAX-RS, and JSON-P, but also including Batch API and so many other great improvements, has increased developer productivity and brought innovation to server-side Java developers. Java EE is not just a new name (which was introduced back in May 2006!) but a new Developer Experience for server-side Java developers.

To show you where the platform is going (see the Java EE 8 update), see some totally-cool-and-refreshed informal images at the Java EE Platform Facebook Album, or the Google+ Java EE Platform Album you could use to spread the word and love for Java EE. Don't forget to like and/or +1 those social network profiles :-)

If you are a licensed vendor, perhaps you want to continue using the "Java EE Compatible" logo.

A message to all job recruiters: stop using J2EE and start using Java EE if you want to find great Java EE 5, Java EE 6, or Java EE 7 developers

To not only save you recruiter valuable characters when tweeting that job opportunity but to also match the correct term, we invite you to replace long terms like "Java/J2EE" or even worse "#Java #J2EE #JEE" or all these awkward combinations with the only acceptable hashtag: #JavaEE. And to prove that Java EE is catching among developers and even recruiters, and that J2EE is past, let me highlight here how are the jobs trends! The image below is from trends page, for the following keywords: J2EE, Java/J2EE, Java/JEE, JEE. As you can see, J2EE is indeed going away, while JEE saw some increase. Perhaps because some people are just lazy to type "Java" but at the same time they are aware that J2EE (the '2') is past. We shall forgive that for a while :-)

Another proof that J2EE is going away is by looking at its trending statistics at Google. People have been showing less and less interest in the term J2EE. See the chart below: 

Recruiter, if you still need proof that J2EE is past, that Java EE is trending, and that other job recruiters are seeking for Java EE developers, and that the developer community is aware of the new term, perhaps these other charts can show you what term you should be using. See for example the Job Trends for Java EE at and notice where it started... 2006! 8 years ago :-)

Last but not least, the Google Trends for Java EE term (including the still wrong but forgivable JavaEE term) shows us that the new term is catching up very well. J2EE is past.

Oh, and don't worry about the curves going down. We developers like to be hipsters sometimes and today only AngularJS, NodeJS, BigData are going up. Java EE and other traditional server-side technologies such as Spring, or even from other platforms such as Ruby on Rails, PHP, Grails, are pretty much consolidated and the curves... well, they are consolidated too. So If you are a Java EE developer, drop that J2EE from your résumé, and let recruiters also know that this term is past. Embrace Java EE, and enjoy a new developer experience for server-side Java developers.

Java EE on Twitter
Java EE on Google+
Java EE on Facebook

Tuesday Mar 04, 2014

Migrating from GlassFish to WebLogic: The Beauty of Java EE

WebLogic is Oracle's strategic application server for the Java EE Platform. And since Oracle decided to focus on it for commercial support, and to leave GlassFish free of any ties from commercial decisions, I decided to bring customers and users a series of blog posts about migrating Java EE apps from GlassFish to WebLogic.

GlassFish will continue to thrill as the Open Source Reference Implementation for the platform, its community, and source of innovation, like we are seeing through the Java EE 8 survey.

In this series, I will help GlassFish customers as well users to experiment, try, and evaluate Oracle WebLogic 12c (Java EE 6 certified) to deploy their mission critical applications. Continue reading through the first part, where I actually demonstrate "the Beauty of Java EE 6", by migrating a sample application without any code change.

And don't forget to follow @glassfish, @java_ee, and @oracleweblogic on Twitter! 

Thursday Feb 20, 2014

Java+EE Basic Training with Yakov Fain

Those of us that have been around Java/Java EE for a little while sometimes tend to forget that Java is still an ever expanding ecosystem with many newcomers. Fortunately, not everyone misses this perspective, including well-respected Java veteran Yakov Fain. Yakov recently started a brand new free online video tutorial series focused on Java and Java EE beginners. The very first of these excellent videos is posted below. The slides for the tutorial series are available here. Yakov is working to update the content to EE 7 and he uses GlassFish 4. If there are folks you know that would benefit from this content, please do pass on word. Even if you are an experienced developer, it sometimes helps to sit back and review the basics...

It's quite remarkable that someone of Yakov's stature took the time out to create content for absolute beginners. For those unaware, Yakov is one of the earliest Java champions and one would be very hard pressed to match his many contributions to the Java community. The tutorial demonstrates his continued passion, commitment and humility.

Sunday Jul 21, 2013

Java EE during OTN Tour 2013 in Latin America

The Oracle Technology Network Tour 2013 has already started, bringing several Oracle and non-Oracle speakers to OUGs (Oracle User Groups) to countries across Latin America. You can check the official OTN Tour 2013 page of the tour to follow up with agenda, dates, speakers and other information. Last year I participated giving talks in Uruguay and Argentina about Oracle WebLogic 12c. That time, I had recently joined Oracle and didn't know much about it. But this year though, I wanted to do more.

I proposed a few abstracts to OUGs/JUGs choose which could work best for each country, and here are the topics:

  • GlassFish in Production Environments
  • What WebLogic 12c Has To Offer to Boost Your Productivity
  • What's new in Java EE 7
  • Hands-on for Java EE 7

You can read the full story on my blog

Friday Jul 19, 2013

Java EE@Chicago JUG

On July 16th, I presented our flagship Java EE 7 talk at the Chicago JUG. Heather VanCura of the JCP helped arrange the talk.

The talk went very well - over 75 people attended by my count. More details, including the slide deck, posted on my personal blog.

Tuesday Jul 16, 2013

What's New in JMS 2 - Part 2

JMS 2 is one of the most significant parts of Java EE 7. Clearly, the principal goal of JMS 2 is to streamline and modernize the API by adopting programming paradigms like higher level abstractions, dependency injection, annotations, runtime exceptions, the builder pattern and intelligent defaults. However, a limited number of important new features were also added to JMS 2. In a recent OTN article, JMS 2 specification lead Nigel Deakin covers the new features such as shared subscriptions, delivery delays, asynchronous sends and delivery counts in detail. The article is the second of a two part series on JMS 2. For more visual folks, there is also Nigel's brief 15 minute video on JMS 2 on the YouTube GlassFish videos channel as well as is my JMS 2 slide deck below:

You can also check out the official specification yourself or try things out with the newly released Java EE 7 SDK.

Monday Jul 15, 2013

Java EE 7 Tutorial Available!

Many of you are familiar with the official Java EE Tutorial already. It is a great resource for learning Java EE and it is totally free!

The Java EE 7 version of the tutorial is now available along with the SDK/GlassFish 4. There's both a PDF version and an HTML version. In addition, the team behind the tutorials has also developed a great sample/starter application for Java EE 7 named Your First Cup: An Introduction to the Java EE Platform that should be very helpful to beginners.

A detailed blog entry talks about both the updated tutorial and starter application.

Wednesday Jul 10, 2013

An Overview of JAX-RS 2

JAX-RS 2 is one of the most significant parts of the Java EE 7 release. In a brief InfoQ article, Vikram Gupta overviews the major changes in JAX-RS 2. There's also the 20-minute JAX-RS 2 presentation by specification lead Santiago Pericas-Geertsen on the GlassFish videos YouTube channel and my own slide deck below:

You can also check out the official specification yourself or try things out with the newly released Java EE 7 SDK.

Monday Jul 08, 2013

Free Webinar on WebSocket, JSON-P, HTML 5 and Java EE 7

As developers, there's nothing better than a decent show-and-tell. OLL-Live is offering a free webinar titled Java EE 7: Using Web Sockets for Real-Time Communication on July 10 (Wednesday) at 8 AM Pacific Time. It will demonstrate writing an HTML 5 front end using a WebSocket, JSON-P, and Java EE 7 backend.

Don't miss out, check out the details and register now! I did mention it's free, right :-)?

JCache Marches Onward!

As many of you know, JCache (JSR 107) narrowly missed Java EE 7. JCache is clearly a very important and long-anticipated API as indicated in the well-participated Java EE 7 survey. I am happy to report that JCache keeps making steady progress and recently posted a public review.

The review is open until August 5th and you are encouraged to get your comments in. You can send your comments directly to or enter issues on GitHub.

At the current pace, JCache should be ready well ahead of Java EE 8 and be an excellent candidate for inclusion. You should also be able to use JCache with Java EE 7 and Java EE 6 as a drop-in jar.

Thursday Jul 04, 2013

Java EE 7 Javadocs Now Online

The official Javadocs are now available along with the recent Java EE 7 SDK release. While most of us use Javadocs for reference, some of us use Javadocs as an invaluable learning tool. I've personally certainly always found it useful to get deeper insight into any given API.

Comparing the Java EE 7 Javadocs with the ones for Java EE 6 also provides interesting perspectives into the changes such as the packages, features and APIs added.

Tuesday Jul 02, 2013

JBatch Overview

It seems batch processing is moving more and more into the realm of the Java developer. In recognition of this fact, JBatch (aka Java Batch, JSR 352, Batch Applications for the Java Platform) was added to Java EE 7. In a recent article JBatch specification lead Chris Vignola of IBM provides a high level overview of the API. He discusses the core concepts/motivation, the Job Specification Language, the reader-processor-writer pattern, job operator, job repository, chunking, packaging, partitions, split/flow and the like.

You can also check out the official specification yourself or try things out with the newly released Java EE 7 SDK.

Wednesday Jun 26, 2013

What's New in JMS 2 - Part 1

JMS 2 is one of the most significant parts of Java EE 7. One of the principal goals of the JMS 2 API is improving developer productivity by reducing the amount of code to work with JMS by adopting programming paradigms like higher level abstractions, dependency injection, annotations, runtime exceptions, the builder pattern and intelligent defaults. In a recent OTN article, JMS 2 specification lead Nigel Deakin covers the ease-of-use changes in detail. The article is the first of a two part series on JMS 2. For more visual folks, there is my JMS 2 slide deck:

You can also check out the official specification yourself or try things out with the newly released Java EE 7 SDK.

Tuesday Jun 25, 2013

deny-uncovered-http-methods in Servlet 3.1

Servlet 3.1 is a relatively minor release included in Java EE 7. However, the Java EE foundational API still contains some very important changes. One such set of features are the security enhancements done in Servlet 3.1 such as the new deny-uncovered-http-methods option.

Servlet 3.1 co-spec lead Shing Wai Chan outlines the use case for the feature and shows you how to use it in a recent code example driven post. You can also check out the official specification yourself or try things out with the newly released Java EE 7 SDK.