Skip to content

Update Caffeine to 3.2.4, Checkstyle to 10.26.1 and audience-annotations to 0.15.1 - #4949

Merged
porunov merged 1 commit into
JanusGraph:masterfrom
porunov:java11-followup-deps
Sep 16, 2026
Merged

porunov merged 1 commit into
JanusGraph:masterfrom
porunov:java11-followup-deps

Conversation

@porunov

@porunov porunov commented Sep 16, 2026

Copy link
Copy Markdown
Member

Follow-up to #4948 / #3547: the dependency updates that were blocked on Java 8 support.

Dependency Before After Notes
com.github.ben-manes.caffeine:caffeine 2.9.3 3.2.4 Caffeine 3 requires Java 11
com.google.errorprone:error_prone_annotations (managed) 2.30.0 2.50.0 required by Caffeine 3.2.4 (requireUpperBoundDeps)
com.puppycrawl.tools:checkstyle 9.3 10.26.1 last Checkstyle line that runs on Java 11
maven-checkstyle-plugin 3.4.0 3.6.0
org.apache.yetus:audience-annotations (managed) 0.13.0 0.15.1 transitive of hbase-shaded-client

Caffeine 3

JanusGraph's seven Caffeine call sites (ExpirationKCVSCache, CaffeineVertexCache, CaffeineSubqueryCache, RelationQueryCache, StandardSchemaCache, StandardLockCleanerService, StandardTransactionLogProcessor) only use builder options and Cache methods that are unchanged in 3.x; none of the APIs removed in 3.0 (CacheWriter, StatsCounter.recordEviction variants, CacheStats constructors, UnsafeAccess) are used. Caffeine 3.2 switched its nullness annotations from the Checker Framework to JSpecify, so the checker-qual exclusion on the janusgraph-core dependency no longer excluded anything and is removed; the managed error_prone_annotations is raised to the version Caffeine 3.2.4 declares.

Checkstyle 10

Checkstyle 11 and newer require Java 17, so 10.26.1 is the ceiling while JanusGraph builds on Java 11. The inline rule set in the root POM works unchanged and reports 0 violations in all 32 modules (main and test sources).

Verification

  • mvn install -DskipTests on Java 11: enforcer (requireUpperBoundDeps) and Checkstyle pass on every module.
  • Test suites run locally with the new versions: janusgraph-core (82 tests), janusgraph-inmemory (572, exercises the Caffeine-based vertex, subquery, schema and KCVS caches through JanusGraphTest) and janusgraph-test (998) on Java 11, plus janusgraph-core and janusgraph-inmemory on Java 25 — all green.

Thank you for contributing to JanusGraph!

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

For all changes:

  • Is there an issue associated with this PR? Is it referenced in the commit message?
  • Does your PR body contain #xyz where xyz is the issue number you are trying to resolve?
  • Has your PR been rebased against the latest commit within the target branch (typically master)?
  • Is your initial contribution a single, squashed commit?

For code changes:

  • Have you written and/or updated unit tests to verify your changes?
  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

For documentation related changes:

  • Have you ensured that format looks appropriate for the output in which it is rendered?

🤖 Generated with Claude Code

…ons to 0.15.1

These are the dependency updates that were blocked on Java 8 support and
listed as follow-ups in JanusGraph#3547 (Mockito 5 was already done with the
TinkerPop 3.8.2 upgrade):

* Caffeine 2.9.3 -> 3.2.4. Caffeine 3 requires Java 11. JanusGraph only
  uses the builder API (maximumSize/maximumWeight, weigher, expireAfterWrite,
  removalListener, executor, recordStats) and Cache methods that are
  unchanged in 3.x; none of the removed APIs (CacheWriter, StatsCounter
  recordEviction variants, CacheStats constructors) are used. Caffeine
  3.2 declares jspecify and error_prone_annotations instead of
  checker-qual, so the now pointless checker-qual exclusion in
  janusgraph-core is dropped and the managed error_prone_annotations is
  raised from 2.30.0 to 2.50.0 to satisfy the enforcer's upper bound rule.
* Checkstyle 9.3 -> 10.26.1 with maven-checkstyle-plugin 3.4.0 -> 3.6.0.
  10.26.1 is the last Checkstyle line that runs on Java 11 (Checkstyle 11+
  requires Java 17, which the Java 11 build lanes cannot use). The inline
  rule set needs no changes and reports zero violations on all modules.
* audience-annotations 0.13.0 -> 0.15.1 (only a managed version for the
  hbase-shaded-client transitive dependency).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Signed-off-by: Oleksandr Porunov <alexandr.porunov@gmail.com>
@porunov
porunov force-pushed the java11-followup-deps branch from 692b7a7 to 8659010 Compare September 16, 2026 12:50
@porunov porunov added the dependencies Pull requests that update a dependency file label Sep 16, 2026
@porunov porunov added this to the 1.2.0 milestone Sep 16, 2026
@porunov
porunov merged commit fe4d79c into JanusGraph:master Sep 16, 2026
131 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant