Friday, October 17, 2014

NetBeans PrimeFaces Lightning Talk

During JavaOne 2014, I had the pleasure to present a lightning talk covering the excellent PrimeFaces support that is offered by NetBeans 8 IDE.  Thanks to Geertjan Wielenga for inviting me to present.

I have recorded a screencast covering the lightning talk content, just in case you missed it.

Tuesday, October 14, 2014

Reflecting on JavaOne 2014 - Java 8, JavaFX 8, IoT, and Java EE 8

There were many buzz-words flying around JavaOne 2014: Java 8, JavaFX8, IoT, Java EE 8, NetBeans, Lambdas, Streams, Parallel Processing, JavaScript, DukeScript, Groovy, Scala, Drones...

To sum it all up:  Java is everywhere, and it is a dominant player in IoT, desktop, and Enterprise.

In Reflection:

After having a few days to reflect on my experiences at JavaOne 2014, a few things come to mind.

First, this was by far the most jam-packed JavaOne that I've attended.  Not only were there more attendees this year, but there also seemed to be more great sessions.  In many cases, I did not know which direction to turn, as there was usually more than one session that I wished to attend in any given time slot.

Second, the networking opportunities at JavaOne are world-class.  There are so many knowledgeable resources at JavaOne, it is worth the trip just to have the chance to speak with the industry leaders.

Third, the community really is driving Java forward.  I just recently joined the JCP, and also the JSF 2.3 Expert this year I paid particular attention to the JCP sessions.  That said, the JCP is doing an outstanding job of driving community participation, with the Java EE 8 specifications, in particular.  Throughout the conference, there were dozens of examples from around the world that spoke to the great work that the JCP has been doing...keep up the great work!

Finally, the Java ecosystem is strong, and it is gaining momentum.  Java really is everywhere...and even though I primarily focus on enterprise, it is great to see all of the many areas in which Java is being utilized.  There were many great examples and presentations of embedded Java in the IoT space specifically...can't wait to see what's in store for years to come.  All that said, this year's trip to JavaOne was great.  I was delighted to have the fortunate opportunity to present during a few different sessions this year, which made it all the better!

In the next few sections, I will provide a brief overview on most of the sessions that I attended.  Hope you will find it useful and utilize the information to help you determine which slides to download and sessions to watch on Parleys once the videos are added.

Duke's Cafe

Sunday, Sept 28:

The conference began with a bang, as the attendees in registration were talking about the days to come.  Excitement filled Moscone South, as NetBeans Day was jam packed full of useful information, and sessions covering all areas of Java.  I attended a few NetBeans community panels, which were all filled with interesting use-cases and success stories revolving around Java and the NetBeans IDE.  It was great to see all of the many different ways that people are utilizing NetBeans.

GlassFish RoadMmap and Executive Panel

This has become an annual session for me, as I am a huge fan of GlassFish. This panel was hosted by Reza Rahman, and attendees learned about the future of the application server from John Clingan, Mike Lehman, and Cameron Purdy.  GlassFish 5 is slated for release with Java EE 8, and therefore GlassFish will remain the reference implementation of Java EE.  There were questions regarding the adoption rate of Java EE...specifically around Java EE 7, since there were only a handful of compatible containers at the time.  The panel remarked that they hope to reduce the adoption time for Java EE 8, with hopes that WebLogic will release a Java EE 8 compatibility within 6 months of the Java EE 8 reference implementation release.  Glad to hear that GlassFish has a vibrant future as the reference implementation for Java EE.

GlassFish Adoption Story

Next up, I attended the GlassFish Adoption Story to learn that Mohamed Taman's team had implemented a Java card system very rapidly via GlassFish and Java EE 7.  Martin Mares, one of the talented GlassFish developers, then provided a brief demo of the powerful GlassFish admin utility.  It was great to see how others are making use of GlassFish, and it was also nice to have the opportunity to hear from one of the GlassFish developers first hand.

Java Strategy and Technical Keynote

I attended the Java Strategy and Technical keynote next.  Although it was not quite as exciting as JavaOne 2013...which included great announcements like Java EE 7 and coverage if Java 8 and JavaFX 8 new features...this keynote was inspiring, as there were many examples demonstrating great things that people are achieving with Java technology.  Watch here...

Java Strategy and Technical Keynote

NetBeans Day Sessions

