Friday Nov 20, 2015

2015 Duke’s Choice Award Winners Announced

The incredible amount of innovation that uses and builds upon standard Java/EE technologies is one the most important factors that keeps our ecosystem so uniquely strong. The annual Duke's Choice Awards is a small way of recognizing and encouraging such innovation. Every year a panel of judges gives out ten of these awards at JavaOne (in the interest of full disclosure I am one of those judges). Every year Java EE makes a strong showing at the awards and this year was no exception (in fact I'll share that Java EE makes an even stronger showing in the total number of nominees). In particular the following winners are worth highlighting on this humble blog.

UN/WFP School Subsidy Card: Thousands of students in developing countries lack access to adequate food, Egypt is sadly no exception. Egypt based consulting company e-Finance developed the United Nations’ World Food Program (UN/WFP) School Subsidy Card to help combat this problem. The project was developed for Egypt’s Ministry of Education. The project is now live as a pilot that helps 20,000 families in two poor cities. The project uses Java EE 7, Java SE 8, GlassFish 4 and NetBeans. The project is led by Mohammed Taman. Mohammed is an experienced architect, consultant, Morocco JUG member, Egypt JUG leader, JCP executive committee member and expert group member for multiple JSRs. He is an ardent advocate for Java EE and has been a very active participant in the Adopt-A-JSR, Adopt-OpenJDK, and FishCAT programs. Mohammed's work was highlighted at JavaOne, including in the Java EE portion of the keynote.

OmniFaces: One of the core strengths of JSF is the ecosystem built around it, in particular popular component libraries like PrimeFaces. Though not a component library, OmniFaces is a rising star in the JSF ecosystem. It is a collection of useful utilities for JSF developers. If you were familiar with Seam Faces, OmniFaces reminds me quite a bit of it. OmniFaces is led by Arjan Tijms and Bauke Scholtz - two JSF/Java EE community heroes in their own right. Bauke is one of the foremost JSF community experts. Many in the JSF community know him as BalusC - the ever present voice online always ready to help with very knowledgeable and helpful answers to JSF questions anywhere! Similarly Arjan has long been a strong contributor to the JCP and many of his good ideas are already standardized in Java EE. You can find out more about OmniFaces here.

KumuluzEE: The ranks of fat jar solutions targeting microservices hype in the Java EE ecosystem seems to be ever expanding. There is WildFly Swarm, Payara Micro/GlassFish Embedded as well as TomEE embedded. KumuluzEE is an interesting part of this crowd as unlike the others it does not come from a traditional application server pedigree and is a very community based project that still uses Java EE APIs to create a fat jar solution. KumuluzEE is led by Slovenian Java Champion Matjaz B. Juric. Besides being a Java Champion Matjaz's impressive credentials include simultaneously being an Oracle ACE Director and IBM Champion! You can find out more about KumuluzEE here.

I'd like to take this opportunity to congratulate all of the winners, most certainly not just the ones above. You can find out about all of this year's winners here

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.

Tuesday Nov 17, 2015

2015 JCP Award Winners Announced

An open standard like Java EE involves a lot of hard work from a lot of different groups of people. The hard work of these people, largely selflessly, benefit countless Java developers. For specification leads the work in the JCP is often far beyond just a job. I have seen the same to be true of many vendor experts on a specification. Especially admirable are the independents that contribute to specifications largely on their own time as well as Adopt-a-JSR participants. The annual Java Community Process awards is a small way of recognizing some of these great people and their work. There are four different awards:

  • JCP member or participant of the year
  • Outstanding specification lead
  • Most significant JSR
  • Outstanding Adopt-a-JSR participant

The following are the nominations I had personally made for this year's awards (in no particular order):

  • Josh Juneau (for outstanding Adopt-a-JSR participant)
  • Arjan Tijms (for JCP member of the year)
  • Adam Bien (for JCP member of the year)
  • David Blevins (for JCP member of the year)
  • Ivar Grimstad (for JCP member of the year)
  • Antoine Sabot-Durand (for outstanding specification lead)
  • Manfred Riem and Santiago Pericas-Geertsen jointly (for outstanding specification lead)
  • CDI 2 (for most significant JSR)
  • MVC 1.0 (for most significant JSR)

