Tuesday Apr 30, 2013

Java EE 7 Platform Completes the JCP Final Approval Ballot

I'm happy to announce that the Java EE 7 Platform and Web Profile JSR has just passed the JCP Executive Committee Final Approval Ballot, with the support of an overwhelming majority of the committee members. This completes the JCP approval process for all of the JSRs under the Java EE 7 umbrella.

This Java EE 7 Platform release — the first under Oracle's stewardship — comprises the following 14 JSRs and 9 Maintenance Releases (MRs), including the JSRs led by our partners in this effort, Red Hat (CDI and Bean Validation) and IBM (Batch). Of these JSRs, the WebSocket, JSON, Concurrency, and Batch JSRs are new to the Java EE Platform with this release.


  • Java Platform, Enterprise Edition 7 (JSR 342)
  • Concurrency Utilities for Java EE 1.0 (JSR 236)
  • Java Persistence 2.1 (JSR 338)
  • JAX-RS: The Java API for RESTful Web Services 2.0 (JSR 339)
  • Java Servlet 3.1 (JSR 340)
  • Expression Language 3.0 (JSR 341)
  • Java Message Service 2.0 (JSR 343)
  • JavaServer Faces 2.2 (JSR 344)
  • Enterprise JavaBeans 3.2 (JSR 345)
  • Contexts and Dependency Injection for Java EE 1.1 (JSR 346)
  • Bean Validation 1.1 (JSR 349)
  • Batch Applications for the Java Platform 1.0 (JSR 352)
  • Java API for JSON Processing 1.0 (JSR 353)
  • Java API for WebSocket 1.0 (JSR 356)
  • Web Services for Java EE 1.4 (JSR 109)
  • Java Authorization Service Provider Contract for Containers 1.5 (JACC 1.5) (JSR 115)
  • Java Authentication Service Provider Interface for Containers 1.1 (JASPIC 1.1) (JSR 196)
  • JavaServer Pages 2.3 (JSR 245)
  • Common Annotations for the Java Platform 1.2 (JSR 250)
  • Interceptors 1.2 (JSR 318)
  • Java EE Connector Architecture 1.7 (JSR 322)
  • Java Transaction API 1.2 (JSR 907)
  • JavaMail 1.5 (JSR 919)

We'd like to thank all of the community members who have contributed to this process — in particular the members of our Expert Groups, members of our JSR projects on java.net (operating in the open under the JCP transparency program), members of the JUGs participating in the Adopt-a-JSR program, and participants in our outreach surveys.

Stay tuned for our Java EE 7 GlassFish Reference Implementation release, coming shortly within the next couple of weeks.

Anthony Lai on Java EE Concurrency Utilities

The 129th episode of the Java Spotlight podcast features an interview with Java EE Concurrency Utilities (JSR 236) spec lead Anthony Lai. As you may be aware, the Java EE Concurrency Utilities has been a long awaited and very important foundational API, especially for third party vendors to more easily integrate with the underlying application server runtime. Anthony talks with Roger Brinkley about the motivation for the JSR, it's long history, some of the API details, current status and the future.

You can listen to the full podcast here. It's really a great starting point for learning about the Java EE Concurrency Utilities. You can certainly give the proposed final draft a read yourself (the API recently passed it's final approval ballot). At fifty some pages, it is a very digestible specification. You can also try the API out with a GlassFish promoted build.

Thursday Apr 25, 2013

Java EE 7 at JUDCon Brazil 2013

What's new in Java EE 7: from HTML5 to JMS 2.0 was probably one of the hottest contents presented at JUDCon Brazil 2013. Room packed, people standing in the back and some couldn't join. The JBoss Users and Developers Conference is a conference organized by Red Hat across three countries (Brazil, India, and United States), with local and foreign speakers. But for me it was special. It was a pleasure to be part of this conference, considering that I wear another red hat. This shows how strong the Java community is, and that together, we build a better platform.

This session took attendees through some of the main updates of Java EE 7, and presented them with deeper details on topics like WebSockets and JMS 2.0. Some demos showed too, thanks to the magic of GlassFish 4.0 b83, Maven, and the Embedded GlassFish Plugin. Attendees could better understand the new possibilities and productivity gains of this major release of Java EE.

 If you want a more detailed description of each change that is going to be released within Java EE 7, please read Arun Gupta's session "The Java EE 7 Platform: Productivity++ & Embracing HTML5". You will be astonished. :-)

Friday Apr 19, 2013

Hacking GlassFish 4 Builds

Ever wanted to contribute code to GlassFish or just hack around for fun (and maybe for profit) - especially with GlassFish 4 and Java EE 7? The first step is checking out the GlassFish 4 source code and doing a local build. Java Champion Peter Pilgrim shows you how...

