JCACHE Specification Finalized

| by Dan Woods Follow 1 Followers on Mar 31, 2014. Estimated reading time: 2 minutes |

Oracle announced this month that the JCACHE specification is now final. JSR-107 was the oldest living JSR on the books, and was initiated on March 6, 2001. After thirteen years of evolution and development, the "Java Temporary Caching API" will bring Java a common interface for interacting with caching systems.

Oracle had received high levels of interest for JCACHE to be included in last year's Java EE 7 release, but after missing "a few critical deadlines", the JSR was dropped from the candidate list. Following Oracle's recent Java EE 8 survey, nearly two-thirds of all respondents expressed an interest in having JCACHE included as part of the language's next Enterprise Edition. With the announcement of the specification's finalization, Oracle made note that the project's reference implementation can be used as a drop-in to a Java EE 6 or Java EE 7 application, without having to wait for Java EE 8.

In itself, JCACHE provides a Map-like API for accessing caches, SPIs for spooling caches to persistent disk, an API for retrieving a named cache, and an API for registering event listeners. It does not, however, specify strategies for eviction, replication, or transactions. The work for defining those characteristics of caching is being done as part of JSR-347 - JGRID, to which JCACHE is a preceding and foundational component.

InfoQ caught up with Ben Cotton, who is a member of both the JSR-107 and JSR-347 expert groups, to ask some questions about JCACHE and the future of caching on the JVM:

InfoQ: Why JCACHE?

JCACHE will do for the Java Caching community exactly what JDBC did for the Java RDBMS community.

It promises to give Java a standard API with which JCACHE programmers can transparently operate on their data operands, independent of their data locality. With explicit join points to Hibernate and JPA L2 views, It won't matter if the data operand is a column in a data base, or a Map.Entry

InfoQ: What do you have planned for the future?

Transactional support has been high in demand, so we are working on that. Additonally, we are building in support for JGRID interaction. Also, we are opening up transparent API hooks to ultra-premium Java locality libraries' data operands (ie. Peter Lawrey's OpenHFT SharedHashMap)

In addition to the open source reference implementation, the JSR-107 specification is freely available on the project's GitHub page, including issue and commit history.

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread


Login to InfoQ to interact with what matters most to you.

Recover your password...


Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.


More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.


Stay up-to-date

Set up your notifications and don't miss out on content that matters to you