The winners of the JCP awards were announced in a lavish party during JavaOne 2015. I am happy to see that one of my nominations - Adam Bien - won this year and the others were strong contenders. I am also happy to see the other winners - Anatole Tresch (for outstanding specification lead), JSR 363 - Units of Measurement API (for most significant JSR) and Rajmahendra Hegde/JUG Chennai (for outstanding Adopt-a-JSR participant). In particular JUG Chennai has long been a strong supporter for Java EE through the Adopt-a-JSR program. I would encourage you to read a bit about the winners and all of the nominees. It's no surprise Java EE has a strong showing in the nominations. These are all true Java heroes in my book. All the details are posted on jcp.org for you to take a look at.

Sunday Nov 08, 2015

Java EE @ Devoxx Belgium

As you can see from the following outline, Java EE will have again a strong presence at Devoxx this week in Antwerp - Belgium. Reza and myself will be around, we will have the opportunity to meet you? 


Monday Nov. 9

Java EE 7 in Action
Reza Rahman
13:30 - 16h30 (University)

Docker Tooling for JavaEE Developers
Xavier Coulon
18:05 - 18:35 (Tools in Action)


Tuesday Nov. 10

Refactor your Java EE application using Microservices and Containers
Arun Gupta
09:30 - 12:30 (University)

CDI : or how to extend Java EE in a portable way
Antonio Goncalves & Antoine Sabot-Durand
13:30 - 16:30 (University)

Apache Tomcat to Apache TomEE in 1-n Steps
Andy Gumbrecht
17:25 - 17:55 (Tools in Action)

Java EE Microservices - the Payara way
Mike Croft
18:05 - 18:35 (Tools in Action)


Wednesday Nov. 11

JSF with PrimeFaces, From Ugly Duckling to a Beautiful Swan
Cagatay Civici
14:00 - 15:00 (Conference)

Java EE BoF
David Delabassee et al.
20:00 - 21:00 (BoF)

WildFly Community BOF and V10 update
Dimitris Andreadis
21:00 - 22:00 (BoF)


Thursday Nov. 12

Java SE 8 for Java EE Developers
David Delabassee & José Paumard
09:30 - 10:30 (Conference)

Updates to the Java API for JSON Processing for Java EE 8
Alex Soto & Mite Mitreski
10:50 - 11:50 (Conference)

Badass Microservices – Deploy, Build and Scale Your Apps with Payara Micro
Navin Surtani
13:10 - 13:50 (Quickie)

Develop and Deploy your JavaEE micro service in less than 5 minutes with Apache TomEE
Alex Soto
13:10 - 13:15 (Ingite)

CDI 2.0 is coming
Antoine Sabot-Durand & José Paumard
14:00 - 15:00 (Conference)

MVC 1.0 - by Example
Ivar Grimstad & Rene Gielen
15:10 - 16:10 (Conference)

Java EE Security API
Jean-Louis Monteiro
17:50 - 18:50 (Conference) 


Friday Nov. 13

HTTP 2.0 & Java: Current Status
Simone Bordet
10:45 - 11:45 (Conference)

Thursday Oct 29, 2015

Java EE @ JavaOne 2015 - Day 4

JavaOne 2015 is almost over! Here is the last set of Java EE related sessions to attend today (Thursday Oct. 29)

Michael Santos, Head of Development & Operations, TecSinapse
9:00 a.m. | Parc 55—Mission

Jason Lee, Principal Software Engineer, NetSuite, Inc.
10:30 a.m. | Parc 55—Market Street

Michael Finocchiaro, Sr Architect, 3DEXPERIENCE Platform, Dassault Systèmes
Boris Tabenkin, Platform Modeling R&D Solution Architecture Director, Dassault Systemes
10:30 a.m. | Parc 55—Mission

Reza Rahman, Java EE Evangelist, Oracle
10:30 a.m. | Parc 55—Cyril Magnin II/III

Sanne Grinovero, Principal Software Engineer, Red Hat
2:30 p.m. | Parc 55—Mission

Bruno Borges, Principal Product Manager, Oracle
2:30 p.m. | Parc 55—Cyril Magnin II/III

Alex Soto Bueno, Software Engineer, CloudBees
4:00 p.m. | Parc 55—Mission

Peter Pilgrim, Java and Scala Developer Contract Consultant, Independent Contractor
4:00 p.m. | Parc 55—Cyril Magnin I

Hmidi Bessem, R&D Engineer @ESPRIT, ESPRIT
4:00 p.m. | Parc 55—Cyril Magnin II/III

