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 "Davide Giannella (JIRA)" <ji...@apache.org> on 2018/02/22 13:59:00 UTC
[jira] [Commented] (OAK-7225) Replace AtomicCounter Supplier
[ https://issues.apache.org/jira/browse/OAK-7225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16372825#comment-16372825 ]
Davide Giannella commented on OAK-7225:
---------------------------------------
[~reschke] I've replaced the exposed part of guava with the OOTB java bits. The changes are trivial and you can review them in [^OAK-7225-0.diff] or on the [git branch|https://github.com/davidegiannella/jackrabbit-oak/compare/trunk...davidegiannella:OAK-7225?expand=1].
I've looked a bit more into the usages of guava and potential replacement. The trickiest part is the replacement of the [ThreadFactoryBuilder|https://github.com/davidegiannella/jackrabbit-oak/blob/OAK-7225/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java#L175] which provides a handy way to name threads in the Executor. It's possible to replace it though with a simple custom implementation extending the default implementation in java.
Most of the guava code in the Atomic counter I found could be replaced: checkNotNull vs Objects.requireNonNull, ImmutableSet etc vs Collections.unmodifiable()... But I don't actually know if we could get rid of the whole Guava thing for the whole functionality. And it goes beyond the scope of this issue.
Thoughts?
> Replace AtomicCounter Supplier
> ------------------------------
>
> Key: OAK-7225
> URL: https://issues.apache.org/jira/browse/OAK-7225
> Project: Jackrabbit Oak
> Issue Type: Sub-task
> Components: core
> Affects Versions: 1.4.0, 1.6.0
> Reporter: Davide Giannella
> Assignee: Davide Giannella
> Priority: Major
> Attachments: OAK-7225-0.diff
>
>
> In the [AtomicCounter|https://github.com/apache/jackrabbit-oak/blob/7a7aa1e5d4f53f5bfb410f58264c237b288f5c74/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/atomic/AtomicCounterEditorProvider.java#L121] we use guava's Supplier which should be trivially replaced by the JDK8 [java.util.function.Supplier|https://docs.oracle.com/javase/8/docs/api/java/util/function/Supplier.html].
> In case of backports to Oak 1.4, and therefore Java7 it should be possible to workaround the FunctionalInterface with a utility class.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)