Wednesday Nov 18, 2015

WebLogic Now Java EE 7 Compatible!

With the greatest pleasure I can report that WebLogic 12.2.1 has recently been fully Java EE 7 certified! This represents full commitment from Java steward Oracle to commercial support for Java EE 7. WebLogic joins the ranks of GlassFish 4, WildFly 8, WebSphere Liberty Profile 8.5, Hitachi Cosminexus and TmaxSoft JEUS. With the very broad customer base that both Oracle and WebLogic have globally this is very welcome news for Java EE 7 indeed. All of the Java EE certified offerings are always listed on the official Java EE compatibility page.

As many of you are aware, Java EE 7 is one of the most extensive set of changes to the platform in it's history. Similarly WebLogic 12.2.1 is one of the most significant releases of WebLogic in many years, even not counting full Java EE 7 support. In addition to Java EE 7 support WebLogic 12.2.1 brings two significant sets of changes.

The first is what is referred to as multitenancy. WebLogic multitenancy brings greater isolation similar to what one can accomplish through Linux containers like Docker or traditional virtualization - only applied natively at the WebLogic runtime level. What this means is that multiple applications can run completely isolated from each other on the same WebLogic runtime as though they were running on different domains. The multitenancy concept is intended to be implemented seamlessly across Oracle products in the data center including the Oracle JDK, Coherence, Traffic Director and the Oracle Database. This is a concept currently unique to the Oracle stack.

WebLogic 12.2.1 also builds on the traditional strengths of the product with regards to high availability. A number of features have been added to improve 100% up time capabilities through live patching, live upgrades, clustering, load-balancing, fail-over and replication, especially in large, multi data center, disaster recovery capable deployments. 

The following are the most important links you should explore:

It is worth reminding that prior to 12.2.1, the WebLogic 12.1.3 release supported the Java EE 7 APIs that many customers indicated they thought were most important -  WebSocket, JSON-P, JAX-RS 2 and JPA 2.1. Also note that like 12.1.3, WebLogic 12.2.1 is certified for Java SE 8. Though it is not there yet, WebLogic 12.2.1 will soon also be available on the Oracle Cloud - representing full Java EE 7 commercial support on the cloud from Oracle.

So the question now is who will be next to cross the Java EE 7 compatibility finish line. JBoss EAP 7 recently released an alpha with Java EE 7 support - this is in addition to Red Hat's long standing Java EE 7 compatibility through WildFly. Similarly WebSphere Classic released a beta showing Java EE 7 support in addition to the existing IBM full commercial Java EE 7 support through WebSphere Liberty. It is clear there will be at least two more significant Java EE 7 commercial platforms in the next few months. The Apache TomEE team is also working on bringing forward Java EE 7 features.

For some perspective, few other open standards such as SQL have as many available implementations as Java EE 7 already has.

Wednesday Oct 21, 2015

Developers Affirm Strong Support for Java EE 7 in DZone Survey

                    "The reports of my death have been greatly exaggerated."

                                                                                                      – Mark Twain

It sometimes seems like there has been a raging debate on the role of Java EE in server-side Java since the beginning of time. The debate is perhaps just as old and stale as the question of whether Java is finally dead or irrelevant. One of the latest dimensions of this debate has been around adoption of Java EE 7. It is not too surprising then that DZone took up the topic in it's wide ranging 2015 Java Ecosystem Survey. The analysis of the results of that survey will be part of the upcoming 2015 Java Ecosystem Guide to be published during JavaOne. Fortunately DZone shared the results with a selected set of MVBs (Most Valuable Bloggers) including yours truly and gave me permission to share some preview perspectives on the data. As the title of this entry suggests the survey results bode well for Java EE 7 specifically and Java EE generally.

The survey asked a very simple question - "Which of the following Java platforms do you use today?", including various versions of Java EE and some key alternative technologies as mutually inclusive answers (I think the mutually inclusive part is an important reality check towards the aforementioned debate that generally tends to have a tone of mutual exclusion). As the results highlighted shows, almost 39% of developers chose Java EE 7. A total of over 90% responses chose one version of Java EE or the other - well ahead of the other technologies listed. Java EE 7 community support seems to have already edged out the very well regarded Java EE 6 release. These patterns will likely get even stronger with the recent Java EE 7 release of WebSphere Liberty and full commercial support of Java EE 7 through WebLogic and JBoss EAP in the next coming months.