Wednesday Oct 28, 2015

Java EE @ JavaOne 2015 - Day 3

If you're at JavaOne, here are the Java EE related sessions for today (Wednesday Oct. 28).

David Blevins, Founder, Tomitribe
Jonathan Gallimore, Senior Software Engineer, Tomitribe
8:30 a.m. | Parc 55—Cyril Magnin I

Roberto Cortez, Senior Software Engineer, Tomitribe
8:30 a.m. | Parc 55—Cyril Magnin II/III

Mario-Leander Reimer, Chief Technologist, QAware GmbH
11:30 a.m. | Hilton—Plaza Room B

Petr Janouch, Developer, Oracle
11:30 a.m. | Parc 55—Mission

Arshal Ameen, Team Manager, Rakuten, Inc.
Hirofumi Iwasaki, Group Manager, Rakuten, Inc.
11:30 a.m. | Parc 55—Cyril Magnin II/III

Edward Bratt, Senior Development Manager, Oracle
José Paumard, CTO, JPEFI
1:00 p.m. | Parc 55—Powell I/II

Pavel Bucek, Principal Software Engineer, Oracle
1:00 p.m. | Parc 55—Cyril Magnin II/III

Steve Millidge, Founder Payara, C2B2 CONSULTING LIMITED
Reza Rahman, Java EE Evangelist, Oracle
1:00 p.m. | Parc 55—Mission

Christopher Harm, IT Manager, Pennsylvania State University
Steve Moyer, Enterprise Software Architect, The Pennsylvania State University
Shawn Smith, Director of Software Engineering, Penn State University
3:00 p.m. | Parc 55—Powell I/II

Ahmad Gohar, Architect and Technical Team Leader, IBM
3:00 p.m. | Parc 55—Mission

Rafael Benevides, Senior Software Engineer, Red Hat
Markus Eisele, Developer advocate, Red Hat GmbH
3:00 p.m. | Hilton—Franciscan Room B/C/D

Lars Bilger, Consultant, Lufthansa Industry Solutions AS GmbH
Ed Burns, Consulting Member of Technical Staff, Oracle
Ivo Kammerath, Software Engineer, Lufthansa Industry Solutions
3:00 p.m. | Parc 55—Cyril Magnin II/III

David Blevins, Founder, Tomitribe
4:30 p.m. | Parc 55—Cyril Magnin II/III

Jason Porter, Senior Software Engineer, Red Hat Inc
4:30 p.m. | Parc 55—Mission

Alexandre Porcelli, Principal Software Engineer, Red Hat
4:30 p.m. | Parc 55—Embarcadero

Tuesday Oct 27, 2015

Java EE @ JavaOne 2015 - Day 2

Here are some interresting Java EE related sessions that will be presented today (Tuesday Oct. 27) at JavaOne.

Java EE Lab 101: An Introduction [HOL1659]
Frank Greco, Director of Technology, NYJavaSIG
David Heffelfinger, Chief Technology Officer, Ensode Technology, LLC
Reza Rahman, Java EE Evangelist, Oracle
8:30 a.m. | Hilton—Franciscan Room B/C/D

Deploying Elastic Java EE Microservices in the Cloud with Docker [TUT3238]
Steve Millidge, Founder Payara, C2B2 CONSULTING LIMITED
8:30 a.m. | Parc 55—Market Street

Modern Web Apps with HTML5 Web Components, Polymer, and Java EE MVC 1.0 [TUT3244]
Kito Mann, Principal Consultant, Virtua, Inc.
8:30 a.m. | Parc 55—Mission

Advanced CDI in Live Coding [TUT2376]
Antoine Sabot-Durand, Senior Software Engineer, Red Hat
Antonin Stefanutti, Senior Software Engineer, Red Hat
8:30 a.m. | Parc 55—Cyril Magnin II/III

EJB/CDI Alignment: What Does It Mean? [CON7668]
David Blevins, Founder, Tomitribe
Jean-Louis Monteiro, Director of Engineering, Tomitribe
11:00 a.m. | Parc 55—Cyril Magnin I

Finally, the Java EE Security API (JSR 375) [CON3659]
Alex Kosowski, Principal Member Technical Staff, Oracle
11:00 a.m. | Parc 55—Mission

