Skip to content

Commit 85b6319

Browse files
lhotarinikhil-ctds
authored andcommitted
[fix][misc] Remove RoaringBitmap dependency from pulsar-common (apache#23008)
(cherry picked from commit 32e29a3) (cherry picked from commit 57a91b0)
1 parent 4bb6e09 commit 85b6319

File tree

5 files changed

+14
-10
lines changed

5 files changed

+14
-10
lines changed

distribution/shell/src/assemble/LICENSE.bin.txt

-2
Original file line numberDiff line numberDiff line change
@@ -379,8 +379,6 @@ The Apache Software License, Version 2.0
379379
- simpleclient_tracer_common-0.16.0.jar
380380
- simpleclient_tracer_otel-0.16.0.jar
381381
- simpleclient_tracer_otel_agent-0.16.0.jar
382-
* RoaringBitmap
383-
- RoaringBitmap-1.2.0.jar
384382
* Log4J
385383
- log4j-api-2.18.0.jar
386384
- log4j-core-2.18.0.jar

managed-ledger/pom.xml

+4
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,10 @@
104104
</exclusion>
105105
</exclusions>
106106
</dependency>
107+
<dependency>
108+
<groupId>org.roaringbitmap</groupId>
109+
<artifactId>RoaringBitmap</artifactId>
110+
</dependency>
107111
<dependency>
108112
<groupId>io.dropwizard.metrics</groupId>
109113
<artifactId>metrics-core</artifactId>

managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/RangeSetWrapper.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.apache.bookkeeper.mledger.ManagedLedgerConfig;
2828
import org.apache.pulsar.common.util.collections.LongPairRangeSet;
2929
import org.apache.pulsar.common.util.collections.OpenLongPairRangeSet;
30+
import org.roaringbitmap.RoaringBitSet;
3031

3132
/**
3233
* Wraps other Range classes, and adds LRU, marking dirty data and other features on this basis.
@@ -55,7 +56,7 @@ public RangeSetWrapper(LongPairConsumer<T> rangeConverter,
5556
this.config = managedCursor.getManagedLedger().getConfig();
5657
this.rangeConverter = rangeConverter;
5758
this.rangeSet = config.isUnackedRangesOpenCacheSetEnabled()
58-
? new OpenLongPairRangeSet<>(rangeConverter)
59+
? new OpenLongPairRangeSet<>(rangeConverter, RoaringBitSet::new)
5960
: new LongPairRangeSet.DefaultRangeSet<>(rangeConverter, rangeBoundConsumer);
6061
this.enableMultiEntry = config.isPersistentUnackedRangesWithMultipleEntriesEnabled();
6162
}

pulsar-common/pom.xml

-5
Original file line numberDiff line numberDiff line change
@@ -243,11 +243,6 @@
243243
<artifactId>awaitility</artifactId>
244244
<scope>test</scope>
245245
</dependency>
246-
247-
<dependency>
248-
<groupId>org.roaringbitmap</groupId>
249-
<artifactId>RoaringBitmap</artifactId>
250-
</dependency>
251246
</dependencies>
252247

253248
<build>

pulsar-common/src/main/java/org/apache/pulsar/common/util/collections/OpenLongPairRangeSet.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
import java.util.NavigableMap;
2929
import java.util.concurrent.ConcurrentSkipListMap;
3030
import java.util.concurrent.atomic.AtomicBoolean;
31+
import java.util.function.Supplier;
3132
import javax.annotation.concurrent.NotThreadSafe;
3233
import org.apache.commons.lang.mutable.MutableInt;
33-
import org.roaringbitmap.RoaringBitSet;
3434

3535
/**
3636
* A Concurrent set comprising zero or more ranges of type {@link LongPair}. This can be alternative of
@@ -48,6 +48,7 @@ public class OpenLongPairRangeSet<T extends Comparable<T>> implements LongPairRa
4848

4949
protected final NavigableMap<Long, BitSet> rangeBitSetMap = new ConcurrentSkipListMap<>();
5050
private final LongPairConsumer<T> consumer;
51+
private final Supplier<BitSet> bitSetSupplier;
5152

5253
// caching place-holder for cpu-optimization to avoid calculating ranges again
5354
private volatile int cachedSize = 0;
@@ -56,7 +57,12 @@ public class OpenLongPairRangeSet<T extends Comparable<T>> implements LongPairRa
5657
private volatile boolean updatedAfterCachedForToString = true;
5758

5859
public OpenLongPairRangeSet(LongPairConsumer<T> consumer) {
60+
this(consumer, BitSet::new);
61+
}
62+
63+
public OpenLongPairRangeSet(LongPairConsumer<T> consumer, Supplier<BitSet> bitSetSupplier) {
5964
this.consumer = consumer;
65+
this.bitSetSupplier = bitSetSupplier;
6066
}
6167

6268
/**
@@ -405,7 +411,7 @@ private int getSafeEntry(long value) {
405411
}
406412

407413
private BitSet createNewBitSet() {
408-
return new RoaringBitSet();
414+
return bitSetSupplier.get();
409415
}
410416

411417
}

0 commit comments

Comments
 (0)