Fortunately we also have interesting past data points to compare in the RebelLab's 2014 Java Tools and Technologies Landscape survey. That survey asked similar but slightly different questions with regards to Java EE. In that survey 68% indicated that they were Java EE users, which is likely a lower rate than in the DZone survey. Most importantly a significantly higher percentage, 49% indicated Java EE 6 usage than Java EE 7 usage that stood at 35%. For clarity this report treated Java EE version usage as mutually exclusive (probably a mostly reasonable assumption). It did not attempt to collate data on Java EE vis-a-vis alternatives. To roughly compare with the DZone report format that means that of total respondents, about 24% reported Java EE 7 usage while 33% reported Java EE 6 usage. All this bodes well for Java EE and Java EE 7. The two surveys taken roughly a year apart indicate higher levels of usage for Java EE overall and strengthening community support behind Java EE 7, even as compared with Java EE 6.

On behalf of the Java EE team here at Oracle it is only correct to thank everyone that indicated their support for Java EE and Java EE 7 in such surveys. Our work is intended to benefit you first and foremost - it is good to see that intent does not get lost in the muddle. As you may be aware we make an effort to highlight your success adopting Java EE in our blogs, JavaOne and through the core Java EE community. It is always a good time to drop us a note to share your story with the broader community.

Monday Oct 12, 2015

Kito Mann's JavaOne 2015 Sessions on JSF, MVC and HTML 5

For the Java EE track at JavaOne 2015 we are highlighting some key sessions and speakers to better inform you of what you can expect, right up until the start of the conference.

To this end we recently interviewed Kito Mann. Kito is a long time JSF advocate, popular author, speaker, consultant and very prolific contributor to the JCP. Just as previous years, Kito has one of the highest number of sessions from a single speaker on the Java EE track. He spoke to us about his accepted session at JavaOne 2015 (click here if you can't see the embedded video).

The following are the sessions we talked about:

  • Advanced PrimeFaces: This informal after-hours BoF is a deep dive into the popular PrimeFaces library. If you are using PrimeFaces this is a great session to really understand how PrimeFaces works.
  • Tuning JavaServer Faces: In this extended tutorial style session Kito offers his deep insight to effectively tuning JSF applications in the real world. I would say this is a must attend for any JSF user.
  • Building Professional JavaServer Faces UI Components: As Kito explains building reusable components is a key value proposition for JSF. In this informal after-hours BoF Kito will cover best practices for effectively building JSF components for real world applications.
  • Modern Web Apps with HTML5 Web Components, Polymer, and Java EE MVC 1.0: This is a very advanced technical session covering a number of very forward-looking topics. HTML5 web components are a key emerging standard for building JSF style components in vanilla HTML. Polymer is an important open source library for HTML 5 web components. In this session Kito shows how Polymer/web components can be used effectively with the upcoming MVC 1.0 standard slated for Java EE 8.

The following sessions are pretty closely related to what Kito is presenting at JavaOne this year:

Besides these sessions, we have a very strong program for the Java EE track and JavaOne overall - just explore the content catalog. If you can't make it, you can be assured that we will make key content available after the conference just as we have always done. If you are coming, do make sure to book your sessions via schedule builder before they fill up.

Wednesday Oct 07, 2015

GlassFish 4.1.1 is now available!

GlassFish 4.1.1 has just been released and despite the minor version increase, 4.1.1 is certainly not an insignificant update!

During the course of last year; we have seen specifications updates for JAX-RS (JSR 339), JMS (JSR 343), CDI (JSR 346) and WebSocket (JSR 356). Those different Maintenance Releases are now integrated in GlassFish 4.1.1. During that period, the umbrella Java EE 7 specification (JSR 342) also went through the Maintenance Release process but that revision was just about specification clarifications; so the Java EE 7 MR had technically no impact on the Reference Implementation, on GlassFish.

In this 4.1.1 release, most the underlying GlassFish components have been updated. The list below contains some of the updated components.
  • Jersey 2.21 (JAX-RS 2.0.1 aka JAX-RS 2.0 rev A) 
  • Weld 2.2.13.Final (CDI 1.2)
  • MQ 5.1.1-b02 (JMS 2.0.1)  
  • Tyrus 1.11 (WebSocket 1.1 )
  • Mojarra 2.2.12
  • EclipseLink 2.6.1-RC1
  • Grizzly 2.3.23
  • HK2 2.4.0-b31
  • JBatch Runtime 1.0.1-b09
  • JSON-P RI 1.0.4
  • etc.

Finally, it should also be mentioned that and in addition to various bug fixes, GlassFish 4.1.1 also includes several security related fixes.

You can download GlassFish 4.1.1 here and grab the source code here.

Sunday Sep 06, 2015

Java EE @ Devoxx Poland 2015

Devoxx Poland was held on June 22-25 in historic Krakow. This is one of the largest and most prestigious Polish developer conferences. The conference was completely sold out and chock full of world class speakers/content. Speakers included Adam Bien, Venkat Subramaniam, Ted Neward and Pratik Patel. Topics included Java SE, Java EE, HTML5, JavaScript, DevOps, architecture, methodology, NoSQL and cloud.

I delivered talks on Java EE 8, aligning JavaScript/HTML5 with Java EE 7 as well as the JCP/Adopt-a-JSR. I also delivered two hands-on workshops on Java EE 7 and JMS 2. Adam Bien delivered a vital talk on Java EE and microservices. More details on the sessions and the trip to Poland, including slide decks and code, posted on my personal blog.

Tuesday Aug 25, 2015

Asynchronous Support in JAX-RS 2/Java EE 7

Asynchronous processing, non-blocking I/O, events and messaging are keys to more reactive applications. Fortunately Java EE has long organically provided such features in the platform at pretty much every key API layer including Servlet, CDI, EJB and JMS. These features were strengthened further in Java EE 7 and even more could be done in Java EE 8. Spurred by a real world developer I met at a conference writing a highly reactive IoT application with Java EE, I've actually developed a talk about reactive features in Java EE (click here if you can't see the embedded slide deck):

