Monday Feb 23, 2015

Rakuten: Java EE Adoption in One of the World’s Largest Online Financial Systems

One of the most important things to do at this stage of the life-cycle of Java EE is highlight successful adoption stories. We have been doing just that for a long time through our adoption stories blog as well as JavaOne. JavaOne 2014 was particularly good in this regard and JavaOne 2015 looks to be even better. Indeed we hope the folks with great adoption stories that submitted last year but did not get accepted will resubmit next year. We will highlight some of those sessions from JavaOne 2014 in the next few months and the best place to start is the Java EE adoption story from Rakuten.

Rakuten is one of the largest online financial systems in the world. It is the number one e-commerce platform in Japan generating over 51 billion dollars of yearly revenue and growing on a global scale. It is easily one of the most technically adept companies in Japan and perhaps the world. They had a legacy system build around J2EE and a hodgepodge of various non-standard frameworks such as Spring, Apache Axis and iBatis. They chose to adopt Java EE over these technologies including alternatives such as .NET. They cited vendor neutrality, choice, simplicity, community, ease-of-learning, ease-of-use and productivity as great reasons for selecting Java EE for their next generation platform. They fully leverage Java EE including key APIs such as JSF, CDI, EJB, JPA, JTA and JMS. Along with Java EE they also chose WebLogic as well as Oracle DB/Exadata. They cited performance, scalability, reliability, productivity and support for choosing WebLogic, Oracle DB and Exadata. They also use best-of-breed tools such as NetBeans, Maven, Jenkins and the Atlassian suite of solutions. They achieved the astounding technical feat of completely overhauling their 24/7, extremely high volume online transactional system in just six months including training!

You can see Hirofumi Iwasaki and Arshal Ameen's awesome JavaOne 2014 presentation below (if you are having trouble seeing the embedded video it is available here).

The slide deck from the talk is posted below (if you are having trouble seeing the embedded slideshow it is available here).

Hirofumi Iwasaki and Arshal Ameen have been great advocates of Java EE, especially in Japan. We hope to continue to see great things from them and Rakuten. Rakuten is looking forward to learning and applying Java EE 7 in the real world as soon as possible.

If you have a great Java EE adoption story to share, please do drop us a note (particularly migration stories from other technologies). 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 Feb 06, 2015

Java EE @ JDK.IO 2014

JDK.IO 2014 was held in Denmark on January 19-20 at the IT University of Copenhagen. It is the yearly conference of 'JavaGruppen', the Danish JUG. The conference sessions covered a variety of Java topics ranging from core Java, Java EE, and JavaFX. Speakers included my colleague David Delabassee, Simon Ritter, Adam Bien, Heinz M. Kabutz, Bert Ertman, Ryan Cuprak, Simon Maple and Markus Eisele.

David covered the Java EE portion of the keynote. He also presented a talk on Java EE 8. His slides from SlideShare are embedded below:

My friend, fellow co-author of EJB 3 in Action, Connecticut JUG leader and JavaOne Rock Star Ryan Cuprak presented a couple of very cool sessions. The first one, titled Hybrid Mobile Development with Apache Cordova and Java EE 7 demonstrates how Java EE can be used as a very effective mobile development back-end using APIs like JAX-RS, WebSocket and JSON-P. The talk was delivered at JavaOne 2014 as a tutorial and includes an excellent end-to-end demo. Video from the JavaOne talk is embedded below:

Ryan also presented another popular talk from JavaOne 2014 - 50 EJB 3 Best Practices in 50 Minutes. At JavaOne he had co-presented the talk with my other co-author Michael Remijan. The video from that talk is embedded below:

Ryan wrote up a very nice trip report of JDK.IO on his personal blog that you should check out. Other Java EE related talks included one by Markus Eisele on Java EE 7 and Apache Camel.

Tuesday Jan 06, 2015

Interceptors in Java EE

Interceptors are used to implement cross-cutting concerns such as auditing, logging, security related tasks, etc. from the actual business logic.  Interceptors provide a clean separation between those cross-cutting concerns and the rest of the application logic.  Overall, this separation simplify the development and the maintenance of the application.

