Chapter 9. JSR-107 (JCache) API

Starting with JBoss Data Grid 6.5 an implementation of the JCache 1.0.0 API ( JSR-107 ) is included. JCache specified a standard Java API for caching temporary Java objects in memory. Caching java objects can help get around bottlenecks arising from using data that is expensive to retrieve (i.e. DB or web service), or data that is hard to calculate. Caching these types of objects in memory can help speed up application performance by retrieving the data directly from memory instead of doing an expensive roundtrip or recalculation. This document specifies how to use JCache with JBoss Data Grid's implementation of the new specification, and explains key aspects of the API.

9.1. Dependencies

The JCache dependencies may either be defined in Maven or added to the classpath; both methods are described below:
Option 1: Maven

In order to use the JCache implementation the following dependencies need to be added to the Maven pom.xml depending on how it is used:

  • embedded:
    <dependency>
        <groupId>org.infinispan</groupId>
        <artifactId>infinispan-embedded</artifactId>
        <version>${infinispan.version}</version>
    </dependency>
    
    <dependency>
        <groupId>javax.cache</groupId>
        <artifactId>cache-api</artifactId>
        <version>1.0.0.redhat-1</version>
    </dependency>
  • remote:
    <dependency>
        <groupId>org.infinispan</groupId>
        <artifactId>infinispan-remote</artifactId>
        <version>${infinispan.version}</version>
    </dependency>
    
    <dependency>
        <groupId>javax.cache</groupId>
        <artifactId>cache-api</artifactId>
        <version>1.0.0.redhat-1</version>
    </dependency>
Option 2: Adding the necessary files to the classpath

When not using Maven the necessary jar files must be on the classpath at runtime. Having these available at runtime may either be accomplished by embedding the jar files directly, by specifying them at runtime, or by adding them into the container used to deploy the application.

Procedure 9.1. Embedded Mode

  1. Download the Red Hat JBoss Data Grid 7.0.0 Library from the Red Hat Customer Portal.
  2. Extract the downloaded archive to a local directory.
  3. Locate the following files:
    • jboss-datagrid-7.0.0-library/infinispan-embedded-8.3.0.Final-redhat-1.jar
    • jboss-datagrid-7.0.0-library/lib/cache-api-1.0.0.redhat-1.jar
  4. Ensure both of the above jar files are on the classpath at runtime.

Procedure 9.2. Remote Mode

  1. Download the Red Hat JBoss Data Grid 7.0.0 Hot Rod Java Client from the Red Hat Customer Portal.
  2. Extract the downloaded archive to a local directory.
  3. Locate the following files:
    • jboss-datagrid-7.0.0-remote-java-client/infinispan-remote-8.3.0.Final-redhat-1.jar
    • jboss-datagrid-7.0.0-remote-java-client/lib/cache-api-1.0.0.redhat-1.jar
  4. Ensure both of the above jar files are on the classpath at runtime.