One such feature added in JAX-RS 2/Java EE 7 gets surprisingly little exposure - asynchronous capabilities added for both server-side REST endpoints as well as clients. Fortunately Sam Sepassi has stepped up nicely to fill the gap with a detailed blog entry that covers both the servers-side and client side capabilities. Bonus points to Sam for demonstrating how nicely JAX-RS 2 asynchronous endpoints and EJB @Asynchronous work together! Sam also shows the Java EE 7 Concurrency Utilities in action and does a nice job explaining the basics/what's going on under the hood.

Wednesday Aug 19, 2015

Java EE @ Chicago Coder Conference 2015

The Chicago Coder Conference 2015 was held on May 14-15. The conference is locally organized by the community including the Chicago JUG, which is why it was important for us to support the event. The event is somewhat Java leaning but also has great presence from the web, .NET, database, etc communities.

I delivered talks on JMS 2 and aligning JavaScript/HTML5 with Java EE 7. Chicago based Java EE advocate Josh Juneau covered what's coming in Java EE 8. More details on the sessions and the trip to Turkey, including slide decks and code, posted on my personal blog.

Monday Aug 17, 2015

A Journey from Tapestry to JSF 2.2 and JavaEE 7

After the key Java EE 6 release we have seen a steady stream of folks migrating from various non-standard frameworks to Java EE - all for their own good reasons. One such very recent detailed migration story was shared by Lenny Primak. He successfully migrated from Tapestry to Java EE 7/JSF 2.2 and shared his observations in a series of (eighteen!) blog entries. His candid independent insights with regards to JSF/Java EE are likely very helpful to current and potential adopters.

I do think it is very important to take any such migration story with a grain of salt. All of this is just one person's view about what is right for them while choosing amongst a complicated set of trade-offs. It is never wise to over-generalize from those unique perspectives instead of choosing what is right for a given situation. We certainly should not forget that all non-trivial technology has it's advantages and drawbacks over time. Tapestry is a great technology in the overall ecosystem that standards like JSF do adopt good ideas from (and the opposite is likely to also be true). It is also possible to use Tapestry with Java EE as an alternative to JSF.

You can read Lenny's entire migration story on his personal blog. Although eighteen entries can seem daunting each entry is short/to-the-point and well written. Here are some highlights for the very impatient:

  • In the conclusion Lenny notes "As I looked at the big picture, it turned out to be easier to convert the whole app from T5.3 to JSF and PrimeFaces instead of T5.4, and that’s what I did. This turned out a great decision. Everything is compatible, future JavaEE versions are easily adoptable, all integrations do not require heroic efforts to implement or maintain and even JavaScript and Ajax with JQuery even started to be fun to develop."
  • Lenny opted to use Apache Shiro instead of built-in Java EE application server security such as GlassFish Security or WebLogic Security. He found that Shiro was easy to use with JSF and Java EE - "After the switch to JSF, however, Shiro, with it’s standard configuration, worked as expected, and I was able to build all of the security requirements in the application very quickly."
  • Lenny had some nice things to say about JSF generally and JSF 2.2 in particular - "The JSF way seems to be more flexible and saves code", "writing the same function in JSF and PrimeFaces took only about 10 lines of CoffeeScript code", "...major feature of JSF 2.2 is HTML 5 support, and ability to write JSF applications in standard HTML5 syntax as opposed to JSF tags...this development prompted me to re-evaluate JSF as my tool set".
  • Lenny found contributing to Java EE extremely easy "when trying to contribute to JavaEE, I was welcomed right away. The attitude really shined, and I was able to contribute valuable bug fixes without too much hassle."
  • Lenny found it more sensible to work with standard EJB 3 and JPA features instead of the Tapestry approach to persistence - "I found it better to call EJBs from Tapestry, and let EJBs handle all JPA transactions, thus totally bypassing Tapestry-JPA. This turned out to be the best solution of using JPA with Tapestry."
