Coherence Spring 4.1.0 & 3.3.4 Released

Gunnar Hillert
Oracle Coherence
Published in
3 min readNov 22, 2023
Photo: Magic Sands Beach Park in Kailua-Kona, Hawaiʻi

The Oracle Coherence team is proud to announce the simultaneous release of Coherence Spring 4.1.0 and 3.3.4. This release is mostly a minor release, updating the versions of dependencies. However we do also provide several improvements in this release. Coherence Spring 4.1.0 is the first release supporting Java 21, besides supporting Java 17.

Keep in mind that Coherence Spring 4.x is using Jakarta EE APIs and Java 17 is the minimum supported Java version. If you need to support Java 11 and the old Java EE APIs, please use Coherence Spring 3.3.4 instead.

Spring Session

When using Spring for HTTP Session Management, you can now choose to not use a Coherence Entry Processor to perform session updates. While this is less efficient than using the Entry Processor, where partial session updates won’t necessitate the entire session to be sent across the wire, it does eliminate the need to add your session attribute value classes to the Coherence cache server classpath, and restart Coherence clusters to deploy new versions of session attribute value classes.

To make this easily configurable, we have added a new Spring Boot property coherence.spring.session.use-entry-processor, which by default is true. If set to false, the SessionUpdateEntryProcessor is not used and the values are set by the Coherence Spring directly.

Alternatively, you can also set the useEntryProcessor property on the EnableCoherenceHttpSession annotation to false.

Documentation

First of all, we documented persisting sessions without an Entry Processor in the reference documentation (3.3.4 & 4.1.0). Additionally, we addressed a few documentation gaps. We added a new chapter on Injecting Spring Beans into Coherence-Managed Objects (4.1.0) and also added a chapter that provides additional documentation on how to setup/configure Coherence Clusters when using Coherence Spring (4.1.0).

Lastly, while we provide a dedicated module for Coherence Spring samples and also reference the examples throughout the reference documentation, we also have a few examples that are not hosted in the Coherence Spring GitHub repository. To have all samples referenced in one place, we added a respective appendix to the reference documentation containing a list of all Spring-related Coherence examples.

Dependency Updates

For both releases, we upgraded all (mostly minor) dependency versions wherever possible. For example Coherence Spring 3.3.4 will now support Spring Boot 2.7.17 while the 4.1.0 release supports 3.1.5. The Coherence dependency was also bumped to 23.09.1 (Coherence Spring 4.1.0) and 22.06.6 (Coherence Spring 3.3.4), respectively.

The dependency upgrade to Coherence 23.09.1 contains a breaking change for the gRPC support. The deprecated way of configuring gRPC sessions in Coherence Spring was finally removed due to Coherence 23.09.1 not supporting that particular configuration option any longer. We have therefore decided to release the 4.x line of Coherence with the bigger version bump to 4.1.0 . For more information, please see the chapter Access Coherence Clusters as a Client in the Coherence reference guide.

As always, for a detailed list of version changes, please refer to the release notes on GitHub:

The documentation for Coherence Spring 3.3.4 is available here. For version 4.1.0, there reference documentation can be found here.

Contribute to Coherence Spring!

We would love to hear from you! Please take Coherence Spring and Coherence CE for a spin! If you have questions, please join our Slack channel or ask questions on Stack Overflow. If you see missing features or if you have any other suggestions for improvement please contact us, e.g. via Twitter @OracleCoherence or feel free to file a GitHub issue. Contributions are always welcome!

--

--

Gunnar Hillert
Oracle Coherence

Consulting Member of Technical Staff at Oracle for the Coherence team. Java Champion, former Spring team member, OSS committer, DevNexus co-founder.