Down and Dirty with JMS 2 [HOL2575]
Chihiro Ito, Principal Consultant, Oracle
Salim KAYABASI, Sr. Developer, Self Employed
Hasan Keklik, Senior Software Developer, ÖdeAl
Reza Rahman, Java EE Evangelist, Oracle
12:30 p.m. | Hilton—Franciscan Room B/C/D

Integrating JavaServer Faces and HTML5 [CON1784]
David Heffelfinger, Chief Technology Officer, Ensode Technology, LLC
12:30 p.m. | Parc 55—Cyril Magnin I

Servlet 4.0: HTTP/2 and Reactive Programming in Java EE 8 [CON3629]
Ed Burns, Consulting Member of Technical Staff, Oracle
Shing wai Chan, Principle Member of Technical Staff, Oracle
12:30 p.m. | Parc 55—Cyril Magnin II/III

What’s New in the Java Persistence API (JSR 338) [CON7631]
Lukas Jungmann, JPA Specification Lead, Oracle
12:30 p.m. | Parc 55—Mission

JPA in Reverse: Pushing Database Events to Java EE Applications in Real Time [CON7718]
Jean-Philippe Laroche, Coherence integration architect, Kafeine Consulting Inc.
Randal Stafford, Architect At-Large, Oracle
2:30 p.m. | Parc 55—Mission

Tuning JavaServer Faces [CON3239]
Kito Mann, Principal Consultant, Virtua, Inc.
2:30 p.m. | Hilton—Imperial Ballroom A

Introduction to MVC 1.0 (JSR 371) [CON4176]
Santiago Pericasgeertsen, Consulting Member of Technical Staff, Oracle
2:30 p.m. | Parc 55—Cyril Magnin I

Java EE Revisits GoF Design Patterns [CON3884]
Reza Rahman, Java EE Evangelist, Oracle
Murat Yener, Software Developer, Intel
4:00 p.m. | Parc 55—Mission

JSR 373: New Java EE Management API [CON2876]
Martin Mares, Software Developer, Oracle
4:00 p.m. | Parc 55—Cyril Magnin II/III

Penn State: Java EE 7 in the Very Real World of Higher Education [CON3564]
Christopher Harm, IT Manager, Pennsylvania State University
Steve Moyer, Enterprise Software Architect, The Pennsylvania State University
Shawn Smith, Director of Software Engineering, Penn State University
4:00 p.m. | Parc 55—Cyril Magnin I, will be repeated on Oct 28, 3:00 p.m.

Meet Snoop, a Discovery Service for Java EE [CON1615]
Ivar Grimstad, Principal Consultant, Cybercom Sweden
5:30 p.m. | Parc 55—Embarcadero

Java SE 8 for Java EE Developers [CON2483]
Edward Bratt, Senior Development Manager, Oracle
José Paumard, CTO, JPEFI
5:30 p.m. | Parc 55—Cyril Magnin II/III, will be repeated on Oct 28, 1:00 p.m.

Let’s Discuss MVC 1.0 [BOF4180]
Santiago Pericasgeertsen, Consulting Member of Technical Staff, Oracle
7:00 p.m. | Parc 55—Cyril Magnin II/III

How Would You Improve the Java EE Security API? [BOF3666]
Ivar Grimstad, Principal Consultant, Cybercom Sweden
Alex Kosowski, Principal Member Technical Staff, Oracle
8:00 p.m. | Hilton—Plaza Room A

Meet the Java EE Specification Leads [BOF2555]
Linda Demichiel, Consulting Member of Technical Staff, Oracle
Bill Shannon, Architect, Oracle
8:00 p.m. | Parc 55—Cyril Magnin II/III

Building Professional JavaServer Faces UI Components [BOF3256]
Kito Mann, Principal Consultant, Virtua, Inc.
9:00 p.m. | Parc 55—Cyril Magnin II/III

Monday Oct 26, 2015

Java EE @ JavaOne 2015 - Day 1

As usual, JavaOne will be very busy. For your convenience, here is a list of interesting Java EE related sessions that are taking place today, i.e. Monday Oct. 26 at JavaOne.

Java EE 7 in Action [TUT2573]
Reza Rahman, Java EE Evangelist, Oracle
8:30 a.m. | Parc 55—Cyril Magnin II/III

Java EE 7 and Java SE 8 Adoption at the United Nations [CON2064]
Mohamed Taman, Enterprise Architect & Software Development Manager, e-Finance
11:00 a.m. | Parc 55—Cyril Magnin I

