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 safsms.com

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.

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

Wednesday Jul 08, 2015

Java EE @ Java Day Tokyo 2015

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.

Friday Jul 03, 2015

CDI 2.0 Early Draft Released!

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.

Wednesday Jun 17, 2015

TIBCO EMS 8 Supports JMS 2

Many folks don't realize this but there are actually two general forms of JMS providers - providers close to application server platforms that certify against Java EE overall and standalone JMS providers. There are a number of the former that support JMS 2/Java EE 7 already - OpenMQ (the reference implementation aligned with GlassFish) and HornetQ (part of the JBoss/WildFly ecosystem), the JMS provider included with Hitachi Cosminexus and the JMS provider included with TmaxSoft JEUS. In a few weeks WebSphere MQ, aligned with the WebSphere Liberty Profile is set to join these ranks. WebLogic MQ is not too far behind along with WebLogic 12.2.1 with it's support for JMS 2 and Java EE 7.

One of the latter class of JMS providers that somehow escaped my notice is TIBCO EMS. They announced their JMS 2 compliance with TIBCO EMS 8 some time ago.

In case you are unfamiliar with TIBCO EMS they are actually a very significant player in the messaging ecosystem deployed in some very mission critical environments. FioranoMQ announced their support for JMS 2, but I am unable to really confirm this as they have not run the JMS 2 or Java EE 7 compatibility test via the JCP.

Friday Jun 12, 2015

Java EE @ DevNexus 2015

DevNexus 2015 was held in historic Atlanta on March 10-12. For those of you not familiar with it, DevNexus is the most significant Java centric conference in the South Eastern US and now perhaps even at a national level. It was started by JBoss Java Champion Burr Sutter and organized by the Atlanta JUG (currently lead by Vincent Mayers, Gunnar Hillert, Pratik Patel, et al). As usual DevNexus attracted a bevy of world class speakers including Stephen Chin, Jim Weaver, Ed Burns, Venkat Subramaniam, Yakov Fain, Kito Mann, Markus Eisele, Raju Gandhi, Freddy Guime, Max Katz, Jason Porter and so on. Topics included Java SE, NoSQL, mobile, cloud, Docker, HTML5/JavaScript and of course Java EE. Indeed I think this year Java EE made a very strong showing at DevNexus.

I ran the Java EE 7 HOL as a whole day workshop as well as delivering sessions on Java EE 8, JMS 2 and Java EE alignment with reactive programming. Ed Burns delivered a very good talk on HTTP 2 and Servlet 4 while Jason Porter delivered a JPA talk. More details on the sessions and DevNexus 2015, including slide decks and code, posted on my personal blog.

Monday Jun 08, 2015

The Ghosts of Java EE 7 in Production: Past, Present and Future

In the past few days I've seen a certain predictable group of folks on the Interwebs feigning concern over the viability of using Java EE 7 in production. I have to be honest in that I think it is fairly obvious these concerns are more -ahem- opportunistic than sincere or well-intentioned. Nevertheless I think this is a great trigger to discuss something valuable to the Java EE community anyway - Java EE 7 production adoption in the near past, present and near future.

Head over to my personal blog to read what I hope is a slightly entertaining toungue-in-cheeck but hopefully useful personal insights on the matter. I've dicussed what makes Java EE 7 important both in terms of challenge and opportunity, summarized what we know of real world Java EE 7 adoption right at this moment as well as what we can share shortly, how you can go about using Java EE 7 now and in the near future as well as a brief shot in the dark as to what wonders the future might bring for us all :-). Enjoy!

Please note that any views expressed here are my own only and certainly does not reflect the position of Oracle as a company

Wednesday Jun 03, 2015

Hitachi Cosminexus Now Java EE 7 Compatible!

With great pleasure I can report that the Hitachi Cosminexus Application Server v10.0 has recently been Java EE 7 certified! Cosminexus joins the ranks of GlassFish 4, WildFly 8 and TmaxSoft JEUS 8. Cosminexus has long been a significant player in the Japanese market backed by our good JCP partners at Hitachi. All of the Java EE certified offerings are always listed on the official Java EE compatibility page.

As many of you know Java EE 7 compatibility is one of the most significant goals of the upcoming WebLogic 12.2.1 release. We also know that the IBM WebSphere Liberty Profile team has been aggressively pursuing full Java EE 7 certification through monthly beta releases and seem close to being done. 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 not unreasonable 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).

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

Tuesday Jun 02, 2015

Stored Procedure Support in JPA 2.1/Java EE 7

If you want to start a contentious debate at work, you should try initiating a discussion on the pros and cons of database stored procedures. If you want the discussion to be particularly colorful make sure to include a few DBAs or database developers instead of simply Java application developers :-). One of the least contentious benefits of stored procedures is that they can provide a performance boost for cases that involve multiple complex queries and heavy data manipulation by reducing the number of network round trips to the database. Some of the main weak points for stored procedures include lack of portability, weaker tooling for development/testing/debugging, and increased database load. The last one is a particularly salient point in my view - databases are the most difficult part of the data center to scale horizontally and they are already heavily IO bound. Frivolously adding stored procedures to the mix can work to make the database CPU bound to boot.

Where JPA and more generally ORM tools stand on this debate is not a great mystery - prior to JPA 2.1 the specification did not add direct support for stored procedures. That being said it should be noted that major JPA implementations have long supported stored procedures and adding support for them has been a frequent enough request for the JPA specification. The good news is that JPA 2.1 and Java EE 7 adds standardized support for accessing stored procedures. Pau Kiat Wee does a nice job of demonstrating the new feature in a very brief code centric blog post. Note that his example is Java SE based so it's actually even easier in a Java EE 7 environment. The newly added stored procedure support is very similar to the way JPA handles native queries. One of the best explanations of the feature comes from specification lead Linda DeMichiel. Check out minute 4-7 in the short video below (if you are having trouble accessing the embedded video it is available here).

Another very good source for more examples of the new feature is the EcliseLink 2.5 JPA 2.1 notes. Enjoy and don't forget to share if these are useful resources.

Please note that any views expressed here are my own only and certainly does not reflect the position of Oracle as a company

Monday Jun 01, 2015

Java EE @ Voxxed Days Algiers

The inaugural Voxxed Days Algiers was held on May 23 in Algiers, Algeria. Besides the Devoxx and Voxxed brand, the event can be credited by and large to the grassroots efforts of the Algeria JUG as well as the neighboring Morocco JUG. I have to thank Morocco JUG leader Badr El Houari for cordially inviting me to the event and Algeria JUG leader Abderrazak Bouadma for making the trip a unique unforgettable experience. The event was a humble but profound first step in the right direction for Algerian developers. The event definitely had a strong Java EE showing.

I participated in the opening keynote and delivered three sessions on Java EE 8, using NoSQL in Java EE applications and testing Java EE applications with Arquillian. More details on the sessions and Voxxed Days Algiers, including slide decks and code, posted on my personal blog.

Tuesday May 05, 2015

Java EE 7 Maintenance Review Draft

The Java EE 7 Platform Specification (JSR 342) is currently going through a maintenance release process. If you check the proposed changes, you will see that this update is really about clarifying the specification itself; none of the proposed changes will impact the Java EE 7 RI nor the TCK. So clearly, only the specification itself will be slightly impacted.

It seems that a consensus has now been reached amongst the Java EE 7 Experts Group over the proposed changes and if everything goes well, the update will soon be submitted to the JCP to formally initiate the Maintenance Review process.