Friday May 31, 2013

Java EE@JeeConf 2013

JeeConf 2013 was held in historic Kiev on May 24-25. JeeConf is the most significant Java conference in the Ukraine. The conference attracted a bevy of local and international speakers including Venkat Subramaniam, Yakov Fain, Talip Ozturk, Jacek Laskowski, Mohamed Taman and Sander Mak. Topics included Java SE, NoSQL, cloud, HTML5/JavaScript, Arquillian and of course Java EE.

I delivered two very well attended talks - my talk on Java EE 7 (our flagship talk) and a talk on using NoSQL databases in Java EE. More details on the sessions and JeeConf, including the slide decks and code, posted on my personal blog.

Thursday May 30, 2013

Non-Blocking I/O in Servlet 3.1

Servlet 3.1 is a relatively minor release slated for Java EE 7. However, the Java EE foundational API still contains some very important changes, especially for folks building on the Servlet API. One such feature is the newly added support for non-blocking I/O to empower low-latency, high throughput applications, protocols and web frameworks.

Servlet 3.1 co-spec lead Shing Wai Chan shows you how in a recent code example driven post. Incidentally, Servlet 3.1 recently had it's final release. You can now check out the official specification yourself. You can also try the API out with a GlassFish promoted build.

Wednesday May 29, 2013

An Overview of JASPIC 1.1 Changes in Java EE 7

It's easy to focus on just the big ticket changes in Java EE 7 such as WebSocket, JSON-P, JMS 2, JAX-RS 2, Java Batch, Concurrency Utilities and so on but there's actually a lot more going on pretty much across the board. One such set of important but easy to overlook changes are in JASPIC 1.1 (JSR 196).

In a very well written blog post, Arjan Tijms goes over the changes. He talks about the context/motivation for each change along with the technical details and sample code. He also references the very handy change log for JASPIC 1.1. It's a great read if you are interested in Java EE security.

Tuesday May 28, 2013

Nigel Deakin on JMS 2

The 131st episode of the Java Spotlight podcast features an interview with JMS 2 specification lead Nigel Deakin. JMS 2 is one of the key parts of the Java EE 7 platform and a long awaited update to the very popular API. Nigel talks with Roger Brinkley about the motivation for the JSR, the simplified API, the new features, MDB alignment, portable JMS resource definitions in Java EE 7, current status of the JSR as well as what's in the future.

You can listen to the full podcast here. It's really a great starting point for learning about JMS 2. You can certainly give the official specification a read yourself (the API recently had it's final release). At a hundred and fifty some pages, it is not too bad of a read and Nigel does a great job of summarizing the changes towards the beginning of the document in the section titled What is new in JMS 2.0?. You can also try the API out with a GlassFish promoted build.

Saturday May 18, 2013

Register for Live Webcast Introducing Java EE 7!

Register here to join us for a live webcast introducing Java EE 7! The Java EE 7 platform JSR has been approved, and we are now counting down the days to begin developing with many new Java EE features.

The online web event, hosted by MC Gupta, includes:

  • Business Keynote (Hasan Rizvi and Cameron Purdy)
  • Technical Keynote (Linda DeMichiel)
  • Java EE partner and community member interviews
  • Fifteen 20-minute technical breakout sessions
    • Technical overview of features in new and updated JSRs
    • Delivered by the JSR specification leads
    • Live Chat
    • Split into three tracks
      • Scalable, dynamic HTML 5
      • Increasing developer productivity
      • Meeting enterprise demands
    • Demonstrations on developing with Java EE 7

The event will run with live chat at two times:

      Wednesday, June 12, 2013 / Thursday, June 13, 2013

  • 9 a.m. PT / 12 p.m. ET / 5 p.m. London
  • 9 p.m. PT / 12 a.m. ET (Thursday) / 2 p.m. Sydney (Thursday) 

Spread the word!

Friday May 17, 2013

Independent Review of GlassFish

It is always great to see independent reviews of GlassFish. ZeroTurnaround's Sigmar Muuga did a pretty cool review of GlassFish recently (recall that these are the folks behind the popular JRebel tool). He covered download, installation, startup, tools, admin console, community, documentation and support.

Here are some quotes from Sigmar:

"So, what makes GlassFish so special? I think the most special thing is that it is developed by Oracle, so it comes from the home of Java – our bread and butter."

"I haven’t used and managed GlassFish myself but I must admit that crawling through the docs, forums and mailing list made me feel secure. The forum is quite active, there are many mailing lists specializing on different parts and areas of GlassFish and the documentation looks pretty good."

"It looks very big but is actually relatively small – the installation package is around 53 megabytes in size."

"DevOps guys will probably love it when they see Glassfish’s Administration Console (you can click around and imagine yourself being an airplane pilot)."

You can read the full review here. Note the comments from me and John Clingan.

Thursday May 16, 2013

10 Ways JMS 2 == Less Code

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 brief write-up JMS 2 specification lead Nigel Deakin highlights these changes by demonstrating ten concrete ways the JMS 2 API means less code as compared with JMS 1.1.

JMS 2 recently passed it's final approval ballot. You could check out the proposed final draft yourself. At 150 some pages, it is a pretty digestible specification. You can also try the API out with a GlassFish promoted build.

Tuesday May 14, 2013

JDBC/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 why it is no surprise that one of the most popular entries on celebrated Java EE advocate and German author Markus Eisele's blog is about securing GlassFish Java EE applications. I thought it is useful to highlight that entry here.

