[ 
https://issues.apache.org/jira/browse/OAK-8702?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Reschke updated OAK-8702:
--------------------------------
    Description: 
There are multiple classes here; but it seems the most important one is 
{{CacheLIRS}}, where the other ones are related to that.

{{CacheLIRS}} implements the Guava {{Cache}} API.

In a perfect world, we would implement new variants which do not rely on that 
API but are "sufficiently" compatible. Unfortunately, that would mean adding 
own APIs that replecate the Guava API. Furthermore, due to the way the caches 
work, there are quite a few support API (Loader, Weicher, Stats etc) that would 
need to be added as well.

The classes are currently used in three other parts of Oak, and hopefully not 
anywhere else. The best way forward seems to me to leave them untouched, but 
stop exporting the packages. Other users inside Oak would need to embed copies 
of the ~5 classes for now.  [^cache-removal.diff] demonstrates how that would 
work.

  was:
There are multiple classes here; but it seems the most important one is 
{{CacheLIRS}}, where the other ones are related to that.

{{CacheLIRS}} implements the Guava {{Cache}} API.

In a perfect world, we would implement new variants which do not rely on that 
API but are "sufficiently" compatible. Unfortunately, that would mean adding 
own APIs that replecate the Guava API. Furthermore, due to the way the caches 
work, there are quite a few support API (Loader, Weicher, Stats etc) that would 
need to be added as well.

The classes are currently used in three other parts of Oak, and hopefully not 
anywhere else. The best way forward seems to me to leave them untouched, but 
stop exporting the packages. Other users inside Oak would need to embed copies 
of the ~5 classes for now.


>  deprecate Guava based APIs in o.a.j.o.cache
> --------------------------------------------
>
>                 Key: OAK-8702
>                 URL: https://issues.apache.org/jira/browse/OAK-8702
>             Project: Jackrabbit Oak
>          Issue Type: Technical task
>          Components: core-spi
>            Reporter: Julian Reschke
>            Priority: Major
>         Attachments: cache-removal.diff
>
>
> There are multiple classes here; but it seems the most important one is 
> {{CacheLIRS}}, where the other ones are related to that.
> {{CacheLIRS}} implements the Guava {{Cache}} API.
> In a perfect world, we would implement new variants which do not rely on that 
> API but are "sufficiently" compatible. Unfortunately, that would mean adding 
> own APIs that replecate the Guava API. Furthermore, due to the way the caches 
> work, there are quite a few support API (Loader, Weicher, Stats etc) that 
> would need to be added as well.
> The classes are currently used in three other parts of Oak, and hopefully not 
> anywhere else. The best way forward seems to me to leave them untouched, but 
> stop exporting the packages. Other users inside Oak would need to embed 
> copies of the ~5 classes for now.  [^cache-removal.diff] demonstrates how 
> that would work.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to