This is an automated email from the ASF dual-hosted git repository. adulceanu pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit ed8494b5e3a90f0021f3cd6e3fc7112ec9ec6653 Merge: 951d69e57a 00967073c3 Author: dulceanu <andrei.dulce...@gmail.com> AuthorDate: Thu Jul 27 16:40:00 2023 +0300 OAK-9922 - Parallel Compaction Solved conflicts due to guava changes .DS_Store | Bin 0 -> 6148 bytes .../plugins/index/counter/ApproximateCounter.java | 9 +- .../plugins/index/counter/NodeCounterEditor.java | 1 + .../oak/plugins/index/counter/jmx/NodeCounter.java | 2 +- .../index/property/PropertyIndexInfoProvider.java | 2 +- .../strategy/ContentMirrorStoreStrategy.java | 2 +- .../strategy/UniqueEntryStoreStrategy.java | 2 +- .../strategy/ContentMirrorStoreStrategyTest.java | 2 +- .../site/markdown/nodestore/segment/overview.md | 27 +- .../apache/jackrabbit/oak/run/CompactCommand.java | 54 +-- .../oak/segment/aws/tool/AwsCompact.java | 34 +- .../oak/segment/aws/tool/AwsToolUtils.java | 19 +- .../oak/segment/azure/tool/AzureCompact.java | 21 +- .../oak/segment/azure/tool/ToolUtils.java | 26 +- .../oak/segment/CheckpointCompactor.java | 32 +- .../jackrabbit/oak/segment/ClassicCompactor.java | 21 +- .../jackrabbit/oak/segment/CompactorUtils.java | 35 ++ .../oak/segment/DefaultSegmentWriterBuilder.java | 90 +++-- .../jackrabbit/oak/segment/ParallelCompactor.java | 370 +++++++++++++++++++ .../apache/jackrabbit/oak/segment/RecordCache.java | 119 +++---- .../oak/segment/SegmentBufferWriterPool.java | 390 ++++++++++++++------- .../oak/segment/compaction/SegmentGCOptions.java | 47 ++- .../segment/file/AbstractCompactionStrategy.java | 31 +- .../jackrabbit/oak/segment/file/FileStore.java | 7 +- .../oak/segment/file/FileStoreBuilder.java | 14 +- .../oak/segment/file/GCNodeWriteMonitor.java | 66 ++-- .../jackrabbit/oak/segment/file/PriorityCache.java | 275 +++++++++------ .../jackrabbit/oak/segment/memory/MemoryStore.java | 14 +- .../jackrabbit/oak/segment/tool/Compact.java | 22 +- ...java => AbstractCompactorExternalBlobTest.java} | 29 +- ...mpactorTest.java => AbstractCompactorTest.java} | 27 +- .../CheckpointCompactorExternalBlobTest.java | 135 +------ .../oak/segment/CheckpointCompactorTest.java | 111 +----- .../oak/segment/CompactionAndCleanupIT.java | 13 +- ...actorTestUtils.java => CompactorTestUtils.java} | 20 +- .../jackrabbit/oak/segment/NodeRecordTest.java | 4 +- .../segment/ParallelCompactorExternalBlobTest.java | 63 ++++ .../oak/segment/ParallelCompactorTest.java | 63 ++++ .../oak/segment/RecordCacheStatsTest.java | 20 +- .../jackrabbit/oak/segment/RecordCacheTest.java | 54 ++- .../oak/segment/SegmentBufferWriterPoolTest.java | 67 ++-- .../segment/file/ConcurrentPriorityCacheTest.java | 236 +++++++++++++ .../oak/segment/file/PriorityCacheTest.java | 27 +- oak-shaded-guava/.DS_Store | Bin 0 -> 6148 bytes .../oak/plugins/index}/ApproximateCounter.java | 2 +- .../oak/plugins/index}/ApproximateCounterTest.java | 9 +- 46 files changed, 1774 insertions(+), 840 deletions(-) diff --cc .DS_Store index 0000000000,0000000000..c9f58500aa new file mode 100644 Binary files differ diff --cc oak-run/src/main/java/org/apache/jackrabbit/oak/run/CompactCommand.java index 212c7a0435,315ac68240..157c863b26 --- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CompactCommand.java +++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/CompactCommand.java @@@ -18,17 -18,15 +18,16 @@@ package org.apache.jackrabbit.oak.run; import java.io.File; -import com.google.common.base.StandardSystemProperty; + - import org.apache.jackrabbit.guava.common.base.StandardSystemProperty; import joptsimple.OptionParser; import joptsimple.OptionSet; import joptsimple.OptionSpec; import org.apache.jackrabbit.oak.run.commons.Command; + import org.apache.jackrabbit.oak.segment.aws.tool.AwsCompact; import org.apache.jackrabbit.oak.segment.azure.tool.AzureCompact; - import org.apache.jackrabbit.oak.segment.azure.tool.AzureCompact.Builder; import org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions.CompactorType; - import org.apache.jackrabbit.oak.segment.aws.tool.AwsCompact; import org.apache.jackrabbit.oak.segment.tool.Compact; ++import org.apache.jackrabbit.guava.common.base.StandardSystemProperty; class CompactCommand implements Command { diff --cc oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriterBuilder.java index 94ae636a4b,c461084d29..8e222b9693 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriterBuilder.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/DefaultSegmentWriterBuilder.java @@@ -19,10 -19,9 +19,10 @@@ package org.apache.jackrabbit.oak.segment; - import static org.apache.jackrabbit.guava.common.base.Preconditions.checkNotNull; -import static com.google.common.base.Preconditions.checkNotNull; + import static org.apache.jackrabbit.oak.segment.SegmentBufferWriterPool.PoolType; + ++import static java.util.Objects.requireNonNull; + - import org.apache.jackrabbit.guava.common.base.Supplier; - import org.apache.jackrabbit.guava.common.base.Suppliers; import org.apache.jackrabbit.oak.segment.WriterCacheManager.Empty; import org.apache.jackrabbit.oak.segment.file.FileStore; import org.apache.jackrabbit.oak.segment.file.ReadOnlyFileStore; @@@ -62,7 -64,7 +65,7 @@@ public final class DefaultSegmentWriter private WriterCacheManager cacheManager = new WriterCacheManager.Default(); private DefaultSegmentWriterBuilder(@NotNull String name) { -- this.name = checkNotNull(name); ++ this.name = requireNonNull(name); } /** @@@ -87,7 -89,7 +90,7 @@@ */ @NotNull public DefaultSegmentWriterBuilder withGeneration(@NotNull Supplier<GCGeneration> generation) { -- this.generation = checkNotNull(generation); ++ this.generation = requireNonNull(generation); return this; } @@@ -97,7 -99,7 +100,7 @@@ */ @NotNull public DefaultSegmentWriterBuilder withGeneration(@NotNull GCGeneration generation) { - this.generation = Suppliers.ofInstance(checkNotNull(generation)); - this.generation = () -> checkNotNull(generation); ++ this.generation = () -> requireNonNull(generation); return this; } @@@ -126,7 -133,7 +134,7 @@@ */ @NotNull public DefaultSegmentWriterBuilder with(WriterCacheManager cacheManager) { -- this.cacheManager = checkNotNull(cacheManager); ++ this.cacheManager = requireNonNull(cacheManager); return this; } @@@ -146,7 -153,7 +154,7 @@@ @NotNull public DefaultSegmentWriter build(@NotNull FileStore store) { return new DefaultSegmentWriter( -- checkNotNull(store), ++ requireNonNull(store), store.getReader(), store.getSegmentIdProvider(), store.getBlobStore(), @@@ -164,7 -171,7 +172,7 @@@ @NotNull public DefaultSegmentWriter build(@NotNull ReadOnlyFileStore store) { return new DefaultSegmentWriter( -- checkNotNull(store), ++ requireNonNull(store), store.getReader(), store.getSegmentIdProvider(), store.getBlobStore(), @@@ -199,7 -206,7 +207,7 @@@ @NotNull public DefaultSegmentWriter build(@NotNull MemoryStore store) { return new DefaultSegmentWriter( -- checkNotNull(store), ++ requireNonNull(store), store.getReader(), store.getSegmentIdProvider(), store.getBlobStore(), diff --cc oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java index 3b8817ad89,ec00bf3635..cd9d22f7d1 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java @@@ -19,16 -19,15 +19,20 @@@ package org.apache.jackrabbit.oak.segment; - import static org.apache.jackrabbit.guava.common.base.Preconditions.checkNotNull; -import com.google.common.base.Supplier; -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheStats; -import com.google.common.cache.RemovalListener; -import com.google.common.cache.Weigher; ++import static java.util.Objects.requireNonNull; + +import java.util.LinkedHashMap; +import java.util.Map; + - import org.apache.jackrabbit.guava.common.cache.CacheStats; - import org.apache.jackrabbit.guava.common.cache.Weigher; import org.jetbrains.annotations.NotNull; -import java.util.Objects; +import org.apache.jackrabbit.guava.common.base.Supplier; ++import org.apache.jackrabbit.guava.common.cache.CacheBuilder; ++import org.apache.jackrabbit.guava.common.cache.CacheStats; ++import org.apache.jackrabbit.guava.common.cache.RemovalListener; ++import org.apache.jackrabbit.guava.common.cache.Weigher; ++ + import java.util.concurrent.atomic.LongAdder; /** * Partial mapping of keys of type {@code K} to values of type {@link RecordId}. This is @@@ -91,7 -83,7 +88,7 @@@ public abstract class RecordCache<K> im if (size <= 0) { return Empty.emptyFactory(); } else { - return Default.defaultFactory(size, checkNotNull(weigher)); - return Default.defaultFactory(size, Objects.requireNonNull(weigher)); ++ return Default.defaultFactory(size, requireNonNull(weigher)); } } @@@ -141,22 -136,25 +141,25 @@@ } private static class Default<K> extends RecordCache<K> { - @NotNull - private final Map<K, RecordId> records; - - private final com.google.common.cache.Cache<K, RecordId> cache; ++ private final org.apache.jackrabbit.guava.common.cache.Cache<K, RecordId> cache; @NotNull private final Weigher<K, RecordId> weigher; + @NotNull + private final LongAdder weight = new LongAdder(); + @NotNull + private final LongAdder loadCount = new LongAdder(); - private long weight = 0; + @Override + public @NotNull CacheStats getStats() { + CacheStats internalStats = cache.stats(); + // any addition to the cache counts as load by our definition + return new CacheStats(internalStats.hitCount(), internalStats.missCount(), + loadCount.sum(), 0, 0, internalStats.evictionCount()); + } - static final <K> Supplier<RecordCache<K>> defaultFactory(final int size, @NotNull final Weigher<K, RecordId> weigher) { - return new Supplier<RecordCache<K>>() { - @Override - public RecordCache<K> get() { - return new Default<>(size, checkNotNull(weigher)); - } - }; + static <K> Supplier<RecordCache<K>> defaultFactory(final int size, @NotNull final Weigher<K, RecordId> weigher) { - return () -> new Default<>(size, Objects.requireNonNull(weigher)); ++ return () -> new Default<>(size, requireNonNull(weigher)); } Default(final int size, @NotNull final Weigher<K, RecordId> weigher) { diff --cc oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterPool.java index 59c4fadaaf,59236469f5..6d9bc5fa8f --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterPool.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriterPool.java @@@ -19,24 -19,27 +19,29 @@@ package org.apache.jackrabbit.oak.segment; -import com.google.common.util.concurrent.Monitor; -import org.apache.jackrabbit.oak.segment.file.tar.GCGeneration; -import org.jetbrains.annotations.NotNull; +import static org.apache.jackrabbit.guava.common.base.Preconditions.checkNotNull; +import static org.apache.jackrabbit.guava.common.base.Preconditions.checkState; +import static org.apache.jackrabbit.guava.common.collect.Lists.newArrayList; ++import static org.apache.jackrabbit.guava.common.collect.Maps.newConcurrentMap; +import static org.apache.jackrabbit.guava.common.collect.Maps.newHashMap; +import static org.apache.jackrabbit.guava.common.collect.Sets.newHashSet; +import static java.lang.Thread.currentThread; ++import static java.util.Objects.requireNonNull; import java.io.IOException; import java.util.AbstractMap.SimpleImmutableEntry; import java.util.List; import java.util.Map; import java.util.Set; + import java.util.concurrent.ConcurrentMap; + import java.util.concurrent.locks.ReadWriteLock; + import java.util.concurrent.locks.ReentrantReadWriteLock; + import java.util.function.Supplier; - import org.apache.jackrabbit.guava.common.base.Supplier; -import static com.google.common.base.Preconditions.checkState; -import static com.google.common.collect.Lists.newArrayList; -import static com.google.common.collect.Maps.newConcurrentMap; -import static com.google.common.collect.Maps.newHashMap; -import static com.google.common.collect.Sets.newHashSet; -import static java.lang.Thread.currentThread; -import static java.util.Objects.requireNonNull; +import org.apache.jackrabbit.guava.common.util.concurrent.Monitor; +import org.apache.jackrabbit.guava.common.util.concurrent.Monitor.Guard; +import org.apache.jackrabbit.oak.segment.file.tar.GCGeneration; +import org.jetbrains.annotations.NotNull; /** * This {@link WriteOperationHandler} uses a pool of {@link SegmentBufferWriter}s, diff --cc oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/AbstractCompactionStrategy.java index fc13fa9819,27a783fd23..cdde3c7918 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/AbstractCompactionStrategy.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/AbstractCompactionStrategy.java @@@ -27,14 -27,15 +27,15 @@@ import static org.apache.jackrabbit.oak import static org.apache.jackrabbit.oak.segment.file.TarRevisions.EXPEDITE_OPTION; import static org.apache.jackrabbit.oak.segment.file.TarRevisions.timeout; -import com.google.common.base.Function; +import org.apache.jackrabbit.guava.common.base.Function; - import org.apache.jackrabbit.oak.segment.CheckpointCompactor; - import org.apache.jackrabbit.oak.segment.ClassicCompactor; - import org.apache.jackrabbit.oak.segment.Compactor; import org.apache.jackrabbit.oak.segment.RecordId; import org.apache.jackrabbit.oak.segment.SegmentNodeState; + import org.apache.jackrabbit.oak.segment.Compactor; import org.apache.jackrabbit.oak.segment.SegmentWriter; + import org.apache.jackrabbit.oak.segment.ClassicCompactor; + import org.apache.jackrabbit.oak.segment.CheckpointCompactor; + import org.apache.jackrabbit.oak.segment.ParallelCompactor; import org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions.CompactorType; import org.apache.jackrabbit.oak.segment.compaction.SegmentGCOptions.GCType; import org.apache.jackrabbit.oak.segment.file.cancel.Cancellation; diff --cc oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java index fa9fd05b63,8ec8e76b7e..18375e28e7 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/FileStore.java @@@ -35,13 -35,16 +35,15 @@@ import java.util.concurrent.ExecutionEx import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; -import com.google.common.base.Supplier; -import com.google.common.io.Closer; -import com.google.common.util.concurrent.UncheckedExecutionException; - +import org.apache.jackrabbit.guava.common.base.Supplier; +import org.apache.jackrabbit.guava.common.io.Closer; +import org.apache.jackrabbit.guava.common.util.concurrent.UncheckedExecutionException; import org.apache.jackrabbit.oak.commons.Buffer; - import org.apache.jackrabbit.oak.segment.RecordId; import org.apache.jackrabbit.oak.segment.Segment; + import org.apache.jackrabbit.oak.segment.RecordId; import org.apache.jackrabbit.oak.segment.SegmentId; + import org.apache.jackrabbit.oak.segment.SegmentWriter; + import org.apache.jackrabbit.oak.segment.SegmentBufferWriterPool; import org.apache.jackrabbit.oak.segment.SegmentNodeState; import org.apache.jackrabbit.oak.segment.SegmentNotFoundException; import org.apache.jackrabbit.oak.segment.SegmentNotFoundExceptionListener; diff --cc oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java index 00038e446b,6ff2c025bd..bea1e9e096 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java @@@ -19,23 -19,27 +19,29 @@@ package org.apache.jackrabbit.oak.segment.file; -import com.google.common.base.Predicate; -import com.google.common.base.Supplier; -import com.google.common.cache.CacheStats; -import com.google.common.cache.Weigher; -import org.apache.jackrabbit.oak.segment.CacheWeights; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; + -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicLong; -import java.util.concurrent.atomic.LongAdder; -import java.util.concurrent.locks.ReentrantLock; +import static org.apache.jackrabbit.guava.common.base.Preconditions.checkArgument; +import static org.apache.jackrabbit.guava.common.base.Preconditions.checkNotNull; + -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; import static java.lang.Integer.bitCount; import static java.lang.Integer.numberOfTrailingZeros; import static java.lang.Long.numberOfLeadingZeros; import static java.lang.Math.max; import static java.util.Arrays.fill; ++import java.util.concurrent.atomic.AtomicInteger; ++import java.util.concurrent.atomic.AtomicLong; ++import java.util.concurrent.atomic.LongAdder; ++import java.util.concurrent.locks.ReentrantLock; ++ ++import org.apache.jackrabbit.guava.common.base.Predicate; ++import org.apache.jackrabbit.guava.common.base.Supplier; +import org.apache.jackrabbit.guava.common.cache.CacheStats; +import org.apache.jackrabbit.guava.common.cache.Weigher; +import org.apache.jackrabbit.oak.segment.CacheWeights; +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.Supplier; - /** * {@code PriorityCache} implements a partial mapping from keys of type {@code K} to values * of type {@code V}. Mappings are associates with a cost, which states how expensive it is @@@ -133,7 -132,7 +134,7 @@@ public class PriorityCache<K, V> * @return the next power of two starting from {@code size}. */ public static long nextPowerOfTwo(int size) { -- return 1L << (64L - numberOfLeadingZeros((long)max(1, size) - 1L)); ++ return 1L << (64L - numberOfLeadingZeros(max(1, size) - 1L)); } /** diff --cc oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java index 50b0ee99f7,2474b8376c..ddda4676a0 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/memory/MemoryStore.java @@@ -24,22 -24,22 +24,22 @@@ import java.io.IOException import java.util.Set; import java.util.concurrent.ConcurrentMap; -import com.google.common.collect.Maps; +import org.apache.jackrabbit.guava.common.collect.Maps; import org.apache.jackrabbit.oak.commons.Buffer; - import org.apache.jackrabbit.oak.segment.CachingSegmentReader; - import org.apache.jackrabbit.oak.segment.Revisions; import org.apache.jackrabbit.oak.segment.Segment; import org.apache.jackrabbit.oak.segment.SegmentId; + import org.apache.jackrabbit.oak.segment.Revisions; + import org.apache.jackrabbit.oak.segment.SegmentStore; + import org.apache.jackrabbit.oak.segment.SegmentReader; + import org.apache.jackrabbit.oak.segment.SegmentWriter; + import org.apache.jackrabbit.oak.segment.SegmentTracker; import org.apache.jackrabbit.oak.segment.SegmentIdFactory; import org.apache.jackrabbit.oak.segment.SegmentIdProvider; + import org.apache.jackrabbit.oak.segment.CachingSegmentReader; import org.apache.jackrabbit.oak.segment.SegmentNotFoundException; - import org.apache.jackrabbit.oak.segment.SegmentReader; - import org.apache.jackrabbit.oak.segment.SegmentStore; - import org.apache.jackrabbit.oak.segment.SegmentTracker; - import org.apache.jackrabbit.oak.segment.SegmentWriter; - import org.apache.jackrabbit.oak.spi.blob.BlobStore; import org.apache.jackrabbit.oak.stats.NoopStats; + import org.apache.jackrabbit.oak.spi.blob.BlobStore; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --cc oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordCacheStatsTest.java index 98db981b14,ee04ddd5ad..e177200f9b --- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordCacheStatsTest.java +++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/RecordCacheStatsTest.java @@@ -18,18 -18,15 +18,17 @@@ package org.apache.jackrabbit.oak.segment; +import static org.apache.jackrabbit.oak.segment.RecordCache.newRecordCache; +import static org.junit.Assert.assertEquals; + - import java.io.IOException; - import java.util.Random; - +import org.apache.jackrabbit.guava.common.cache.CacheStats; import org.apache.jackrabbit.oak.segment.memory.MemoryStore; import org.junit.Before; import org.junit.Test; - import org.apache.jackrabbit.guava.common.base.Supplier; + import java.io.IOException; + import java.util.Random; - -import static org.apache.jackrabbit.oak.segment.RecordCache.newRecordCache; -import static org.junit.Assert.assertEquals; ++import java.util.function.Supplier; public class RecordCacheStatsTest { private static final String NAME = "cache stats"; diff --cc oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/PriorityCacheTest.java index 3d2be39e04,87058a3ac9..380b595305 --- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/PriorityCacheTest.java +++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/PriorityCacheTest.java @@@ -19,21 -19,19 +19,20 @@@ package org.apache.jackrabbit.oak.segment.file; -import com.google.common.cache.Weigher; -import org.apache.jackrabbit.oak.segment.CacheWeights; -import org.junit.Test; - -import java.util.Random; - import static java.lang.Integer.valueOf; import static org.junit.Assert.assertEquals; - import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; + import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeTrue; - import java.util.Random; - +import org.apache.jackrabbit.guava.common.cache.Weigher; +import org.apache.jackrabbit.oak.segment.CacheWeights; +import org.junit.Test; + - import org.apache.jackrabbit.guava.common.base.Predicate; ++import java.util.Random; ++import java.util.function.Predicate; + public class PriorityCacheTest { @Test(expected = IllegalArgumentException.class) diff --cc oak-shaded-guava/.DS_Store index 0000000000,0000000000..91a7914c43 new file mode 100644 Binary files differ