Sunday Sep 22, 2013

Project Avatar is Open Source!

It has been a while in the making and now Project Avatar is here - and is under an Open Source license!

There are three primary components to Avatar:

  1. Avatar.js - Enables developers to create server side JavaScript services using the Node programming model and a thin server architecture (TSA), and publish those services using WebSockets, REST, and Server Sent Events (SSE). Any client-side framework that can communicate using WebSockets, REST, or SSE can consume these services.
  2. Enable server-side JavaScript developers to leverage Java EE Services.
  3. An (optional and independent) client side framework that can bind HTML5 components to services written in any language.   The client framework does not assume JavaScript expertise, and can be used with services developed in any language, and that publish those services over WebSockets, REST, and SSE.

  4. Download Avatar from avatar.java.net, take a look at the sample applications, ask questions, and provide feedback.  Over the coming weeks and months, we'll publish more documentation and samples to help you get started!It has been a while in the making, having been introduced two years ago at JavaOne, and Project Avatar is here - and is under an Open Source license.

Thursday Sep 19, 2013

CDI Alignment in Bean Validation 1.1

Although it's a point release Bean Validation 1.1 brings a number of important features to Java EE 7. While the most significant of these features is clearly method validation, another very important feature is further alignment with CDI. In Java EE 6 there were a few corner cases left were Bean Validation did not work well with CDI. The most prominent of these gaps was the inability to do injection into custom constraint validators. Projects like Apache CODI and Seam 3 stepped in to fill these gaps. In Java EE 7/Bean Validation 1.1 this issue was properly addressed by making all bean validation artifacts injection officially capable. Romain Manni-Bucau of the Apache TomEE community explains the feature well in a code driven post. There's also the 15-minute Bean Validation 1.1 presentation by specification lead Emmanuel Bernard on the GlassFish videos YouTube channel:

You can also check out the very well written official specification or try things out with the Java EE 7 SDK.

Wednesday Sep 18, 2013

Java EE 7 Celebrations at the Nanjing JUG

The newly minted Nanjing JUG held their very first meeting on August 24th - and what a way to start!

As part of the Make the Future Java EE 7 Global Celebrations, they hosted a special all-day event (9:00 AM - 4:00 PM) focused on all things EE. The event was held at the Nanjing University and organized by the local Java community (with a bit of generous help in the background from Anissa Lam of the GlassFish team :-)). Amazingly, 40+ people attended the inaugural event and 20+ Java EE 7 T-shirts were given away. Below are the six sessions presented:

  • Understanding Java EE 7 - Tang Yong
  • JSR 343 (JMS 2.0) - Jie Wu
  • Difference on JPA 2.x and JPA 1.0 Performance - FengJi
  • Java Concurrency - Xiaoming He
  • Java ClassLoader Read World Practice
  • GlassFish community in China - Jeremy Lv

All the slides are available here and the details of the event are posted here. Lei Lv from Oracle Nanjing attended the event and delivered the closing speech.

Good show Nanjing JUG and keep up the good work!

Sunday Sep 15, 2013

Java EE/GlassFish@JavaOne 2013

With JavaOne around the corner, at least some of you are probably planning out your session schedules next week or the week after. To help you navigate the sessions you might want to attend, I thought I'd write a brief entry highlighting some of the key Java EE/GlassFish related content this year. This is obviously a pretty important JavaOne with the Java EE 7/GlassFish 4 releases, so there's a lot of it.

Below are the sessions I think you should seriously consider broken out by day (to add a session to your schedule, click on the session ID link and use the Schedule Builder widget on the top right hand side):

Sunday

  • UGF9871: GlassFish Community: The Foundation for Opportunity - if you are around on Sunday, don't miss this one. It's packed full of great content - the GlassFish roadmap, an Orale executive panel, Java EE/GlassFish customer stories. More details on GF.org.