I finished off the day with a couple of more NetBeans day sessions, learning how companies such as Boeing and the oil industry is making great use of NetBeans IDE.  I was privileged enough to present a lightning talk, covering some of the great NetBeans and PrimeFaces integration.  During these NetBeans Day events, I ran into some great Java minds...too many to name!  In my session alone, I had the honor to present with Tim Boudreau, Kirk Pepperdine, Stephen Reinert, and Martijn Verburg.  It was a great experience to have the opportunity to network with these brilliant people.

Java EE Appreciation Event

On Sunday evening, the excellent networking continued as I met up with the Jython leads: Frank Wierzbicki and Jim Baker, followed by the annual Java EE Appreciation Event at Thirsty Bear.  I was lucky enough to have in-depth conversations with people like Freddy Guime, John Clingan, David Heffelfinger, Sven Reimers, and more.  I also had the privilege of meeting Ed Burns for the first time since joining the JSR 372 expert group.  One of my favorite networking events of JavaOne, by far...thanks Oracle!

Monday, Sept 29

Monday was a full day...starting at 7:30 and going until 10:00 in the evening.  Of course, the day actually started at 8:30 am, but I had to get to Duke's Cafe for my morning coffee fix first!  I started my day off right with a JSR-107 (JCACHE) Tutorial.  This was an excellent 2 hour tutorial that was led by Steve Millidge of C2B2.  He had a few slides, but delved into lots of code examples.  We did not cover a server-side scenario, but instead we focused on a Java SE-based solution with Oracle Coherence.  I got a lot out of the session, and it was jam packed with information for the full two hours.

Next up was a session on Java EE 8, led by Linda DeMichiel, Java EE 8 Specification Lead.  This was an informational session regarding ideas and concepts that are being kicked around (and some already implemented) for Java EE 8.  Nice indeed to learn about the possible future of Java EE by the leaders themselves.

Parc 55 Lounge

My afternoon was full of great sessions (including one of my own). The schedule went like this:

HTTP 2.0 Comes to Java:  What Servlet 4.0 Means To You

Excellent session hosted by Ed Burns and Shing Wai Chan discussing the future with Servlet 4.0.  HTTP 2 will make quite a difference behind the scenes...sounds like these two have a great strategy for moving forward.  If you work with Java EE and you missed this talk, I recommend checking out the slides.

Java EE 7 Recipes (My Talk)

I covered 25 different topics in this talk, spanning across most of the Java EE 7 APIs.  I gave a similar talk for the Chicago Coder Conference a couple of months back, but I changed a few recipes a bit and added a recipe covering JAX-RS AsyncResponse.  I feel that my Java EE 7 Recipes talk was well received, but I tried to pack too much into it.  I ended up stumbling a bit because I was a bit too rushed...I'll have to cut back on the content a bit next time so that I have more time to answer questions.  I was honored to have a full room, along with Reza Rahman (Oracle Java EE Evangelist) in the audience.

Coder Conference Video:

Java API for JSON Binding

This talk was given by Martin Grebac, and it discussed the upcoming JSON-B API for Java EE.  Well attended, and very informative...looking forward to working with this API!

What's Next for WebSocket API

I was unable to attend the entire WebSocket session, although I did make most of it.  Throughout the session, Pavel Bucek went through the history of the API, usage, and then touched upon a few of the updates that we will see in the next release.

JCP Community Party

No doubt, this was a highlight of the trip for me!  The JCP Community is celebrating 15 years, and the party was great.  Held on the top floor of the Hilton, this party was located in a fantastic setting, and I met up with many brilliant minds there...David Heffelfinger, Freddy Guime, Bob Paulin, Jim Weaver, Geertjan Wielenga...just to name a few.  It was a quick visit, as I had to be off to the GlassFish BOF over at Moscone!

Top of the Hilton at the JCP Community Party

GlassFish BOF

I came in toward the end of this BoF, as I was late arriving from the JCP Party.  Always great to speak with the leaders of GlassFish...including Reza Rahman, John Clingan, David Delebasse, and more.  It was great to learn the needs that others in the industry have with respect to GlassFish.

What's Next for JSF?

Excellent BoF, hosted by Ed Burns and Manfred Riem.  Discussed the future of JSF...focused efforts on tidying up via Oracle, but more of a community-driven effort to add new features.  Kito Mann discussed how he'd like to add JSON Rendering to the spec, and Ian Hlavats presented an excellent talk on adding Twitter bootstrap support and/or RenderKits that target AngularJS directives.

Calling all GlassFish Users and Groups

