Enable cache-chroniclemap to run on Java 21

With Chronicle 25, OpenHFT has introduced official support for Java 21,
which we’re adopting here to allow cache-chroniclemap to run an a Gerrit
3.11 on Java 21[1].

Since Chronicle 24, OpenHFT has limited Maven Central to early access
(ea) releases, with stable releases now exclusive to customers with a
support agreement [2]. As a result, 3.23.5 is the latest stable release
publicly available on Maven Central [3].

Per OpenHFT guidance [2]:

``` Many organizations use the ‘ea’ release in production, as this
contains the latest functionality and fixes.  ```

Following this recommendation, we’re updating to the latest ea release
in the Chronicle 25 series, which is the earliest version to introduce
Java 21 support.

[1] https://chronicle.software/chronicle-25-whats-new-and-improved/
[2] https://github.com/OpenHFT/OpenHFT/blob/aa79b18031dbecfd6722aa285a495e87e2d016d5/docs/Version-Support.adoc#ea-early-access
[3] https://mvnrepository.com/artifact/net.openhft/chronicle-map

Bug: Issue 377724725
Change-Id: I40bcf7994798297ef371a1562ea4cd4df055901d
2 files changed
tree: 1286550615d66f1cac9bc3ec053e34a2e84ab396
  1. src/
  2. .gitignore
  3. BUILD
  4. external_plugin_deps.bzl
  5. Jenkinsfile
  6. LICENSE
  7. README.md
README.md

Persistent cache for Gerrit, based on ChronicleMap

Non-blocking and super-fast on-disk cache libModule for Gerrit Code Review based on ChronicleMap on-disk implementation.

How to build

This libModule is built like a Gerrit in-tree plugin, using Bazelisk. See the build instructions for more details.

Setup

  • Install cache-chronicalmap module

Install the chronicle-map module into the $GERRIT_SITE/lib directory.

Add the cache-chroniclemap module to $GERRIT_SITE/etc/gerrit.config as follows:

[gerrit]
  installModule = com.googlesource.gerrit.modules.cache.chroniclemap.ChronicleMapCacheModule

Note that in order to run on JDK 17 (or newer) the following parameters needs to be added to $GERRIT_SITE/etc/gerrit.config:

[container]
  javaOptions = --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED
  javaOptions = --add-exports=java.base/sun.nio.ch=ALL-UNNAMED
  javaOptions = --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED
  javaOptions = --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
  javaOptions = --add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED
  javaOptions = --add-opens=java.base/java.lang=ALL-UNNAMED
  javaOptions = --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
  javaOptions = --add-opens=java.base/java.io=ALL-UNNAMED
  javaOptions = --add-opens=java.base/java.util=ALL-UNNAMED

For further information and supported options, refer to config documentation.

Migration from H2 caches

You can check how to migrate from H2 to chronicle-map here.