Interceptors are not new.  In fact, interceptors are nearly a decade old as the initial interceptor support has been introduced in Java EE 5... in the EJB 3.0 specification to be more precise.  But in those nearly 10 years, Interceptors have evolved quite a lot and have now their own specification.  The fact that interceptors are now independent of the EJB specification broadens their scope and reach to the complete Java EE platform.

Abhishek Gupta recently wrote a nice post on Interceptors.  In his article, Abhishek start with the history of Interceptors and then goes on the different type of Interceptors and how to use them. And as usual, you can also check the Java EE Tutorial section on Interceptors and this sample if you want to learn about Interceptors.

Tuesday Apr 08, 2014

New book: EJB 3 in Action, Second Edition

'EJB3 in Action' is one of the reference books when it comes to this important area of Java EE. The second edition covering EJB 3.2 has just been published.

Over the years, the EJB specification has come a long way and has been greatly simplified but nevertheless EJB is still a large specification to grasp. This book is a great (and up-to-date!) introduction to the EJB Component Model. The book goes beyond just introducing EJBs in details as it also explains technologies related to EJB such as CDI and JPA (the older amongst us will remember that EJB, back in the days, used to also handle persistence). The book has also a full chapter devoted to WebSocket, a new important Java EE 7 technology. The final chapter of the book is devoted to a critical, some time over looked, topics: testing.

This is not a pure theoretical book as it really gives 2 views, it first introduce and explains EJBs but also JPA, CDI, etc. The book then explain how to use EJBs and the other technologies, how to put them in action! All in all, a great book to add to any Java EE 7 bookshelf!

Disclaimer: 'EJB 3 in Action' was co-authored by our own Reza Rahman. But to be honest, I was already praising the first edition of the book when Reza wasn't yet working for Oracle.

Wednesday Apr 17, 2013

An Overview of EJB 3.2

Java EE 7 includes a minor update of the EJB API with EJB 3.2 (JSR 345). For those of you keeping track of the EJB spec the past few years, EJB 3.0 and EJB 3.1 were pretty big releases, so this release is really more about pruning dead branches, some tidying up and minor fixes. In a brief blog entry, long time EJB fan, JBoss AS committer and JavaRanch Sherriff Jaikiran Pai does a great job of overviewing the changes in EJB 3.2. He talks about the pruning of EJB 2.1 CMP/ EJB 2.1 BMP/EJB 2.1 client views/EJB QL/JAX-RPC, local asynchronous session bean invocations and non-persistent EJB Timer Service in EJB Lite, TimerService.getAllTimer(), the ability to disable passivation of stateful beans and much more.

If the article whets your appetite to learn more about EJB 3.2, you could download the actual proposed final draft and give it a read. With the removal of a lot of the older cruft, the core specification is now about 450 pages - which is still nothing to sneeze at but much better than it has been in the past.

Wednesday Jan 23, 2013

Is it really EJB vs CDI?

With the advent of CDI into Java EE 6 and subsequent greater alignment of Java EE and EJB with CDI in Java EE 7, an interesting set of questions keep coming up every now and then: when do I use CDI? When do I use EJB? Do you need EJBs any more? Are EJBs more heavyweight than CDI?

David Blevins (the powerhouse developer behind OpenEJB and TomEE) provided his insightful and eloquent thoughts on these questions. David really knows what he is talking about since in addition to OpenEJB, he is also a core committer on the Apache CDI implementation, OpenWebBeans. We would even go so far as to say it is required reading for anyone interested in Java EE, EJB or CDI. Enjoy!

Sunday May 29, 2011

Maven, EJB and Java EE 6 Webinar - The Replay

Last week's webinar on Maven, Java EE 6 and GlassFish 3.1 is now available for replay on our YouTube Channel.

This new 30-minute session is another one done by Adam Leftik, Oracle GlassFish Server product manager.


The session starts with an intro to Maven, which you may choose to skip to get to the demo. It covers creating Maven projects, authoring and testing EJBs using the EJBContainer API, JPA code as well as Maven-driven deployment to GlassFish using its Maven plugin.

Note that the Java EE 6 platform API's (javaee-api:6.0 and javaee-web-api:6.0) are now in Maven Central.

Tuesday Apr 19, 2011