In the entry, Markus explains step-by-step how to setup the database with security data, setting up the database in GlassFish, creating the secure application in NetBeans, setting up the GlassFish security realm, write the secure application and configure application security.

Monday May 13, 2013

Congratulations JCP Star Specification Leads!

Please join me in congratulating the 2012 JCP star specification leads Pete Muir of Red Hat (lead for CDI 1.1), Santiago Pericas-Geertsen of Oracle (co lead for JAX-RS 2) and Marek Potociar of Oracle (co lead for JAX-RS 2). Leading a non-trivial group of often opinionated, very intelligent people to achieve meaningful consensus codified into a long-lasting standard is an enormously hard task. Doing that successfully and gracefully takes a special kind of individual. The star specification lead program is a very open way of giving some measure of recognition to such efforts.

You can find out a bit more about the program and this year's winners on the JCP site.

Friday May 10, 2013

Java EE@JavaOne Russia 2013

JavaOne Russia 2013 was held at the Crocus Expo Center in Moscow on April 23-24. The conference was a resounding success with a great vibe, excellent technical content and numerous world class speakers. Some notable speakers included Werner Keil, Joonas Lehtinen, Heather VanCura, Paul Bakker, Bert Ertman, Talip Ozturk, Anil Gaur, Geertjan Wielenga, Arun Gupta, Jim Weaver, Stephen Chin and David Delabassee. Topics covered included the JCP/JUGs, Java SE 8, Java EE 7, HTML 5/WebSocket, JSF, JMS 2, JAX-RS 2, Java EE Concurrency, JBatch, JSON-P, NetBeans, MySQL, Vaadin, the Oracle Java Cloud, OpenShift, OSGi, JavaFX and Coherence.

 

 

I delivered the Java EE technical keynote, two technical sessions (one on JSM 2 and the other on JAX-RS 2) and three lighting talks (on Java EE Concurrency, JBatch and JSON-P). I also helped deliver two hands-on-labs (on Java EE 7 and the Java Cloud Service). More details on the sessions and JavaOne Russia 2013, including the slide decks and code, posted on my personal blog.

Thursday May 09, 2013

HTTP Upgrades in Servlet 3.1

Servlet 3.1 is a relatively minor release slated for Java EE 7. However, the Java EE foundational API still contains some very important changes, especially for folks building on the Servlet API. The newly added support for HTTP protocol upgrades is a great example. The upgrade facility has been there since HTTP 1.1, but just hasn't been used that widely. It facilitates building richer protocols on top of HTTP. Under the hood, this is exactly the mechanism that HTML 5 WebSockets use (as you know, we now have excellent support for WebSockets in Java EE via JSR 356). You can most certainly use HTTP protocol upgrades in similarly powerful and innovative ways yourself.

Servlet 3.1 co-spec lead Shing Wai Chan shows you how in his recent code example driven post. Incidentally, Servlet 3.1 recently passed it's final approval ballot. You could check out the proposed final draft yourself.

Wednesday May 08, 2013

Santiago Pericas-Geertsen on JAX-RS 2

The 130th episode of the Java Spotlight podcast features an interview with JAX-RS 2 co-spec lead Santiago Pericas-Geertsen. JAX-RS 2 is one of the key parts of the Java EE 7 platform and a vital update to the very popular API. Santiago talks with Roger Brinkley about the motivation for the JSR, some of the API details such as the client API, asynchronous processing, interceptors/filters, Hypermedia support and content negotiation, current status of the JSR as well as what's in the future.

You can listen to the full podcast here. It's really a great starting point for learning about JAX-RS 2. You can certainly give the proposed final draft a read yourself (the API recently passed it's final approval ballot). At ninety some pages, it is not too bad of a read. You can also try the API out with a GlassFish promoted build.

Monday May 06, 2013

Integrating WebSockets and JMS with CDI Events in Java EE 7

One of the first things you will want to know about Java EE 7, is how you can integrate some of the new APIs like WebSockets, with existing ones like JMS. That's why I decided to write this article "Integrating WebSockets and JMS with CDI Events in Java EE 7". What I try to demonstrate here, is how two distinct APIs can be used together to deliver something that is not explicitely defined in the specifications, but with some cool integration using CDI Events, an async server-side data push can be implemented with no more than the standards at your hand.

The article will show you how to code your first WebSocket server endpoint, then how by using a Stateless SessionBean you can send messages to a JMS Queue, and finally, how to receive them again by using a MessageDriven Bean that fires CDI events with the payload back to the WebSocket. Simple, straightforward and small code, that takes you through several specifications and releases available starting from now, the Productivity++ Java EE 7.

Thursday May 02, 2013

Oracle GlassFish Server update

Oracle GlassFish Server is the commercial supported version of GlassFish. It includes, under the GlassFish Server Control umbrella, some added features such as Performance Tunner, Monitoring Scripting Client, the Load Balancer Web Server Plug-in, etc.  In addition, another key value of this offering is obviously Oracle's Commercial Support for GlassFish.

This GlassFish For Business post describes in more details the 3 pacthes that have been released in April 2013:

  • Oracle GlassFish Server 3.1.2 Patch 5
  • Oracle GlassFish Server 3.0.1 Patch 7
  • GlassFish Load Balancher Plug-in 3.1.2.4

Those patches are available to customers with a valid support contract on the My Oracle Support portal.