HTTP/2 support via Servlet 4 is one of the most significant changes coming in Java EE 8. The Servlet 4 specification is now gearing up for it's first early draft. The intent is to publish the early draft by JavaOne 2015. If you have an interest in Servlet 4, this is a perfect time to get involved in helping shape the draft. The two items specification lead Ed Burns has in his mind at the bare minimum for inclusion into the early draft includes:
Support for HTTP/2 server push.
A decision to pursue or deliberately ignore the Reactive Streams concept.
Any open issues on the mailing list at the moment.
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.
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 Ivar Grimstad. Ivar is a Java EE advocate, speaker, blogger and open source hacker. He is a part of the Java EE 8 MVC and Security JSRs. We wanted to talk to him about his two accepted sessions at JavaOne 2015, his expectations for JavaOne and his experiences in the JCP (click here if you can't see the embedded video):
How Would You Improve the Java EE Security API?: This is an informal after-hours BoF on the newly minted Java EE Security API. As Ivar mentions in the interview it's an important part of Java EE 8 and a very important API to get right as it's primary goal is improving simplicity and portability for the platform. Ivar is hosting the BoF in addition to specification lead Alex Kosowski. Prior to the BoF, Alex will be presenting a conference session on the Java EE 8 Security API titled Finally, the Java EE Security API.
Besides Ivar's 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.
Mojarra 2.3.0 will be the JSF 2.3 Reference Implementation, which is targeted for inclusion in Java EE 8. So it is clearly 'work in progress' as the JSF 2.3 specification itself (JSR 372) is currently being worked-on.
It should also be mentioned the Arjan Tijms has been recently granted committer rights on Mojarra. There is no need to introduce Arjan as he is well known in the JSF eco-system, e.g. he is one of the 'faces' behind OmniFaces. In this interview, Arajn clarifies the relation between JSF, OmniFaces and PrimeFaces. In addition to JSF, Arjan is also a very active (and vocal) EG member of the 'Java EE Security' JSR (JSR 375). “Proficiat Arjan”; it's great to see community members being so involved!
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 :-).
Though some people seem to continue to pit JSF against HTML 5, there is little practical reason this needs to be the case. In fact JSF 2.2 specifically and Java EE 7 generally has gone to great lengths to support the fellow HTML 5 body of standards.
It has always been fully possible to use native HTML in JSF pages. There is little reason you would have any practical difficulty in using most key HTML 5 features even with JSF 2.1/Java EE 6 including canvas, web workers, audio, video and local storage. The only clear place where JSF and HTML 5 can collide is while mixing and matching JSF features with newer input/data elements and attributes such as calendar, email, pattern, autofocus and placeholder. The JSF 2.2 expert group created a very novel and easy solution to this problem through pass-through elements and attributes. Using this feature you can start with an HTML 5 native element and add JSF features to it or start with a JSF element and add HTML 5 features to it seamlessly and effortlessly. By far the best write-up on this capability comes from Chicago based Java EE community advocate Josh Juneau. You should take time to read his very well written article published on OTN as well as the Java Magazine.
Washington DC based Java EE community advocate David Heffelfinger will tackle the topic of pushing HTML 5 usage to the max with JSF 2.2/Java EE 7 in his accepted JavaOne 2015 session titled Integrating JavaServer Faces and HTML5. If you can't come to JavaOne 2015 to see him in person we will share the session video with you on this humble blog when it becomes available.
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.
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.
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.com.
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.
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 :-)).
Virtual Technology Summit is a set of free online events covering a wide variety of technical topics (Database, Java, Middleware, etc.). And there is something for everyone (see full agenda). In the upcoming edition, the following sessions should be particularly interesting for Server-Side Java developers:
Docker for Java Developers
Debugging Weblogic Authentication
New APIs and Tools for Application Development in WebLogic 12c
During the event, participants have the ability to interact and ask questions to the presenters. VTS are free to attend and are scheduled 3 times to make sure anyone around the globe can easily join. In short, VTS is a great learning opportunity! Just check the links below to register.
Java Day Tokyo 2015 was held on April 8th. Organized by Oracle Japan, it is the largest Java developer event in the country. This was another highly successful year for the event with a fully sold out venue packed with youthful, energetic developers. Speakers included Steve Chin, Simon Ritter, Cameron Purdy and Linda DeMichiel. Topics included Java SE, Java EE, IoT and cloud. Java EE always has a strong showing at the event and this year was no exception.
I delivered talks on Domain Driven Design with Java EE using Cargo Tracker and Reactive Java EE in addition to a Java EE 7 workshop. Other Java EE sessions were on Java EE 8, CDI/EJB alignment, Java EE 7, JPA, JSF and real world Java EE adoption in addition to the official Java EE 7 Hands-on-Lab. More details on the sessions and Java Day Tokyo 2015, including slide decks and code, posted on my personal blog.
Retrieving a large, i.e. a very large, dataset using JPA might be
tricky as the whole result set has to fit within a java.util.List
instance. So a very large data set might potentially hit the memory
limits of the sever the application is running on.
For those scenarios with (very) large result set, pagination can be
used to work-around that limitation. See for example this "How To
Stream/Serialize JPA Result As JAX-RS Response For Large Data"
article. But for those scenarios, the Java 8 Streams API would also be a
good fit! Unfortunately, Streams are not supported in the current
release of JPA (JPA 2.1 - JSR 338) as it predates Java SE 8. But
this is clearly a potential RFE for the next update of JPA (see this specification RFE here).
In addition, some of the JPA implementations have already started to
add support for Java 8 Streams (e.g. Hibernate and EclipseLink).
We will have to wait a bit more to see what the scope of
'JPA.next' will be. What do you think? Would you like to see Java SE 8 Streams supported in 'JPA.Next'?
This is the fourth and last in a series of interviews for you to meet some of the committee members for the JavaOne 2015 Java EE track. We will next move on to interviewing some of the key accepted speakers in the track this year.
The committee plays the most important part in determining the content for JavaOne. These good folks really deserve recognition as most of them devote many hours of their time helping move JavaOne forward, often as volunteers. If JavaOne matters to you, these are folks you should know about.
This last interview is with my good friend Ryan Cuprak. If you are having trouble seeing the embedded video below it is available here.
Ryan is the founder of the Connecticut JUG, author, blogger, speaker, JavaOne Rock Star and Java EE advocate. He is a senior manager at Dassault Systemes. Ryan is a brand new and welcome addition to the committee. In the interview he shares his experience and expectations for the Java EE track this year.
He also wrote up an excellent blog entry on his experience as a new committee member. He had some pretty good insights and very kind things to say about the process, JavaOne and Java EE that's worth a read.
On this note, I would like to make sure you know that the JavaOne content catalog is now already live with a few preliminary fairly obvious selections we were able to make. None of the sessions accepted at this stage are from Oracle speakers on our track. The folks that we selected early for acceptance include David Blevins, Jonathan Gallimore, Mohammed Taman, Rafael Benevides and Antoine Sabot-Durand. They will be talking about Java EE Connectors (JCA), Java EE 7 real world adoption, CDI and DeltaSpike. I would encourage you to check out all the early selections in the catalog. We are working to finalize the full catalog shortly.
I hope to see you at JavaOne. Do stay tuned for more interviews with some key speakers on our track.
CDI has become one of the key APIs in Java EE since it was first included in Java EE 6. Since then we have seen two minor releases of CDI - CDI 1.1 and CDI 1.2. CDI 2 by comparison promises a significantly larger set of changes and is an opportunity to really push the boundaries for standard dependency injection for Java. To that end the CDI 2 specification has now released an early draft for you to review. An early reference implementation build is also coming soon for you to try out. For now, you should take some time to read through the draft and provide your feedback. CDI 2 specification lead Antoine Sabot-Durand summarized the content of the early draft and outlined the ways you can provide feedback in a well-written blog post. Some of the changes mentioned includes Java SE support, event observer ordering as well as asynchronous events.
Keep in mind this is just the beginning in terms of what the plans for CDI 2 are - there are far more changes on the way. This is your opportunity to chime in and make sure CDI is the high quality standard we all want it to be. You can even choose to do so as a JUG through the Adopt-a-JSR program.