EJB 3.2 can start!

With the two-week JSR Review Ballot for EJB 3.2 (JSR #345) now closed, the results are in. With 8 YES votes, one NO vote and 4 no-votes, the Executive Committee for SE/EE has approved this ballot and the JSR can proceed with forming an expert group (link to join).

JCP logo

EJB 3.2 is scheduled to be integrated into Java EE 7 in 2012 and will focus on PaaS requirements (mainly multi-tenancy) as well as possibly as factoring out container-managed transactions. Check out the JSR main page for the full list of preliminary goals of this EJB iteration.

Wednesday Apr 13, 2011

Marching towards a Java EE 7 fullhouse of JSRs - CDI 1.1 & EJB 3.2

You might have missed (I did) the filling of the EJB 3.2 JSR last week. This is the follow up to Linda's "" entry posted last month. In addition to the multi-tenancy cloud requirements, factoring out transactions in a similar way interceptors became a standalone specification is one of the interesting goals of this work.

Just yesterday JBoss/RedHat has also submitted JSR 346, aka CDI 1.1 and Pete "CDI/Weld" Muir has a blog with further details. We're looking here mainly at an incremental release with improvement such as allowing the built in implementation of the conversation context to be used outside of JSF (full list). Pete is calling for expert group members, if you are interested the link to apply is on the JSR page.


With each submission, a two-week voting period by the JCP Executive Committee starts. This means that the EJB 3.2 results will be available this coming Monday (April 18th) and the CDI 1.1 results a week later on the the 25th.

In the meantime, on the CDI side you should probably give this recent "Contexts and Dependency Injection in Java EE 6" article a read and make sure you're well aware of what Java EE 6 and CDI have to offer today.

Friday Feb 18, 2011

First Java EE 6 Oracle Certifications now available

Oracle University (the training unit in the company) has now made available several new Java EE 6-related certifications. These are part of the Oracle Certification Program and cover EJB 3.1, JPA 2.0, Servlet & JSP, as well as Web Services.

Here are the links :

Oracle certifications

Java EE 6 - Enterprise JavaBeans Developer
Java EE 6 - Java Persistence API Developer
Java EE 6 - Web Services Developer
Java EE 6 - JavaServer Pages and Servlet Developer Certified Expert Exam

Each of the above links provides you with recommended training and preparation, pricing, date and exam topics. The complete certification path is here.

Saturday Oct 09, 2010

GlassFish Tips and Links #11: CDI, EJB 3.1, Spring, HTML5, Maven, JCP, Forks...

Recent Tips and News on Java EE 6 & GlassFish:

Informational Sign


TOTD #145: CDI Events - a light-weight producer/consumer in Java EE 6
Enterprise JavaBeans 3.1 with Contexts and Dependency Injection: The Perfect Synergy
Spring to Java EE – A Migration Experience
Problem with Grails on Glassfish v3?
Web Sockets and HTML5 in Glassfish
Book Review: Java EE 6 with GlassFish 3 Application Server

Links and News

• Maven 3 has been released: Sonatype, InfoQ
• GlassFish as Best Practices in Software Development (Johan)
• TSS Thread: Moving from Spring to Java EE 6: The Age of Frameworks is Over
GlassFish jobs at crosses 780 Flower NFA Update (Using GlassFish)
Proposed Maven Artifact Naming and Versioning for JavaEE
• Standards are Good for You: JBoss 6 Moving Towards JavaEE 6 with M5


Java2Days 2010; Reports: Arun, Ivan: d1 & d2, Alexis.
Hudson User meetup in Tokyo (Nov 12th)
Silicon Valley Code Camp
• eBIG SIG: JavaEE 6 = Less Code + More Power (Oct 20th)
JavaOne Brazil (Dec 7th thru 9th)

Recent Sites Seen Running on GlassFish

• HPCSense uses GlassFish - twitter
ParaFarmacia, Mas Barata - Netcraft

JCP News and Future of Java

Now OPEN -- Nominations for EC seats
• TSS Thread: The Future of Java: forking, death, or stasis
• More Forking Opinions: Sacha and Greg.
• Java.Net Poll: Free Java? Closed Java? Evolving JCP? What's the Most Likely Path?