Monday Apr 14, 2014

David Heffelfinger's Java EE/GlassFish Adoption Story

David Heffelfinger is the Chief Technology Officer of Ensode Technology and an ardent US based Java EE/GlassFish advocate. He has authored no less than four titles on Java EE/GlassFish. David shared a Java EE/GlassFish adoption story at the JavaOne 2013 Sunday GlassFish community event - check out the video below:

He detailed how he convinced a long time customer to upgrade their application servers and use Java EE/GlassFish with PrimeFaces by hacking together a quick demo. Using the combination of Java EE 6, GlassFish, PrimeFaces and NetBeans allowed him to lead a relatively inexperienced team in delivering the first version of the application in just three weeks. David also mentioned that using GlassFish as a learning tool helps keep his skills sharp and in-demand as GlassFish adopts the newest Java EE APIs faster than the other options. You can check out the details of his story on the GlassFish stories blog.

Do you have a Java EE 6/GlassFish story to share? Let us know and we will highlight it for the community.

Thursday Apr 03, 2014

Last Call to Submit to the JavaOne Java EE Track

This is a first and last reminder from us to all of the folks out there that the JavaOne CFP closes on April 15 - just about two weeks from now.

The procrastinator in you might be thinking two weeks is plenty of time. In reality if you haven't started working on your submissions yet, you are probably setting yourself up for some stress that will likely result in a weak submission. This is especially true if like most of us you will need to collaborate with others or get your boss's approval for your submission. Putting things in perspective the CFP has already been open for about a month so other folks already have a hefty head start to maximize their chances of getting accepted.

We have already had some very decent submissions on the Java EE track that has enabled us to get some early acceptances out and gear up the review process as I write this. That being said, we want to make sure everyone in the community has a fair chance to help us build a strong Java EE track agenda by submitting their best ideas. As always, never hesitate to get in touch if you have a question.

Here are some hopefully helpful hints to help you out:

What We Are Looking For
Consider the following as inspiration for submissions to the Java EE track (the only real limits of course are your own imagination on anything in the Java EE ecosystem):

  • Existing and upcoming Java EE technology JSRs and implementations
  • Cool stuff that extends Java EE in new and interesting ways
  • Case studies using Java EE 5, Java EE 6 or Java EE 7 (including migration from other technologies)
  • Best practices for using Java EE technologies
  • Emerging trends in the ecosystem such as mobile, HTML5, caching, complex event processing, modularity and the like
  • Insightful research, development and analysis work in server-side Java

The Cloud Track vs. The Java EE Track
Note that topics like IaaS, PaaS, SaaS, elasticity, multitenancy, NoSQL, Big Data, DevOps and the like should go on the cloud track instead of the Java EE track. Do make an honest effort in applying your judgement on which track to submit on. Either way, it's not a deal breaker if you don't get it exactly right - we will figure it out for you if all else fails. Similarly, please try not to submit talks that really belong in another track such as tools or dynamic languages to the Java EE track. Believe it or not, the Java EE track is actually far more competitive than many of the other tracks. Similarly, if something clearly belongs in the Java EE track, you'll be doing yourself a disfavor by not submitting to the track as the other track leads won't necessarily move your submission correctly.

The Video to Include With Your Submission
Some people are getting caught by surprise that this year we are requiring a video with the submission, so this may bear some explaining. One of the fundamental purposes of the video is to level the playing field for unkown but great speakers. It allows us to assess your submission a lot better by helping neutralize bias towards people that the reviewers are aware of personally. It need not be anything elaborate at all - just a simple explanation of what you are submitting. For experienced speakers, the video requirement is no big deal at all - just submit the video for any talk you have (or ideally video for the talk you are proposing).

Mark Stephens of IDR Solutions recently put out a great blog entry on the JavaOne submission video requirement. The entry is well worth a look.

Don't Count on an Extension
Fortunately or unfortunately some previous JavaOne CFPs have been extended beyond their initial date. Please do yourself a favor and don't assume this will happen again. You may be winding up denying yourself a shot at submitting your great talk altogether :-).

Finally, here is that all important link to the CFP. Hope to see and accept your great topic soon :-)?

Friday Mar 21, 2014

Code PaLOUsa 2014 Trip Report

Code PaLOUsa 2014 took place 24-26 February in Louisville, Kentucky. Code PaLOUsa is a fairly unassuming conference with great quality farther away from the beaten paths. Topics covered included Java, .NET, JavaScript, mobile, methodology and Big Data/NoSQL. On my way to Kentucky, I was able to stop by at the Montgomery County (Maryland) JUG for a Java EE 7 session.