Do you have a similar interesting Java EE adoption story to share with the community? If so, please do reach out and we will find a way to properly highlight it.

Wednesday Aug 05, 2015

JavaOne 2015 Java EE Track Content Finalized (A Detailed Preview)

I am very pleased to share with you that the JavaOne Java EE track content is now finalized. In this brief but detail-rich entry on my personal blog, I want to take this opportunity to tell you a little bit about the track, key content and star speakers this year. The collective passion and dedication of all the folks that submitted helped us construct a very strong offering for the community at large. JavaOne is a key part of the global Java community far beyond the walls of Oracle and all of you are a large part of keeping it successful.

I hope to see you all at JavaOne. In the next coming weeks and months we will be sharing more details on the Java EE track, content and speakers at JavaOne. Lastly having been on the other side of the fence I know as much as you might come to JavaOne, it might not be a practical reality for you for a variety of good reasons. I want to remind you that we make a point to make JavaOne content openly available to all. That being said I want to tell you that you should make the pilgrimage to JavaOne at least once as a Java developer.

Wednesday Jul 29, 2015

Java EE @ Voxxed Days Istanbul 2015

Voxxed Days Istanbul 2015 was held on May 9th. This was the first large scale independent Java focused conference ever to be held in Turkey. It attracted some of the best and brightest in the Java ecosystem including Gavin King and Arun Gupta not to mention local Java luminaries like Cagatay Civici (PrimeFaces lead) and Murat Yener (Java Champion). Topics included Java SE, mobile, NoSQL, methodology and of course Java EE. Indeed Java EE had a fairly strong presence at the event. I feel very privileged to be invited to this inaugural event. While in Turkey I am very happy to say I also spoke at two of the largest Java user groups in Turkey - the Ankara JUG as well as the Istanbul JUG.

At Voxxed Days I delivered talks on WebLogic, Java EE 8 and DDD/CargoTracker + Java EE. Others covered topics such as microservices + Java EE, Docker + Java EE, JSF and WildFly. At the Ankara and Istanbul JUGs I delivered demo driven workshops on Java EE 7. More details on the sessions and the trip to Turkey, including slide decks and code, posted on my personal blog.

Monday Jul 20, 2015

WebSphere Liberty Now Java EE 7 Compatible!

With the greatest pleasure I can report that IBM WebSphere Liberty 8.5 has recently been Java EE 7 certified! WebSphere joins the ranks of GlassFish 4, WildFly 8, Hitachi Cosminexus and TmaxSoft JEUS. With the very broad customer base that both IBM and WebSphere have globally this is very welcome news for Java EE 7 indeed. IBM has long been a very strong JCP supporter. They led the very well received Java Batch API included in Java EE 7 - bringing to bear their decades of deep expertise in mission critical batch processing. All of the Java EE certified offerings are always listed on the official Java EE compatibility page.

WebSphere Liberty is a modern, fast, lightweight and highly modular Java EE implementation. In fact using it's modular architecture WebSphere Liberty has been releasing parts of Java EE 7 into their fully supported service stream for a few months now (note that we've essentially done the same with WebLogic 12.1.3 during JavaOne 2014). Holly Cummins explains well the evolution of WebSphere Liberty and why it's a game changer especially for IBM customers. Liberty's approach to modularity makes it possible to upgrade to Java EE 7 incrementally without a reinstall and even continue running existing applications against a Java EE 6 runtime baseline. The Java EE 7 certification announcement from Laura Cowen can be found here and you can download WebSphere Liberty here.

As many of you know full Java EE 7 compatibility is one of the most significant goals of the upcoming WebLogic 12.2.1 release. The Apache TomEE team is also working on bringing forward Java EE 7 features. Judging by past history of release cycles for JBoss AS and JBoss EAP it's reasonable to think JBoss EAP will likely be Java EE 7 certified within this year (for those unaware WildFly is the upstream project for JBoss EAP much like JBoss AS once was). By the end of this year Java EE 7 users should have well over a half-a-dozen fully compatible platforms to choose from.

