Merge branch 'stable-3.8' * stable-3.8: Allow specify either avgKeySize or avgValueSize as command parameters Fix avg value and key size calculation when auto-adjusting caches Apply Flogger fixes from Ia4e5a3c513 Change-Id: I52e6e7d9f435740653077f03fbef667b3dd17e8a
diff --git a/BUILD b/BUILD index a782456..97158dc 100644 --- a/BUILD +++ b/BUILD
@@ -46,12 +46,34 @@ ":chroniclemap-test-lib", "@chronicle-bytes//jar", ], + jvm_flags =[ + "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED", + "--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED", + "--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED", + "--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED", + "--add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED", + "--add-opens=java.base/java.lang=ALL-UNNAMED", + "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED", + "--add-opens=java.base/java.io=ALL-UNNAMED", + "--add-opens=java.base/java.util=ALL-UNNAMED", + ], ) [junit_tests( name = f[:f.index(".")].replace("/", "_"), srcs = [f], tags = ["server"], + jvm_flags =[ + "--add-exports=java.base/sun.nio.ch=ALL-UNNAMED", + "--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED", + "--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED", + "--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED", + "--add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED", + "--add-opens=java.base/java.lang=ALL-UNNAMED", + "--add-opens=java.base/java.lang.reflect=ALL-UNNAMED", + "--add-opens=java.base/java.io=ALL-UNNAMED", + "--add-opens=java.base/java.util=ALL-UNNAMED", + ], deps = [ ":cache-chroniclemap__plugin", ":chroniclemap-test-lib",
diff --git a/README.md b/README.md index 870dd90..ded63bf 100644 --- a/README.md +++ b/README.md
@@ -22,6 +22,22 @@ 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](src/main/resources/Documentation/config.md) documentation.
diff --git a/src/main/resources/Documentation/build.md b/src/main/resources/Documentation/build.md index 652b328..f65fe10 100644 --- a/src/main/resources/Documentation/build.md +++ b/src/main/resources/Documentation/build.md
@@ -34,4 +34,24 @@ ```sh bazelisk test plugins/cache-chroniclemap/... -``` \ No newline at end of file +``` + +## Run tests in IDE + +The cache-chroniclemap internals are JDK 17 compatible however JDK since that +version is more restrictive on which modules are by default accessible to the +third party libraries. Considering that, in order to run tests in IDE (e.g. +Eclipse), one needs to add the following VM arguments to the particular test's +_Debug/Run Configuration_: + +``` +--add-exports=java.base/sun.nio.ch=ALL-UNNAMED +--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED +--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED +--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED +--add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED +--add-opens=java.base/java.lang=ALL-UNNAMED +--add-opens=java.base/java.lang.reflect=ALL-UNNAMED +--add-opens=java.base/java.io=ALL-UNNAMED +--add-opens=java.base/java.util=ALL-UNNAMED +```
diff --git a/src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/MigrateH2CachesLocalDiskIT.java b/src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/MigrateH2CachesLocalDiskIT.java index 57de6cd..469fcf8 100644 --- a/src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/MigrateH2CachesLocalDiskIT.java +++ b/src/test/java/com/googlesource/gerrit/modules/cache/chroniclemap/MigrateH2CachesLocalDiskIT.java
@@ -48,6 +48,7 @@ import com.google.inject.Inject; import com.google.inject.Key; import com.google.inject.Module; +import com.google.inject.name.Named; import java.io.IOException; import java.lang.annotation.Annotation; import java.nio.file.Path; @@ -305,7 +306,8 @@ Annotation annotation = entry.getKey().getAnnotation(); return className.equals(classNameMatch) && annotation != null - && annotation.toString().endsWith(String.format("Named(value=\"%s\")", named)); + && annotation instanceof Named + && annotation.toString().contains(String.format("\"%s\"", named)); } private <K, V> ChronicleMapCacheImpl<K, V> chronicleCacheFor(String cacheName) throws Exception {