Thursday Mar 20, 2014

JCache is Final! I Repeat: JCache is Final!

"The only reason for time is so that everything doesn't happen at once."
(Albert Einstein)

If you have not been following the evolution of the JCache specification, aka JSR 107 - "Java Temporary Caching API" or if you simply forgot, it is fair to say that the work on this JSR took 'a bit longer than expected'!

Just as a reminder, JSR 107 was started in 2001 and to put things in perspective, J2SE 1.4 was released in 2002! So there has been clearly 'a few hiccups here and there'... Anyway, the good news is that JCache is now final! I repeat: JCache is final! Let's salute the tenacity and the perseverance of the different EG members who drove this specification to its finalization!

The "Java Caching: The State of the Union" video from last JavaOne is a good resource to better understand JCache and the history behind this specification. At a hundred and fifty some pages, the official specification itself is also fairly readable.

While JCache is certainly more than a bit overdue and narrowly missed Java EE 7, interest and support for it has been high in the community and industry for a long time. It had a strong showing in the results of the Java EE 7 survey - over 80% wanted it added to the platform. It has a similarly strong showing in the results of the first part of the Java EE 8 survey.

You should feel free to download and evaluate JCache. It should be possible to use it as a drop-in addition to a Java EE 6 or Java EE 7 application. Although JCache does not specifically address Java EE integration most common use cases should be supported, including a pretty cool set of caching annotations that work with CDI. One possibility is to better define Java EE integration in the Data Grids JSR (JSR 347), most notably JTA/transaction support. Now that JCache is done, the Data Grids JSR is likely to be spun up, so you should stay tuned...

PS: Would you believe me if I said that this post was drafted some time ago? ;-)