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)