Monday

  • CON5919: Easier Messaging with JMS 2.0 - Learn about JMS 2 from the specification lead Nigel Deakin himself.
  • CON3733: JSR 341: Expression Language 3.0 - Learn about EL 3 from the specification lead himself.
  • CON6617: Java EE 7: What’s New in the Java EE Platform - A great overview of EE 7 from none other than the specification leads Bill and Linda.
  • CON3436: Inside the Java WebSocket API - Learn about the key WebSocket API from the specification lead himself.

Tuesday

  • CON3294: JSF 2.2 New Features in Context - A relevant and insightful overview of JSF 2.2 from the specification lead Ed Burns himself.
  • HOL2147: Java EE 7 Hands-on Lab - Get a first hand taste of developing with Java EE 7 yourself. Materials available on GF.org.
  • BOF2795: Meet the Java EE Specification Leads - Meet the Java EE specification leads yourself and give them your feedback on Java EE 7 and beyond.
  • BOF5972: What’s Next for JMS? - Get involved in the future of JMS.
  • BOF7796: GlassFish Community BOF - Meet the folks responsible for developing GlassFish and give them your feedback.

Wednesday

  • CON3319: GlassFish 4 Overview: What’s Under the Hood? - Insight into the innovations in GlassFish 4 beyond Java EE 7 itself.
  • CON7731: JSR 353: JSON Processing API in Action - Learn about the foundational JSON-P API from the specification lead himself.
  • CON5356: Finally, JAX-RS 2.0 Is Final: A New Standard in RESTful Web Services Development - Learn about the changes in JAX-RS 2 from the specification lead Santiago himself.

Thursday

  • CON3868: Android and iOS Development with Java EE 7 - A code driven look at using Java EE 7 with Android and iOS native applications.
  • CON3598: From the Spring Framework to Java EE 7 - More insight into moving to Java EE from Spring.
  • CON2406: Java EE 8 and Beyond - An important look into the future of Java EE.
  • CON11031: Building Oracle NoSQL Database Applications with EclipseLink - A look into marrying NoSQL and Java EE.
  • CON7948: JSR 236: Introduction to Concurrency Utilities for Java EE 1.0 - Learn about the much awaited Java EE Concurrency Utilities from the specification lead himself.

This of course is just the tip of the iceberg. For even more sessions, checkout the Java EE Focus On page on the JavaOne site. We'll of course have a Java EE/GlassFish presence at the demo grounds as well.

Happy JavaOne and hope to see you around!

Thursday Sep 12, 2013

Asynchronous Servlets and Java EE Concurrency Utilities

As many of you might already be aware, one of the key changes in Servlet 3/Java EE 6 was the introduction of asynchronous Servlets. Interestingly enough, a lot of the code examples at the time used native Java SE concurrency APIs to demonstrate the asynchronous Servlets feature. The problem in a Java EE environment is that Java SE concurrency essentially bypasses the Java EE runtime altogether and misses valuable contextual information (security, class-loader, naming, etc), not to mention potentially compromising stability/scalability since it sidesteps the container's internal thread/resource pools. Native Java SE threads also can't be managed or monitored via the application server (such as providing admin console visualizations, automatic timeouts, long-running warnings, etc). This of course is where the Java EE concurrency utilities standardized in Java EE 7 comes in. In a recent code-driven blog post, Shing Wai Chan demonstrates how to properly use asynchronous Servlets via the Java EE concurrency utilities.

For those that aren't big fans of lower level concurrency APIs (I sympathize :-)), it is certainly possible to use asynchronous Servlets with EJB 3 @Asynchronous instead as demonstrated here.

Wednesday Sep 11, 2013

Video Interviews on the GlassFish Community Event

I did a couple of brief video interviews talking about the JavaOne Sunday GlassFish Community Event - the first with celebrated Java advocate Steve Chin and the second with Bob Rhubart of the OTN Architect Community. Feel free to check it out and don't hesitate to sound off if you have further questions I can help answer.

You still have an opportunity to pose questions to the executive panel by sending me a quick email or attending the event first-hand. All of the event details including how to schedule for the session to secure your spot is posted on GlassFish.org.