At Code PaLOUsa I delivered a talk on aligning Java EE with NoSQL as well as a talk on the Cargo Tracker Java EE/Domain-Driven Design Blue Prints project (this talk was recorded by InfoQ). More details, including slide decks and code, posted on my personal blog.

Monday Mar 10, 2014

Java EE 8 Survey Last Call!

As many of you are aware, we have been running the Java EE 8 survey as a way to solidly kick start the next round of standardization for the platform. We would now like to wrap up the survey and move on to the next logical steps. To that end, we will be closing the third and final part of the survey in the next two weeks (specifically on Monday the 24th, midnight Pacific time). If you still have not filled out the survey, please do now: glassfish.org/survey.

While part one and two focused on specific features, this last part is all about assigning priorities to the most important features. In some ways, this is the most important part of the survey so we highly encourage you to help us by providing input as early as possible and help correctly shape the future of Java EE. If possible, please also help us out by getting the word out.

We look forward to hearing from you! 

Wednesday Mar 05, 2014

JavaOne CFP is Open - Your Invitation to Submit to the Java EE Track

It's that special time of the year again - the JavaOne 2014 call for papers is now officially open!

JavaOne will be held September 28 - October 2 in San Francisco. You can read about the details and submit here (at the time of writing the site was intermittently available so do be patient or let us know if you have any issues). This year, I have the privilege to lead the Java EE track along with Lance Andersen (Lance also leads the closely related Cloud track). My colleagues Bruno Borges and David Delabassee will also be playing key roles in the Java EE track.

Please do consider this a personal invitation from me to submit your best ideas to one of the most prestigious gatherings of the minds for server-side Java. If you have any questions, never hesitate to get in touch.

Consider the following as inspiration for submissions to the Java EE track (the only real limits of course are your own imagination on anything in the Java EE ecosystem):

  • Existing and upcoming Java EE technology JSRs and implementations
  • Cool stuff that extends Java EE in new and interesting ways
  • Case studies using Java EE 5, Java EE 6 or Java EE 7 (including migration from other technologies)
  • Best practices for using Java EE technologies
  • Emerging trends in the ecosystem such as mobile, HTML5, caching, complex event processing, modularity and the like
  • Insightful research, development and analysis work in server-side Java

Note that topics like IaaS, PaaS, SaaS, elasticity, multitenancy, NoSQL, Big Data, DevOps and the like should go on the cloud track instead of the Java EE track. Do make an honest effort in applying your judgement on which track to submit on. Either way, it's not a deal breaker if you don't get it exactly right - we will figure it out for you if all else fails :-).

The CFP is closed April 15, so please do start thinking about what you want to submit soon. We will be using rolling acceptance, so there is an inherent advantage to submitting early. That being said do take your time - quality always matters!

Thursday Feb 20, 2014

Java+EE Basic Training with Yakov Fain

Those of us that have been around Java/Java EE for a little while sometimes tend to forget that Java is still an ever expanding ecosystem with many newcomers. Fortunately, not everyone misses this perspective, including well-respected Java veteran Yakov Fain. Yakov recently started a brand new free online video tutorial series focused on Java and Java EE beginners. The very first of these excellent videos is posted below. The slides for the tutorial series are available here. Yakov is working to update the content to EE 7 and he uses GlassFish 4. If there are folks you know that would benefit from this content, please do pass on word. Even if you are an experienced developer, it sometimes helps to sit back and review the basics...

It's quite remarkable that someone of Yakov's stature took the time out to create content for absolute beginners. For those unaware, Yakov is one of the earliest Java champions and one would be very hard pressed to match his many contributions to the Java community. The tutorial demonstrates his continued passion, commitment and humility.

Sunday Feb 16, 2014

Inject Properties using CDI

One of the principal goals of CDI is to make the Java EE programming model far more extensible - from adding basic functionality to full-scale integration with third-party software. Piotr Nowicki demonstrates this well by doing something pretty simple but common and useful - injecting a value from a Java .properties file into any managed bean using CDI @Produces and InjectionPoint. Note that the Core module of the Apache DeltaSpike project also includes similar functionality. In case you are unaware of Apache DeltaSpike, it is the de-facto collection of CDI portable extensions (it is the successor to both Seam 3 and Apache CODI).

Both Piotr's code and Apache DeltaSpike inject values from property files only. One useful addition could be to also support Java environment variables. Perhaps this inspires you enough to create your own CDI portable extension for injecting properties or contribute to DeltaSpike :-)? Interestingly, there is a similar discussion on JAVAEE_SPEC-19. Perhaps this is an area for the emergent Java EE Configuration JSR to look into?

Wednesday Jan 15, 2014

Java EE/GlassFish is Tops (on SlideShare :-))!