Java EE 8 Work in Progress [CON2554]
Linda Demichiel, Consulting Member of Technical Staff, Oracle
11:00 a.m. | Parc 55—Cyril Magnin II/III

CDI 2.0: What’s in the Works? [CON2391]
José Paumard, CTO, JPEFI
Antoine Sabot-Durand, Senior Software Engineer, Red Hat
12:30 p.m. | Parc 55—Cyril Magnin I

Refactor Your Java EE Application with Microservices and Containers [CON1700]
Arun Gupta, Couchbase
12:30 p.m. | Parc 55—Market Street

JavaServer Faces in Action [CON3249]
Marty Hall, President, coreservlets.com
12:30 p.m. | Parc 55—Cyril Magnin II/III

Cashless 3.0: Java EE 7 Proves Effective for Mission-Critical E-Payment Systems [CON2303]
Andrea Folli, CTO, T.A.S. Spa
2:30 p.m. | Parc 55—Mission

What’s Next for JAX-RS 2.1? [CON4192]
Santiago Pericasgeertsen, Consulting Member of Technical Staff, Oracle
2:30 p.m. | Parc 55—Cyril Magnin II/III

Apache DeltaSpike, the CDI Toolbox [CON2380]
Rafael Benevides, Senior Software Engineer, Red Hat
Antoine Sabot-Durand, Senior Software Engineer, Red Hat
2:30 p.m. | Parc 55—Cyril Magnin I

What’s New in the Java API for JSON Processing? [CON3561]
Kinman Chung, Software Developer 4, Oracle
Alex Soto Bueno, Software Engineer, CloudBees
4:00 p.m. | Parc 55—Mission     

Java EE Lab 101: An Introduction [HOL1659]
Frank Greco, Director of Technology, NYJavaSIG
David Heffelfinger, Chief Technology Officer, Ensode Technology, LLC
Reza Rahman, Java EE Evangelist, Oracle
4:00 p.m. | Hilton—Franciscan Room B/C/D, will be repeated on Oct 27, 8:30 a.m.

Is Enterprise Java Still Relevant? [CON10790]
Ian Robinson, WebSphere Foundation Chief Architect, IBM
Erin Schnabel, Senior Software Engineer, IBM
4:00 p.m. | Parc 55—Powell I/II

What’s Coming in JMS 2.1 [CON3942]
Nigel Deakin, Principal Member of Technical Staff, Oracle
4:00 p.m. | Parc 55—Cyril Magnin II/III

From Macro to Micro(Services) and Back: Onstage Hacking with Java EE 7 [CON1851]
Adam Bien, Java Enthusiast, Adam Bien
5:30 p.m. | Parc 55—Cyril Magnin II/III

High-Performance Java EE with JCache and CDI [CON3234]
Jaromir Hamala, Developer, Hazelcast
Steve Millidge, Founder Payara, C2B2 Consulting Ltd.
5:30 p.m. | Parc 55—Mission

What’s New in Java API for JSON Binding (JSR 367) [CON6155]
Dmitry Kornilov, Software Developer, Oracle
5:30 p.m. | Parc 55—Cyril Magnin I

JSF 2.3: Continued Return on Investment with Incremental Innovation [BOF3658]
Ed Burns, Consulting Member of Technical Staff, Oracle
7:00 p.m. | Parc 55—Cyril Magnin I

JCache 2.0: Where Do We Go from Here? [BOF6835]
Chris Dennis, Principal Engineer, Terracotta Inc.
Brian Oliver, Architect, Oracle
7:00 p.m. | Parc 55—Mission

Most Popular Java (EE) Q&A: Airhacks.tv Live [BOF1849]
Adam Bien, Java Enthusiast, Adam Bien
7:00 p.m. | Parc 55—Cyril Magnin II/III

High Availability with Java EE Containers, JDBC, and Java Connection Pools [BOF7732]
Jean De Lavarene, Software Development Director, Oracle
Kuassi Mensah, Director Product Management, Oracle
Nirmala Sundarappa, Principal Product Manager, Oracle
8:00 p.m. | Parc 55—Mission

The JMS BOF [BOF4085]
Nigel Deakin, Principal Member of Technical Staff, Oracle
9:00 p.m. | Parc 55—Cyril Magnin II/III

Advanced PrimeFaces [BOF3245]
Kito Mann, Principal Consultant, Virtua, Inc.
9:00 p.m. | Parc 55—Mission 

