From a983c72b9fe1919cec8c1f55c4cb74807d8acf92 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Thu, 11 Jul 2024 18:14:22 +0100 Subject: [PATCH 01/26] OAK-10945: Remove usage of Guava Function interface (oak-upgrade) --- .../jackrabbit/oak/upgrade/RepositoryUpgrade.java | 14 +++----------- .../oak/upgrade/SameNameSiblingsEditor.java | 8 +------- .../upgrade/checkpoint/CheckpointRetriever.java | 13 +++---------- .../oak/upgrade/cli/AbstractOak2OakTest.java | 4 ++-- 4 files changed, 9 insertions(+), 30 deletions(-) diff --git a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java index cf6b27da998..a55904eebc2 100644 --- a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java +++ b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositoryUpgrade.java @@ -59,7 +59,7 @@ import javax.jcr.nodetype.PropertyDefinitionTemplate; import javax.jcr.security.Privilege; -import org.apache.jackrabbit.guava.common.base.Function; + import org.apache.jackrabbit.guava.common.base.Stopwatch; import org.apache.jackrabbit.guava.common.collect.HashBiMap; import org.apache.jackrabbit.guava.common.collect.ImmutableList; @@ -144,7 +144,6 @@ import org.apache.lucene.index.TermDocs; import org.apache.lucene.index.TermEnum; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -777,15 +776,8 @@ private void copyCustomPrivileges(PrivilegeManager pMgr) throws RepositoryExcept while (it.hasNext()) { Privilege aggrPriv = it.next(); - List aggrNames = Lists.transform( - ImmutableList.copyOf(aggrPriv.getDeclaredAggregatePrivileges()), - new Function() { - @Nullable - @Override - public String apply(@Nullable Privilege input) { - return (input == null) ? null : input.getName(); - } - }); + List aggrNames = Lists.transform(ImmutableList.copyOf(aggrPriv.getDeclaredAggregatePrivileges()), + input -> (input == null) ? null : input.getName()); if (allAggregatesRegistered(pMgr, aggrNames)) { pMgr.registerPrivilege(aggrPriv.getName(), aggrPriv.isAbstract(), aggrNames.toArray(new String[aggrNames.size()])); it.remove(); diff --git a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/SameNameSiblingsEditor.java b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/SameNameSiblingsEditor.java index ea5e28835f7..631e261cb4a 100644 --- a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/SameNameSiblingsEditor.java +++ b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/SameNameSiblingsEditor.java @@ -44,7 +44,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; /** @@ -172,12 +171,7 @@ private static Iterable filterChildren(NodeState parent, final Predicate public boolean apply(ChildNodeEntry input) { return predicate.apply(input.getNodeState()); } - }), new Function() { - @Override - public String apply(ChildNodeEntry input) { - return input.getName(); - } - }); + }), input -> input.getName()); } /** diff --git a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/checkpoint/CheckpointRetriever.java b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/checkpoint/CheckpointRetriever.java index 1e058825c9b..1337c03fe6e 100644 --- a/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/checkpoint/CheckpointRetriever.java +++ b/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/checkpoint/CheckpointRetriever.java @@ -18,21 +18,19 @@ */ package org.apache.jackrabbit.oak.upgrade.checkpoint; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Lists; import org.apache.jackrabbit.oak.plugins.document.DocumentCheckpointRetriever; import org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore; import org.apache.jackrabbit.oak.segment.CheckpointAccessor; import org.apache.jackrabbit.oak.segment.SegmentNodeStore; -import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry; import org.apache.jackrabbit.oak.spi.state.NodeState; import org.apache.jackrabbit.oak.spi.state.NodeStore; import org.apache.jackrabbit.oak.upgrade.cli.node.FileStoreUtils; -import org.jetbrains.annotations.Nullable; import java.util.Collections; import java.util.List; + public final class CheckpointRetriever { public static class Checkpoint implements Comparable { @@ -88,12 +86,7 @@ public static List getCheckpoints(NodeStore nodeStore) { } private static List getCheckpoints(NodeState checkpointRoot) { - return Lists.newArrayList(Iterables.transform(checkpointRoot.getChildNodeEntries(), new Function() { - @Nullable - @Override - public Checkpoint apply(@Nullable ChildNodeEntry input) { - return Checkpoint.createFromSegmentNode(input.getName(), input.getNodeState()); - } - })); + return Lists.newArrayList(Iterables.transform(checkpointRoot.getChildNodeEntries(), + input -> Checkpoint.createFromSegmentNode(input.getName(), input.getNodeState()))); } } diff --git a/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java b/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java index eef40994b99..924d76a0596 100644 --- a/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java +++ b/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java @@ -31,6 +31,7 @@ import java.util.List; import java.util.Map; import java.util.Random; +import java.util.function.Function; import javax.jcr.Node; import javax.jcr.Property; @@ -39,7 +40,6 @@ import javax.jcr.SimpleCredentials; import javax.jcr.Value; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Lists; import org.apache.commons.codec.digest.DigestUtils; import org.apache.jackrabbit.oak.api.Blob; @@ -199,7 +199,7 @@ public String apply(@Nullable Value input) { return null; } } - }); + }::apply); assertTrue(values.contains("jcr:mixinTypes")); assertTrue(values.contains("jcr:primaryType")); assertEquals("false", nodeType.getProperty("jcr:isAbstract").getString()); From 35357ce8a5984847ce132b35e47e3f4ef1ccba9d Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Thu, 11 Jul 2024 18:56:26 +0100 Subject: [PATCH 02/26] OAK-10945: Remove usage of Guava Function interface (oak-store-spi) --- .../plugins/memory/MemoryChildNodeEntry.java | 13 +-- .../oak/plugins/memory/ModifiedNodeState.java | 18 +--- .../plugins/memory/MultiPropertyState.java | 87 +++---------------- .../commit/ProgressNotificationEditor.java | 3 +- .../oak/spi/state/AbstractNodeState.java | 10 +-- .../oak/spi/state/ChildNodeEntry.java | 3 +- 6 files changed, 22 insertions(+), 112 deletions(-) diff --git a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryChildNodeEntry.java b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryChildNodeEntry.java index dcb3a92aaf3..425bd0a1da5 100644 --- a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryChildNodeEntry.java +++ b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MemoryChildNodeEntry.java @@ -22,7 +22,6 @@ import java.util.Map.Entry; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.oak.spi.state.AbstractChildNodeEntry; import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry; @@ -33,16 +32,8 @@ */ public class MemoryChildNodeEntry extends AbstractChildNodeEntry { - public static > Iterable iterable( - Iterable set) { - return Iterables.transform( - set, - new Function, ChildNodeEntry>() { - @Override - public ChildNodeEntry apply(Entry entry) { - return new MemoryChildNodeEntry(entry.getKey(), entry.getValue()); - } - }); + public static > Iterable iterable(Iterable set) { + return Iterables.transform(set, entry -> new MemoryChildNodeEntry(entry.getKey(), entry.getValue())); } private final String name; diff --git a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java index 3ae7072f62c..9201c309b03 100644 --- a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java +++ b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java @@ -30,8 +30,8 @@ import java.util.Map; import java.util.Map.Entry; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.spi.state.AbstractNodeState; import org.apache.jackrabbit.oak.spi.state.ChildNodeEntry; @@ -52,17 +52,7 @@ public class ModifiedNodeState extends AbstractNodeState { /** * Mapping from a PropertyState instance to its name. */ - private static final Function GET_NAME = - new Function() { - @Override @Nullable - public String apply(@Nullable PropertyState input) { - if (input != null) { - return input.getName(); - } else { - return null; - } - } - }; + private static final Function GET_NAME = input -> (input != null) ? input.getName() : null; /** * Unwraps the given {@code NodeState} instance into the given internals @@ -180,7 +170,7 @@ static Iterable getProperties( properties = newHashMap(properties); } Predicate predicate = Predicates.compose( - not(in(properties.keySet())), GET_NAME); + not(in(properties.keySet())), GET_NAME::apply); return concat( filter(base.getProperties(), predicate), filter(properties.values(), notNull())); @@ -361,7 +351,7 @@ public Iterable getChildNodeEntries() { return base.getChildNodeEntries(); // shortcut } else { Predicate predicate = Predicates.compose( - not(in(nodes.keySet())), ChildNodeEntry.GET_NAME); + not(in(nodes.keySet())), ChildNodeEntry.GET_NAME::apply); return concat( filter(base.getChildNodeEntries(), predicate), iterable(filterValues(nodes, NodeState.EXISTS).entrySet())); diff --git a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java index 1d286c4e772..933da8170b4 100644 --- a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java +++ b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/MultiPropertyState.java @@ -21,15 +21,12 @@ import static org.apache.jackrabbit.guava.common.base.Preconditions.checkArgument; import static org.apache.jackrabbit.guava.common.base.Preconditions.checkState; -import java.math.BigDecimal; import java.util.List; import javax.jcr.PropertyType; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Lists; -import org.apache.jackrabbit.oak.api.Blob; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.plugins.value.Conversions.Converter; import org.jetbrains.annotations.NotNull; @@ -62,89 +59,29 @@ protected MultiPropertyState(String name, Iterable values) { private S convertTo(Type type) { switch (type.tag()) { case PropertyType.STRING: - return (S) Iterables.transform(values, new Function() { - @Override - public String apply(T value) { - return getConverter(value).toString(); - } - }); + return (S) Iterables.transform(values, value -> getConverter(value).toString()); case PropertyType.BINARY: - return (S) Iterables.transform(values, new Function() { - @Override - public Blob apply(T value) { - return getConverter(value).toBinary(); - } - }); + return (S) Iterables.transform(values, value -> getConverter(value).toBinary()); case PropertyType.LONG: - return (S) Iterables.transform(values, new Function() { - @Override - public Long apply(T value) { - return getConverter(value).toLong(); - } - }); + return (S) Iterables.transform(values, value -> getConverter(value).toLong()); case PropertyType.DOUBLE: - return (S) Iterables.transform(values, new Function() { - @Override - public Double apply(T value) { - return getConverter(value).toDouble(); - } - }); + return (S) Iterables.transform(values, value -> getConverter(value).toDouble()); case PropertyType.DATE: - return (S) Iterables.transform(values, new Function() { - @Override - public String apply(T value) { - return getConverter(value).toDate(); - } - }); + return (S) Iterables.transform(values, value -> getConverter(value).toDate()); case PropertyType.BOOLEAN: - return (S) Iterables.transform(values, new Function() { - @Override - public Boolean apply(T value) { - return getConverter(value).toBoolean(); - } - }); + return (S) Iterables.transform(values, value -> getConverter(value).toBoolean()); case PropertyType.NAME: - return (S) Iterables.transform(values, new Function() { - @Override - public String apply(T value) { - return getConverter(value).toString(); - } - }); + return (S) Iterables.transform(values, value -> getConverter(value).toString()); case PropertyType.PATH: - return (S) Iterables.transform(values, new Function() { - @Override - public String apply(T value) { - return getConverter(value).toString(); - } - }); + return (S) Iterables.transform(values, value -> getConverter(value).toString()); case PropertyType.REFERENCE: - return (S) Iterables.transform(values, new Function() { - @Override - public String apply(T value) { - return getConverter(value).toString(); - } - }); + return (S) Iterables.transform(values, value -> getConverter(value).toString()); case PropertyType.WEAKREFERENCE: - return (S) Iterables.transform(values, new Function() { - @Override - public String apply(T value) { - return getConverter(value).toString(); - } - }); + return (S) Iterables.transform(values, value -> getConverter(value).toString()); case PropertyType.URI: - return (S) Iterables.transform(values, new Function() { - @Override - public String apply(T value) { - return getConverter(value).toString(); - } - }); + return (S) Iterables.transform(values, value -> getConverter(value).toString()); case PropertyType.DECIMAL: - return (S) Iterables.transform(values, new Function() { - @Override - public BigDecimal apply(T value) { - return getConverter(value).toDecimal(); - } - }); + return (S) Iterables.transform(values, value -> getConverter(value).toDecimal()); default: throw new IllegalArgumentException("Unknown type:" + type); } } diff --git a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/commit/ProgressNotificationEditor.java b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/commit/ProgressNotificationEditor.java index 393618e5da7..1c28f616963 100644 --- a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/commit/ProgressNotificationEditor.java +++ b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/commit/ProgressNotificationEditor.java @@ -21,7 +21,8 @@ import static org.apache.jackrabbit.oak.commons.PathUtils.concat; -import org.apache.jackrabbit.guava.common.base.Function; +import java.util.function.Function; + import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.spi.state.NodeState; diff --git a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/AbstractNodeState.java b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/AbstractNodeState.java index d015779ff43..d9ee3af66b0 100644 --- a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/AbstractNodeState.java +++ b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/AbstractNodeState.java @@ -33,7 +33,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterables; /** @@ -289,14 +288,7 @@ public long getChildNodeCount(long max) { @Override public Iterable getChildNodeNames() { - return Iterables.transform( - getChildNodeEntries(), - new Function() { - @Override - public String apply(ChildNodeEntry input) { - return input.getName(); - } - }); + return Iterables.transform(getChildNodeEntries(), input -> input.getName()); } /** diff --git a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/ChildNodeEntry.java b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/ChildNodeEntry.java index c032e831044..1fbef39a48c 100644 --- a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/ChildNodeEntry.java +++ b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/ChildNodeEntry.java @@ -16,8 +16,7 @@ */ package org.apache.jackrabbit.oak.spi.state; - -import org.apache.jackrabbit.guava.common.base.Function; +import java.util.function.Function; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; From 8655e10f923d85061292b4cdf20e8b76fad70d0f Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Thu, 11 Jul 2024 20:52:44 +0100 Subject: [PATCH 03/26] OAK-10945: Remove usage of Guava Function interface (oak-it) --- .../apache/jackrabbit/oak/composite/CompositeNodeStoreTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oak-it/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreTest.java b/oak-it/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreTest.java index 52494fd01ae..9d0fd3654ad 100644 --- a/oak-it/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreTest.java +++ b/oak-it/src/test/java/org/apache/jackrabbit/oak/composite/CompositeNodeStoreTest.java @@ -658,7 +658,7 @@ public void duplicatedChildren() throws CommitFailedException { deepMountBuilder.child("new").setProperty("store", "deepMounted", Type.STRING); deepMountedStore.merge(deepMountBuilder, EmptyHook.INSTANCE, CommitInfo.EMPTY); - List children = newArrayList(filter(store.getRoot().getChildNodeEntries(), compose(Predicates.equalTo("new"), GET_NAME))); + List children = newArrayList(filter(store.getRoot().getChildNodeEntries(), compose(Predicates.equalTo("new"), GET_NAME::apply))); assertEquals(1, children.size()); assertEquals("global", children.get(0).getNodeState().getString("store")); From 3d2855f88df79629fefbfe00ee91a3fe99e99526 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Fri, 12 Jul 2024 09:50:13 +0100 Subject: [PATCH 04/26] OAK-10945: Remove usage of Guava Function interface (oak-store-document) --- .../oak/plugins/document/Branch.java | 15 ++----------- .../oak/plugins/document/Commit.java | 11 +--------- .../plugins/document/DocumentNodeState.java | 7 +++--- .../plugins/document/DocumentNodeStore.java | 16 +++++--------- .../document/DocumentNodeStoreBranch.java | 8 +------ .../document/DocumentNodeStoreMBeanImpl.java | 22 +++---------------- .../plugins/document/MissingBcSweeper2.java | 4 ++-- .../oak/plugins/document/NodeDocument.java | 13 ++++------- .../plugins/document/NodeDocumentSweeper.java | 20 ++++++----------- .../oak/plugins/document/PropertyHistory.java | 4 ++-- .../oak/plugins/document/SplitOperations.java | 4 ++-- .../document/UnsavedModifications.java | 8 +------ .../document/VersionGarbageCollector.java | 17 ++------------ .../document/mongo/MongoDocumentStore.java | 22 +++---------------- .../document/mongo/MongoVersionGCSupport.java | 21 ++++++------------ .../document/persistentCache/NodeCache.java | 5 ++--- .../persistentCache/PersistentCache.java | 3 +-- .../document/rdb/RDBDocumentStore.java | 15 ++----------- .../document/rdb/RDBDocumentStoreJDBC.java | 10 +-------- .../DelegatingDocumentNodeState.java | 11 +++------- .../oak/plugins/document/util/Utils.java | 8 +------ ...goVersionGCSupportDefaultNoBranchTest.java | 2 +- .../oak/plugins/document/TestUtils.java | 3 +-- .../document/VersionGarbageCollectorIT.java | 8 +------ 24 files changed, 60 insertions(+), 197 deletions(-) diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Branch.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Branch.java index 56040cf770a..ea64bb6cc89 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Branch.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Branch.java @@ -31,7 +31,6 @@ import java.util.TreeMap; import java.util.concurrent.ConcurrentSkipListMap; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Sets; @@ -279,12 +278,7 @@ public boolean apply(Map.Entry input) { return !input.getValue().isRebase() && input.getKey().compareRevisionTime(r) <= 0; } - }), new Function, Iterable>() { - @Override - public Iterable apply(Map.Entry input) { - return input.getValue().getModifiedPaths(); - } - }); + }), input -> input.getValue().getModifiedPaths()); return Iterables.concat(paths); } @@ -412,12 +406,7 @@ protected boolean isRebase() { @Override Iterable getModifiedPaths() { Iterable> paths = transform(previous.values(), - new Function>() { - @Override - public Iterable apply(BranchCommit branchCommit) { - return branchCommit.getModifiedPaths(); - } - }); + branchCommit -> branchCommit.getModifiedPaths()); return Iterables.concat(paths); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java index b3016219cdd..1f2214542b1 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Commit.java @@ -29,7 +29,6 @@ import java.util.TreeSet; import java.util.concurrent.TimeUnit; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Sets; import org.apache.jackrabbit.oak.commons.json.JsopStream; @@ -891,16 +890,8 @@ private boolean isBundled(Path path) { return bundledNodes.containsKey(path); } - private static final Function KEY_TO_NAME = - new Function() { - @Override - public String apply(UpdateOp.Key input) { - return input.getName(); - } - }; - private static boolean hasContentChanges(UpdateOp op) { return filter(transform(op.getChanges().keySet(), - KEY_TO_NAME), Utils.PROPERTY_OR_DELETED).iterator().hasNext(); + input -> input.getName()), Utils.PROPERTY_OR_DELETED).iterator().hasNext(); } } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java index 215c5007014..cd16e86771b 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java @@ -23,6 +23,7 @@ import java.util.Map; import java.util.NoSuchElementException; import java.util.Set; +import java.util.function.Function; import org.apache.jackrabbit.guava.common.collect.ImmutableMap; import org.apache.jackrabbit.guava.common.collect.TreeTraverser; @@ -47,7 +48,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.apache.jackrabbit.guava.common.base.Function; + import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Iterators; @@ -590,7 +591,7 @@ public NodeState getNodeState() { } }; } - }); + }::apply); } private static Map asMap(Iterable props){ @@ -772,7 +773,7 @@ public NodeState getNodeState() { } }; } - }); + }::apply); } private static BundlingContext createBundlingContext(Map properties, diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java index 88e7d142085..027edf9bf42 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java @@ -67,6 +67,7 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; +import java.util.function.Function; import javax.jcr.PropertyType; @@ -126,7 +127,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; + import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.base.Stopwatch; import org.apache.jackrabbit.guava.common.base.Strings; @@ -493,7 +494,7 @@ public String serialize(Blob blob) { }; /** - * A predicate, which takes a String and returns {@code true} if the String + * A function, which takes a String and returns {@code true} if the String * is a serialized binary value of a {@link DocumentPropertyState}. The * apply method will throw an IllegalArgumentException if the String is * malformed. @@ -1629,7 +1630,7 @@ private String docAsString(String id, boolean cached) { return e.toString(); } } - }); + }::apply); } @Nullable @@ -2229,12 +2230,7 @@ public Iterable checkpoints() { public boolean apply(Map.Entry cp) { return cp.getValue().getExpiryTime() > now; } - }), new Function, String>() { - @Override - public String apply(Map.Entry cp) { - return cp.getKey().toString(); - } - }); + }), cp -> cp.getKey().toString()); } @Nullable @@ -2673,7 +2669,7 @@ private void backgroundSplit() { continue; } cleanCollisions(doc, collisionGarbageBatchSize); - Iterator it = doc.split(this, head, binarySize).iterator(); + Iterator it = doc.split(this, head, binarySize::apply).iterator(); while(it.hasNext()) { UpdateOp op = it.next(); Path path = doc.getPath(); diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBranch.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBranch.java index 1b04f62fa54..0378c78624a 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBranch.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBranch.java @@ -31,7 +31,6 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Sets; @@ -752,12 +751,7 @@ private void checkForConflicts() throws CommitFailedException { NodeDocument doc = Utils.getRootDocument(store.getDocumentStore()); Set collisions = Sets.newHashSet(doc.getLocalMap(COLLISIONS).keySet()); Set commits = Sets.newHashSet(Iterables.transform(b.getCommits(), - new Function() { - @Override - public Revision apply(Revision input) { - return input.asTrunkRevision(); - } - })); + input -> input.asTrunkRevision())); Set conflicts = Sets.intersection(collisions, commits); if (!conflicts.isEmpty()) { throw new CommitFailedException(STATE, 2, diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java index 7d649a34c3b..a06669a4788 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreMBeanImpl.java @@ -24,7 +24,6 @@ import javax.management.openmbean.CompositeData; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.api.stats.RepositoryStatistics; @@ -96,12 +95,7 @@ public String[] getInactiveClusterNodes() { public boolean apply(ClusterNodeInfoDocument input) { return !input.isActive(); } - }), new Function() { - @Override - public String apply(ClusterNodeInfoDocument input) { - return input.getClusterId() + "=" + input.getCreated(); - } - }), String.class); + }), input -> input.getClusterId() + "=" + input.getCreated()), String.class); } @Override @@ -112,12 +106,7 @@ public String[] getActiveClusterNodes() { public boolean apply(ClusterNodeInfoDocument input) { return input.isActive(); } - }), new Function() { - @Override - public String apply(ClusterNodeInfoDocument input) { - return input.getClusterId() + "=" + input.getLeaseEndTime(); - } - }), String.class); + }), input -> input.getClusterId() + "=" + input.getLeaseEndTime()), String.class); } @Override @@ -128,12 +117,7 @@ public String[] getLastKnownRevisions() { public boolean apply(Revision input) { return input.getClusterId() != getClusterId(); } - }), new Function() { - @Override - public String apply(Revision input) { - return input.getClusterId() + "=" + input.toString(); - } - }), String.class); + }), input -> input.getClusterId() + "=" + input.toString()), String.class); } @Override diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingBcSweeper2.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingBcSweeper2.java index f0e9cd56d29..2e66eee3fde 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingBcSweeper2.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MissingBcSweeper2.java @@ -30,6 +30,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.Function; import org.apache.jackrabbit.oak.commons.TimeDurationFormatter; import org.apache.jackrabbit.oak.plugins.document.util.Utils; @@ -38,7 +39,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; /** @@ -161,7 +161,7 @@ public Map.Entry apply(NodeDocument doc) { } return immutableEntry(doc.getPath(), sweepOne(doc)); } - }), new Predicate>() { + }::apply), new Predicate>() { @Override public boolean apply(Map.Entry input) { return input.getValue() != null; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java index d823247fbb0..e944f09e56d 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java @@ -33,8 +33,8 @@ import java.util.TreeMap; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.collect.AbstractIterator; import org.apache.jackrabbit.guava.common.collect.ImmutableList; @@ -1360,7 +1360,7 @@ public NodeDocument apply(Map.Entry input) { } return null; } - }), new Predicate() { + }::apply), new Predicate() { @Override public boolean apply(@Nullable NodeDocument input) { return input != null && input.getValueMap(property).containsKey(revision); @@ -1682,7 +1682,7 @@ public Iterator> iterator() { } }; } else { - changes = Iterables.concat(transform(copyOf(ranges), rangeToChanges)); + changes = Iterables.concat(transform(copyOf(ranges), rangeToChanges::apply)); } return filter(changes, new Predicate>() { @Override @@ -1786,12 +1786,7 @@ String resolveCommitValue(Revision revision) { @NotNull RevisionVector getSweepRevisions() { return new RevisionVector(transform(getLocalMap(SWEEP_REV).values(), - new Function() { - @Override - public Revision apply(String s) { - return Revision.fromString(s); - } - })); + s -> Revision.fromString(s))); } //-------------------------< UpdateOp modifiers >--------------------------- diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentSweeper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentSweeper.java index d36022c733d..16a00272278 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentSweeper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocumentSweeper.java @@ -20,7 +20,6 @@ import java.util.Map; import java.util.concurrent.TimeUnit; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.oak.commons.TimeDurationFormatter; @@ -165,18 +164,13 @@ private Revision performSweep(Iterable documents, private Iterable> sweepOperations( final Iterable docs) { - return filter(transform(docs, - new Function>() { - @Override - public Map.Entry apply(NodeDocument doc) { - return immutableEntry(doc.getPath(), sweepOne(doc)); - } - }), new Predicate>() { - @Override - public boolean apply(Map.Entry input) { - return input.getValue() != null; - } - }); + return filter(transform(docs, doc -> immutableEntry(doc.getPath(), sweepOne(doc))), + new Predicate>() { + @Override + public boolean apply(Map.Entry input) { + return input.getValue() != null; + } + }); } private UpdateOp sweepOne(NodeDocument doc) throws DocumentStoreException { diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java index 37ccbb92cdd..fbe53da5d2e 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java @@ -24,8 +24,8 @@ import java.util.Iterator; import java.util.Map; import java.util.TreeMap; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicates; import org.apache.jackrabbit.guava.common.collect.AbstractIterator; import org.apache.jackrabbit.guava.common.collect.Iterators; @@ -73,7 +73,7 @@ public Map.Entry apply(Map.Entry input) } return new SimpleImmutableEntry(r, prev); } - }), Predicates.notNull())); + }::apply), Predicates.notNull())); } /** diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/SplitOperations.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/SplitOperations.java index 2644ee71bb3..d9c0e45c626 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/SplitOperations.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/SplitOperations.java @@ -26,6 +26,7 @@ import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; +import java.util.function.Function; import org.apache.jackrabbit.oak.plugins.document.memory.MemoryDocumentStore; import org.apache.jackrabbit.oak.plugins.document.util.Utils; @@ -34,7 +35,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.base.Supplier; import org.apache.jackrabbit.guava.common.base.Suppliers; @@ -233,7 +233,7 @@ private void populateSplitRevs() { } private boolean hasBinaryPropertyForSplit(Iterable values) { - return doc.hasBinary() && any(transform(values, binarySize), BINARY_FOR_SPLIT_THRESHOLD); + return doc.hasBinary() && any(transform(values, binarySize::apply), BINARY_FOR_SPLIT_THRESHOLD); } /** diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/UnsavedModifications.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/UnsavedModifications.java index be79d07f61a..8a489f697a6 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/UnsavedModifications.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/UnsavedModifications.java @@ -31,7 +31,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.base.Stopwatch; import org.apache.jackrabbit.guava.common.base.Supplier; @@ -120,12 +119,7 @@ public Iterable getPaths(@NotNull final Revision start) { public boolean apply(Map.Entry input) { return start.compareRevisionTime(input.getValue()) < 1; } - }), new Function, Path>() { - @Override - public Path apply(Map.Entry input) { - return input.getKey(); - } - }); + }), input -> input.getKey()); } } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java index 730f46fa8b7..9dbf9c1639d 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java @@ -40,7 +40,6 @@ import java.util.function.BiConsumer; import java.util.function.Consumer; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Joiner; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.base.Stopwatch; @@ -51,7 +50,6 @@ import org.apache.jackrabbit.guava.common.collect.Sets; import org.apache.jackrabbit.oak.commons.sort.StringSort; -import org.apache.jackrabbit.oak.plugins.document.NodeDocument.SplitDocType; import org.apache.jackrabbit.oak.plugins.document.UpdateOp.Key; import org.apache.jackrabbit.oak.plugins.document.UpdateOp.Operation; import org.apache.jackrabbit.oak.plugins.document.UpdateOp.Operation.Type; @@ -2271,22 +2269,11 @@ private Iterator previousDocIdsFor(NodeDocument doc) { // documents only. final Path path = doc.getPath(); return Iterators.transform(prevRanges.entrySet().iterator(), - new Function, String>() { - @Override - public String apply(Map.Entry input) { - int h = input.getValue().getHeight(); - return Utils.getPreviousIdFor(path, input.getKey(), h); - } - }); + input -> Utils.getPreviousIdFor(path, input.getKey(), input.getValue().getHeight())); } else { // need to fetch the previous documents to get their ids return Iterators.transform(doc.getAllPreviousDocs(), - new Function() { - @Override - public String apply(NodeDocument input) { - return input.getId(); - } - }); + input -> input.getId()); } } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java index f87d3e557df..531850c408c 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java @@ -93,7 +93,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Maps; import com.mongodb.BasicDBObject; import com.mongodb.MongoException; @@ -1365,20 +1364,10 @@ public List createOrUpdate(Collection collection, } } catch (MongoException e) { throw handleException(e, collection, Iterables.transform(updateOps, - new Function() { - @Override - public String apply(UpdateOp input) { - return input.getId(); - } - })); + input -> input.getId())); } finally { stats.doneCreateOrUpdate(watch.elapsed(TimeUnit.NANOSECONDS), - collection, Lists.transform(updateOps, new Function() { - @Override - public String apply(UpdateOp input) { - return input.getId(); - } - })); + collection, Lists.transform(updateOps, input -> input.getId())); } List resultList = new ArrayList(results.values()); log("createOrUpdate returns", resultList); @@ -1538,12 +1527,7 @@ private Map bulkUpdate(Collection collectio } private static Map createMap(List updateOps) { - return Maps.uniqueIndex(updateOps, new Function() { - @Override - public String apply(UpdateOp input) { - return input.getId(); - } - }); + return Maps.uniqueIndex(updateOps, input -> input.getId()); } private Map findDocuments(Collection collection, Set keys) { diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java index f20f51d5513..62bc6c6508c 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoVersionGCSupport.java @@ -16,13 +16,11 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.jackrabbit.oak.plugins.document.mongo; import static com.mongodb.client.model.Filters.eq; import static com.mongodb.client.model.Filters.exists; import static com.mongodb.client.model.Filters.gt; -import static com.mongodb.client.model.Filters.not; import static com.mongodb.client.model.Filters.or; import static com.mongodb.client.model.Projections.include; import static java.util.Optional.empty; @@ -73,7 +71,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Joiner; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.base.StandardSystemProperty; @@ -337,17 +334,13 @@ protected Iterable identifyGarbage(final Set gcTypes // queries alone (15min is still long). Iterable iterable = filter(transform(getNodeCollection().find(query) .maxTime(15, TimeUnit.MINUTES).hint(hint), - new Function() { - @Override - public NodeDocument apply(BasicDBObject input) { - return store.convertFromDBObject(NODES, input); - } - }), new Predicate() { - @Override - public boolean apply(NodeDocument input) { - return !isDefaultNoBranchSplitNewerThan(input, sweepRevs); - } - }); + input -> store.convertFromDBObject(NODES, input)), + new Predicate() { + @Override + public boolean apply(NodeDocument input) { + return !isDefaultNoBranchSplitNewerThan(input, sweepRevs); + } + }); allResults = concat(allResults, iterable); } return allResults; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java index 8639e54e0da..a066d94b892 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java @@ -31,6 +31,7 @@ import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ExecutionException; +import java.util.function.Function; import org.apache.jackrabbit.guava.common.cache.Cache; import org.apache.jackrabbit.guava.common.cache.CacheStats; @@ -52,8 +53,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; - class NodeCache implements Cache, GenerationCache, EvictionListener { @@ -175,7 +174,7 @@ public Void apply(@Nullable WriteBuffer buffer) { } return null; } - }); + }::apply); } private void write(final K key, final V value) { diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/PersistentCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/PersistentCache.java index 141f81d223e..cf58336e0f5 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/PersistentCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/PersistentCache.java @@ -25,6 +25,7 @@ import java.util.TreeSet; import java.util.UUID; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Function; import org.apache.jackrabbit.guava.common.cache.Cache; import org.apache.jackrabbit.oak.cache.CacheValue; @@ -46,8 +47,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; - /** * A persistent cache for the document store. */ diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java index 82c09e213dd..c7f20564bff 100755 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java @@ -88,7 +88,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Stopwatch; import org.apache.jackrabbit.guava.common.base.Strings; import org.apache.jackrabbit.guava.common.collect.ImmutableMap; @@ -446,12 +445,7 @@ private List internalCreateOrUpdate(Collection collec } } stats.doneCreateOrUpdate(watch.elapsed(TimeUnit.NANOSECONDS), - collection, Lists.transform(updateOps, new Function() { - @Override - public String apply(UpdateOp input) { - return input.getId(); - } - })); + collection, Lists.transform(updateOps, input -> input.getId())); return new ArrayList(results.values()); } @@ -1866,12 +1860,7 @@ public Iterator iterator() { Iterator res = db.queryAsIterator(ch, tmd, from, to, excludeKeyPatterns, conditions, limit, sortBy); returned.add(res); - Iterator tmp = Iterators.transform(res, new Function() { - @Override - public T apply(RDBRow input) { - return convertFromDBObject(collection, input); - } - }); + Iterator tmp = Iterators.transform(res, input -> convertFromDBObject(collection, input)); return CloseableIterator.wrap(tmp, (Closeable) res); } catch (SQLException ex) { throw new RuntimeException(ex); diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java index 5caa65d8758..4ee8a1e41a7 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStoreJDBC.java @@ -61,7 +61,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Strings; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Lists; @@ -432,7 +431,7 @@ public Set update(Connection connection, RDBTableMe } private static void assertNoDuplicatedIds(List documents) { - if (newHashSet(transform(documents, idExtractor)).size() < documents.size()) { + if (newHashSet(transform(documents, input -> input.getId())).size() < documents.size()) { throw new IllegalArgumentException("There are duplicated ids in the document list"); } } @@ -1127,11 +1126,4 @@ public int compare(T o1, T o2) { }); return result; } - - private static final Function idExtractor = new Function() { - @Override - public String apply(Document input) { - return input.getId(); - } - }; } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java index bc8dc15d63e..84581d2f319 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/secondary/DelegatingDocumentNodeState.java @@ -19,7 +19,7 @@ package org.apache.jackrabbit.oak.plugins.document.secondary; -import org.apache.jackrabbit.guava.common.base.Function; + import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.oak.api.PropertyState; @@ -178,13 +178,8 @@ public NodeState getChildNode(@NotNull String name) throws IllegalArgumentExcept @NotNull @Override public Iterable getChildNodeEntries() { - return Iterables.transform(delegate.getChildNodeEntries(), new Function() { - @Nullable - @Override - public ChildNodeEntry apply(ChildNodeEntry input) { - return new MemoryChildNodeEntry(input.getName(), decorate(input.getName(), input.getNodeState())); - } - }); + return Iterables.transform(delegate.getChildNodeEntries(), + input -> new MemoryChildNodeEntry(input.getName(), decorate(input.getName(), input.getNodeState()))); } @NotNull diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/Utils.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/Utils.java index 53ab10cc255..d0844c6238b 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/Utils.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/Utils.java @@ -38,7 +38,6 @@ import java.util.TreeMap; import java.util.stream.Collectors; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.collect.AbstractIterator; import org.apache.jackrabbit.oak.commons.OakVersion; @@ -983,12 +982,7 @@ public static boolean isHiddenPath(@NotNull String path) { */ public static Iterable asStringValueIterable( @NotNull Iterable values) { - return transform(values, new Function() { - @Override - public StringValue apply(String input) { - return new StringValue(input); - } - }); + return transform(values, input -> new StringValue(input)); } /** diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoVersionGCSupportDefaultNoBranchTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoVersionGCSupportDefaultNoBranchTest.java index 52cb467a4f1..48f617e654f 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoVersionGCSupportDefaultNoBranchTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MongoVersionGCSupportDefaultNoBranchTest.java @@ -35,6 +35,7 @@ import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Function; import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.commons.PathUtils; @@ -58,7 +59,6 @@ import org.junit.runner.RunWith; import org.junit.runners.Parameterized; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Iterators; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TestUtils.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TestUtils.java index d498ab1d18d..184a4f3b520 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TestUtils.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TestUtils.java @@ -18,9 +18,8 @@ import java.util.Iterator; import java.util.Map; -import java.util.NavigableMap; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Functions; import org.apache.jackrabbit.guava.common.base.Predicate; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java index 58c1f0ef160..4b89c52d7c9 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java @@ -97,7 +97,6 @@ import static org.junit.Assume.assumeThat; import static org.junit.Assume.assumeTrue; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.cache.Cache; import org.apache.jackrabbit.guava.common.collect.AbstractIterator; @@ -3275,12 +3274,7 @@ public void invalidateCacheOnMissingPreviousDocument() throws Exception { Long modCount = foo.getModCount(); assertNotNull(modCount); List prevIds = Lists.newArrayList(Iterators.transform( - foo.getPreviousDocLeaves(), new Function() { - @Override - public String apply(NodeDocument input) { - return input.getId(); - } - })); + foo.getPreviousDocLeaves(), input -> input.getId())); // run gc on another document node store createSecondaryStore(LeaseCheckMode.LENIENT); From 57e9e3a43cd9c30d2cfa6ae26ff155877c579bad Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Fri, 12 Jul 2024 12:20:26 +0100 Subject: [PATCH 05/26] OAK-10945: Remove usage of Guava Function interface (oak-store-composite) --- .../oak/composite/CompositeChildrenCountTest.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java b/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java index 8469917df50..4f9d3c147e4 100644 --- a/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java +++ b/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java @@ -18,7 +18,6 @@ */ package org.apache.jackrabbit.oak.composite; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Lists; @@ -40,6 +39,7 @@ import java.util.List; import java.util.Map; +import java.util.function.Function; import static org.apache.jackrabbit.guava.common.collect.Iterables.cycle; import static org.apache.jackrabbit.guava.common.collect.Iterables.limit; @@ -224,13 +224,7 @@ public Iterable getChildNodeEntries() { Iterable childrenIterable = cycle(new MemoryChildNodeEntry("child", EMPTY_NODE)); return asCountingIterable(limit(childrenIterable, childrenCount == MAX_VALUE ? 1000 : (int) childrenCount)); } else { - return asCountingIterable(transform(asList(children), new Function() { - @Nullable - @Override - public ChildNodeEntry apply(@Nullable String input) { - return new MemoryChildNodeEntry(input, EMPTY_NODE); - } - })); + return asCountingIterable(transform(asList(children), input -> new MemoryChildNodeEntry(input, EMPTY_NODE))); } } @@ -253,7 +247,7 @@ public T apply(@Nullable T input) { fetchedChildren++; return input; } - }); + }::apply); } } } From 77883fb2944b4bdd87df986696cf257104d6c638 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Fri, 12 Jul 2024 13:49:57 +0100 Subject: [PATCH 06/26] OAK-10945: Remove usage of Guava Function interface (oak-segment-tar) --- .../oak/segment/CachingSegmentReader.java | 19 ++++--------------- .../jackrabbit/oak/segment/ReaderCache.java | 3 ++- .../jackrabbit/oak/segment/Revisions.java | 3 +-- .../oak/segment/WriterCacheManager.java | 9 ++------- .../oak/segment/file/ReadOnlyRevisions.java | 2 +- .../oak/segment/file/TarRevisions.java | 3 +-- .../segment/file/tooling/RevisionHistory.java | 4 ++-- .../segment/memory/MemoryStoreRevisions.java | 2 +- .../oak/segment/tool/PrintingDiff.java | 4 ++-- .../jackrabbit/oak/segment/tool/Utils.java | 12 ++---------- .../oak/segment/ReaderCacheTest.java | 3 +-- .../oak/segment/file/TarRevisionsTest.java | 2 +- 12 files changed, 20 insertions(+), 46 deletions(-) diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java index 9f6fa1d81ab..c69bb62b531 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java @@ -23,7 +23,6 @@ import java.io.UnsupportedEncodingException; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Supplier; import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.segment.util.SafeEncode; @@ -98,13 +97,8 @@ public String readString(@NotNull RecordId id) { final SegmentId segmentId = id.getSegmentId(); long msb = segmentId.getMostSignificantBits(); long lsb = segmentId.getLeastSignificantBits(); - return stringCache.get(msb, lsb, id.getRecordNumber(), new Function() { - @NotNull - @Override - public String apply(Integer offset) { - return segmentId.getSegment().readString(offset); - } - }); + return stringCache.get(msb, lsb, id.getRecordNumber(), + offset -> segmentId.getSegment().readString(offset)); } @NotNull @@ -122,13 +116,8 @@ public Template readTemplate(@NotNull RecordId id) { final SegmentId segmentId = id.getSegmentId(); long msb = segmentId.getMostSignificantBits(); long lsb = segmentId.getLeastSignificantBits(); - return templateCache.get(msb, lsb, id.getRecordNumber(), new Function() { - @NotNull - @Override - public Template apply(Integer offset) { - return segmentId.getSegment().readTemplate(offset); - } - }); + return templateCache.get(msb, lsb, id.getRecordNumber(), + offset -> segmentId.getSegment().readTemplate(offset)); } private static String safeEncode(String value) { diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java index 0d4e489c1ae..a6e41a4bca1 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java @@ -23,6 +23,7 @@ import static org.apache.jackrabbit.oak.segment.CacheWeights.OBJECT_HEADER_SIZE; import java.util.Arrays; +import java.util.function.Function; import org.apache.jackrabbit.guava.common.cache.Weigher; import org.apache.jackrabbit.oak.cache.CacheLIRS; @@ -30,7 +31,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.apache.jackrabbit.guava.common.base.Function; + /** * A cache consisting of a fast and slow component. The fast cache for small items is based diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Revisions.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Revisions.java index d17d0f0f60b..92b88b7ce04 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Revisions.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/Revisions.java @@ -16,10 +16,9 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.jackrabbit.oak.segment; -import org.apache.jackrabbit.guava.common.base.Function; +import java.util.function.Function; import org.jetbrains.annotations.NotNull; diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java index 0db45bc6e5a..799c716e93a 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java @@ -36,7 +36,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.base.Supplier; @@ -281,12 +280,8 @@ T getGeneration(final int generation) { @NotNull @Override public Iterator iterator() { - return transform(generations.values().iterator(), new Function, T>() { - @Nullable @Override - public T apply(Supplier cacheFactory) { - return cacheFactory.get(); - } - }); + return transform(generations.values().iterator(), + cacheFactory -> cacheFactory.get()); } void evictGenerations(@NotNull Predicate evict) { diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyRevisions.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyRevisions.java index 985853de231..32e229daf01 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyRevisions.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyRevisions.java @@ -25,8 +25,8 @@ import java.io.Closeable; import java.io.IOException; import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.oak.segment.RecordId; import org.apache.jackrabbit.oak.segment.Revisions; import org.apache.jackrabbit.oak.segment.SegmentIdProvider; diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/TarRevisions.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/TarRevisions.java index b484629e0a0..485b4384e4a 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/TarRevisions.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/TarRevisions.java @@ -16,7 +16,6 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.jackrabbit.oak.segment.file; import static org.apache.jackrabbit.guava.common.base.Preconditions.checkState; @@ -32,8 +31,8 @@ import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantReadWriteLock; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Supplier; import org.apache.jackrabbit.oak.segment.RecordId; import org.apache.jackrabbit.oak.segment.Revisions; diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/RevisionHistory.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/RevisionHistory.java index 1241ffb214c..9660dc892b8 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/RevisionHistory.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/RevisionHistory.java @@ -27,8 +27,8 @@ import java.io.File; import java.io.IOException; import java.util.Iterator; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.oak.json.BlobSerializer; import org.apache.jackrabbit.oak.json.JsonSerializer; @@ -88,7 +88,7 @@ public HistoryElement apply(JournalEntry entry) { NodeState node = getNode(store.getHead(), path); return new HistoryElement(entry.getRevision(), node); } - }); + }::apply); } } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStoreRevisions.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStoreRevisions.java index 53c3b92d7d2..dab99d8c072 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStoreRevisions.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStoreRevisions.java @@ -23,8 +23,8 @@ import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE; import java.io.IOException; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.oak.segment.RecordId; import org.apache.jackrabbit.oak.segment.Revisions; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/PrintingDiff.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/PrintingDiff.java index 7920bc36a49..3cea0f777d8 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/PrintingDiff.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/PrintingDiff.java @@ -28,8 +28,8 @@ import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.MISSING_NODE; import java.io.PrintWriter; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.oak.api.Blob; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.spi.state.NodeState; @@ -112,7 +112,7 @@ private static String toString(PropertyState ps) { String v = BLOB_LENGTH.apply(ps.getValue(BINARY)); val.append(" = {").append(v).append("}"); } else if (ps.getType() == BINARIES) { - String v = transform(ps.getValue(BINARIES), BLOB_LENGTH).toString(); + String v = transform(ps.getValue(BINARIES), BLOB_LENGTH::apply).toString(); val.append("[").append(ps.count()).append("] = ").append(v); } else if (ps.isArray()) { val.append("[").append(ps.count()).append("] = ").append(ps.getValue(STRINGS)); diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/Utils.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/Utils.java index 06ea7b87f26..4c73ac90669 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/Utils.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/Utils.java @@ -26,20 +26,17 @@ import java.util.Iterator; import java.util.List; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.oak.commons.json.JsonObject; import org.apache.jackrabbit.oak.commons.json.JsopTokenizer; import org.apache.jackrabbit.oak.segment.SegmentId; import org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException; -import org.apache.jackrabbit.oak.segment.file.JournalEntry; import org.apache.jackrabbit.oak.segment.file.JournalReader; import org.apache.jackrabbit.oak.segment.file.ReadOnlyFileStore; import org.apache.jackrabbit.oak.segment.file.tar.LocalJournalFile; import org.apache.jackrabbit.oak.segment.file.tooling.BasicReadOnlyBlobStore; import org.apache.jackrabbit.oak.segment.spi.persistence.JournalFile; import org.apache.jackrabbit.oak.spi.blob.BlobStore; -import org.jetbrains.annotations.NotNull; public final class Utils { @@ -77,13 +74,8 @@ public static List readRevisions(File store) { if (journal.exists()) { try (JournalReader journalReader = new JournalReader(journal)) { - Iterator revisionIterator = Iterators.transform(journalReader, new Function() { - @NotNull - @Override - public String apply(JournalEntry entry) { - return entry.getRevision(); - } - }); + Iterator revisionIterator = Iterators.transform(journalReader, + entry -> entry.getRevision()); return newArrayList(revisionIterator); } catch (Exception e) { e.printStackTrace(); diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ReaderCacheTest.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ReaderCacheTest.java index 502b69e5a5b..e0bfafa37c8 100644 --- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ReaderCacheTest.java +++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ReaderCacheTest.java @@ -26,13 +26,12 @@ import java.util.ArrayList; import java.util.Random; import java.util.concurrent.atomic.AtomicInteger; +import java.util.function.Function; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.junit.Test; -import org.apache.jackrabbit.guava.common.base.Function; - public class ReaderCacheTest { @Test diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/TarRevisionsTest.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/TarRevisionsTest.java index 0d4a5f89b07..05cbe069265 100644 --- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/TarRevisionsTest.java +++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/TarRevisionsTest.java @@ -34,8 +34,8 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeoutException; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Functions; import org.apache.jackrabbit.guava.common.util.concurrent.ListenableFuture; import org.apache.jackrabbit.guava.common.util.concurrent.ListeningExecutorService; From cabbe23ab53b3377573cad8e3fbd24275f8f5176 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Fri, 12 Jul 2024 14:25:20 +0100 Subject: [PATCH 07/26] OAK-10945: Remove usage of Guava Function interface (oak-segment-azure) --- .../jackrabbit/oak/segment/azure/tool/ToolUtils.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/ToolUtils.java b/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/ToolUtils.java index f1845bc0a64..20283ef77b8 100644 --- a/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/ToolUtils.java +++ b/oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/ToolUtils.java @@ -61,7 +61,6 @@ import org.apache.jackrabbit.oak.segment.spi.persistence.persistentcache.PersistentCache; import org.apache.jackrabbit.guava.common.base.Stopwatch; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterators; import com.microsoft.azure.storage.StorageCredentials; @@ -212,13 +211,8 @@ public static List readRevisions(String uri) { if (journal.exists()) { try (JournalReader journalReader = new JournalReader(journal)) { - Iterator revisionIterator = Iterators.transform(journalReader, new Function() { - @NotNull - @Override - public String apply(JournalEntry entry) { - return entry.getRevision(); - } - }); + Iterator revisionIterator = Iterators.transform(journalReader, + entry -> entry.getRevision()); return newArrayList(revisionIterator); } catch (Exception e) { e.printStackTrace(); From a56211ed1dbed4abf813931c11e88434e2c0ec38 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Fri, 12 Jul 2024 14:37:20 +0100 Subject: [PATCH 08/26] OAK-10945: Remove usage of Guava Function interface (oak-security-spi) --- .../spi/security/CompositeConfiguration.java | 36 ++++++------------- .../credentials/SimpleCredentialsSupport.java | 10 ++---- .../token/CompositeTokenConfiguration.java | 10 ++---- .../privilege/PrivilegeBitsProvider.java | 5 +-- 4 files changed, 18 insertions(+), 43 deletions(-) diff --git a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/CompositeConfiguration.java b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/CompositeConfiguration.java index 092275b7d02..8a131765e68 100644 --- a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/CompositeConfiguration.java +++ b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/CompositeConfiguration.java @@ -18,7 +18,6 @@ */ package org.apache.jackrabbit.oak.spi.security; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.ImmutableList; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Lists; @@ -51,6 +50,7 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.function.Function; /** * Abstract base implementation for {@link SecurityConfiguration}s that can @@ -205,34 +205,22 @@ public ConfigurationParameters getParameters() { @NotNull @Override public WorkspaceInitializer getWorkspaceInitializer() { - return new CompositeWorkspaceInitializer(Lists.transform(getConfigurations(), new Function() { - @Override - public WorkspaceInitializer apply(T securityConfiguration) { - return securityConfiguration.getWorkspaceInitializer(); - } - })); + return new CompositeWorkspaceInitializer(Lists.transform(getConfigurations(), + securityConfiguration -> securityConfiguration.getWorkspaceInitializer())); } @NotNull @Override public RepositoryInitializer getRepositoryInitializer() { - return new CompositeInitializer(Lists.transform(getConfigurations(), new Function() { - @Override - public RepositoryInitializer apply(T securityConfiguration) { - return securityConfiguration.getRepositoryInitializer(); - } - })); + return new CompositeInitializer(Lists.transform(getConfigurations(), + securityConfiguration -> securityConfiguration.getRepositoryInitializer())); } @NotNull @Override public List getCommitHooks(@NotNull final String workspaceName) { - Iterable t = Iterables.concat(Lists.transform(getConfigurations(), new Function>() { - @Override - public List apply(T securityConfiguration) { - return securityConfiguration.getCommitHooks(workspaceName); - } - })); + Iterable t = Iterables.concat(Lists.transform(getConfigurations(), + securityConfiguration -> securityConfiguration.getCommitHooks(workspaceName))); return ImmutableList.copyOf(t); } @@ -252,12 +240,8 @@ public List getConflictHandlers() { @NotNull @Override public List getProtectedItemImporters() { - Iterable t = Iterables.concat(Lists.transform(getConfigurations(), new Function>() { - @Override - public List apply(T securityConfiguration) { - return securityConfiguration.getProtectedItemImporters(); - } - })); + Iterable t = Iterables.concat(Lists.transform(getConfigurations(), + securityConfiguration -> securityConfiguration.getProtectedItemImporters())); return ImmutableList.copyOf(t); } @@ -307,7 +291,7 @@ private static final class CompositeContext implements Context { private void refresh(@NotNull List configurations) { Set s = Sets.newLinkedHashSetWithExpectedSize(configurations.size()); - for (Context c : Iterables.transform(configurations, ContextFunction.INSTANCE)) { + for (Context c : Iterables.transform(configurations, ContextFunction.INSTANCE::apply)) { if (DEFAULT != c) { s.add(c); } diff --git a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/SimpleCredentialsSupport.java b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/SimpleCredentialsSupport.java index b5ea558753a..47011218563 100644 --- a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/SimpleCredentialsSupport.java +++ b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/credentials/SimpleCredentialsSupport.java @@ -23,7 +23,6 @@ import javax.jcr.Credentials; import javax.jcr.SimpleCredentials; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.ImmutableSet; import org.apache.jackrabbit.guava.common.collect.Maps; @@ -66,13 +65,8 @@ public String getUserId(@NotNull Credentials credentials) { public Map getAttributes(@NotNull Credentials credentials) { if (credentials instanceof SimpleCredentials) { final SimpleCredentials sc = (SimpleCredentials) credentials; - return Maps.asMap(ImmutableSet.copyOf(sc.getAttributeNames()), new Function() { - @Nullable - @Override - public Object apply(String input) { - return sc.getAttribute(input); - } - }); + return Maps.asMap(ImmutableSet.copyOf(sc.getAttributeNames()), + input -> sc.getAttribute(input)); } else { return Collections.emptyMap(); } diff --git a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/token/CompositeTokenConfiguration.java b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/token/CompositeTokenConfiguration.java index 0af35372189..fffe95cfb71 100644 --- a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/token/CompositeTokenConfiguration.java +++ b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/token/CompositeTokenConfiguration.java @@ -17,7 +17,7 @@ package org.apache.jackrabbit.oak.spi.security.authentication.token; import java.util.List; -import org.apache.jackrabbit.guava.common.base.Function; + import org.apache.jackrabbit.guava.common.collect.Lists; import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.spi.security.CompositeConfiguration; @@ -40,12 +40,8 @@ public CompositeTokenConfiguration(@NotNull SecurityProvider securityProvider) { @NotNull @Override public TokenProvider getTokenProvider(@NotNull final Root root) { - List providers = Lists.transform(getConfigurations(), new Function() { - @Override - public TokenProvider apply(TokenConfiguration tokenConfiguration) { - return tokenConfiguration.getTokenProvider(root); - } - }); + List providers = Lists.transform(getConfigurations(), + tokenConfiguration -> tokenConfiguration.getTokenProvider(root)); return CompositeTokenProvider.newInstance(providers); } } diff --git a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProvider.java b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProvider.java index b8cfb4cabdd..1e0bb2def92 100644 --- a/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProvider.java +++ b/oak-security-spi/src/main/java/org/apache/jackrabbit/oak/spi/security/privilege/PrivilegeBitsProvider.java @@ -22,10 +22,11 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; +import java.util.function.Function; + import javax.jcr.security.AccessControlException; import javax.jcr.security.Privilege; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicates; import org.apache.jackrabbit.guava.common.collect.FluentIterable; import org.apache.jackrabbit.guava.common.collect.ImmutableSet; @@ -261,7 +262,7 @@ public Iterable getAggregatedPrivilegeNames(@NotNull String... privilege @NotNull private Iterable extractAggregatedPrivileges(@NotNull Iterable privilegeNames) { - return FluentIterable.from(privilegeNames).transformAndConcat(new ExtractAggregatedPrivileges()); + return FluentIterable.from(privilegeNames).transformAndConcat(new ExtractAggregatedPrivileges()::apply); } @NotNull From 2dee09940a9fec95f2bbf6e70868a4a48fbdc15c Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Fri, 12 Jul 2024 14:52:36 +0100 Subject: [PATCH 09/26] OAK-10945: Remove usage of Guava Function interface (oak-security-search) --- .../jackrabbit/oak/plugins/index/search/AggregateTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/search/AggregateTest.java b/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/search/AggregateTest.java index bd369b42529..38ac728f152 100644 --- a/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/search/AggregateTest.java +++ b/oak-search/src/test/java/org/apache/jackrabbit/oak/plugins/index/search/AggregateTest.java @@ -28,7 +28,6 @@ import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.ArrayListMultimap; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.ListMultimap; @@ -106,7 +105,7 @@ public void noOfChildNodeRead() { NodeState state = nb.getNodeState(); final AtomicInteger counter = new AtomicInteger(); Iterable countingIterator = Iterables.transform(state.getChildNodeEntries(), - (Function) input -> { + input -> { counter.incrementAndGet(); return input; }); From 441c749450afc53651dae8b20351afaa6b33599b Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Fri, 12 Jul 2024 15:02:18 +0100 Subject: [PATCH 10/26] OAK-10945: Remove usage of Guava Function interface (oak-run-commons) --- .../plugins/document/DocumentNodeStoreHelper.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreHelper.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreHelper.java index 9cb26f2e0b6..448a0d644dc 100644 --- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreHelper.java +++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreHelper.java @@ -35,15 +35,12 @@ import org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStoreHelper; import org.apache.jackrabbit.oak.plugins.document.util.Utils; import org.bson.conversions.Bson; -import org.jetbrains.annotations.Nullable; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Stopwatch; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Lists; import org.apache.jackrabbit.guava.common.primitives.Longs; import com.mongodb.BasicDBObject; -import com.mongodb.DBObject; import com.mongodb.client.FindIterable; import com.mongodb.client.MongoCollection; import com.mongodb.client.model.Filters; @@ -156,13 +153,8 @@ private static Iterable getDocuments(DocumentStore store) { mds, Collection.NODES); Bson query = Filters.eq(NodeDocument.HAS_BINARY_FLAG, NodeDocument.HAS_BINARY_VAL); FindIterable cursor = dbCol.find(query); - return Iterables.transform(cursor, new Function() { - @Nullable - @Override - public NodeDocument apply(DBObject input) { - return MongoDocumentStoreHelper.convertFromDBObject(mds, Collection.NODES, input); - } - }); + return Iterables.transform(cursor, + input -> MongoDocumentStoreHelper.convertFromDBObject(mds, Collection.NODES, input)); } else { return Utils.getSelectedDocuments(store, NodeDocument.HAS_BINARY_FLAG, NodeDocument.HAS_BINARY_VAL); From d35fa3db2f5eef2f6f2f1e5822e5def76b1505c8 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Fri, 12 Jul 2024 15:21:03 +0100 Subject: [PATCH 11/26] OAK-10945: Remove usage of Guava Function interface (oak-run) --- .../AbstractSegmentTarExplorerBackend.java | 9 +-------- .../tika/CSVFileBinaryResourceProvider.java | 5 ++--- .../tika/NodeStoreBinaryResourceProvider.java | 5 +++-- .../oak/run/DataStoreCheckCommand.java | 2 +- .../jackrabbit/oak/run/PrintingDiff.java | 5 ++--- .../oak/plugins/tika/BinarySourceMapper.java | 3 +-- .../CSVFileBinaryResourceProviderTest.java | 5 ++--- .../jackrabbit/oak/run/DataStoreCheckTest.java | 18 +++++------------- .../oak/run/DataStoreCommandTest.java | 16 ++++------------ 9 files changed, 21 insertions(+), 47 deletions(-) diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/AbstractSegmentTarExplorerBackend.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/AbstractSegmentTarExplorerBackend.java index 2c929dfd4ca..55696e8f809 100644 --- a/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/AbstractSegmentTarExplorerBackend.java +++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/AbstractSegmentTarExplorerBackend.java @@ -18,7 +18,6 @@ */ package org.apache.jackrabbit.oak.explorer; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.guava.common.collect.Maps; import org.apache.jackrabbit.oak.api.Blob; @@ -29,7 +28,6 @@ import org.apache.jackrabbit.oak.segment.SegmentNodeState; import org.apache.jackrabbit.oak.segment.SegmentNodeStateHelper; import org.apache.jackrabbit.oak.segment.SegmentPropertyState; -import org.apache.jackrabbit.oak.segment.file.JournalEntry; import org.apache.jackrabbit.oak.segment.file.JournalReader; import org.apache.jackrabbit.oak.segment.file.ReadOnlyFileStore; import org.apache.jackrabbit.oak.segment.spi.persistence.JournalFile; @@ -84,12 +82,7 @@ public List readRevisions() { try { journalReader = new JournalReader(journal); Iterator revisionIterator = Iterators.transform(journalReader, - new Function() { - @Override - public String apply(JournalEntry entry) { - return entry.getRevision(); - } - }); + entry -> entry.getRevision()); try { revs = newArrayList(revisionIterator); diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/tika/CSVFileBinaryResourceProvider.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/tika/CSVFileBinaryResourceProvider.java index 5b46b310936..2066a69d35b 100644 --- a/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/tika/CSVFileBinaryResourceProvider.java +++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/tika/CSVFileBinaryResourceProvider.java @@ -16,15 +16,14 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.jackrabbit.oak.plugins.tika; import java.io.Closeable; import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.collect.FluentIterable; import org.apache.jackrabbit.guava.common.io.Closer; @@ -75,7 +74,7 @@ public FluentIterable getBinaries(final String path) throws IOEx CSVParser parser = CSVParser.parse(dataFile, StandardCharsets.UTF_8, FORMAT); closer.register(parser); return FluentIterable.from(parser) - .transform(new RecordTransformer()) + .transform(new RecordTransformer()::apply) .filter(notNull()) .filter(new Predicate() { @Override diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/tika/NodeStoreBinaryResourceProvider.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/tika/NodeStoreBinaryResourceProvider.java index 53669591820..658787a73be 100644 --- a/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/tika/NodeStoreBinaryResourceProvider.java +++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/plugins/tika/NodeStoreBinaryResourceProvider.java @@ -19,7 +19,6 @@ package org.apache.jackrabbit.oak.plugins.tika; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.FluentIterable; import org.apache.jackrabbit.guava.common.collect.TreeTraverser; import org.apache.jackrabbit.JcrConstants; @@ -37,6 +36,8 @@ import static org.apache.jackrabbit.oak.plugins.tree.factories.TreeFactory.createReadOnlyTree; import static org.apache.jackrabbit.oak.spi.state.NodeStateUtils.getNode; +import java.util.function.Function; + class NodeStoreBinaryResourceProvider implements BinaryResourceProvider { private static final Logger log = LoggerFactory.getLogger(NodeStoreBinaryResourceProvider.class); private final NodeStore nodeStore; @@ -50,7 +51,7 @@ public NodeStoreBinaryResourceProvider(NodeStore nodeStore, BlobStore blobStore) public FluentIterable getBinaries(String path) { return new OakTreeTraverser() .preOrderTraversal(createReadOnlyTree(getNode(nodeStore.getRoot(), path))) - .transform(new TreeToBinarySource()) + .transform(new TreeToBinarySource()::apply) .filter(notNull()); } diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java index 7d3e4c53cc8..6107f2d9608 100644 --- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java +++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCheckCommand.java @@ -45,7 +45,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.jackrabbit.guava.common.base.Function; + import org.apache.jackrabbit.guava.common.base.Joiner; import org.apache.jackrabbit.guava.common.base.Splitter; import org.apache.jackrabbit.guava.common.base.Stopwatch; diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PrintingDiff.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PrintingDiff.java index 1e400b19ebe..1bda8da88e1 100644 --- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PrintingDiff.java +++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/PrintingDiff.java @@ -14,7 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.jackrabbit.oak.run; import static org.apache.jackrabbit.guava.common.collect.Iterables.transform; @@ -28,8 +27,8 @@ import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.MISSING_NODE; import java.io.PrintWriter; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.oak.api.Blob; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.spi.state.NodeState; @@ -127,7 +126,7 @@ private static String toString(PropertyState ps) { String v = BLOB_LENGTH.apply(ps.getValue(BINARY)); val.append(" = {").append(v).append("}"); } else if (ps.getType() == BINARIES) { - String v = transform(ps.getValue(BINARIES), BLOB_LENGTH).toString(); + String v = transform(ps.getValue(BINARIES), BLOB_LENGTH::apply).toString(); val.append("[").append(ps.count()).append("] = ").append(v); } else if (ps.isArray()) { val.append("[").append(ps.count()).append("] = ").append(ps.getValue(STRINGS)); diff --git a/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/tika/BinarySourceMapper.java b/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/tika/BinarySourceMapper.java index 25fa44927d7..1a1d526b88f 100644 --- a/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/tika/BinarySourceMapper.java +++ b/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/tika/BinarySourceMapper.java @@ -16,10 +16,9 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.jackrabbit.oak.plugins.tika; -import org.apache.jackrabbit.guava.common.base.Function; +import java.util.function.Function; public enum BinarySourceMapper implements Function { BY_BLOBID { diff --git a/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/tika/CSVFileBinaryResourceProviderTest.java b/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/tika/CSVFileBinaryResourceProviderTest.java index ebd3a7077e8..62e4c676c5f 100644 --- a/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/tika/CSVFileBinaryResourceProviderTest.java +++ b/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/tika/CSVFileBinaryResourceProviderTest.java @@ -16,7 +16,6 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.jackrabbit.oak.plugins.tika; import java.io.File; @@ -52,12 +51,12 @@ public void testGetBinaries() throws Exception { CSVFileBinaryResourceProvider provider = new CSVFileBinaryResourceProvider(dataFile, new MemoryBlobStore()); - Map binaries = provider.getBinaries("/").uniqueIndex(BinarySourceMapper.BY_BLOBID); + Map binaries = provider.getBinaries("/").uniqueIndex(BinarySourceMapper.BY_BLOBID::apply); assertEquals(3, binaries.size()); assertEquals("a", binaries.get("a").getBlobId()); assertEquals("/a", binaries.get("a").getPath()); - binaries = provider.getBinaries("/a").uniqueIndex(BinarySourceMapper.BY_BLOBID); + binaries = provider.getBinaries("/a").uniqueIndex(BinarySourceMapper.BY_BLOBID::apply); assertEquals(1, binaries.size()); provider.close(); diff --git a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCheckTest.java b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCheckTest.java index 60e720cf311..17f454e6cb3 100644 --- a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCheckTest.java +++ b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCheckTest.java @@ -39,7 +39,6 @@ import java.util.Random; import java.util.Set; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Joiner; import org.apache.jackrabbit.guava.common.collect.ImmutableList; import org.apache.jackrabbit.guava.common.collect.Iterables; @@ -67,7 +66,6 @@ import org.apache.jackrabbit.oak.spi.commit.EmptyHook; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; import org.apache.jackrabbit.oak.spi.state.NodeStore; -import org.jetbrains.annotations.Nullable; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -444,20 +442,14 @@ private static String createTempConfig(File cfgFile, Properties props) throws IO } private static Set encodedIds(Set ids, String dsOption) { - return Sets.newHashSet(Iterators.transform(ids.iterator(), new Function() { - @Nullable @Override public String apply(@Nullable String input) { - return DataStoreCheckCommand.encodeId(input, "--"+dsOption); - } - })); + return Sets.newHashSet(Iterators.transform(ids.iterator(), + input -> DataStoreCheckCommand.encodeId(input, "--" + dsOption))); } private static Set encodedIdsAndPath(Set ids, String dsOption, Map blobsAddedWithNodes) { - return Sets.newHashSet(Iterators.transform(ids.iterator(), new Function() { - @Nullable @Override public String apply(@Nullable String input) { - return Joiner.on(",").join( + return Sets.newHashSet(Iterators.transform(ids.iterator(), + input -> Joiner.on(",").join( DataStoreCheckCommand.encodeId(input, "--"+dsOption), - blobsAddedWithNodes.get(input)); - } - })); + blobsAddedWithNodes.get(input)))); } } diff --git a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java index 63def135d06..d77b05e1cfa 100644 --- a/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java +++ b/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java @@ -38,7 +38,6 @@ import java.util.stream.StreamSupport; import ch.qos.logback.classic.Level; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Joiner; import org.apache.jackrabbit.guava.common.base.Splitter; import org.apache.jackrabbit.guava.common.base.Strings; @@ -87,7 +86,6 @@ import org.apache.jackrabbit.oak.spi.state.NodeBuilder; import org.apache.jackrabbit.oak.spi.state.NodeStore; import org.apache.jackrabbit.oak.stats.Clock; -import org.jetbrains.annotations.Nullable; import org.junit.After; import org.junit.Assert; import org.junit.Assume; @@ -936,19 +934,13 @@ private static String createTempConfig(File cfgFile, Properties props) throws IO private static Set encodedIdsAndPath(Set ids, Type dsOption, Map idToNodes, boolean encodeId) { - return Sets.newHashSet(Iterators.transform(ids.iterator(), new Function() { - @Nullable @Override public String apply(@Nullable String input) { - return Joiner.on(",").join(encodeId ? encodeId(input, dsOption) : input, idToNodes.get(input)); - } - })); + return Sets.newHashSet(Iterators.transform(ids.iterator(), + input -> Joiner.on(",").join(encodeId ? encodeId(input, dsOption) : input, idToNodes.get(input)))); } private static Set encodeIds(Set ids, Type dsOption) { - return Sets.newHashSet(Iterators.transform(ids.iterator(), new Function() { - @Nullable @Override public String apply(@Nullable String input) { - return encodeId(input, dsOption); - } - })); + return Sets.newHashSet(Iterators.transform(ids.iterator(), + input -> encodeId(input, dsOption))); } From b0b9893d2c98b7dc601dca59df03a6543a047381 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Fri, 12 Jul 2024 15:45:23 +0100 Subject: [PATCH 12/26] OAK-10945: Remove usage of Guava Function interface (oak-lucene) --- .../oak/plugins/index/lucene/IndexCopier.java | 16 ++-------- .../index/lucene/hybrid/IndexedPaths.java | 13 ++------ .../lucene/hybrid/LuceneDocumentHolder.java | 30 ++++++++----------- .../lucene/ResultCountingIndexProvider.java | 17 ++++------- 4 files changed, 23 insertions(+), 53 deletions(-) diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java index 7d9d7094fa9..a18f560a0ef 100644 --- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java +++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexCopier.java @@ -16,7 +16,6 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.jackrabbit.oak.plugins.index.lucene; import java.io.Closeable; @@ -41,7 +40,6 @@ import javax.management.openmbean.TabularDataSupport; import javax.management.openmbean.TabularType; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.ImmutableSet; import org.apache.jackrabbit.guava.common.collect.Sets; import org.apache.jackrabbit.guava.common.util.concurrent.Monitor; @@ -612,12 +610,7 @@ public long getLocalIndexDirSize() { @Override public String[] getGarbageDetails() { return toArray(transform(failedToDeleteFiles.values(), - new Function() { - @Override - public String apply(LocalIndexFile input) { - return input.deleteLog(); - } - }), String.class); + input -> input.deleteLog()), String.class); } @Override @@ -661,12 +654,7 @@ public String getSkippedFromUploadSize() { @Override public String[] getCopyInProgressDetails() { return toArray(transform(copyInProgressFiles, - new Function() { - @Override - public String apply(LocalIndexFile input) { - return input.copyLog(); - } - }), String.class); + input -> input.copyLog()), String.class); } @Override diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/IndexedPaths.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/IndexedPaths.java index 5d0f373f581..998a55dfec9 100644 --- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/IndexedPaths.java +++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/IndexedPaths.java @@ -16,14 +16,10 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.jackrabbit.oak.plugins.index.lucene.hybrid; -import java.util.Collection; import java.util.Iterator; -import java.util.Map; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.guava.common.collect.Multimap; import org.apache.jackrabbit.oak.plugins.document.spi.JournalProperty; @@ -40,10 +36,7 @@ public IndexedPaths(Multimap indexedPaths) { @Override public Iterator iterator() { return Iterators.transform(indexedPaths.asMap().entrySet().iterator(), - new Function>, IndexedPathInfo>() { - @Override - public IndexedPathInfo apply(final Map.Entry> input) { - return new IndexedPathInfo() { + input -> new IndexedPathInfo() { @Override public String getPath() { return input.getKey(); @@ -53,9 +46,7 @@ public String getPath() { public Iterable getIndexPaths() { return input.getValue(); } - }; - } - }); + }); } @Override diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java index 83375129d86..6392392fa6d 100644 --- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java +++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java @@ -16,13 +16,11 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.jackrabbit.oak.plugins.index.lucene.hybrid; import java.util.Collection; import java.util.Map; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.ArrayListMultimap; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.ListMultimap; @@ -117,21 +115,19 @@ private boolean queueSizeWithinLimits(){ } private static Iterable asLuceneDocInfo(ListMultimap docs) { - return Iterables.transform(docs.entries(), new Function, LuceneDocInfo>() { - @Override - public LuceneDocInfo apply(final Map.Entry input) { - return new LuceneDocInfo() { - @Override - public String getIndexPath() { - return input.getKey(); - } + return Iterables.transform(docs.entries(), + input -> { + return new LuceneDocInfo() { + @Override + public String getIndexPath() { + return input.getKey(); + } - @Override - public String getDocPath() { - return input.getValue(); - } - }; - } - }); + @Override + public String getDocPath() { + return input.getValue(); + } + }; + }); } } diff --git a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ResultCountingIndexProvider.java b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ResultCountingIndexProvider.java index 6f0946ccf5c..ac7a4d5459c 100644 --- a/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ResultCountingIndexProvider.java +++ b/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ResultCountingIndexProvider.java @@ -16,10 +16,8 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.jackrabbit.oak.plugins.index.lucene; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Lists; import org.apache.jackrabbit.oak.api.Result; import org.apache.jackrabbit.oak.spi.query.Cursor; @@ -32,6 +30,7 @@ import org.jetbrains.annotations.NotNull; import java.util.List; + class ResultCountingIndexProvider implements QueryIndexProvider { private final QueryIndexProvider delegate; private final CountingCursorFactory cursorFactory; @@ -65,15 +64,11 @@ void incrementCount() { @Override public List getQueryIndexes(NodeState nodeState) { if (shouldCount) { - return Lists.transform(delegate.getQueryIndexes(nodeState), new Function() { - @NotNull - @Override - public QueryIndex apply(@NotNull QueryIndex input) { - if (input instanceof AdvanceFulltextQueryIndex) { - return new CountingIndex((AdvanceFulltextQueryIndex)input, cursorFactory); - } else { - return input; - } + return Lists.transform(delegate.getQueryIndexes(nodeState), input -> { + if (input instanceof AdvanceFulltextQueryIndex) { + return new CountingIndex((AdvanceFulltextQueryIndex) input, cursorFactory); + } else { + return input; } }); } else { From bc9f1103e573f1db3fa90b01845baa98eb51f303 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Fri, 12 Jul 2024 17:07:34 +0100 Subject: [PATCH 13/26] OAK-10945: Remove usage of Guava Function interface (oak-jcr) --- .../oak/jcr/delegate/NodeDelegate.java | 16 +++---------- .../jcr/delegate/VersionHistoryDelegate.java | 9 ++------ .../jackrabbit/oak/jcr/session/NodeImpl.java | 23 ++++--------------- .../oak/jcr/version/VersionHistoryImpl.java | 15 ++---------- .../jackrabbit/oak/jcr/xml/ImporterImpl.java | 6 ++--- .../oak/jcr/version/VersionableTest.java | 18 ++++----------- 6 files changed, 20 insertions(+), 67 deletions(-) diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/NodeDelegate.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/NodeDelegate.java index 4bed1fb2464..9316bf10a73 100644 --- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/NodeDelegate.java +++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/NodeDelegate.java @@ -61,6 +61,7 @@ import java.util.Iterator; import java.util.List; import java.util.Set; +import java.util.function.Function; import javax.jcr.InvalidItemStateException; import javax.jcr.ItemNotFoundException; @@ -71,7 +72,6 @@ import javax.jcr.nodetype.NoSuchNodeTypeException; import javax.jcr.security.AccessControlException; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.JcrConstants; @@ -299,12 +299,7 @@ public PropertyDelegate getProperty(String relPath) throws RepositoryException { @NotNull public Iterator getProperties() throws InvalidItemStateException { return transform(getTree().getProperties().iterator(), - new Function() { - @Override - public PropertyDelegate apply(PropertyState propertyState) { - return new PropertyDelegate(sessionDelegate, tree, propertyState.getName()); - } - }); + propertyState -> new PropertyDelegate(sessionDelegate, tree, propertyState.getName())); } /** @@ -355,12 +350,7 @@ public boolean apply(Tree tree) { return tree.exists(); } }), - new Function() { - @Override - public NodeDelegate apply(Tree tree) { - return new NodeDelegate(sessionDelegate, tree); - } - }); + tree -> new NodeDelegate(sessionDelegate, tree)); } public void orderBefore(String source, String target) diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/VersionHistoryDelegate.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/VersionHistoryDelegate.java index 95e05e13b3f..ab67996295b 100644 --- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/VersionHistoryDelegate.java +++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/VersionHistoryDelegate.java @@ -29,7 +29,6 @@ import javax.jcr.version.LabelExistsVersionException; import javax.jcr.version.VersionException; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.JcrConstants; @@ -162,12 +161,8 @@ public int compare(NodeDelegate n1, NodeDelegate n2) { } }); final Tree thisTree = getTree(); - return Iterators.transform(versions.iterator(), new Function() { - @Override - public VersionDelegate apply(NodeDelegate nd) { - return VersionDelegate.create(sessionDelegate, thisTree.getChild(nd.getName())); - } - }); + return Iterators.transform(versions.iterator(), + nd -> VersionDelegate.create(sessionDelegate, thisTree.getChild(nd.getName()))); } @NotNull diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java index b9b992c6368..ead1b743023 100644 --- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java +++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java @@ -64,7 +64,7 @@ import javax.jcr.version.VersionException; import javax.jcr.version.VersionHistory; -import org.apache.jackrabbit.guava.common.base.Function; + import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Iterators; @@ -823,14 +823,11 @@ public PropertyIterator perform() throws InvalidItemStateException { Iterable propertyOakPaths = idManager.getReferences(weak, node.getTree(), name); // TODO: oak name? Iterable properties = Iterables.transform( propertyOakPaths, - new Function() { - @Override - public Property apply(String oakPath) { + oakPath -> { PropertyDelegate pd = sessionDelegate.getProperty(oakPath); return pd == null ? null : new PropertyImpl(pd, sessionContext); } - } - ); + ); return new PropertyIteratorAdapter(sessionDelegate.sync(properties.iterator())); } @@ -1374,23 +1371,13 @@ private EffectiveNodeType getEffectiveNodeType() throws RepositoryException { private Iterator nodeIterator(Iterator childNodes) { return sessionDelegate.sync(transform( childNodes, - new Function() { - @Override - public Node apply(NodeDelegate nodeDelegate) { - return new NodeImpl(nodeDelegate, sessionContext); - } - })); + nodeDelegate -> new NodeImpl(nodeDelegate, sessionContext))); } private Iterator propertyIterator(Iterator properties) { return sessionDelegate.sync(transform( properties, - new Function() { - @Override - public Property apply(PropertyDelegate propertyDelegate) { - return new PropertyImpl(propertyDelegate, sessionContext); - } - })); + propertyDelegate -> new PropertyImpl(propertyDelegate, sessionContext))); } private void checkValidWorkspace(String workspaceName) diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/version/VersionHistoryImpl.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/version/VersionHistoryImpl.java index e5bd7a3f0cf..e1160a78a5b 100644 --- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/version/VersionHistoryImpl.java +++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/version/VersionHistoryImpl.java @@ -34,7 +34,6 @@ import javax.jcr.version.VersionHistory; import javax.jcr.version.VersionIterator; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.commons.iterator.FrozenNodeIteratorAdapter; import org.apache.jackrabbit.commons.iterator.VersionIteratorAdapter; import org.apache.jackrabbit.oak.jcr.delegate.VersionDelegate; @@ -88,12 +87,7 @@ public VersionIterator getAllLinearVersions() throws RepositoryException { @Override public VersionIterator perform() throws RepositoryException { Iterator versions = transform(dlg.getAllLinearVersions(), - new Function() { - @Override - public Version apply(VersionDelegate input) { - return new VersionImpl(input, sessionContext); - } - }); + input -> new VersionImpl(input, sessionContext)); return new VersionIteratorAdapter(sessionDelegate.sync(versions)); } }); @@ -106,12 +100,7 @@ public VersionIterator getAllVersions() throws RepositoryException { @Override public VersionIterator perform() throws RepositoryException { Iterator versions = transform(dlg.getAllVersions(), - new Function() { - @Override - public Version apply(VersionDelegate input) { - return new VersionImpl(input, sessionContext); - } - }); + input -> new VersionImpl(input, sessionContext)); return new VersionIteratorAdapter(sessionDelegate.sync(versions)); } }); diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java index d53ac86d11a..44fe8963c90 100644 --- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java +++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java @@ -23,6 +23,7 @@ import java.util.Set; import java.util.Stack; import java.util.UUID; +import java.util.function.Function; import javax.jcr.ImportUUIDBehavior; import javax.jcr.ItemExistsException; @@ -36,7 +37,6 @@ import javax.jcr.nodetype.PropertyDefinition; import javax.jcr.version.VersionException; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicates; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Lists; @@ -309,7 +309,7 @@ public ProtectedPropertyImporter apply(@Nullable ProtectedItemImporter importer) return null; } } - }), Predicates.notNull()); + }::apply), Predicates.notNull()); } private Iterable getNodeImporters() { @@ -323,7 +323,7 @@ public ProtectedNodeImporter apply(@Nullable ProtectedItemImporter importer) { return null; } } - }), Predicates.notNull()); + }::apply), Predicates.notNull()); } //-----------------------------------------------------------< Importer >--- diff --git a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionableTest.java b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionableTest.java index 2ffc9328157..822cf62f87f 100644 --- a/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionableTest.java +++ b/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/version/VersionableTest.java @@ -28,15 +28,12 @@ import javax.jcr.version.VersionHistory; import javax.jcr.version.VersionManager; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.JcrConstants; import org.apache.jackrabbit.commons.jackrabbit.authorization.AccessControlUtils; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal; import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants; import org.apache.jackrabbit.test.AbstractJCRTest; -import org.jetbrains.annotations.Nullable; -import org.junit.Test; import java.util.Set; @@ -442,17 +439,12 @@ private static void assertSuccessors(VersionHistory history, Set expecte } private static Set getNames(Version[] versions) { - return newHashSet(transform(asList(versions), new Function() { - @Nullable - @Override - public String apply(@Nullable Version input) { - try { - return input.getName(); - } catch (RepositoryException e) { - return null; - } + return newHashSet(transform(asList(versions), input -> { + try { + return input.getName(); + } catch (RepositoryException e) { + return null; } })); } - } From d385fe9b92ff0ffb718a050a0caec2e3c46acdbb Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Fri, 12 Jul 2024 17:20:12 +0100 Subject: [PATCH 14/26] OAK-10945: Remove usage of Guava Function interface (oak-exercise) --- .../external/CustomExternalIdentityProvider.java | 11 ++--------- .../security/privilege/L4_CustomPrivilegeTest.java | 11 ++--------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/oak-exercise/src/main/java/org/apache/jackrabbit/oak/exercise/security/authentication/external/CustomExternalIdentityProvider.java b/oak-exercise/src/main/java/org/apache/jackrabbit/oak/exercise/security/authentication/external/CustomExternalIdentityProvider.java index 6b52903668a..2bacc21c2c4 100644 --- a/oak-exercise/src/main/java/org/apache/jackrabbit/oak/exercise/security/authentication/external/CustomExternalIdentityProvider.java +++ b/oak-exercise/src/main/java/org/apache/jackrabbit/oak/exercise/security/authentication/external/CustomExternalIdentityProvider.java @@ -16,7 +16,6 @@ */ package org.apache.jackrabbit.oak.exercise.security.authentication.external; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.ImmutableMap; import org.apache.jackrabbit.guava.common.collect.ImmutableSet; import org.apache.jackrabbit.guava.common.collect.Iterables; @@ -28,7 +27,6 @@ import org.apache.jackrabbit.oak.spi.security.authentication.external.ExternalUser; import org.apache.jackrabbit.util.Text; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.ConfigurationPolicy; @@ -155,13 +153,8 @@ public Iterable getDeclaredGroups() { if (groupIds == null || groupIds.isEmpty()) { return ImmutableSet.of(); } else { - return Iterables.transform(groupIds, new Function() { - @Nullable - @Override - public ExternalIdentityRef apply(String input) { - return new ExternalIdentityRef(input, getName()); - } - }); + return Iterables.transform(groupIds, + input -> new ExternalIdentityRef(input, getName())); } } diff --git a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/privilege/L4_CustomPrivilegeTest.java b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/privilege/L4_CustomPrivilegeTest.java index 5f1cac95442..3287dba151b 100644 --- a/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/privilege/L4_CustomPrivilegeTest.java +++ b/oak-exercise/src/test/java/org/apache/jackrabbit/oak/exercise/security/privilege/L4_CustomPrivilegeTest.java @@ -21,7 +21,6 @@ import java.util.UUID; import javax.jcr.security.Privilege; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.ImmutableSet; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Sets; @@ -29,7 +28,6 @@ import org.apache.jackrabbit.oak.AbstractSecurityTest; import org.apache.jackrabbit.oak.spi.security.principal.EveryonePrincipal; import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants; -import org.jetbrains.annotations.Nullable; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -118,13 +116,8 @@ private static void assertEqualPrivileges(Set expectedNames, Privilege[] fail(); } - Iterable resultNames = Iterables.transform(Sets.newHashSet(result), new Function() { - @Nullable - @Override - public String apply(Privilege input) { - return input.toString(); - } - }); + Iterable resultNames = Iterables.transform(Sets.newHashSet(result), + input -> input.toString()); Iterables.removeAll(resultNames, expectedNames); assertFalse(resultNames.iterator().hasNext()); From a3c4392eb8e8f75f8403195bfde3de8a0321b6a8 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Fri, 12 Jul 2024 17:30:26 +0100 Subject: [PATCH 15/26] OAK-10945: Remove usage of Guava Function interface (oak-core-spi) --- .../java/org/apache/jackrabbit/oak/spi/mount/MountInfo.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/MountInfo.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/MountInfo.java index 8f927824033..c7fe29eabe4 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/MountInfo.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/spi/mount/MountInfo.java @@ -26,13 +26,12 @@ import java.util.NavigableSet; import java.util.Set; import java.util.TreeSet; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.ImmutableSet; import static org.apache.jackrabbit.guava.common.base.Preconditions.checkNotNull; import static org.apache.jackrabbit.guava.common.collect.Iterables.transform; -import static org.apache.jackrabbit.guava.common.collect.Sets.newHashSet; import static org.apache.jackrabbit.guava.common.collect.Sets.newTreeSet; import static org.apache.jackrabbit.oak.commons.PathUtils.getParentPath; import static org.apache.jackrabbit.oak.commons.PathUtils.isAncestor; @@ -141,7 +140,7 @@ public String getPathFragmentName() { private static TreeSet cleanCopy(Collection includedPaths) { // ensure that paths don't have trailing slashes - this triggers an assertion in PathUtils isAncestor - return newTreeSet(transform(includedPaths, SANITIZE_PATH)); + return newTreeSet(transform(includedPaths, SANITIZE_PATH::apply)); } public Set getPathsSupportingFragments() { From d2774084b989240ef1451ad47f4ab96f84a3b1ae Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Sat, 13 Jul 2024 09:43:03 +0100 Subject: [PATCH 16/26] OAK-10945: Remove usage of Guava Function interface (oak-core) --- .../java/org/apache/jackrabbit/oak/Oak.java | 8 ++--- .../jackrabbit/oak/core/SecureNodeState.java | 6 ++-- .../oak/management/RepositoryManager.java | 3 +- .../plugins/identifier/IdentifierManager.java | 9 ++--- .../plugins/index/IndexInfoServiceImpl.java | 23 +++++------- .../index/aggregate/AggregateIndex.java | 10 ++---- .../plugins/index/cursor/AncestorCursor.java | 17 ++------- .../index/reference/ReferenceIndex.java | 8 +---- .../migration/AbstractDecoratedNodeState.java | 36 ++++++------------- .../nodetype/EffectiveNodeTypeImpl.java | 11 ++---- .../oak/plugins/tree/impl/AbstractTree.java | 8 ++--- .../oak/plugins/version/VersionHook.java | 11 ++---- .../oak/query/ast/LowerCaseImpl.java | 13 ++----- .../principal/PrincipalProviderImpl.java | 4 +-- .../security/user/AuthorizableIterator.java | 5 +-- .../security/user/UserPrincipalProvider.java | 4 +-- .../user/autosave/AuthorizableWrapper.java | 6 ++-- .../user/query/ResultRowToAuthorizable.java | 5 ++- .../security/user/query/UserQueryManager.java | 3 +- .../plugins/tree/impl/ImmutableTreeTest.java | 11 ++---- .../evaluation/ChildOrderPropertyTest.java | 10 +----- .../oak/security/privilege/JcrAllTest.java | 9 +---- .../security/privilege/PrivilegeImplTest.java | 10 +----- .../apache/jackrabbit/oak/util/NodeUtil.java | 8 +---- 24 files changed, 67 insertions(+), 171 deletions(-) diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java index 4f2beb318de..8d9309f37b8 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/Oak.java @@ -50,7 +50,6 @@ import javax.management.StandardMBean; import javax.security.auth.login.LoginException; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.ImmutableList; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Lists; @@ -701,16 +700,13 @@ private void initialContent(IndexEditorProvider indexEditors, QueryIndexProvider // FIXME: OAK-810 move to proper workspace initialization // initialize default workspace Iterable workspaceInitializers = Iterables.transform(securityProvider.getConfigurations(), - new Function() { - @Override - public WorkspaceInitializer apply(SecurityConfiguration sc) { + sc -> { WorkspaceInitializer wi = sc.getWorkspaceInitializer(); if (wi instanceof QueryIndexProviderAware) { ((QueryIndexProviderAware) wi).setQueryIndexProvider(indexProvider); } return wi; - } - }); + }); OakInitializer.initialize(workspaceInitializers, store, defaultWorkspaceName, initHook); } diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java index 51a772fc108..db9dbca1397 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/core/SecureNodeState.java @@ -16,7 +16,6 @@ */ package org.apache.jackrabbit.oak.core; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.plugins.memory.MemoryChildNodeEntry; @@ -32,6 +31,9 @@ import static org.apache.jackrabbit.guava.common.base.Preconditions.checkNotNull; import static org.apache.jackrabbit.guava.common.collect.Iterables.filter; import static org.apache.jackrabbit.guava.common.collect.Iterables.transform; + +import java.util.function.Function; + import static java.util.Collections.emptyList; class SecureNodeState extends AbstractNodeState { @@ -144,7 +146,7 @@ public Iterable getChildNodeEntries() { } else if (treePermission.canRead()) { Iterable readable = transform( state.getChildNodeEntries(), - new WrapChildEntryFunction()); + new WrapChildEntryFunction()::apply); return filter(readable, new IterableNodePredicate()); } else { return emptyList(); diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/management/RepositoryManager.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/management/RepositoryManager.java index 4ecf4c6740d..9e256f6e5a2 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/management/RepositoryManager.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/management/RepositoryManager.java @@ -16,7 +16,6 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.jackrabbit.oak.management; import static org.apache.jackrabbit.guava.common.base.Preconditions.checkNotNull; @@ -32,11 +31,11 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.function.Function; import javax.management.openmbean.CompositeData; import javax.management.openmbean.TabularData; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.oak.api.jmx.FileStoreBackupRestoreMBean; import org.apache.jackrabbit.oak.api.jmx.RepositoryManagementMBean; import org.apache.jackrabbit.oak.api.jmx.SessionMBean; diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java index 02f119feaab..f9fe4b19524 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/identifier/IdentifierManager.java @@ -20,10 +20,11 @@ import java.util.Collections; import java.util.Iterator; import java.util.Map; +import java.util.function.Function; + import javax.jcr.PropertyType; import javax.jcr.query.Query; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.JcrConstants; @@ -237,7 +238,7 @@ private Iterable findPaths(@NotNull final Result result, @NotNull final return new Iterable() { @Override public Iterator iterator() { - return Iterators.concat(transform(result.getRows().iterator(), new RowToPaths())); + return Iterators.concat(transform(result.getRows().iterator(), new RowToPaths()::apply)); } class RowToPaths implements Function> { @@ -271,7 +272,7 @@ public String apply(PropertyState pState) { if (!rowPath.startsWith(VersionConstants.VERSION_STORE_PATH)) { if (propertyName == null) { return filter( - transform(root.getTree(rowPath).getProperties().iterator(), new PropertyToPath()), + transform(root.getTree(rowPath).getProperties().iterator(), new PropertyToPath()::apply), notNull()); } else { // for a fixed property name, we don't need to look for it, but just assume that @@ -318,7 +319,7 @@ public Iterable getReferences(@NotNull Tree tree, @NotNull final String pr QueryEngine.INTERNAL_SQL2_QUERY, Query.JCR_SQL2, bindings, NO_MAPPINGS); - Iterable resultTrees = Iterables.transform(result.getRows(), (Function) row -> row.getTree(null)); + Iterable resultTrees = Iterables.transform(result.getRows(), row -> row.getTree(null)); return Iterables.filter(resultTrees, tree1 -> !tree1.getPath().startsWith(VersionConstants.VERSION_STORE_PATH) ); } catch (ParseException e) { diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java index c263bc767a3..756bef928c2 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexInfoServiceImpl.java @@ -16,7 +16,6 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.jackrabbit.oak.plugins.index; import java.io.IOException; @@ -24,7 +23,6 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.oak.spi.state.NodeState; import org.apache.jackrabbit.oak.spi.state.NodeStateUtils; @@ -71,19 +69,16 @@ public Iterable getAllIndexInfo() { } else { activeIndexes.addAll(allIndexes); } - return Iterables.filter(Iterables.transform(indexPathService.getIndexPaths(), new Function() { - @Override - public IndexInfo apply(String indexPath) { - try { - IndexInfo info = getInfo(indexPath); - if (info != null) { - info.setActive(activeIndexes.contains(indexPath)); - } - return info; - } catch (Exception e) { - log.warn("Error occurred while capturing IndexInfo for path {}", indexPath, e); - return null; + return Iterables.filter(Iterables.transform(indexPathService.getIndexPaths(), indexPath -> { + try { + IndexInfo info = getInfo(indexPath); + if (info != null) { + info.setActive(activeIndexes.contains(indexPath)); } + return info; + } catch (Exception e) { + log.warn("Error occurred while capturing IndexInfo for path {}", indexPath, e); + return null; } }), notNull()); } diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/aggregate/AggregateIndex.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/aggregate/AggregateIndex.java index b22cfbe2189..da5fe35b5d0 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/aggregate/AggregateIndex.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/aggregate/AggregateIndex.java @@ -35,7 +35,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Lists; import static org.apache.jackrabbit.oak.spi.query.QueryIndex.AdvanceFulltextQueryIndex; @@ -208,13 +207,8 @@ public boolean visit(FullTextAnd and) { public boolean visit(FullTextOr or) { final int[] index = new int[1]; List cursors = Lists.transform(or.list, - new Function() { - @Override - public Cursor apply(FullTextExpression input) { - return flatten(input, plan, filter, state, - path + " or(" + index[0]++ + ")"); - } - }); + input -> flatten(input, plan, filter, state, + path + " or(" + index[0]++ + ")")); result.set(Cursors.newConcatCursor(cursors, filter.getQueryLimits())); return true; diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/cursor/AncestorCursor.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/cursor/AncestorCursor.java index c24a8de67d4..2842e8202ea 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/cursor/AncestorCursor.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/cursor/AncestorCursor.java @@ -20,11 +20,9 @@ import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.spi.query.Cursor; -import org.apache.jackrabbit.oak.spi.query.IndexRow; import org.apache.jackrabbit.oak.spi.query.QueryLimits; import org.jetbrains.annotations.Nullable; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.collect.Iterators; @@ -39,12 +37,7 @@ public AncestorCursor(Cursor cursor, int level, QueryLimits settings) { private static Iterator transform(Cursor cursor, final int level) { Iterator unfiltered = Iterators.transform(cursor, - new Function() { - @Override - public String apply(@Nullable IndexRow input) { - return input != null ? input.getPath() : null; - } - }); + input -> input != null ? input.getPath() : null); Iterator filtered = Iterators.filter(unfiltered, new Predicate() { @Override @@ -52,11 +45,7 @@ public boolean apply(@Nullable String input) { return input != null && PathUtils.getDepth(input) >= level; } }); - return Iterators.transform(filtered, new Function() { - @Override - public String apply(String input) { - return PathUtils.getAncestorPath(input, level); - } - }); + return Iterators.transform(filtered, + input -> PathUtils.getAncestorPath(input, level)); } } \ No newline at end of file diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndex.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndex.java index 438ede13c03..089ed8ff6d7 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndex.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/reference/ReferenceIndex.java @@ -45,7 +45,6 @@ import org.apache.jackrabbit.oak.spi.query.QueryIndex; import org.apache.jackrabbit.oak.spi.state.NodeState; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.collect.ImmutableSet; import org.apache.jackrabbit.guava.common.collect.Iterables; @@ -147,12 +146,7 @@ public boolean apply(String path) { } }); } - paths = transform(paths, new Function() { - @Override - public String apply(String path) { - return getParentPath(path); - } - }); + paths = transform(paths, path -> getParentPath(path)); return newPathCursor(paths, filter.getQueryLimits()); } diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/AbstractDecoratedNodeState.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/AbstractDecoratedNodeState.java index 374d29a464b..9b513bf141d 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/AbstractDecoratedNodeState.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/migration/AbstractDecoratedNodeState.java @@ -16,7 +16,6 @@ */ package org.apache.jackrabbit.oak.plugins.migration; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicates; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.oak.api.PropertyState; @@ -38,6 +37,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.Set; + import static org.apache.jackrabbit.guava.common.base.Predicates.notNull; import static org.apache.jackrabbit.oak.plugins.tree.TreeConstants.OAK_CHILD_ORDER; @@ -139,23 +139,16 @@ public NodeState getChildNode(@NotNull final String name) throws IllegalArgument @Override @NotNull public Iterable getChildNodeEntries() { - final Iterable transformed = Iterables.transform( - delegate.getChildNodeEntries(), - new Function() { - @Nullable - @Override - public ChildNodeEntry apply(@Nullable final ChildNodeEntry childNodeEntry) { - if (childNodeEntry != null) { - final String name = childNodeEntry.getName(); - final NodeState nodeState = decorate(name, childNodeEntry.getNodeState()); - if (nodeState.exists()) { - return new MemoryChildNodeEntry(name, nodeState); - } - } - return null; - } + final Iterable transformed = Iterables.transform(delegate.getChildNodeEntries(), childNodeEntry -> { + if (childNodeEntry != null) { + final String name = childNodeEntry.getName(); + final NodeState nodeState = decorate(name, childNodeEntry.getNodeState()); + if (nodeState.exists()) { + return new MemoryChildNodeEntry(name, nodeState); } - ); + } + return null; + }); return Iterables.filter(transformed, notNull()); } @@ -179,14 +172,7 @@ public PropertyState getProperty(@NotNull String name) { public Iterable getProperties() { final Iterable propertyStates = Iterables.transform( delegate.getProperties(), - new Function() { - @Override - @Nullable - public PropertyState apply(@Nullable final PropertyState propertyState) { - return decorate(propertyState); - } - } - ); + propertyState -> decorate(propertyState)); return Iterables.filter(Iterables.concat(propertyStates, getNewPropertyStates()), notNull()); } diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeTypeImpl.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeTypeImpl.java index 61dbab78e31..1b34ec9608c 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeTypeImpl.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/EffectiveNodeTypeImpl.java @@ -44,7 +44,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Maps; @@ -227,14 +226,8 @@ public boolean apply(PropertyDefinition propertyDefinition) { @NotNull @Override public Iterable getNamedNodeDefinitions(@NotNull final String oakName) { - return Iterables.concat(Iterables.transform( - nodeTypes.values(), - new Function>() { - @Override - public Iterable apply(NodeTypeImpl input) { - return input.getDeclaredNamedNodeDefinitions(oakName); - } - })); + return Iterables.concat(Iterables.transform(nodeTypes.values(), + input -> input.getDeclaredNamedNodeDefinitions(oakName))); } /** diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java index 4ba4f6734d0..62eced8d187 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/tree/impl/AbstractTree.java @@ -35,7 +35,6 @@ import java.util.List; import java.util.Set; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.oak.api.PropertyState; @@ -320,13 +319,10 @@ public long getChildrenCount(long max) { @NotNull public Iterable getChildren() { Iterable children = transform(getChildNames(), - new Function() { - @Override - public Tree apply(String name) { + name -> { AbstractTree child = createChild(name); return child.exists() ? child : null; - } - }); + }); return filter(children, notNull()); } } diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionHook.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionHook.java index 2bce99afae6..5c46f93a4a2 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionHook.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionHook.java @@ -18,7 +18,6 @@ */ package org.apache.jackrabbit.oak.plugins.version; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.spi.commit.CommitHook; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; @@ -26,11 +25,11 @@ import org.apache.jackrabbit.oak.spi.commit.EditorProvider; import org.apache.jackrabbit.oak.spi.state.NodeState; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.osgi.service.component.annotations.Component; import java.util.List; import java.util.Set; + import static org.apache.jackrabbit.guava.common.collect.Collections2.transform; import static org.apache.jackrabbit.guava.common.collect.Lists.newArrayList; import static org.apache.jackrabbit.guava.common.collect.Sets.newHashSet; @@ -77,12 +76,6 @@ public NodeState processCommit(NodeState before, NodeState after, CommitInfo inf providers.add(new VersionableCollector.Provider(existingVersionables)); providers.add(new OrphanedVersionCleaner.Provider(existingVersionables)); - return compose(transform(providers, new Function() { - @Nullable - @Override - public CommitHook apply(@Nullable EditorProvider input) { - return new EditorHook(input); - } - })).processCommit(before, after, info); + return compose(transform(providers, input -> new EditorHook(input))).processCommit(before, after, info); } } diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java index d306eac10e5..df46dd82735 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/query/ast/LowerCaseImpl.java @@ -30,8 +30,6 @@ import org.apache.jackrabbit.oak.spi.query.QueryConstants; import org.apache.jackrabbit.oak.spi.query.QueryIndex.OrderEntry; -import org.apache.jackrabbit.guava.common.base.Function; - import static org.apache.jackrabbit.guava.common.collect.Iterables.transform; import static org.apache.jackrabbit.oak.api.Type.STRING; import static org.apache.jackrabbit.oak.api.Type.STRINGS; @@ -60,12 +58,12 @@ boolean accept(AstVisitor v) { public String toString() { return "lower(" + operand + ')'; } - + @Override public PropertyExistenceImpl getPropertyExistence() { return operand.getPropertyExistence(); } - + @Override public Set getSelectors() { return operand.getSelectors(); @@ -80,12 +78,7 @@ public PropertyValue currentProperty() { // TODO toLowerCase(): document the Turkish locale problem if (p.getType().isArray()) { Iterable lowerCase = transform(p.getValue(STRINGS), - new Function() { - @Override - public String apply(String input) { - return input.toLowerCase(); - } - }); + input -> input.toLowerCase()); return PropertyValues.newString(lowerCase); } else { String value = p.getValue(STRING); diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImpl.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImpl.java index 598f7702eb3..0fd19da1cd5 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImpl.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/principal/PrincipalProviderImpl.java @@ -16,7 +16,6 @@ */ package org.apache.jackrabbit.oak.security.principal; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal; import org.apache.jackrabbit.api.security.user.Authorizable; @@ -45,6 +44,7 @@ import java.util.Iterator; import java.util.Objects; import java.util.Set; +import java.util.function.Function; /** * The {@code PrincipalProviderImpl} is a principal provider implementation @@ -144,7 +144,7 @@ public Iterator findPrincipals(@Nullable final String nameH } try { Iterator authorizables = findAuthorizables(nameHint, searchType, offset, limit); - Iterator principals = Iterators.filter(Iterators.transform(authorizables, new AuthorizableToPrincipal()), Objects::nonNull); + Iterator principals = Iterators.filter(Iterators.transform(authorizables, new AuthorizableToPrincipal()::apply), Objects::nonNull); return EveryoneFilter.filter(principals, nameHint, searchType, offset, limit); } catch (RepositoryException e) { log.debug(e.getMessage()); diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableIterator.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableIterator.java index 632bdbd3be1..9179bcfd7da 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableIterator.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableIterator.java @@ -16,7 +16,6 @@ */ package org.apache.jackrabbit.oak.security.user; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.api.security.user.Authorizable; import org.apache.jackrabbit.oak.api.Tree; @@ -33,6 +32,7 @@ import java.util.Iterator; import java.util.Objects; import java.util.Set; +import java.util.function.Function; import java.util.function.Predicate; /** @@ -50,7 +50,8 @@ final class AuthorizableIterator implements Iterator { static AuthorizableIterator create(@NotNull Iterator authorizableTrees, @NotNull UserManagerImpl userManager, @NotNull AuthorizableType authorizableType) { - Iterator it = Iterators.transform(authorizableTrees, new TreeToAuthorizable(userManager, authorizableType)); + Iterator it = Iterators.transform(authorizableTrees, + new TreeToAuthorizable(userManager, authorizableType)::apply); long size = getSize(authorizableTrees); return new AuthorizableIterator(it, size, false); } diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java index 2d48d311928..3b65a8e3886 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserPrincipalProvider.java @@ -16,7 +16,6 @@ */ package org.apache.jackrabbit.oak.security.user; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicates; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.api.security.principal.ItemBasedPrincipal; @@ -51,6 +50,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.Set; +import java.util.function.Function; import static org.apache.jackrabbit.oak.api.QueryEngine.NO_BINDINGS; import static org.apache.jackrabbit.oak.api.Type.STRING; @@ -184,7 +184,7 @@ public Iterator findPrincipals(@Nullable final String nameH limit, offset, NO_BINDINGS, namePathMapper.getSessionLocalMappings()); Iterator principals = Iterators.filter( - Iterators.transform(result.getRows().iterator(), new ResultRowToPrincipal()), + Iterators.transform(result.getRows().iterator(), new ResultRowToPrincipal()::apply), Predicates.notNull()); // everyone is injected only in complete set, not on pages diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/autosave/AuthorizableWrapper.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/autosave/AuthorizableWrapper.java index 378297fc48b..9ae0dd6db4e 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/autosave/AuthorizableWrapper.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/autosave/AuthorizableWrapper.java @@ -17,8 +17,8 @@ package org.apache.jackrabbit.oak.security.user.autosave; import java.util.Iterator; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.api.security.user.Authorizable; import org.apache.jackrabbit.api.security.user.Group; @@ -41,10 +41,10 @@ public T apply(T authorizable) { } static Iterator createIterator(Iterator dlgs, AutoSaveEnabledManager mgr) { - return Iterators.transform(dlgs, new AuthorizableWrapper<>(mgr)); + return Iterators.transform(dlgs, new AuthorizableWrapper(mgr)::apply); } static Iterator createGroupIterator(Iterator dlgs, AutoSaveEnabledManager mgr) { - return Iterators.transform(dlgs, new AuthorizableWrapper<>(mgr)); + return Iterators.transform(dlgs, new AuthorizableWrapper(mgr)::apply); } } \ No newline at end of file diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/query/ResultRowToAuthorizable.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/query/ResultRowToAuthorizable.java index aeab5feca05..b9a5dbcadf3 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/query/ResultRowToAuthorizable.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/query/ResultRowToAuthorizable.java @@ -16,14 +16,11 @@ */ package org.apache.jackrabbit.oak.security.user.query; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.api.security.user.Authorizable; import org.apache.jackrabbit.oak.api.ResultRow; import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; -import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.security.user.UserManagerImpl; -import org.apache.jackrabbit.oak.spi.query.QueryConstants; import org.apache.jackrabbit.oak.spi.security.user.AuthorizableType; import org.apache.jackrabbit.oak.spi.security.user.util.UserUtil; import org.jetbrains.annotations.NotNull; @@ -31,6 +28,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.function.Function; + import javax.jcr.RepositoryException; /** diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManager.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManager.java index c14982565f8..5a76e75d0f1 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManager.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/query/UserQueryManager.java @@ -273,7 +273,8 @@ private Iterator findAuthorizables(@NotNull String statement, statement, javax.jcr.query.Query.XPATH, limit, offset, NO_BINDINGS, namePathMapper.getSessionLocalMappings()); Iterable resultRows = query.getRows(); - Iterator authorizables = Iterators.transform(resultRows.iterator(), new ResultRowToAuthorizable(userManager, root, type, query.getSelectorNames())); + Iterator authorizables = Iterators.transform(resultRows.iterator(), + new ResultRowToAuthorizable(userManager, root, type, query.getSelectorNames())::apply); return Iterators.filter(authorizables, new UniqueResultPredicate()); } catch (ParseException e) { throw new RepositoryException("Invalid user query "+statement, e); diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/ImmutableTreeTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/ImmutableTreeTest.java index 25082d51dcb..2ff4ce0ffbe 100644 --- a/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/ImmutableTreeTest.java +++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/tree/impl/ImmutableTreeTest.java @@ -19,7 +19,7 @@ package org.apache.jackrabbit.oak.plugins.tree.impl; import java.util.List; -import org.apache.jackrabbit.guava.common.base.Function; + import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Lists; import org.apache.jackrabbit.JcrConstants; @@ -34,7 +34,6 @@ import org.apache.jackrabbit.oak.util.NodeUtil; import org.apache.jackrabbit.util.Text; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -264,13 +263,7 @@ private static ImmutableTree getHiddenTree(@NotNull ImmutableTree immutable) { } private static void assertSequence(Iterable trees, String... names) { - List actual = Lists.newArrayList(Iterables.transform(trees, new Function() { - @Nullable - @Override - public String apply(Tree input) { - return input.getName(); - } - })); + List actual = Lists.newArrayList(Iterables.transform(trees, input -> input.getName())); assertEquals(Lists.newArrayList(names), actual); } diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/ChildOrderPropertyTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/ChildOrderPropertyTest.java index f01bbf8bb4d..9b79e8686a3 100644 --- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/ChildOrderPropertyTest.java +++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/ChildOrderPropertyTest.java @@ -24,7 +24,6 @@ import java.util.List; import java.util.Set; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.ImmutableList; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Sets; @@ -34,7 +33,6 @@ import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.plugins.tree.TreeConstants; import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants; -import org.jetbrains.annotations.Nullable; import org.junit.Before; import org.junit.Test; @@ -101,13 +99,7 @@ public void testChildOrderWithoutPropertyReadAccess() throws Exception { assertFalse(aTree.hasProperty(JcrConstants.JCR_PRIMARYTYPE)); List expected = ImmutableList.of("/a/bb", "/a/b"); - Iterable childPaths = Iterables.transform(aTree.getChildren(), new Function() { - @Nullable - @Override - public String apply(Tree input) { - return input.getPath(); - } - }); + Iterable childPaths = Iterables.transform(aTree.getChildren(), input -> input.getPath()); assertTrue(childPaths.toString(), Iterables.elementsEqual(expected, childPaths)); } } diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/JcrAllTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/JcrAllTest.java index f053db0eea9..ff42518973d 100644 --- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/JcrAllTest.java +++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/JcrAllTest.java @@ -20,7 +20,6 @@ import java.util.Collections; import javax.jcr.security.Privilege; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.api.security.authorization.PrivilegeManager; import org.apache.jackrabbit.oak.AbstractSecurityTest; @@ -30,7 +29,6 @@ import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeBitsProvider; import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConfiguration; import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants; -import org.jetbrains.annotations.Nullable; import org.junit.Test; import static org.apache.jackrabbit.guava.common.base.Preconditions.checkNotNull; @@ -71,12 +69,7 @@ public void testAllAggregation() throws Exception { Iterable declaredAggr = Arrays.asList(pMgr.getPrivilege(JCR_ALL).getDeclaredAggregatePrivileges()); String[] allAggregates = Iterables.toArray(Iterables.transform( declaredAggr, - new Function() { - @Override - public String apply(@Nullable Privilege privilege) { - return checkNotNull(privilege).getName(); - } - }), String.class); + privilege -> checkNotNull(privilege).getName()), String.class); PrivilegeBits all2 = bitsProvider.getBits(allAggregates); assertEquals(all, all2); diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeImplTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeImplTest.java index bf71f9e2c1b..52a641b537a 100644 --- a/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeImplTest.java +++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/security/privilege/PrivilegeImplTest.java @@ -19,7 +19,6 @@ import java.util.Set; import javax.jcr.security.Privilege; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.ImmutableList; import org.apache.jackrabbit.guava.common.collect.ImmutableSet; import org.apache.jackrabbit.guava.common.collect.Iterables; @@ -32,7 +31,6 @@ import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeConstants; import org.apache.jackrabbit.oak.spi.security.privilege.PrivilegeDefinition; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -69,13 +67,7 @@ private static void assertAggregation(@NotNull Privilege[] aggr, @NotNull String assertEquals(expectedNames.length, aggr.length); Set expected = Sets.newHashSet(expectedNames); - Set result = Sets.newHashSet(Iterables.transform(ImmutableSet.copyOf(aggr), new Function() { - @Nullable - @Override - public String apply(Privilege input) { - return input.getName(); - } - })); + Set result = Sets.newHashSet(Iterables.transform(ImmutableSet.copyOf(aggr), input -> input.getName())); assertEquals(expected, result); } diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/util/NodeUtil.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/util/NodeUtil.java index 809043ccbb5..e5ab83aba58 100644 --- a/oak-core/src/test/java/org/apache/jackrabbit/oak/util/NodeUtil.java +++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/util/NodeUtil.java @@ -22,7 +22,6 @@ import javax.jcr.RepositoryException; import javax.jcr.Value; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Lists; import org.apache.jackrabbit.JcrConstants; import org.apache.jackrabbit.oak.api.PropertyState; @@ -221,12 +220,7 @@ public void setName(String propertyName, String value) { } public void setNames(String propertyName, String... values) { - tree.setProperty(propertyName, Lists.transform(Arrays.asList(values), new Function() { - @Override - public String apply(String jcrName) { - return getOakName(jcrName); - } - }), NAMES); + tree.setProperty(propertyName, Lists.transform(Arrays.asList(values), jcrName -> getOakName(jcrName)), NAMES); } public void setDate(String name, long time) { From cf5730c6c0392e6d51779e5eed1ed51c25482e74 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Sat, 13 Jul 2024 10:19:53 +0100 Subject: [PATCH 17/26] OAK-10945: Remove usage of Guava Function interface (oak-commons) --- .../org/apache/jackrabbit/oak/commons/FileIOUtilsTest.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileIOUtilsTest.java b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileIOUtilsTest.java index c172dd429fb..3b52f24b3ff 100644 --- a/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileIOUtilsTest.java +++ b/oak-commons/src/test/java/org/apache/jackrabbit/oak/commons/FileIOUtilsTest.java @@ -60,7 +60,6 @@ import java.util.Set; import org.apache.commons.io.FileUtils; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Splitter; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.guava.common.collect.Sets; @@ -192,11 +191,7 @@ public void sortLargeFileWithCustomComparatorTest() throws IOException { } Iterator boxedEntries = Longs.asList(entries).iterator(); - Iterator hexEntries = Iterators.transform(boxedEntries, new Function() { - @Nullable @Override public String apply(@Nullable Long input) { - return Long.toHexString(input); - } - }); + Iterator hexEntries = Iterators.transform(boxedEntries, input -> Long.toHexString(input)); File f = assertWrite(hexEntries, false, numEntries); Comparator prefixComparator = new Comparator() { From a288afef73233ecb8bbcba3504704573297a3b15 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Sat, 13 Jul 2024 10:50:43 +0100 Subject: [PATCH 18/26] OAK-10945: Remove usage of Guava Function interface (oak-blob-plugins) --- .../blob/AbstractSharedCachingDataStore.java | 7 +---- .../blob/MarkSweepGarbageCollector.java | 27 +++++-------------- .../plugins/blob/datastore/BlobIdTracker.java | 9 ++----- .../blob/datastore/DataStoreBlobStore.java | 17 ++++-------- .../blob/datastore/SharedDataStoreUtils.java | 24 +++++------------ .../blob/SharedDataStoreUtilsTest.java | 14 ++-------- .../datastore/DataStoreBlobStoreTest.java | 10 +------ .../blob/datastore/OakFileDataStoreTest.java | 9 +------ .../blob/datastore/SharedDataStoreTest.java | 9 +------ 9 files changed, 26 insertions(+), 100 deletions(-) diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java index 6f81f95064d..70fb3e0bfc7 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/AbstractSharedCachingDataStore.java @@ -56,7 +56,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Stopwatch; import org.apache.jackrabbit.guava.common.collect.ImmutableList; import org.apache.jackrabbit.guava.common.collect.Iterators; @@ -277,11 +276,7 @@ public DataRecord addRecord(InputStream inputStream, BlobOptions blobOptions) @Override public Iterator getAllIdentifiers() throws DataStoreException { return Iterators.concat(Iterators.transform(cache.getStagingCache().getAllIdentifiers(), - new Function() { - @Nullable @Override public DataIdentifier apply(@Nullable String id) { - return new DataIdentifier(id); - } - }), backend.getAllIdentifiers()); + id -> new DataIdentifier(id)), backend.getAllIdentifiers()); } @Override diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java index 9f016f161fb..45b3edb16ad 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/MarkSweepGarbageCollector.java @@ -51,7 +51,6 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Joiner; import org.apache.jackrabbit.guava.common.base.StandardSystemProperty; import org.apache.jackrabbit.guava.common.base.Stopwatch; @@ -264,22 +263,14 @@ public List getStats() throws Exception { List refFiles = ((SharedDataStore) blobStore).getAllMetadataRecords(SharedStoreRecordType.REFERENCES.getType()); ImmutableListMultimap references = - FluentIterable.from(refFiles).index(new Function() { - @Override public String apply(DataRecord input) { - return SharedStoreRecordType.REFERENCES.getIdFromName(input.getIdentifier().toString()); - - } - }); + FluentIterable.from(refFiles).index( + input -> SharedStoreRecordType.REFERENCES.getIdFromName(input.getIdentifier().toString())); // Get all the markers available List markerFiles = ((SharedDataStore) blobStore).getAllMetadataRecords(SharedStoreRecordType.MARKED_START_MARKER.getType()); - Map markers = Maps.uniqueIndex(markerFiles, new Function() { - @Override - public String apply(DataRecord input) { - return input.getIdentifier().toString().substring(SharedStoreRecordType.MARKED_START_MARKER.getType().length() + 1); - } - }); + Map markers = Maps.uniqueIndex(markerFiles, + input -> input.getIdentifier().toString().substring(SharedStoreRecordType.MARKED_START_MARKER.getType().length() + 1)); // Get all the repositories registered List repoFiles = @@ -645,16 +636,12 @@ public void addReference(String blobId, final String nodeId) { final Joiner delimJoiner = Joiner.on(DELIM).skipNulls(); Iterator> partitions = Iterators.partition(idIter, getBatchCount()); while (partitions.hasNext()) { - List idBatch = Lists.transform(partitions.next(), new Function() { - @Nullable @Override - public String apply(@Nullable String id) { + List idBatch = Lists.transform(partitions.next(), id -> { if (logPath) { return delimJoiner.join(id, nodeId); } return id; - } - }); + }); if (debugMode) { LOG.trace("chunkIds : {}", idBatch); } @@ -891,7 +878,7 @@ long mergeAllMarkedReferences(GarbageCollectableBlobStore blobStore, GarbageColl List repoFiles = ((SharedDataStore) blobStore).getAllMetadataRecords(SharedStoreRecordType.REPOSITORY.getType()); LOG.info("Repositories registered {}", repoFiles); - + // Retrieve repos for which reference files have not been created Set unAvailRepos = SharedDataStoreUtils.refsNotAvailableFromRepos(repoFiles, refFiles); diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/BlobIdTracker.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/BlobIdTracker.java index ad4f653c577..402d573d5f1 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/BlobIdTracker.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/BlobIdTracker.java @@ -24,14 +24,12 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.nio.file.Path; import java.util.Iterator; import java.util.List; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.ReentrantLock; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.base.Stopwatch; import org.apache.jackrabbit.guava.common.collect.Lists; @@ -77,7 +75,6 @@ import static org.apache.jackrabbit.oak.plugins.blob.datastore.BlobIdTracker.BlobIdStore.Type.IN_PROCESS; import static org.apache.jackrabbit.oak.plugins.blob.datastore.BlobIdTracker.BlobIdStore.Type.REFS; - /** * Tracks the blob ids available or added in the blob store using the {@link BlobIdStore} . * @@ -271,8 +268,7 @@ private void globalMerge() throws IOException { Iterable refRecords = datastore.getAllMetadataRecords(fileNamePrefix); // Download all the corresponding files for the records - List refFiles = newArrayList(transform(refRecords, new Function() { - @Override public File apply(DataRecord input) { + List refFiles = newArrayList(transform(refRecords, input -> { InputStream inputStream = null; try { inputStream = input.getStream(); @@ -283,8 +279,7 @@ private void globalMerge() throws IOException { closeQuietly(inputStream); } return null; - } - })); + })); LOG.info("Retrieved all blob id files in [{}]", watch.elapsed(TimeUnit.MILLISECONDS)); // Merge all the downloaded files in to the local store diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java index d057007bc57..5536e2dac7b 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java @@ -78,7 +78,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.jackrabbit.guava.common.base.Function; + import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.base.Strings; import org.apache.jackrabbit.guava.common.collect.Iterators; @@ -525,15 +525,12 @@ public boolean apply(@Nullable DataRecord input) { } return false; } - }), new Function() { - @Override - public String apply(DataRecord input) { + }), input -> { if (encodeLengthInId) { return BlobId.of(input).encodedValue(); } return input.getIdentifier().toString(); - } - }); + }); } @Override @@ -775,18 +772,14 @@ public Iterator getAllRecords() throws DataStoreException { Iterator result = delegate instanceof SharedDataStore ? ((SharedDataStore) delegate).getAllRecords() : Iterators.transform(delegate.getAllIdentifiers(), - new Function() { - @Nullable - @Override - public DataRecord apply(@Nullable DataIdentifier input) { + input -> { try { return delegate.getRecord(input); } catch (DataStoreException e) { log.warn("Error occurred while fetching DataRecord for identifier {}", input, e); } return null; - } - }); + }); if (stats instanceof ExtendedBlobStatsCollector) { ((ExtendedBlobStatsCollector) stats).getAllRecordsCalled(System.nanoTime() - start, TimeUnit.NANOSECONDS); diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils.java index 8c0a076b17f..294040b0bdf 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreUtils.java @@ -18,9 +18,9 @@ import java.util.List; import java.util.Set; +import java.util.function.Function; import java.util.stream.Collectors; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Joiner; import org.apache.jackrabbit.guava.common.base.Splitter; import org.apache.jackrabbit.guava.common.collect.FluentIterable; @@ -61,7 +61,7 @@ public static DataRecord getEarliestRecord(List recs) { public Long apply(@NotNull DataRecord input) { return input.getLastModified(); } - }).min(recs); + }::apply).min(recs); } /** @@ -73,22 +73,10 @@ public Long apply(@NotNull DataRecord input) { */ public static Set refsNotAvailableFromRepos(List repos, List refs) { - return Sets.difference(FluentIterable.from(repos).uniqueIndex( - new Function() { - @Override - @Nullable - public String apply(@NotNull DataRecord input) { - return SharedStoreRecordType.REPOSITORY.getIdFromName(input.getIdentifier().toString()); - } - }).keySet(), - FluentIterable.from(refs).index( - new Function() { - @Override - @Nullable - public String apply(@NotNull DataRecord input) { - return SharedStoreRecordType.REFERENCES.getIdFromName(input.getIdentifier().toString()); - } - }).keySet()); + return Sets.difference(FluentIterable.from(repos) + .uniqueIndex(input -> SharedStoreRecordType.REPOSITORY.getIdFromName(input.getIdentifier().toString())).keySet(), + FluentIterable.from(refs) + .index(input -> SharedStoreRecordType.REFERENCES.getIdFromName(input.getIdentifier().toString())).keySet()); } /** diff --git a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/SharedDataStoreUtilsTest.java b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/SharedDataStoreUtilsTest.java index 48eafa75ba4..4a125a0d34a 100644 --- a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/SharedDataStoreUtilsTest.java +++ b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/SharedDataStoreUtilsTest.java @@ -33,7 +33,6 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Lists; import org.apache.jackrabbit.guava.common.collect.Maps; @@ -49,7 +48,6 @@ import org.apache.jackrabbit.oak.plugins.blob.datastore.SharedDataStoreUtils; import org.apache.jackrabbit.oak.plugins.blob.datastore.SharedDataStoreUtils.SharedStoreRecordType; import org.apache.jackrabbit.oak.stats.Clock; -import org.jetbrains.annotations.Nullable; import org.junit.Assert; import org.junit.Rule; import org.junit.Test; @@ -481,11 +479,7 @@ public void testGetAllRecords() throws Exception { } Set retrieved = newHashSet(Iterables.transform(newHashSet(dataStore.getAllRecords()), - new Function() { - @Nullable @Override public String apply(@Nullable DataRecord input) { - return input.getIdentifier().toString(); - } - })); + input -> input.getIdentifier().toString())); assertEquals(added, retrieved); } @@ -515,11 +509,7 @@ public void testGetAllRecordsWithMeta() throws Exception { } Set retrieved = newHashSet(Iterables.transform(newHashSet(dataStore.getAllRecords()), - new Function() { - @Nullable @Override public String apply(@Nullable DataRecord input) { - return input.getIdentifier().toString(); - } - })); + input -> input.getIdentifier().toString())); assertEquals(added, retrieved); } diff --git a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStoreTest.java b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStoreTest.java index 42a896dacb9..8893928c20a 100644 --- a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStoreTest.java +++ b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStoreTest.java @@ -29,7 +29,6 @@ import java.util.Set; import java.util.UUID; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.ImmutableList; import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Lists; @@ -44,7 +43,6 @@ import org.apache.jackrabbit.oak.spi.blob.AbstractBlobStoreTest; import org.apache.jackrabbit.oak.spi.blob.BlobStoreInputStream; import org.apache.jackrabbit.oak.spi.blob.stats.BlobStatsCollector; -import org.jetbrains.annotations.Nullable; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -174,13 +172,7 @@ public void testGetAllChunks() throws Exception{ DataIdentifier d30 = new DataIdentifier("d-30"); List dis = ImmutableList.of(d10, d20, d30); List recs = Lists.newArrayList( - Iterables.transform(dis, new Function() { - @Nullable - @Override - public DataRecord apply(@Nullable DataIdentifier input) { - return new TimeDataRecord(input); - } - })); + Iterables.transform(dis, input -> new TimeDataRecord(input))); OakFileDataStore mockedDS = mock(OakFileDataStore.class); when(mockedDS.getAllRecords()).thenReturn(recs.iterator()); when(mockedDS.getRecord(new DataIdentifier("d-10"))).thenReturn(new TimeDataRecord(d10)); diff --git a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStoreTest.java b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStoreTest.java index 8f58a64e89f..e9e533f536f 100644 --- a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStoreTest.java +++ b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/OakFileDataStoreTest.java @@ -24,14 +24,12 @@ import java.util.Map; import java.util.Set; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.guava.common.collect.Sets; import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; import org.apache.jackrabbit.core.data.DataIdentifier; import org.apache.jackrabbit.core.data.FileDataStore; -import org.jetbrains.annotations.Nullable; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -77,12 +75,7 @@ private void testGetAllIdentifiers(String path, String unnormalizedPath) throws fds.init(null); Iterator dis = fds.getAllIdentifiers(); - Set fileNames = Sets.newHashSet(Iterators.transform(dis, new Function() { - @Override - public String apply(@Nullable DataIdentifier input) { - return input.toString(); - } - })); + Set fileNames = Sets.newHashSet(Iterators.transform(dis, input -> input.toString())); Set expectedNames = Sets.newHashSet("abcdef","bcdefg","cdefgh"); assertEquals(expectedNames, fileNames); diff --git a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreTest.java b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreTest.java index 87804e28c12..9f0514bc464 100644 --- a/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreTest.java +++ b/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/datastore/SharedDataStoreTest.java @@ -31,7 +31,6 @@ import java.util.Properties; import java.util.Set; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Strings; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.guava.common.collect.Lists; @@ -47,7 +46,6 @@ import org.apache.jackrabbit.oak.commons.PropertiesUtil; import org.apache.jackrabbit.oak.plugins.blob.SharedDataStore; import org.apache.jackrabbit.oak.plugins.blob.datastore.SharedDataStoreTest.FixtureHelper.DATA_STORE; -import org.jetbrains.annotations.Nullable; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -146,12 +144,7 @@ private void testGetAllIdentifiers(String path, String unnormalizedPath) throws fds.init(null); Iterator dis = fds.getAllIdentifiers(); - Set fileNames = Sets.newHashSet(Iterators.transform(dis, new Function() { - @Override - public String apply(@Nullable DataIdentifier input) { - return input.toString(); - } - })); + Set fileNames = Sets.newHashSet(Iterators.transform(dis, input-> input.toString())); Set expectedNames = Sets.newHashSet("abcdef","bcdefg","cdefgh"); assertEquals(expectedNames, fileNames); From 097690e919035e621355fb024f8f033fe8c4596c Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Sat, 13 Jul 2024 11:06:06 +0100 Subject: [PATCH 19/26] OAK-10945: Remove usage of Guava Function interface (oak-blob-cloud, oak-blob-cloud-azure) --- .../blobstorage/AzureBlobStoreBackend.java | 11 ++-------- .../oak/blob/cloud/s3/S3Backend.java | 20 ++++--------------- 2 files changed, 6 insertions(+), 25 deletions(-) diff --git a/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java b/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java index 0eba902e7fc..044301fb33c 100644 --- a/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java +++ b/oak-blob-cloud-azure/src/main/java/org/apache/jackrabbit/oak/blob/cloud/azure/blobstorage/AzureBlobStoreBackend.java @@ -29,7 +29,6 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; -import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; import java.net.URLEncoder; @@ -46,8 +45,8 @@ import java.util.Queue; import java.util.UUID; import java.util.concurrent.TimeUnit; +import java.util.function.Function; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Strings; import org.apache.jackrabbit.guava.common.cache.Cache; import org.apache.jackrabbit.guava.common.cache.CacheBuilder; @@ -463,13 +462,7 @@ public DataRecord getRecord(DataIdentifier identifier) throws DataStoreException @Override public Iterator getAllIdentifiers() throws DataStoreException { return new RecordsIterator( - new Function() { - @Override - public DataIdentifier apply(AzureBlobInfo input) { - return new DataIdentifier(getIdentifierName(input.getName())); - } - } - ); + input -> new DataIdentifier(getIdentifierName(input.getName()))); } diff --git a/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java b/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java index 37f28d36ced..81f910ab1a9 100644 --- a/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java +++ b/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java @@ -38,6 +38,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; +import java.util.function.Function; import com.amazonaws.services.s3.model.GetObjectMetadataRequest; import com.amazonaws.services.s3.model.GetObjectRequest; @@ -89,7 +90,6 @@ import com.amazonaws.services.s3.transfer.TransferManager; import com.amazonaws.services.s3.transfer.Upload; import com.amazonaws.util.StringUtils; -import org.apache.jackrabbit.guava.common.base.Function; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.base.Strings; import org.apache.jackrabbit.guava.common.cache.Cache; @@ -441,13 +441,7 @@ public InputStream read(DataIdentifier identifier) @Override public Iterator getAllIdentifiers() throws DataStoreException { - return new RecordsIterator( - new Function() { - @Override - public DataIdentifier apply(S3ObjectSummary input) { - return new DataIdentifier(getIdentifierName(input.getKey())); - } - }); + return new RecordsIterator(input -> new DataIdentifier(getIdentifierName(input.getKey()))); } @Override @@ -642,14 +636,8 @@ public void deleteAllMetadataRecords(String prefix) { public Iterator getAllRecords() { final AbstractSharedBackend backend = this; return new RecordsIterator( - new Function() { - @Override - public DataRecord apply(S3ObjectSummary input) { - return new S3DataRecord(backend, s3service, bucket, - new DataIdentifier(getIdentifierName(input.getKey())), - input.getLastModified().getTime(), input.getSize(), s3ReqDecorator); - } - }); + input -> new S3DataRecord(backend, s3service, bucket, new DataIdentifier(getIdentifierName(input.getKey())), + input.getLastModified().getTime(), input.getSize(), s3ReqDecorator)); } @Override From 137b18eea127374584f6d2b30c4d30b16ffed43c Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Sun, 14 Jul 2024 10:52:29 +0100 Subject: [PATCH 20/26] OAK-10945: Remove usage of Guava Function interface (oak-upgrade) - cleanup --- .../oak/upgrade/cli/AbstractOak2OakTest.java | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java b/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java index 924d76a0596..97145a2aefe 100644 --- a/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java +++ b/oak-upgrade/src/test/java/org/apache/jackrabbit/oak/upgrade/cli/AbstractOak2OakTest.java @@ -31,14 +31,12 @@ import java.util.List; import java.util.Map; import java.util.Random; -import java.util.function.Function; import javax.jcr.Node; import javax.jcr.Property; import javax.jcr.RepositoryException; import javax.jcr.Session; import javax.jcr.SimpleCredentials; -import javax.jcr.Value; import org.apache.jackrabbit.guava.common.collect.Lists; import org.apache.commons.codec.digest.DigestUtils; @@ -61,7 +59,6 @@ import org.apache.jackrabbit.oak.upgrade.cli.container.NodeStoreContainer; import org.apache.jackrabbit.oak.upgrade.cli.container.SegmentNodeStoreContainer; import org.apache.jackrabbit.oak.upgrade.cli.parser.CliArgumentException; -import org.jetbrains.annotations.Nullable; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -189,17 +186,13 @@ public static void verifyContent(Session session) throws RepositoryException { Node nodeType = session.getNode("/jcr:system/jcr:nodeTypes/sling:OrderedFolder"); assertEquals("rep:NodeType", nodeType.getProperty("jcr:primaryType").getString()); - List values = Lists.transform(Arrays.asList(nodeType.getProperty("rep:protectedProperties").getValues()), new Function() { - @Nullable - @Override - public String apply(@Nullable Value input) { + List values = Lists.transform(Arrays.asList(nodeType.getProperty("rep:protectedProperties").getValues()), input -> { try { return input.getString(); } catch (RepositoryException e) { return null; } - } - }::apply); + }); assertTrue(values.contains("jcr:mixinTypes")); assertTrue(values.contains("jcr:primaryType")); assertEquals("false", nodeType.getProperty("jcr:isAbstract").getString()); From 1ece1fec6cad6b68bea888cd0f62ccaf5aaaa8d4 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Sun, 14 Jul 2024 11:00:12 +0100 Subject: [PATCH 21/26] OAK-10945: Remove usage of Guava Function interface (oak-store-spi) - cleanup --- .../apache/jackrabbit/oak/spi/state/ChildNodeEntry.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/ChildNodeEntry.java b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/ChildNodeEntry.java index 1fbef39a48c..0a59387fa01 100644 --- a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/ChildNodeEntry.java +++ b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/spi/state/ChildNodeEntry.java @@ -19,7 +19,6 @@ import java.util.function.Function; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; /** * A {@code ChildNodeEntry} instance represents the child node states of a @@ -53,15 +52,11 @@ public interface ChildNodeEntry { * Mapping from a ChildNodeEntry instance to its name. */ Function GET_NAME = - new Function() { - @Override @Nullable - public String apply(@Nullable ChildNodeEntry input) { + input -> { if (input != null) { return input.getName(); } else { return null; } - } - }; - + }; } From fd9f62ea578312e98795b81c8fb36b9744cc9480 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Sun, 14 Jul 2024 11:37:29 +0100 Subject: [PATCH 22/26] OAK-10945: Remove usage of Guava Function interface (oak-store-document) - cleanup --- .../plugins/document/DocumentNodeState.java | 21 ++++--------------- .../plugins/document/DocumentNodeStore.java | 15 +------------ .../oak/plugins/document/NodeDocument.java | 17 +++++---------- .../oak/plugins/document/PropertyHistory.java | 10 ++------- .../document/persistentCache/NodeCache.java | 10 ++------- .../persistentCache/PersistentCache.java | 8 +++---- .../oak/plugins/memory/ModifiedNodeState.java | 1 - 7 files changed, 18 insertions(+), 64 deletions(-) diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java index cd16e86771b..a9cc56fb4d0 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeState.java @@ -23,7 +23,6 @@ import java.util.Map; import java.util.NoSuchElementException; import java.util.Set; -import java.util.function.Function; import org.apache.jackrabbit.guava.common.collect.ImmutableMap; import org.apache.jackrabbit.guava.common.collect.TreeTraverser; @@ -48,7 +47,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; - import org.apache.jackrabbit.guava.common.collect.Iterables; import org.apache.jackrabbit.guava.common.collect.Iterators; @@ -574,24 +572,19 @@ private AbstractDocumentNodeState getSecondaryNodeState(){ private Iterable getChildNodeEntries(@NotNull String name, int limit) { Iterable children = store.getChildNodes(this, name, limit); - return Iterables.transform(children, new Function() { - @Override - public ChildNodeEntry apply(final AbstractDocumentNodeState input) { + return Iterables.transform(children, input -> { return new AbstractChildNodeEntry() { - @NotNull @Override public String getName() { return input.getPath().getName(); } - @NotNull @Override public NodeState getNodeState() { return input; } }; - } - }::apply); + }); } private static Map asMap(Iterable props){ @@ -755,25 +748,19 @@ private AbstractDocumentNodeState createBundledState(String childNodeName, Match } private Iterator getBundledChildren(){ - return Iterators.transform(bundlingContext.getBundledChildNodeNames().iterator(), - new Function() { - @Override - public ChildNodeEntry apply(final String childNodeName) { + return Iterators.transform(bundlingContext.getBundledChildNodeNames().iterator(), childNodeName -> { return new AbstractChildNodeEntry() { - @NotNull @Override public String getName() { return childNodeName; } - @NotNull @Override public NodeState getNodeState() { return createBundledState(childNodeName, bundlingContext.matcher.next(childNodeName)); } }; - } - }::apply); + }); } private static BundlingContext createBundlingContext(Map properties, diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java index 027edf9bf42..f5ed5650755 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java @@ -493,19 +493,6 @@ public String serialize(Blob blob) { } }; - /** - * A function, which takes a String and returns {@code true} if the String - * is a serialized binary value of a {@link DocumentPropertyState}. The - * apply method will throw an IllegalArgumentException if the String is - * malformed. - */ - private final Function binarySize = new Function() { - @Override - public Long apply(@Nullable String input) { - return getBinarySize(input); - } - }; - private final Clock clock; private final Checkpoints checkpoints; @@ -2669,7 +2656,7 @@ private void backgroundSplit() { continue; } cleanCollisions(doc, collisionGarbageBatchSize); - Iterator it = doc.split(this, head, binarySize::apply).iterator(); + Iterator it = doc.split(this, head, input -> getBinarySize(input)).iterator(); while(it.hasNext()) { UpdateOp op = it.next(); Path path = doc.getPath(); diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java index e944f09e56d..1c76f63e122 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/NodeDocument.java @@ -1351,16 +1351,12 @@ Iterable getPreviousDocs(@NotNull final String property, } // didn't find entry -> scan through remaining head ranges - return filter(transform(getPreviousRanges().headMap(revision).entrySet(), - new Function, NodeDocument>() { - @Override - public NodeDocument apply(Map.Entry input) { + return filter(transform(getPreviousRanges().headMap(revision).entrySet(), input -> { if (input.getValue().includes(revision)) { return getPreviousDoc(input.getKey(), input.getValue()); } return null; - } - }::apply), new Predicate() { + }), new Predicate() { @Override public boolean apply(@Nullable NodeDocument input) { return input != null && input.getValueMap(property).containsKey(revision); @@ -1659,17 +1655,14 @@ private Iterable> changesFor(final List range if (ranges.isEmpty()) { return Collections.emptyList(); } - final Function>> rangeToChanges = - new Function>>() { - @Override - public Iterable> apply(Range input) { + + final Function>> rangeToChanges = input -> { NodeDocument doc = getPreviousDoc(input.high, input); if (doc == null) { return Collections.emptyList(); } return doc.getVisibleChanges(property, readRev); - } - }; + }; Iterable> changes; if (ranges.size() == 1) { diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java index fbe53da5d2e..5af7684ecdb 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/PropertyHistory.java @@ -24,7 +24,6 @@ import java.util.Iterator; import java.util.Map; import java.util.TreeMap; -import java.util.function.Function; import org.apache.jackrabbit.guava.common.base.Predicates; import org.apache.jackrabbit.guava.common.collect.AbstractIterator; @@ -58,11 +57,7 @@ public PropertyHistory(@NotNull NodeDocument doc, @Override public Iterator iterator() { - return ensureOrder(filter(transform(doc.getPreviousRanges().entrySet(), - new Function, Map.Entry>() { - @Nullable - @Override - public Map.Entry apply(Map.Entry input) { + return ensureOrder(filter(transform(doc.getPreviousRanges().entrySet(), input -> { Revision r = input.getKey(); int h = input.getValue().height; String prevId = Utils.getPreviousIdFor(mainPath, r, h); @@ -72,8 +67,7 @@ public Map.Entry apply(Map.Entry input) return null; } return new SimpleImmutableEntry(r, prev); - } - }::apply), Predicates.notNull())); + }), Predicates.notNull())); } /** diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java index a066d94b892..af0e49dd7c4 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java @@ -31,7 +31,6 @@ import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ExecutionException; -import java.util.function.Function; import org.apache.jackrabbit.guava.common.cache.Cache; import org.apache.jackrabbit.guava.common.cache.CacheStats; @@ -47,7 +46,6 @@ import org.apache.jackrabbit.oak.stats.StatisticsProvider; import org.apache.jackrabbit.oak.stats.TimerStats; import org.h2.mvstore.MVMap; -import org.h2.mvstore.WriteBuffer; import org.h2.mvstore.type.DataType; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; @@ -161,10 +159,7 @@ private V asyncReadIfPresent(K key) { } private void broadcast(final K key, final V value) { - cache.broadcast(type, new Function() { - @Override - @Nullable - public Void apply(@Nullable WriteBuffer buffer) { + cache.broadcast(type, buffer -> { keyType.write(buffer, key); if (value == null) { buffer.put((byte) 0); @@ -173,8 +168,7 @@ public Void apply(@Nullable WriteBuffer buffer) { valueType.write(buffer, value); } return null; - } - }::apply); + }); } private void write(final K key, final V value) { diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/PersistentCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/PersistentCache.java index cf58336e0f5..6f4a0252bdf 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/PersistentCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/PersistentCache.java @@ -51,13 +51,13 @@ * A persistent cache for the document store. */ public class PersistentCache implements Broadcaster.Listener { - + static final Logger LOG = LoggerFactory.getLogger(PersistentCache.class); private static final String FILE_PREFIX = "cache-"; private static final String FILE_SUFFIX = ".data"; private static final AtomicInteger COUNTER = new AtomicInteger(); - + private boolean cacheNodes = true; private boolean cacheChildren = true; private boolean cacheDiff = true; @@ -69,7 +69,7 @@ public class PersistentCache implements Broadcaster.Listener { private boolean asyncDiffCache = false; private HashMap caches = new HashMap(); - + private final String directory; private MapFactory writeStore; private MapFactory readStore; @@ -86,7 +86,7 @@ public class PersistentCache implements Broadcaster.Listener { private DynamicBroadcastConfig broadcastConfig; private CacheActionDispatcher writeDispatcher; private Thread writeDispatcherThread; - + { ByteBuffer bb = ByteBuffer.wrap(new byte[16]); UUID uuid = UUID.randomUUID(); diff --git a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java index 9201c309b03..05900f27449 100644 --- a/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java +++ b/oak-store-spi/src/main/java/org/apache/jackrabbit/oak/plugins/memory/ModifiedNodeState.java @@ -39,7 +39,6 @@ import org.apache.jackrabbit.oak.spi.state.NodeState; import org.apache.jackrabbit.oak.spi.state.NodeStateDiff; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.apache.jackrabbit.guava.common.base.Predicate; import org.apache.jackrabbit.guava.common.base.Predicates; From 2e9f7ec4454a7226d3cd3dc2b136c4a761684ac1 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Sun, 14 Jul 2024 11:44:03 +0100 Subject: [PATCH 23/26] OAK-10945: Remove usage of Guava Function interface (oak-store-composite) - cleanup --- .../oak/composite/CompositeChildrenCountTest.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java b/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java index 4f9d3c147e4..f25fdb9938c 100644 --- a/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java +++ b/oak-store-composite/src/test/java/org/apache/jackrabbit/oak/composite/CompositeChildrenCountTest.java @@ -34,12 +34,10 @@ import org.apache.jackrabbit.oak.spi.state.NodeState; import org.apache.jackrabbit.oak.spi.state.NodeStore; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.junit.Test; import java.util.List; import java.util.Map; -import java.util.function.Function; import static org.apache.jackrabbit.guava.common.collect.Iterables.cycle; import static org.apache.jackrabbit.guava.common.collect.Iterables.limit; @@ -240,14 +238,10 @@ public NodeBuilder builder() { } private Iterable asCountingIterable(Iterable input) { - return Iterables.transform(input, new Function() { - @Nullable - @Override - public T apply(@Nullable T input) { + return Iterables.transform(input, inp -> { fetchedChildren++; - return input; - } - }::apply); + return inp; + }); } } } From 9b7921ba69d9a2b9db37a839295aead3b8c9fff5 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Sun, 14 Jul 2024 12:08:58 +0100 Subject: [PATCH 24/26] OAK-10945: Remove usage of Guava Function interface (oak-segment-tar) - cleanup --- .../segment/file/tooling/RevisionHistory.java | 10 ++----- .../oak/segment/ReaderCacheTest.java | 26 +++---------------- 2 files changed, 6 insertions(+), 30 deletions(-) diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/RevisionHistory.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/RevisionHistory.java index 9660dc892b8..3618761da04 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/RevisionHistory.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tooling/RevisionHistory.java @@ -27,7 +27,6 @@ import java.io.File; import java.io.IOException; import java.util.Iterator; -import java.util.function.Function; import org.apache.jackrabbit.guava.common.collect.Iterators; import org.apache.jackrabbit.oak.json.BlobSerializer; @@ -35,7 +34,6 @@ import org.apache.jackrabbit.oak.segment.SegmentNodeState; import org.apache.jackrabbit.oak.segment.spi.persistence.JournalFile; import org.apache.jackrabbit.oak.segment.file.InvalidFileStoreVersionException; -import org.apache.jackrabbit.oak.segment.file.JournalEntry; import org.apache.jackrabbit.oak.segment.file.JournalReader; import org.apache.jackrabbit.oak.segment.file.ReadOnlyFileStore; import org.apache.jackrabbit.oak.spi.state.NodeState; @@ -80,15 +78,11 @@ public Iterator getHistory(@NotNull JournalFile journal, @NotNul checkNotNull(path); try (JournalReader journalReader = new JournalReader(checkNotNull(journal))) { - return Iterators.transform(journalReader, - new Function() { - @NotNull @Override - public HistoryElement apply(JournalEntry entry) { + return Iterators.transform(journalReader, entry -> { store.setRevision(entry.getRevision()); NodeState node = getNode(store.getHead(), path); return new HistoryElement(entry.getRevision(), node); - } - }::apply); + }); } } diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ReaderCacheTest.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ReaderCacheTest.java index e0bfafa37c8..da7f6ecdf1d 100644 --- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ReaderCacheTest.java +++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/ReaderCacheTest.java @@ -28,8 +28,6 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Function; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import org.junit.Test; public class ReaderCacheTest { @@ -37,12 +35,9 @@ public class ReaderCacheTest { @Test public void empty() { final AtomicInteger counter = new AtomicInteger(); - Function loader = new Function() { - @Override @NotNull - public String apply(@Nullable Integer input) { + Function loader = input -> { counter.incrementAndGet(); return valueOf(input); - } }; StringCache c = new StringCache(0); for (int repeat = 0; repeat < 10; repeat++) { @@ -60,12 +55,9 @@ public String apply(@Nullable Integer input) { public void largeEntries() { final AtomicInteger counter = new AtomicInteger(); final String large = new String(new char[1024]); - Function loader = new Function() { - @Override @Nullable - public String apply(@Nullable Integer input) { + Function loader = input -> { counter.incrementAndGet(); return large + input; - } }; StringCache c = new StringCache(1024); for (int repeat = 0; repeat < 10; repeat++) { @@ -83,12 +75,7 @@ public String apply(@Nullable Integer input) { @Test public void clear() { final AtomicInteger counter = new AtomicInteger(); - Function uniqueLoader = new Function() { - @Override @Nullable - public String apply(@Nullable Integer input) { - return valueOf(counter.incrementAndGet()); - } - }; + Function uniqueLoader = input -> valueOf(counter.incrementAndGet()); StringCache c = new StringCache(0); // load a new entry assertEquals("1", c.get(0, 0, 0, uniqueLoader)); @@ -106,12 +93,7 @@ public void randomized() { int segmentCount = 10; for (int i = 0; i < segmentCount; i++) { final int x = i; - Function loader = new Function() { - @Override @Nullable - public String apply(@Nullable Integer input) { - return "loader #" + x + " offset " + input; - } - }; + Function loader = input -> "loader #" + x + " offset " + input; loaderList.add(loader); } StringCache c = new StringCache(10); From 4ae816db5b2591d46680747c44b457aabb3a3bd6 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Sun, 14 Jul 2024 12:30:39 +0100 Subject: [PATCH 25/26] OAK-10945: Remove usage of Guava Function interface (oak-lucene) - cleanup --- .../index/lucene/hybrid/IndexedPaths.java | 22 ++++++++-------- .../lucene/hybrid/LuceneDocumentHolder.java | 25 +++++++++---------- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/IndexedPaths.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/IndexedPaths.java index 998a55dfec9..374afe09432 100644 --- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/IndexedPaths.java +++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/IndexedPaths.java @@ -35,18 +35,18 @@ public IndexedPaths(Multimap indexedPaths) { @Override public Iterator iterator() { - return Iterators.transform(indexedPaths.asMap().entrySet().iterator(), - input -> new IndexedPathInfo() { - @Override - public String getPath() { - return input.getKey(); - } + return Iterators.transform(indexedPaths.asMap().entrySet().iterator(), input -> + new IndexedPathInfo() { + @Override + public String getPath() { + return input.getKey(); + } - @Override - public Iterable getIndexPaths() { - return input.getValue(); - } - }); + @Override + public Iterable getIndexPaths() { + return input.getValue(); + } + }); } @Override diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java index 6392392fa6d..462bc28f4ec 100644 --- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java +++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/LuceneDocumentHolder.java @@ -115,19 +115,18 @@ private boolean queueSizeWithinLimits(){ } private static Iterable asLuceneDocInfo(ListMultimap docs) { - return Iterables.transform(docs.entries(), - input -> { - return new LuceneDocInfo() { - @Override - public String getIndexPath() { - return input.getKey(); - } + return Iterables.transform(docs.entries(), input -> { + return new LuceneDocInfo() { + @Override + public String getIndexPath() { + return input.getKey(); + } - @Override - public String getDocPath() { - return input.getValue(); - } - }; - }); + @Override + public String getDocPath() { + return input.getValue(); + } + }; + }); } } From 98e9c309c6593f21e921e0214551095082e54911 Mon Sep 17 00:00:00 2001 From: Julian Reschke Date: Sun, 14 Jul 2024 12:43:14 +0100 Subject: [PATCH 26/26] OAK-10945: Remove usage of Guava Function interface (oak-jcr) - cleanup --- .../jackrabbit/oak/jcr/xml/ImporterImpl.java | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java index 44fe8963c90..30beec363cf 100644 --- a/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java +++ b/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java @@ -23,7 +23,6 @@ import java.util.Set; import java.util.Stack; import java.util.UUID; -import java.util.function.Function; import javax.jcr.ImportUUIDBehavior; import javax.jcr.ItemExistsException; @@ -299,31 +298,23 @@ private void importProperties(@NotNull Tree tree, } private Iterable getPropertyImporters() { - return Iterables.filter(Iterables.transform(pItemImporters, new Function() { - @Nullable - @Override - public ProtectedPropertyImporter apply(@Nullable ProtectedItemImporter importer) { + return Iterables.filter(Iterables.transform(pItemImporters, importer -> { if (importer instanceof ProtectedPropertyImporter) { return (ProtectedPropertyImporter) importer; } else { return null; } - } - }::apply), Predicates.notNull()); + }), Predicates.notNull()); } private Iterable getNodeImporters() { - return Iterables.filter(Iterables.transform(pItemImporters, new Function() { - @Nullable - @Override - public ProtectedNodeImporter apply(@Nullable ProtectedItemImporter importer) { + return Iterables.filter(Iterables.transform(pItemImporters, importer -> { if (importer instanceof ProtectedNodeImporter) { return (ProtectedNodeImporter) importer; } else { return null; } - } - }::apply), Predicates.notNull()); + }), Predicates.notNull()); } //-----------------------------------------------------------< Importer >---