In a recent blog entry, Peter details how to check out the GlassFish 4 source code, tweak the build artifacts, run a local build and use it. Enjoy - happy hacking!

If you just want to use the promoted builds, this post explains how.

Thursday Apr 18, 2013

The Java Update, Applets/Web Start and GlassFish

By now, most of us know about the Java SE security vulnerability that affects primarily Java Applets. You might be relieved to know that the latest Java update, Java 7 Update 21, looks to fix that vulnerability. Java EE expert group member and key community figure Markus Eisele did an awesome job explaining the details and providing further context.

Although the security vulnerabilities definitely do not affect server-side applications (the ones running on GlassFish), GlassFish has had support for launching Java EE application clients using Java Web Start. If you don't know what Web Start is, you are hardly alone - it's even less prevalent than Applets these days. The java.com site does a pretty good job of explaining Web Start. The Java update affects Web Start too, so if you are using it, you'll need to be aware of the changes. Oracle's Tim Quinn explains what you need to watch out for.

Wednesday Apr 17, 2013

An Overview of EJB 3.2

Java EE 7 includes a minor update of the EJB API with EJB 3.2 (JSR 345). For those of you keeping track of the EJB spec the past few years, EJB 3.0 and EJB 3.1 were pretty big releases, so this release is really more about pruning dead branches, some tidying up and minor fixes. In a brief blog entry, long time EJB fan, JBoss AS committer and JavaRanch Sherriff Jaikiran Pai does a great job of overviewing the changes in EJB 3.2. He talks about the pruning of EJB 2.1 CMP/ EJB 2.1 BMP/EJB 2.1 client views/EJB QL/JAX-RPC, local asynchronous session bean invocations and non-persistent EJB Timer Service in EJB Lite, TimerService.getAllTimer(), the ability to disable passivation of stateful beans and much more.

If the article whets your appetite to learn more about EJB 3.2, you could download the actual proposed final draft and give it a read. With the removal of a lot of the older cruft, the core specification is now about 450 pages - which is still nothing to sneeze at but much better than it has been in the past.

Tuesday Apr 16, 2013

Maven projects with GlassFish 4.0 Embedded Plugin


Some specifications related to Java EE 7 already became Final. One example is the JavaServer Faces 2.2 (JSR 344). But you don't have to wait for the release of Java EE 7 and the final version of GlassFish 4.0, which is the reference implementation, to try all the new stuff. I've blogged about Maven and its integration with GlassFish Embedded in a way where you can, with just few steps, create a Java EE 7 and then run GlassFish Embedded 4.0 without installing it.

The good thing about this setup is that you will be "ready-to-go" as soon the Final version is released. All you will need to do will be to update the dependency and the plugin version inside your POM xml file. Now stop reading and start coding: go to my blog post "GlassFish 4 beta and Maven Embedded Plugin" and get started with Java EE 7 TO-DAY!

Monday Apr 15, 2013

JavaOne CFP Deadline Extended

If you wanted to submit to JavaOne but did not get around to it yet, you are in luck! The call for papers deadline for JavaOne San Francisco 2013 was just extended to April 23rd.  JavaOne this year is going to be held on 22–26th September. As usual, there are tracks for Java SE, JavaFX, Java EE, Java ME, Embedded Java, dynamic languages and more.

This is your chance to share your ideas, passion and knowledge with fellow developers at the premier Java conference.

Thursday Apr 11, 2013

Glassfish 4 on Ubuntu Touch

A few years ago, it was unthinkable to most of us that a Java application server can run on a small/mobile device. Now it seems almost passé. Many of you have probably at least passingly heard about running GlassFish on the Raspberry Pi. Mike Croft took things a step further and ran GlassFish 4 on Ubuntu Touch.

In a recent entry on the C2B2 blog, Mike goes through the steps of installing Ubuntu, installing Java and installing/running GlassFish. Pretty cool read if you are a gadget fiend!

Wednesday Apr 10, 2013

Java EE 7 Maven Archetype

For those of us doing Java EE development with Maven (which by my own account as a former consultant is pretty much all Java EE/GlassFish adopters), Archetypes can be a great productivity boost, especially while getting started. You will be pleased to know that there is already a Java EE 7 Maven Archetype out there in the https://nexus.codehaus.org/content/repositories/snapshots/ repository (courtesy of GlassFish of course).

You can use it directly from the Maven command-line like so:

mvn -DarchetypeGroupId=org.codehaus.mojo.archetypes 

If you prefer NetBeans, you can do that too. Just define a new repository with the URL https://nexus.codehaus.org/content/repositories/snapshots/ under "Maven Repositories" on the "Services" tab. Then proceed to "New Project -> Maven -> Project from Archetype" and enter "webapp-javaee7" into the search box. Select the 0.1-SNAPSHOT and click "Finish".