Friday Oct 23, 2015

DZone Survey Shows JPA Dominates Java Persistence

For those of us that have been around Java for a while it has been a long, hard road for Java persistence. In a relatively brief period of time we have seen a chaotic flux of persistence solutions - plain JDBC, homemade JDBC utilities, Apache Commons DBUtils, TopLink, Castor/JDO (Java Data Objects), EJB 2.x Entity Beans, iBatis, Spring JDBC, and so on. For most it was a relief that our industry seemed to finally converge on ORM as an imperfect but generally workable, productive solution to the very complex problem of persistence. For many others though persistence remains a highly contentious topic. 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 (you can register to get it here). 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 very well for JPA.

The survey asked a very simple question - "What persistence tools do you use today?". The answers included the survivors of the Java persistence wars past and some relative newcomers like jOOQ. The answers were mutually inclusive which was a wise choice that reflects reality. As the results highlighted shows, a very strong majority - almost 64% of developers voted for JPA. The closest contender lagging far behind at 37.6% was very old school plain JDBC!

Also very interesting was the fact that Hibernate native was a separate choice that received only about 17% percent of votes. This represents a successful transition from non-standard APIs to open standards based APIs. For context, even after achieving near de-facto dominant position in Java persistence the Hibernate team, Gavin King and Red Hat decided to standardize on JPA. The native Hibernate APIs were also maintained as a matter of legacy as well as a space for value-added features. For a while it was unclear whether the Hibernate community will opt to make the transition to JPA. This survey clearly shows the transition has happened, paving the way for continued healthy competition in the persistence space via JPA.

The surprisingly high usage of plain JDBC is notable as well. Clearly in this day and age one can do far better than using such a low level API. This data point represents an opportunity for further JPA adoption either through advocacy, migration or sensible evolution of the JPA open standard. It also represents an opportunity for more SQL-centric persistence solutions such as relative newcomer jOOQ.

Overall the survey shows a fairly mature Java persistence landscape that still has a few surprises in store for us all to keep an eye on.

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 19, 2015

Servlet 4 Early Draft Now Available

The key Servlet 4 specification slated to be included in Java EE 8 continues to make progress and just released its first early draft review (EDR). You can download and take a look at the draft from the JCP site. Bringing HTTP/2 support to server-side Java is the principal goal of Servlet 4. Specification lead Ed Burns has an excellent slide deck covering HTTP/2 and Servlet 4 at a high level (click here if you can't see the embedded slide deck):

There are many ways for you to get involved or just send feedback as always and this is a great point to do so. You are always welcome to join the expert group proper via the JCP page for the specification. You can always simply join the discussion by subscribing to the Servlet 4 specification user alias. If you would rather participate as a group through your JUG you can do that easily via Adopt-a-JSR.

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.

Friday Oct 09, 2015

MVC 1.0 Second Early Draft Now Available

The MVC 1.0 specification slated to be included in Java EE 8 continues to make progress and just released a second early draft review (EDR). You can download and take a look at the draft from the JCP site. You can also test drive the reference implementation Ozark from it's own site.

Community momentum behind MVC continues to grow as well. Most recently the Bulgarian Java User Group hosted a workshop on the specification via Adopt-a-JSR. The workshop was led by Nayden Gochev and Ivan St. Ivanov. All the details including starter instructions and code for the workshop can be found on the JUG's site.

There are many ways for you to get involved or just send feedback as always. You are always welcome to join the expert group proper via the JCP page for the specification. You can always simply join the discussion by subscribing to the MVC 1.0 specification user alias. If you would rather participate as a group through your JUG you can do that easily via Adopt-a-JSR.

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.


Tuesday Oct 06, 2015

Join the J1 GlassFish - Java EE Community Events!

The Oracle Java EE team is hosting its yearly traditional community event on the Sunday prior to JavaOne. So this year, the event will take place on Sunday Oct. 25 from 4:30 pm until 7:15pm in Moscone South; that is right after the JavaOne keynote (1:45 - 4:00 pm). Please note that a JavaOne pass is required to attend this event. 

The after-noon agenda is as follows:

And finally, it wouldn't be a GlassFish event without what has now become the traditional pre-JavaOne Sunday party.  So we will conclude that long day at the Thristy Bear with the "GlassFish - NetBeans Party"! Attendance is free but registration is required (hint, tickets are limited so ...).