<commit_before> 
# Hazelcast JCache

## JCache Overview

As part of the upcoming Java Enterprise Edition (Java EE) 8 specification JCache provides a standardized caching layer for 
applications. This caching API is specified by the Java Community Process (JCP) as Java Specification Request (JSR) 107.

Caching keeps data in memory that are either slow to calculate / process or originating from another underlying backend system 
whereas caching is used to prevent additional request round trips for frequently used data. In both cases the reasoning is to 
gain performance or decreasing application latencies.

Starting with Hazelcast release 3.3.1 a specification compliant JCache implementation is offered. To show our commitment to this
important specification the Java world was waiting for over a decade, we do not just provide a simple wrapper around our existing
APIs but implemented a caching structure from ground up to optimize the behavior to the needs of JCache. As mentioned before
the Hazelcast JCache implementation is 100% TCK (Technology Compatibility Kit) compliant and therefor passes all specification
requirements.

In addition to the given specification we added a hand full of features on top, like asynchronous versions of almost all
operations, to give the user the power he expects.  

This chapter will give a basic understanding of how to configure your application, how to setup Hazelcast to be your JCache
provider and will show examples of the basic usage as well as the additionally offered features that are not part of JSR-107.
To gain a full understanding of the JCache functionality and provided guarantees of different operations it is advised to read
the specification document (which is also the main documentation for functionality) at the specification page of JSR-107:

[https://www.jcp.org/en/jsr/detail?id=107](https://www.jcp.org/en/jsr/detail?id=107)

## Setup and Configuration

This sub-chapter will show was is necessary to provide JCache API and the Hazelcast JCache implementation to your application. In
addition it demonstrates the different configuration options as well as the description of the configuration properties.

### Application Setup

To provide the application with the new JCache functionality it has to have the JCache API inside it's application's
classpath. This API is the bridge between the specified standard and the implementation provided by Hazelcast.<commit_msg>Changed intro sentence of JCache<commit_after> 
# Hazelcast JCache

## JCache Overview

This chapter describes the basics of the standardized Java caching layer API which is commonly referred to as JCache. The JCache
caching API is specified by the Java Community Process (JCP) as Java Specification Request (JSR) 107.

Caching keeps data in memory that are either slow to calculate / process or originating from another underlying backend system 
whereas caching is used to prevent additional request round trips for frequently used data. In both cases the reasoning is to 
gain performance or decreasing application latencies.

Starting with Hazelcast release 3.3.1 a specification compliant JCache implementation is offered. To show our commitment to this
important specification the Java world was waiting for over a decade, we do not just provide a simple wrapper around our existing
APIs but implemented a caching structure from ground up to optimize the behavior to the needs of JCache. As mentioned before
the Hazelcast JCache implementation is 100% TCK (Technology Compatibility Kit) compliant and therefor passes all specification
requirements.

In addition to the given specification we added a hand full of features on top, like asynchronous versions of almost all
operations, to give the user the power he expects.  

This chapter will give a basic understanding of how to configure your application, how to setup Hazelcast to be your JCache
provider and will show examples of the basic usage as well as the additionally offered features that are not part of JSR-107.
To gain a full understanding of the JCache functionality and provided guarantees of different operations it is advised to read
the specification document (which is also the main documentation for functionality) at the specification page of JSR-107:

[https://www.jcp.org/en/jsr/detail?id=107](https://www.jcp.org/en/jsr/detail?id=107)

## Setup and Configuration

This sub-chapter will show was is necessary to provide JCache API and the Hazelcast JCache implementation to your application. In
addition it demonstrates the different configuration options as well as the description of the configuration properties.

### Application Setup

To provide the application with the new JCache functionality it has to have the JCache API inside it's application's
classpath. This API is the bridge between the specified standard and the implementation provided by Hazelcast.
{'fraction_non_alphanumeric': 0.02904479443649008, 'fraction_numerical': 0.008795254653303334, 'mean_word_length': 4.97799511002445, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6422787', 'n_tokens_mistral': 1146, 'n_tokens_neox': 1058, 'n_words': 709}