This was a small-sized BoF, as there were only a handful of attendees since it was so late in the evening.  We were able to engage in conversation with Reza Rahman, Steve Millidge, John Clingan, and others to learn about how we can help GlassFish to move forward.  Most important things we can do are testing bug repairs, clean up the issue tracker, download and test the builds, etc.  Take a look at
to learn more about getting involved.

Tuesday,  Sept 30

Another day full of excellent tutorials, sessions, and BoFs.  I had no scheduled talks on Tuesday, so I was open to take in the conference...and I did just that.  I started the morning with another 2 hour tutorial given by Michael Finocchiaro and Ryan Cuprak on getting applications to mobile using Cordova.  Very detailed, and based around a real life application deployment.

Adopt-a-JSR for Java EE 8

In this talk, Heather Vancura, Reza Rahman, Ed Burns, and Mohamad Taman discussed the different ways in which JUGs could assist if their organization were to join the Adopt-a-JSR program.  This was very beneficial to me personally because I am going to be helping the Chicago Java User Group with their efforts in adopting JSR 366.  Heather provided an excellent overview of the program.  Reza discussed about the focus points for Java EE 8.  Ed spoke to his experience with user groups adopting JSRs that he has led in the past.  Mohamed discussed how he and his organization had successfully rolled out a major enterprise system utilizing Java EE technologies and Java Card.

Stop! or My Duke Will Shoot!

The excellent Dierk Konig presented on OpenDolphin and communications with IoT devices.  During the presentation, he utilized a mobile phone to target and shoot the audience with foam darts.  OpenDolphin is an open source framework for constructing JavaFX applications using an MVC architecture.  In summary: have a look at OpenDolphin...looks great!

** Lunch with Apress:  I was lucky enough to grab lunch at Duke's cafe with my Apress editor, Jonathan Gennick.

** Creating Our Robot Overlords

This one gets two stars, as it was one of my most enjoyed sessions of the conference.  Jim Weaver hosted the IoT and JavaFX experts: Mark Heckler and Sean Phillips, who demonstrated how to program Drone devices with Java.  Mark presented a very amusing and brilliant session with a drone that he ended up programming to fly in several different patterns.  During his presentation, he mentioned that he did not achieve the end result without injury or ruin in his living room.  The drone took flight in front of the audience, all the while presenting data that was displayed in real time via a JavaFX GUI written by Jens Deters.  Sean was in charge of constructing a 3D JavaFX fly pattern simulator, with which he did an outstanding job.  The simulator showed a TIE Fighter flying the same pattern as the drone just flew in front of the crowd.  The entire presentation was impressive!

About to Put Drone Into Flight

Simplifying HTML5/JavaScript Rich Clients with Java EE

In this session, Geertjan Wielenga demonstrated how to easily construct a JSF application from entity classes using NetBeans.  Johannes Wiegend then demonstrated how to do the same with AngularJS.  Informative, and it makes me love JSF, NetBeans, and PrimeFaces even more.  While there is benefit to being diverse with choice in development frameworks, I'll continue to use JSF where possible, and leave AngularJS and other client side frameworks to those that tend to weigh more on the client or require more statelessness than JSF offers.

Model-View-Controller in Java EE 8

I have been curious to see how the new MVC framework for Java EE evolves.  I am happy to know that it is in the good hands of Manfred Riem, Spec lead.  In this BoF, Manfred covered where he believes the JSR will focus, and re-iterated that it is not meant to be a JSF replacement.  It will be good to have a standard in Java EE for this style of web development.  More tools for the job!

Meet the Java EE Specification Leads

I arrived a bit late for this BoF, but it was very important for Java EE.  In this BoF, Linda DeMichiel and Bill Shannon outlined what is in store for Java EE 8, thus far.  All Java EE 8 spec leads were on the panel, and answered various questions regarding their specifications.  I had the honor of speaking with Bill Shannon after the BoF for a few minutes regarding the Adopt-a-JSR program.

Wednesday, Oct 1

I was energized when I woke up on Wednesday because I was really looking forward to my Java EE Recipes for Concurrency talk later that afternoon.  This was the mood of the day, as I only attended a few sessions, but had the opportunity to take in the best of JavaOne...the networking.

PrimeTime JSF with PrimeFaces 5.0

Kito Mann is an excellent speaker.  What's better than to have an excellent speaker talk on an excellent topic.  Hands down (IMO), the best JSF framework available today, PrimeFaces was covered from top to bottom via Kito's presentation.  While I am already very familiar with the framework, I did learn a few new tips from Kito...very insightful.  Also very surprised to receive a tweet from Cagatay Civici (PrimeFaces Lead) during the presentation, requesting a photo.  I have the honor of sitting on the JSF 2.3 Expert Group with both Kito and Cagatay.

