Tuesday Jul 30, 2013

Oracle GlassFish Server 3.1.2 and 2.1.1 updates

Support and maintenance is one of the added value of Oracle GlassFish Server, the commercial version of GlassFish.

Two GlassFish Patches have been released in July, one for the 3.1.2 version and another for the 2.1.1 version (Java EE 5!). For those who can't move to a more recent version of Java EE, Oracle continue to provide support for the older version of the product, Sun GlassFish Enterprise Server 2.1.1 in this case.

This GlassFish For Business post provides more details on those two Patches which are available on the My Oracle Support portal.

Monday Jul 29, 2013

OSCON Trip Report

OSCON 2013 was held from July 22 to July 26 in Portland, Oregon. I presented the Java EE 7 hands-on lab there as well as a session on WebSocket/JSR 356. This was my first time to the revered conference.

OSCON was a unique and valuable experience. I would definitely look forward to doing it again some time. More details, including slide decks, lab materials and code examples, posted on my personal blog.

Friday Jul 26, 2013

Oracle Grants TCKs for EclipseLink and Virgo

The TCK is a key piece of the puzzle in strongly safeguarding compatibility for anything Java. Generally speaking, companies that make money from compatible Java technology implementations have to pay license fees to run the TCK. This license fee is one of the few sources of money that helps pay the bills for the JCP/TCK process itself.

Nonetheless, Sun and now Oracle has always had a way to grant TCK scholarships for (primarily open source) non-profits and academic institutions. For example, Apache and OW2 have long had Java EE TCK scholarships to certify Geronimo and JOnAS. Oracle recently extended the gesture of good will to the open source community by granting TCK scholarships to the Eclipse Foundation for certifying EclipseLink and Virgo.

Most of you are probably already familiar with EclipseLink - it's the open source JPA reference implemention seeded via a code contribution from Oracle TopLink. You probably are not that familiar with Virgo in comparison - it's an open source Java application server from the Eclipse Foundation. Most of you will probably remember that Virgo was created when SpringSource decided to donate dm Server to the Eclipse Foundation a few years ago. Thanks to the TCK scholarship, Virgo will now aim to become another great Java EE Web Profile application server choice for you instead of just a focus on OSGi and Spring.

This is what Mike Milinkovich, executive director of the Eclipse Foundation, had to say about the grant: "It is important for the Eclipse Foundation to provide our community with the tools they need to enhance developer productivity. As a key contributor to EclipseLink and other projects, Oracle has been a strong supporter of our efforts. Through the Oracle Compatibility Testing Scholarship Program the Eclipse Foundation now has access to the resources we need to achieve Java EE Web Profile compatibility both for Java EE 6, as well as the forthcoming Java EE 7".

You can read about the details in this official press release.

Thursday Jul 25, 2013

role-name="*" and role-name="**" 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 role-name="*" and role-name="**" options. 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. He also references the features in his brief Servlet 3.1 overview presentation on the GlassFish Videos YouTube channel (embedded below).

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

Wednesday Jul 24, 2013

Survey Sez: Java EE 7 to Become Predominant in Just a Few Years!

An interesting way to gauge the momentum behind a technology is surveying informed developer opinion. With this fact in mind, Java.net editor Kevin Farnham recently posed the perhaps slightly tongue-in-cheek question - "How long will it be before Java EE 7 is the most widely used Java EE version?". Intriguingly, a majority of responders (a solid 64%) believed EE 7 will become the most widely used version in 2-3 years or less. A full 80% believed it will take 5 years or less.

As such, I suspect most Java.net readers probably have a slight tilt towards EE or at least are pretty well informed about EE. Having spent a few years working in the enterprise, my own gut reaction is probably more along the lines of the 3-5 year margin. This is at least in part because I happen to think that EE 6 with CDI 1 was a particularly effective release that enterprises can and will get a lot of mileage out of, just like J2EE 1.4 in it's era.

This is also equally true of EE 7 though, perhaps explaining the poll result. Regardless of the ultimate time lines, the vectors seem to be pointing in the right direction even from a quick look at Google trends. Java EE fans should take a moment to rejoice, look to getting EE 7 adopted in their organization and start thinking about what they want from EE 8 :-).

For folks interested, Kevin detailed the poll with a write-up.

Tuesday Jul 23, 2013

Java EE 7 Maven Repository Coordinates

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), getting our hands on the repository location for Java EE APIs is critically important. Fortunately, Java EE APIs have long been available via Maven central, Java EE 7 is no exception. The Java EE 7 Maven Coordinates on the GlassFish wiki is an extremely handy reference for navigating the Maven Central maze.

It also helps to know that there is a relatively well established set of guidelines for naming Java EE API Maven artifacts. Generally speaking, Java EE Maven artifacts follow this pattern:

    <groupId>[Java EE API package name]</groupId> 
    <artifactId>[Java EE API package name]-api</artifactId>
    <version>[Java EE API version]</version>        

For the most part though, this is the only Maven coordinate you should need for Java EE 7 applications:


If you are using just the Web Profile, you should use this instead:


That being said, for those of you that need/want them, the GlassFish wiki outlines where you can find the Maven artifacts for just Java EE concurrency, JPA 2.1, JAX-RS 2, Servlet 3.1, EL 3.0, JMS 2, JSF 2.2, EJB 3.2, JBatch, JSON-P, WebSocket and others.

It should be pretty straightforward to use - give me a shout if you need help setting up Maven.

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.

Friday Jul 12, 2013

LDAP/Form-Based Authentication in GlassFish

Security, specifically authentication and authorization, is one of the least well understood parts of Java EE. This is despite the fact that most Java EE application servers, including GlassFish have extremely robust infrastructures for securing Java EE applications. This is doubly true for application servers like WebLogic which have extensive sets of authentication providers that can often be configured through simple point-and-click GUI interfaces. In this well-written blog post, Mainak Goswami explains how you can secure a Java EE/GlassFish application using LDAP (LDAP being the most widely used authentication provider in the enterprise). I thought it is useful to highlight that entry here.

Mainak explains step-by-step the basics of Java EE security, setting up LDAP in GlassFish, creating the secure application in NetBeans, setting up the GlassFish security realm, writing the secure application and configuring application security.

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 jsr107@googlegroups.com 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.