<commit_before>= Spring Session
<NAME>; <NAME>; <NAME>; <NAME>
:doctype: book
:indexdoc-tests: {docs-test-dir}docs/IndexDocTests.java
:websocketdoc-test-dir: {docs-test-dir}docs/websocket/

[[abstract]]
Spring Session provides an API and implementations for managing a user's session information.

[[introduction]]
Spring Session provides an API and implementations for managing a user's session information while also making it trivial to support clustered sessions without being tied to an application container-specific solution.
It also provides transparent integration with:

* xref:http-session.adoc#httpsession[HttpSession]: Allows replacing the `HttpSession` in an application container-neutral way, with support for providing session IDs in headers to work with RESTful APIs.
* xref:web-socket.adoc#websocket[WebSocket]: Provides the ability to keep the `HttpSession` alive when receiving WebSocket messages
* xref:web-session.adoc#websession[WebSession]: Allows replacing the Spring WebFlux's `WebSession` in an application container-neutral way.


[[community]]
== Spring Session Community

We are glad to consider you a part of our community.
The following sections provide additional about how to interact with the Spring Session community.

[[community-support]]
=== Support

You can get help by asking questions on https://stackoverflow.com/questions/tagged/spring-session[Stack Overflow with the `spring-session` tag].
Similarly, we encourage helping others by answering questions on Stack Overflow.

[[community-source]]
=== Source Code

You can find the source code on GitHub at https://github.com/spring-projects/spring-session/

[[community-issues]]
=== Issue Tracking

We track issues in GitHub issues at https://github.com/spring-projects/spring-session/issues

[[community-contributing]]
=== Contributing

We appreciate https://help.github.com/articles/using-pull-requests/[pull requests].

[[community-license]]
=== License

Spring Session is Open Source software released under the https://www.apache.org/licenses/LICENSE-2.0[Apache 2.0 license].

[[community-extensions]]
=== Community Extensions

|===
| Name | Location

| Spring Session Infinispan
| https://infinispan.org/docs/stable/titles/spring/spring.html

|===

[[minimum-requirements]]
== Minimum Requirements

The minimum requirements for Spring Session are:

* Java 17+.
* If you run in a Servlet Container (not required), Servlet 3.1+.
* If you use other Spring libraries (not required), the minimum required version is Spring 6.0.x.
* `@EnableRedisHttpSession` requires Redis 2.8+. This is necessary to support xref:api.adoc#api-redisindexedsessionrepository-expiration[Session Expiration]
* `@EnableHazelcastHttpSession` requires Hazelcast 3.6+. This is necessary to support xref:api.adoc#api-enablehazelcasthttpsession-storage[`FindByIndexNameSessionRepository`]

NOTE: At its core, Spring Session has a required dependency only on `spring-jcl`.
For an example of using Spring Session without any other Spring dependencies, see the xref:samples.adoc#samples[hazelcast sample] application.
<commit_msg>Add Caffeine community extension<commit_after>= Spring Session
<NAME>; <NAME>; <NAME>; <NAME>
:doctype: book
:indexdoc-tests: {docs-test-dir}docs/IndexDocTests.java
:websocketdoc-test-dir: {docs-test-dir}docs/websocket/

[[abstract]]
Spring Session provides an API and implementations for managing a user's session information.

[[introduction]]
Spring Session provides an API and implementations for managing a user's session information while also making it trivial to support clustered sessions without being tied to an application container-specific solution.
It also provides transparent integration with:

* xref:http-session.adoc#httpsession[HttpSession]: Allows replacing the `HttpSession` in an application container-neutral way, with support for providing session IDs in headers to work with RESTful APIs.
* xref:web-socket.adoc#websocket[WebSocket]: Provides the ability to keep the `HttpSession` alive when receiving WebSocket messages
* xref:web-session.adoc#websession[WebSession]: Allows replacing the Spring WebFlux's `WebSession` in an application container-neutral way.


[[community]]
== Spring Session Community

We are glad to consider you a part of our community.
The following sections provide additional about how to interact with the Spring Session community.

[[community-support]]
=== Support

You can get help by asking questions on https://stackoverflow.com/questions/tagged/spring-session[Stack Overflow with the `spring-session` tag].
Similarly, we encourage helping others by answering questions on Stack Overflow.

[[community-source]]
=== Source Code

You can find the source code on GitHub at https://github.com/spring-projects/spring-session/

[[community-issues]]
=== Issue Tracking

We track issues in GitHub issues at https://github.com/spring-projects/spring-session/issues

[[community-contributing]]
=== Contributing

We appreciate https://help.github.com/articles/using-pull-requests/[pull requests].

[[community-license]]
=== License

Spring Session is Open Source software released under the https://www.apache.org/licenses/LICENSE-2.0[Apache 2.0 license].

[[community-extensions]]
=== Community Extensions

|===
| Name | Location

| Spring Session Infinispan
| https://infinispan.org/docs/stable/titles/spring/spring.html

| Spring Session Caffeine
| https://github.com/gotson/spring-session-caffeine

|===

[[minimum-requirements]]
== Minimum Requirements

The minimum requirements for Spring Session are:

* Java 17+.
* If you run in a Servlet Container (not required), Servlet 3.1+.
* If you use other Spring libraries (not required), the minimum required version is Spring 6.0.x.
* `@EnableRedisHttpSession` requires Redis 2.8+. This is necessary to support xref:api.adoc#api-redisindexedsessionrepository-expiration[Session Expiration]
* `@EnableHazelcastHttpSession` requires Hazelcast 3.6+. This is necessary to support xref:api.adoc#api-enablehazelcasthttpsession-storage[`FindByIndexNameSessionRepository`]

NOTE: At its core, Spring Session has a required dependency only on `spring-jcl`.
For an example of using Spring Session without any other Spring dependencies, see the xref:samples.adoc#samples[hazelcast sample] application.

{'fraction_non_alphanumeric': 0.09455587392550144, 'fraction_numerical': 0.004457179242279528, 'mean_word_length': 5.641649048625792, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 13, 'lorem ipsum': 0, 'www.': 2, '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': '928579', 'n_tokens_mistral': 1744, 'n_tokens_neox': 1632, 'n_words': 627}