You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Julian Reschke (Jira)" <ji...@apache.org> on 2026/04/09 12:18:00 UTC
[jira] [Updated] (OAK-12162) Final cleanup — remove CacheLIRS, LirsCacheAdapter, decouple AbstractCacheStats from Guava ("TASK-16")
[ https://issues.apache.org/jira/browse/OAK-12162?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Julian Reschke updated OAK-12162:
---------------------------------
Summary: Final cleanup — remove CacheLIRS, LirsCacheAdapter, decouple AbstractCacheStats from Guava ("TASK-16") (was: Final cleanup — remove CacheLIRS, LirsCacheAdapter, decouple AbstractCacheStats from Guava)
> Final cleanup — remove CacheLIRS, LirsCacheAdapter, decouple AbstractCacheStats from Guava ("TASK-16")
> ------------------------------------------------------------------------------------------------------
>
> Key: OAK-12162
> URL: https://issues.apache.org/jira/browse/OAK-12162
> Project: Jackrabbit Oak
> Issue Type: Sub-task
> Reporter: Rishabh Daim
> Assignee: Rishabh Daim
> Priority: Major
>
> Remove all transitional scaffolding and make Caffeine the sole cache implementation.
> Changes:
> - AbstractCacheStats — change getCurrentStats() return type from Guava shim CacheStats to OakCacheStats; rewrite lastSnapshot field and stats() method to use OakCacheStats arithmetic
> - CacheStats — update getCurrentStats() to return OakCacheStats; mark the Guava-based constructor @Deprecated(forRemoval = true)
> - OakCacheStatsAdapter — update getCurrentStats() to return OakCacheStats directly (drop Guava conversion bridge)
> - RecordCacheStats, SegmentCache.Stats, SegmentCacheStats — update getCurrentStats() to return OakCacheStats directly (drop Guava conversion bridges added in TASK-11/12)
> - Remove LirsCacheAdapter entirely
> - Remove CacheLIRS (or mark @Deprecated(forRemoval = true) — outright removal is acceptable since it was already @Internal)
> - Remove the oak.cache.type toggle from OakCacheBuilder; remove the lirs code path; Caffeine is the sole implementation
> - Remove CacheImplementation.LIRS from the enum (or remove the enum entirely)
> - Grep to confirm no module outside oak-core-spi imports com.github.benmanes.caffeine.cache or org.apache.jackrabbit.guava.common.cache
> - Remove any Guava cache shim re-exports if still present
> Acceptance criteria:
> - mvn clean install passes (full test suite)
> - AbstractCacheStats.getCurrentStats() returns OakCacheStats; no Guava types remain in AbstractCacheStats or its subclasses
> - No CacheLIRS or LirsCacheAdapter classes remain in oak-core-spi
> - OakCacheBuilder has no lirs code path — Caffeine is the sole implementation
> - OSGi integration tests pass
> NOTE : This task is optional. Execute only if the decision is made to standardise on Caffeine as the sole implementation. If both CacheLIRS and Caffeine are kept long-term (with modules using .implementation() to choose their backend), this task is skipped and the toggle + both adapters remain indefinitely.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)