So the question now is who will be next to cross the Java EE 7 compatibility finish line - only to start working on their Java EE 8 implementation :-).

Wednesday Jul 15, 2015

Java EE @ GIDS 2015

The Great Indian Developer Summit (GIDS) 2015 was held on April 21-24 in Bangalore, with a follow-on GIDS.Mini held on April 25 in Hyderabad. GIDS is very easily the largest and most significant developer event in South Asia. Perhaps reflecting global demographic shifts in software development, GIDS may also now have become one of the largest developer conferences in the world. It was truly a privilege to be able to speak at the event and I am even more fortunate to have had a number of Java EE sessions there. While in India I am very happy to say I spoke at a couple of entirely community driven JUG events at the Madras JUG (Chennai) and the Hyderabad JUG before and after GIDS.

At GIDS and GIDS.Mini I delivered talks on JavaScript/HTML 5 + Java EE, Reactive + Java EE and DDD/CargoTracker + Java EE. The Madras JUG hosted multiple talks on the same day before GIDS. I delivered talks on the JCP, open standards and Java EE, Java EE 8 as well as Microservices + Java EE at the Madras JUG. The Hyderabad JUG hosted the official Java EE 7 Hands-on-Lab as a full day workshop after GIDS.Mini. More details on the sessions and the trip to India, including slide decks and code, posted on my personal blog.

Tuesday Jul 14, 2015

Java EE 7 Maintenance Release

The Java EE 7 Platform Specification (JSR 342) Maintenance Release has been approved and is now available for download on the JCP site.

This Maintenance Release is clarifying some parts of the specification itself; none of the proposed changes is impacting the Java EE 7 Reference Implementation or the TCK. You can browse those changss here.

Monday Jul 13, 2015

Java EE 7 in Production at

One of the most important things to do at this stage of the life-cycle of Java EE is highlight successful adoption stories at a regular cadence. We have been doing just that for a long time through our adoption stories blog, this humble blog as well as JavaOne. In the past few months celebrated Java EE advocate and Java Champion Adam Bien has been really helping out in this regard as well through his popular blog. One of the interesting adoption cases Adam highlighted is production Java EE 7 usage at

SAFSMS stands for SAF School Management Software. It comes out of Nigeria's vibrant startup ecosystem and is a web-based application for managing school processes and student records. Currently over 200 schools are using SAFSMS. It is completely based on Java EE on the server side. SAFSMS is soon going to be offered as Software as a Service (SaaS) likely via Amazon EC2. Faiz Bashir, the key engineer behind SAFSMS, noted the simplicity, ease-of-use and productivity offered by Java EE 7 that makes it well suited to ambitious startups like his. SAFSMS utilizes GlassFish 4.x, Git, NetBeans, Arquillian and Docker. They are also considering adopting Java SE 8 and Jenkins. Faiz confidently remarked "I will choose Java EE always without any hesitation". You can read the full details of the adoption story on Adam's blog.

JavaOne 2015 was particularly good in terms of compelling Java EE adoption story session proposals that we could accept. You should start seeing those sessions show up in the live content catalog. We will of course share those stories here if you cannot come to JavaOne.

If you have a similarly great Java EE adoption story to share with the community (particularly migration stories from other technologies), please do feel encouraged to reach out. In the spirit of Java EE centric vendor neutrality, what Java EE implementation or tool set you choose does not matter at all and neither does which part of the globe you are in.

Friday Jul 10, 2015

MyEclipse and Java EE 7

Java EE has long enjoyed strong support from all of the major Java IDEs today - Java EE 7 is no exception. I am likely biased but I think NetBeans is the strongest in it's support for modern Java EE. IntelliJ is also popular amongst many Java EE developers. The weakest in terms of Java EE support is Eclipse, providing very basic Java EE 7 support.

So if you are a Java EE developer and a fan of Eclipse, do you have options? Fortunately the answer is a resounding yes. One of the strong choices for you is MyEclipse from Genuitec. MyEclipse adds enhanced support for Java EE 7 APIs like Servlet 3.1, JSF 2.2, EL 3, EJB 3.2, JPA 2.1 and JAX-RS 2. To highlight their support for Java EE 7 the MyEclipse team put together a pretty slick one minute video promoting the updated features in the platform. It's very visual, well worth the minute and a great elevator pitch for Java EE 7 (click here if you can't see the embedded video):

You can find the details for Genuitec's Java EE 7 support on the MyEclipse site. Another good option for Java EE developers on Eclipse is JBoss Tools - it is particularly strong in terms of support for CDI (but I think NetBeans is on par in this regard too - but again I am probably biased :-)).