Java EE 7 Hands On Lab

David Heffelfinger and Mark Heckler were the presenters for this year's Java EE Hands On Lab, and they did a terrific job.  I had the opportunity to help answer questions for the class, along with Sven Reimers and Bob Larson.  It was great to interact with the students, learning the areas in which they develop and why they are trying to learn Java EE.  For those who began their journey into Java EE with this class, they couldn't have begun a better way.

David Heffelfinger Teaching JSF

Mark Heckler Spreading Knowledge of JavaEE

Debugging and Profiling Robots

Int his session, the great James Gosling presented along with other JavaFX and IoT experts:  Mark Heckler, Jose Pereda, and Jens Deters.  Geertjan Wiengela ran interference during this session that provided some good tips, "lessons learned", and great tooling tips from the IoT masters.  James Gosling told some tales regarding his experiences with the wave gliders.  I was surprised to learn that the biggest issue is fishermen.  Mark Heckler flew the drone and spoke about NetBeans for debugging and profiling.  Jose and Jens demoed their Raspberry Pi tablets and controlled devices over seas in a live session.  All in all....great!

James Gosling's Wave Runner in the Exhibition Hall

Project Avatar:  Server-Side JavaScript on the JVM

John Clingan led this talk, followed by some discussion with the Project Avatar team members.  During this session, Project Avatar 2.0 was announced, which virtually enables Node.js applications to run on the JVM.  They call Avatar "serverside JavaScript for the JVM", and I can see its use-case.  I'll certainly keep an eye on this project, as it seems to have a great team behind it.

Java EE 7 Recipes for Concurrency

I was honored to present on the Concurrency Utilities for Java EE as the last presentation time slot for the day.  The room was jam packed, and it was full of smart individuals who asked great questions.  I was very happy with the way that this session went, and I was happy with the great crowd of attendees.  Thanks, and I hope that it was useful.


JavaOne Appreciation Event

I had the privilege to attend the JavaOne Appreciation Event with some of the smartest minds in the business.  It was great to get out for the evening and see one of the classics, Aerosmith, and also to engage in some highly technical collaboration.

Oracle Appreciation Event

Thursday, Oct 2

Final day...what a week!  It flew by, and I barely had a moment to sit down and take a breather in Duke's Cafe (although I did catch the NullPointers playing there for about 1/2 hour and they were excellent).

JavaOne Community Keynote

The keynote was great, and I was lucky enough to sit only a few rows back, right in the center.  I was happy that the technical session was presented again, and Mark Reinhold and Brian Goetz did a great job.  Jim Weaver is always a great presenter, as were all of the others on stage.  This is truly a great time to be a Java developer...exciting times in all areas of the platform!

Mark Reinhold
JavaOne Q&A with the Experts

Java EE 8 Community Update and Panel

The panel in this session was comprised of Java application server product leads (David Blevins, John Clingan, Cameron Purdy, Bruno Borges, Kevin Sutter, Mark Little), as well as the expert community voice of Adam Bien.  In this session, the leads gave their thoughts on Java EE 8, and what features or ideas are most important from their perspective.  The community had a voice in that the audience was invited to ask questions and raise comments/discussions on what features the community feels are needed for Java EE 8 compliant containers.

Building Java Applications with JavaFX 8 and Java EE 7

Bruno Borges presented some ideas around different integration points for JavaFX8 applications with the Java EE 7 stack.  He outlined which Java EE 7 APIs are likely useful for use with JavaFX applications, and which would be less useful.  He also touched upon some ideas on how to achieve integration, as well as highlighted some frameworks that are currently in existence to help fill the gaps.

Enterprise Nashorn

This talk was presented by Adam Bien, and he delved into some real-life use-cases for Nashorn within Java Enterprise environments.  It was interesting to hear how his projects have made use of Nashorn and also how easy the integration between Java and JavaScript can be achieved.

Applying Groovy Closures for Fun and Productivity

I closed out the conference by attending this talk, which was presented by the great Venkat Subramaniam.  In this talk, Venkat did an excellent job of showing how useful Groovy closures can be.  He also went into some detail on other useful features, such as currying and memoization, both of which Groovy has to offer.


JavaOne 2014 was well worth the trip.  Not only was it chocked full of great session content and tutorials, but it also provided a world-class collaboration composed of some of the greatest minds in Java.