Come to the event and kick off a great JavaOne by voicing your support for the GlassFish and Java EE communities!

Monday Sep 09, 2013

CDI Scopes One Pager

While figuring out what CDI scope to use for a particular bean, it is sometimes helpful to have a brief one pager like the one put together by Goncalo Marques. The page lists out various CDI scopes, very briefly explains each as well as making mention of proxies and serialization. Although the page is mostly geared towards Java EE 6 and does not yet mention the changes in Java EE 7 such as CDI compatible @ViewScoped, @FlowScoped and @TransactionScoped, the page is still worth bookmarking.

More generally speaking for CDI, there are a number of very good references available such as the very well written Weld reference guide, the CDI portion of the official Java EE Tutorial as well as the spec itself (perhaps one of the most readable Java EE specs around).

Wednesday Sep 04, 2013

Java EE@Pittsburgh, Columbus, Cleveland JUGs

With the Java EE 7 release I'm trying to reach out to at least my local JUGs in the greater North East/Mid Atlantic area. In this vein, I made a smallish JUG tour covering the Pittsburgh, Columbus and Cleveland JUGs on August 13th, 14th and 15th. Cleveland JUG leader Scott Seighman of Oracle helped arrange the tour.

I did my Java EE 7 talk (our flagship talk this year) in all three JUGs. The talks went very well, despite Summer doldrums. More details, including the slide deck, posted on my personal blog.

Monday Sep 02, 2013

Why Join the JavaOne GlassFish Community Event?

If you are active in the GlassFish community, you probably already know about the GlassFish Community Event that takes place on the Sunday that kicks off JavaOne San Francisco. The event has long been the rallying point for the GlassFish community at JavaOne.

This year, the event is taking place from 9:15 AM to 11:15 AM. The title of the event is GlassFish Community: The Foundation for Opportunity and the event ID is UGF9871. To add to this session to your schedule now, follow this session details link to the JavaOne Content Catalog and use the Schedule Builder widget on the top right hand side.

If you are a GlassFish user or even just a friend, this is the most important JavaOne event that you really should not miss, and for good reasons:

  • Learn the insider's view of the Java EE 7/GlassFish 4 release, community, success, metrics and roadmap for the future from non other than GlassFish product manager John Clingan himself (stay tuned for more details on the roadmap - in case you cannot make it to the session, we will update the GlassFish roadmap page after the event).
  • Get a unique opportunity to listen to and openly interact directly with the Oracle Executives responsible for Java EE and GlassFish during the GlassFish Executive Panel. This year, our panelists include the likes of Mike Lehmann (VP Product Management), Anil Gaur (VP, Software Development) and Cameron Purdy (VP Development). Besides open Q & A, the panel will field a representative set of questions submitted by the community. To submit your questions, email them to me as soon as possible. We will post a video of the panel on The Aquarium after the event.
  • Hear success stories from real world Java EE/GlassFish users and get to ask them your questions. This year Makito Hashiyama (Rakuten), David Heffelfinger (Ensode), Jaromir Hamala (C2B2) and Kerry Wilson (Vanderbilt University Medical Center) will be sharing their stories. As always, we will video record and post the stories on the GlassFish Stories blog and feature them on The Aquarium after the event.
  • Meet key members of the Oracle GlassFish team and community including Advocates, Architects, Java EE spec leads, and Product Managers.
  • Grab some free GlassFish swag like a GlassFish t-shirt or cool laptop sticker.
  • Attending the event is one of the strongest ways you can show your support for GlassFish and Java EE under Oracle, get your voice heard and help shape the future.

Note that this is a JavaOne Sunday User Group session, so you will need a JavaOne pass to get in. Like all JavaOne events, there is a limited amount of registrants allowed for the session, so if you think this is something that is worth your while, you would be wise to pre-register via the JavaOne Schedule Builder as soon as possible.

Do check out the details for the event on the GlassFish.org JavaOne Community Event Page, including the agenda, timings, panel question ideas, participant bios and story outlines.