It seems Java EE/GlassFish is topping charts - well, at least on SlideShare anyway :-). As many of you know, our team has quite a bit of content published on the popular SlideShare site, including on the official GlassFish account and my personal account. An extremely large amount of folks use that content - I didn't realize just how large until today. The GlassFish account is among the top 5% of all content viewed on SlideShare, while my personal account is in the top 1%.

Below is a list of the top ten content we have on these accounts:

  1. What’s New in Java Message Service 2 - 22,889 views.
  2. Building Java HTML5/WebSocket Applications with JSR 356 - 22,036 views.
  3. Fifty Features of Java EE 7 in 50 Minutes - 19,994 views.
  4. JavaEE.Next(): Java EE 7, 8, and Beyond - 19,857 views.
  5. JSON-P - 15,747 views.
  6. Using NoSQL with JPA, EclipseLink and Java EE - 14,429 views.
  7. JAX-RS 2: New and Noteworthy in the RESTful Web Services API - 13,881 views.
  8. Java EE Concurrency Utilities - 9,549 views.
  9. Java Batch - 9,251 views.
  10. Applied Domain-Driven Design Blue Prints for Java EE - 7,507 views.

This of course is in addition to the many folks that interact with us at conferences, Java user groups, on Twitter, on this humble community blog, on JavaLobby/DZone and so on. I want to thank you for listening to us and look forward to continue to generate newer content that's useful to you. I also want to assure you that it is a privilege and I know the team is always eager to hear from you as to what can be done to keep the Java EE and GlassFish communities moving forward.

Tuesday Dec 24, 2013

Season's Greetings and Happy New Year from the GlassFish/Java EE Team!

On behalf of the GlassFish and Java EE team at Oracle I wish you and your family Season's Greetings and a very Happy New Year!

As you know this has been quite an eventful year for us - especially with the release of Java EE 7 and GlassFish 4 as well as the now ongoing survey effort to help drive the agenda for Java EE 8 and GlassFish 5, not to mention efforts like the revamped GlassFish.org community site. We are ever thankful for your support and we hope to continue to try our best to serve your interests, perhaps against what many would consider pretty tall odds.

In the coming year, we will look forward to working harder than ever in engaging you through the Java EE open standard, the GlassFish code base, Adopt a JSR, Java EE Blue Print projects and this humble community blog among many other existing and upcoming efforts.

Thanks and best wishes once again. We hope to see you next year!

Wednesday Nov 20, 2013

JPA 2.1 Type Converters

Somewhat surprisingly, JPA 2.1 appears to be one of the APIs that seems to get lost in the Java EE 7 buzz. Although it is a point release JPA 2.1 includes a fairly large number of very important changes such as schema generation, entity graphs, support for stored procedures, unsynchronized persistence contexts, entity converters, and much, much more. In a code driven post Thorben Janssen discusses one of these changes - entity converters. There's also the 20-minute JPA 2.1 presentation by specification lead Linda Demichiel on the GlassFish videos YouTube channel:

More recently, Linda presented a JavaOne 2013 technical session titled Java Persistence 2.1. Stay tuned to Parleys.com for video of the session to be posted.

Thursday Nov 07, 2013

6 Facts About GlassFish Announcement

To help clarify the message about the recent roadmap for GlassFish, I decided to put together 6 facts about the announcement, future of GlassFish, and the Java EE platform as a whole: 

"Since Oracle announced the end of commercial support for future Oracle GlassFish Server versions, the Java EE world has started wondering what will happen to GlassFish Server Open Source Edition. Unfortunately, there's a lot of misleading information going around. So let me clarify some things with facts, not FUD."

Read full story here

Monday Nov 04, 2013

Java EE and GlassFish Server Roadmap Update

2013 has been a stellar year for both the Java EE and GlassFish Server communities. On June 12, Oracle and its partners announced the release of Java EE 7, which delivers on three major themes – HTML5, developer productivity, and meeting enterprise demands. The online event attracted over 10,000 views in the first two days!

During the online event, Oracle also announced the availability of GlassFish Server Open Source Edition 4, the world's first Java EE 7 compatible application server. The primary role of GlassFish Server Open Source Edition has been, and continues to be, driving adoption of the latest release of the Java Platform, Enterprise Edition. Oracle also announced the Java EE 7 SDK, which bundles GlassFish Server Open Source Edition 4, as a Java EE 7 learning aid. Last, Oracle publicly announced the Java EE 7 reference implementation based on GlassFish Server Open Source Edition 4. Java EE is a popular platform, as evidenced by the 20+ Java EE 6 compatible implementations available to choose from.

After the launch of Java EE 7 and GlassFish Server Open Source Edition 4, we began planning the Java EE 8 roadmap, which was covered during the JavaOne Strategy Keynote. To summarize, there is a lot of interest in improving on HTML5 support, Cloud, and investigating NoSQL support. We received a lot of great feedback from the community and customers on what they would like to see in Java EE 8.

