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

Monday Oct 05, 2015

Survey Confirms JSF Remains Leading Web Framework

In the past ten years or so few topics have caused as much impassioned debate as the question of what Java web framework to use. It's not too surprising then that JavaLobby/DZone recently ran a survey to see what the Java web framework usage landscape looks like today. You can take a look at the detailed results of the survey here. As the title of this blog entry suggests the results bode very well for JSF and in fact bode well for the MVC 1.0 specification targeted for Java EE 8 as well:

For those of us that understand something about how open standards and de-facto "standards" form it was only a matter of time before the obviously hyper-competitive server-side web framework space was going to consolidate/converge on some kind of market consensus. This survey clearly demonstrates that is exactly what is finally happening. JSF leads with 34.5% of the market share. That is great news for the JSF community and they deserve credit for it given most other Java web frameworks seem to implicitly choose JSF as their primary competitive target. Spring MVC follows very closely with 34.2%. This in my view is great news as this validates the need to standardize MVC 1.0 as an action-oriented approach to web frameworks. The MVC specification community should take note and pay close attention to the concepts proven out in Spring MVC. In addition the MVC specification has the implicit advantage of not being tied to legacy and starting from a clean slate to adopt what is proven and do better where it makes obvious sense. Other than the two front-runners market share drops pretty sharply for the rest.

I should note that the sample size for this survey is extremely strong at 1300+. While no survey is foolproof, this is probably the closest to getting at what is really going on in the Java web framework space. It is also note worthy that JSF has consistently been either number one or number two in such surveys in the past few years. OmniFaces lead Arjan Tijms pointed this out in a characteristically well written analysis on the JAX-RS expert group some months ago. I highly recommend the post for folks interested in JSF or Java web frameworks in general.

I know a segment of folks will have a tendency to dismiss the server-side Java web framework space with the hype around HTML 5/JavaScript rich clients like AngularJS. Fortunately DZone/JavaLobby ran an even broader reaching survey on the Java ecosystem. That survey measured server-side Java web frameworks against JavaScript client-side frameworks. The results were not made public yet but should be available soon. I don't consider myself a betting man but based on what I have observed during my popular talk on the topic of HTML5/JavaScript clients and Java EE 7 I have a few reasonably good guesses. Given the current hype I have no doubt JavaScript clients will make a strong showing. Indeed I would not be too surprised to also see that AngularJS already dominates the JavaScript client side framework space. However I think both the relative market share for JSF and Spring MVC will remain largely unchanged even in that survey. What's more likely is that the Java web frameworks that are already in a niche would join the marginal ranks of AngularJS's weaker JavaScript framework competitors. We will find out if I am right as soon as the results of the broader survey are published...

Friday Oct 02, 2015

Bessem Hmidi on AngularBeans at JavaOne 2015

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 Bessem Hmidi. Bessem is the JUG leader of the ESPRIT JUG Tunisia, an educator, a researcher, an international speaker and a Java EE enthusiast. He spoke to us about his accepted session at JavaOne 2015 on AngularBeans. AngularBeans is a very innovative open source project that marries AngularJS with CDI and Java EE (click here if you can't see the embedded video). We've highlighted AngularBeans on this humble blog in the past.

You can find details on Bessem's session on the JavaOne 2015 content catalog. The following are the other sessions we talked about:

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.

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.

Wednesday Aug 26, 2015

JSON-P 1.1/Java EE 8 Webinar at Istanbul JUG

The Istanbul JUG has been spinning up it's participation in Java EE 8 through Adopt-a-JSR. They have already taken an interest in JSON-P 1.1, MVC and JMS 2.1 with many more Java EE 8 JSRs on their radar. The Istanbul JUG is the first Turkish JUG to engage with Adopt-a-JSR and Java EE 8.

Towards this end the JUG is hosting an online webinar on the proposed changes in JSON-P 1.1 to better involve JUG members. These changes include support for JSON Pointer, JSON Patch and JSON Patch-Merge as well as Java SE 8 alignment. They will be using the recently released specification early draft to drive the discussion. The meeting will be hosted online so anyone can participate. The event will be held on September 3rd, 9:00 PM Istanbul time. Details of the meeting can be found here. The linked page also includes a registration form for the webinar. Note the meeting will be in Turkish.

The Adopt-a-JSR program is one the key things we are trying hard to do differently for Java EE 8 with the goal making this version of the platform one of the most community driven technologies ever developed. Here are just some of the things you could help do via the program right now:

The full details for Adopt-a-JSR/Java EE 8 is always available here. Remember that if you have any questions on any of this, you are always welcome to drop me a note.

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.

Monday Aug 24, 2015

Java API for JSON Binding (JSON-B) 1.0 Early Draft Now Available!

The first early draft of the Java API for JSON Binding (JSON-B) 1.0 is now available for you to review: https://jcp.org/aboutJava/communityprocess/edr/jsr367/index.html. As discussed below this is distinct from the Java API for JSON Processing (JSON-P) 1.1, which also recently published it's own first early draft. Like all early drafts for JSRs, the goal is to foster dialog, feedback and participation. Although it is just an early draft the thirty-five page specification document is actually fairly far along so providing useful feedback should be easy.

JSON is increasingly becoming the de-facto data interchange format on the web, be it for mobile, HTML5/JavaScript rich-client or microservices applications. While Jersey, EclipseLink, GlassFish and WebLogic have long provided strong support for JSON via EclipeLink MOXy, it has been a goal in the Java EE platform to make JSON a first class citizen to the degree where it can become just another natural serialization format for Java. Towards that goal Java EE 7 provided simple JSON processing support via JSON-P. That support is being beefed up further in Java EE 8 by supporting more JSON standards in JSON-P such as JSON Pointer, JSON-Patch and the like. As a parallel effort Java EE 8 also plans to provide a much higher level JSON binding API via JSON-B. The idea is to make JSON handling in the platform so ubiquitous and easy-to-use that it is almost invisible akin to JAXB in the XML world.

If these are ideas that interest you, now is the time to get involved with JSON-B and join other folks in the community that are already helping out. The JSON-B early draft gives special thanks to Olena Syrota, Oleg Tsal-Tsalko and the Ukraine JUG for their contributions even at this stage. These folks have helped us with feedback, community building as well as evangelizing.

There are many ways for you to get involved 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 JSON-B specification user alias. If you would rather participate as a group through your JUG you can do that easily via Adopt-a-JSR.

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.