Either way, once the project is generated, you can of course tweak the POM and source code to meet your needs. It should be pretty straightforward - give me a shout if you need help getting started. Happy hacking!

Tuesday Apr 09, 2013

JMS 2, Bean Validation 1.1, JBatch, JSON-P Go Final!

Java EE 7 is almost to the finish line! The first slew of Java EE 7 JSRs have successfully passed their Final Approval Ballots and are now final. JMS 2 (JSR 343), Bean Validation 1.1 (JSR 349), JBatch (JSR 352), and JSON-P (JSR 353) all passed with near unanimous support from the JCP Executive Committee. Please join me in congratulating spec leads Nigel Deakin of Oracle, Emmanuel Bernard of Red Hat, Chris Vignola of IBM, and Jitendra Kotamraju of Oracle on the fruition of all their hard, often thankless work.

We expect more Java EE 7 JSRs to follow suit shortly, so stay tuned. This is a great time to read the final specs and start experimenting with them in the GlassFish 4 builds.

Monday Apr 08, 2013

JavaOne Russia Schedule Posted

The official schedule for JavaOne Russia 2013 is now posted. For the folks that are not yet aware, JavaOne Russia is to be held on 23-24 April at the Crocus Expo International Exhibition Center in Moscow.

As you can expect there are keynotes, technical sessions, hands-on labs and demos led by Java luminaries from Russia and across the globe. There's tons of good stuff on Java EE and GlassFish. I will be delivering the Java technical keynote alongside the likes of Anil Gaur, Nandini Ramani, Stephen Chin and Jim Weaver. Here are just some of the Java EE centric sessions:

Title Speaker
The Java EE 7 Platform: Productivity++ and HTML5 Arun Gupta
Getting Started with the Java EE 7 Platform (Lab) Arun Gupta, Reza Rahman
Unlocking the Java EE Platform with HTML5 (Lab)  Geertjan Wielenga
Java API for RESTful Web services: New and Updated Reza Rahman
Java API for JSON Processing (Lighting Talk) Reza Rahman
Batch Applications for the Java Platform (Lighting Talk) Reza Rahman
Concurrency Utilities for Java EE (Lighting Talk) Reza Rahman
Java Message Service 2: New and Updated Reza Rahman
Building WebSocket Applications using Java: JSR 356 Arun Gupta

There will also be Java EE/GlassFish demos at the DEMOgrounds. The full catalog is posted here. Hope to see you there!

Friday Apr 05, 2013

An Overview of JAX-RS 2

JAX-RS 2 is one of the most significant parts of the upcoming Java EE 7 release. In a brief article, consultant, German author and celebrated Java EE advocate Adam Bien does a great job of overviewing the major changes in JAX-RS 2. He talks about asynchronous processing, EJB/CDI integration, filters/interceptors, the configuration API, the client API and more.

If the article whets your appetite to learn more about JAX-RS 2, you could download the actual proposed final draft and give it a read. For those unaware, JAX-RS 2 recently passed its public review ballot. At just above 90 pages, the actual JAX-RS 2 specification document is not that bad of a read.

Wednesday Apr 03, 2013

FishCAT: GlassFish 4 Community Acceptance Testing

GlassFish 4 is under development now and will be released along with Java EE 7 in a few months. We need your help in testing the nightly and promoted builds of GlassFish. This is an opportunity to significantly influence the quality of GlassFish as well as to provide early feedback on stability, functionality, and usability through testing early builds.

The complete list of features and the lightweight process to join FishCAT is explained here.

Any amount of testing is helpful. It can be anywhere from 1 hr/week to as much time as you can spare. You can help test installation, docs, new functionality, running your existing applications on the latest build, or any thing else that would make you successful on GlassFish in the near future. Bugs filed by FishCAT participants will be evaluated ahead of other bugs. And there is a potential to be highlighted on glassfish.org, during the official Java EE launch and elsewhere.

26 people have already signed up and 35 bugs have been filed so far.

You know your voice is important to us, so please do make yourself heard.

Tuesday Apr 02, 2013

Generic JPA DAO/Repository Implementation

The DAO (aka Repository in Domain-Driven Design parlance) is a pervasive design pattern in server-side applications today. If you have a very large number of DAOs that are fairly homogenous/CRUD based, it can be very useful to have a generic version that you can then subclass as needed. German author and celebrated Java EE advocate Adam Bien actually took the time to create generic JPA based DAO code and generously share it with us all.

I encourage you to take a look and discuss the code, preferably with Adam (or here if you wish). If you are the open source hacker sort, you could even consider giving the code more airtime by adding it to a separate project perhaps under something like Apache DeltaSpike.