As we approached JavaOne 2013, we started planning the GlassFish Server roadmap. What we announced at JavaOne was that GlassFish Server Open Source Edition 4.1 is scheduled for 2014. Here is an update to that roadmap.

  • GlassFish Server Open Source Edition 4.1 is scheduled for 2014
  • We are planning updates as needed to GlassFish Server Open Source Edition, which is commercially unsupported
  • As we head towards Java EE 8:
    • The trunk will eventually transition to GlassFish Server Open Source Edition 5 as a Java EE 8 implementation
    • The Java EE 8 Reference Implementation will be derived from GlassFish Server Open Source Edition 5. This replicates what has been done in past Java EE and GlassFish Server releases.
  • Oracle will no longer release future major releases of Oracle GlassFish Server with commercial support – specifically Oracle GlassFish Server 4.x with commercial Java EE 7 support will not be released.
  • Commercial Java EE 7 support will be provided from WebLogic Server.
  • Oracle GlassFish Server will not be releasing a 4.x commercial version

Expanding on that last bullet, new and existing Oracle GlassFish Server 2.1.x and 3.1.x commercial customers will continue to be supported according to the Oracle Lifetime Support Policy.

Oracle recommends that existing commercial Oracle GlassFish Server customers begin planning to move to Oracle WebLogic Server, which is a natural technical and license migration path forward:

  • Applications developed to Java EE standards can be deployed to both GlassFish Server and Oracle WebLogic Server
  • GlassFish Server and Oracle WebLogic Server have implementation-specific deployment descriptor interoperability (here and here).
  • GlassFish Server 3.x and Oracle WebLogic Server share quite a bit of code, so there are quite a bit of configuration and (extended) feature similarities. Shared code includes JPA, JAX-RS, WebSockets (pre JSR 356 in both cases), CDI, Bean Validation, JSF, JAX-WS, JAXB, and WS-AT.
  • Both Oracle GlassFish Server 3.x and Oracle WebLogic Server 12c support Oracle Access Manager, Oracle Coherence, Oracle Directory Server, Oracle Virtual Directory, Oracle Database, Oracle Enterprise Manager and are entitled to support for the underlying Oracle JDK.

To summarize, Oracle is committed to the future of Java EE.  Java EE 7 has been released and planning for Java EE 8 has begun. GlassFish Server Open Source Edition continues to be the strategic foundation for Java EE reference implementation going forward. And for developers, updates will be delivered as needed to continue to deliver a great developer experience for GlassFish Server Open Source Edition. We are planning for GlassFish Server Open Source Edition 5 as the foundation for the Java EE 8 reference implementation, as well as bundling GlassFish Server Open Source Edition 5 in a Java EE 8 SDK, which is the most popular distribution of GlassFish. This will allow GlassFish releases to be more focused on the Java EE platform and community-driven requirements. We continue to encourage community contributions, bug reports, participation on the GlassFish forum, etc. Going forward, Oracle WebLogic Server will be the single strategic commercially supported application server from Oracle.

Disclaimer: The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract.It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.

Wednesday Oct 09, 2013

Using NoSQL with EclipseLink and JPA?

NoSQL is obviously a hot topic in the enterprise these days, at least at the water cooler if not in the production data center. The momentum is such that despite being seen as a stalwart of relational databases, Oracle too has entered the NoSQL ecosystem with Oracle NoSQL. Naturally, the question of how to use NoSQL databases in Java EE applications (specifically existing Java EE 5 and Java EE 6 applications) comes up all too often. As it so turns out there are a number of very interesting initiatives out there to radically simplify the usage of NoSQL databases in Java EE applications by creating JPA based facades over them (strictly speaking, JPA as it stands today is not intended to support NoSQL from a purely standards standpoint). Such efforts include one from non other than the team behind the Oracle JPA reference implementation EclipseLink. In a code driven blog post, Huseyin Akdogan demonstrates how to use MongoDB using EclipseLink NoSQL. You are also welcome to check out my own slide deck covering using NoSQL databases in Java EE with or without a JPA flavored API (using just plain CDI):

Interestingly, NoSQL support featured quite prominently in the results of a survey around JCP standards put together by the London Java Community (LJC). It would be interesting to hear your thoughts as well.

Robert Greene, John Bracken and Shaun Smith held both a technical session titled "Building Oracle NoSQL Database Applications with EclipseLink" and a BOF titled "Java Persistence for NoSQL" at JavaOne 2013 on this topic. Stay tuned to Parleys.com for the video recordings of the sessions.

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!

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).