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)