Refactor set and value builders to remove reference to DatabaseManager
Change-Id: Ia6d012af0766d117ec1baac8652056818b17c8bf
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DatabaseManager.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DatabaseManager.java
index b35b930..587778c 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DatabaseManager.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DatabaseManager.java
@@ -30,6 +30,7 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.function.Function;
+import java.util.function.Supplier;
import java.util.stream.Collectors;
import net.kuujo.copycat.CopycatConfig;
@@ -65,6 +66,7 @@
import org.onosproject.core.IdGenerator;
import org.onosproject.persistence.PersistenceService;
import org.onosproject.store.cluster.messaging.ClusterCommunicationService;
+import org.onosproject.store.serializers.KryoNamespaces;
import org.onosproject.store.service.AtomicCounterBuilder;
import org.onosproject.store.service.AtomicValueBuilder;
import org.onosproject.store.service.ConsistentMapBuilder;
@@ -74,6 +76,7 @@
import org.onosproject.store.service.EventuallyConsistentMapBuilder;
import org.onosproject.store.service.MapInfo;
import org.onosproject.store.service.PartitionInfo;
+import org.onosproject.store.service.Serializer;
import org.onosproject.store.service.StorageAdminService;
import org.onosproject.store.service.StorageService;
import org.onosproject.store.service.Transaction;
@@ -318,7 +321,7 @@
@Override
public <E> DistributedSetBuilder<E> setBuilder() {
- return new DefaultDistributedSetBuilder<>(this);
+ return new DefaultDistributedSetBuilder<>(() -> this.<E, Boolean>consistentMapBuilder());
}
@@ -334,7 +337,12 @@
@Override
public <V> AtomicValueBuilder<V> atomicValueBuilder() {
- return new DefaultAtomicValueBuilder<>(this);
+ Supplier<ConsistentMapBuilder<String, byte[]>> mapBuilderSupplier =
+ () -> this.<String, byte[]>consistentMapBuilder()
+ .withName("onos-atomic-values")
+ .withMeteringDisabled()
+ .withSerializer(Serializer.using(KryoNamespaces.BASIC));
+ return new DefaultAtomicValueBuilder<>(mapBuilderSupplier);
}
@Override
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultAtomicValueBuilder.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultAtomicValueBuilder.java
index 3c2243d..ba4a9b6 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultAtomicValueBuilder.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultAtomicValueBuilder.java
@@ -15,7 +15,8 @@
*/
package org.onosproject.store.primitives.impl;
-import org.onosproject.store.serializers.KryoNamespaces;
+import java.util.function.Supplier;
+
import org.onosproject.store.service.AsyncAtomicValue;
import org.onosproject.store.service.AtomicValue;
import org.onosproject.store.service.AtomicValueBuilder;
@@ -33,11 +34,8 @@
private Serializer serializer;
private ConsistentMapBuilder<String, byte[]> mapBuilder;
- public DefaultAtomicValueBuilder(DatabaseManager manager) {
- mapBuilder = manager.<String, byte[]>consistentMapBuilder()
- .withName("onos-atomic-values")
- .withMeteringDisabled()
- .withSerializer(Serializer.using(KryoNamespaces.BASIC));
+ public DefaultAtomicValueBuilder(Supplier<ConsistentMapBuilder<String, byte[]>> mapBuilderSupplier) {
+ mapBuilder = mapBuilderSupplier.get();
}
@Override
diff --git a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultDistributedSetBuilder.java b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultDistributedSetBuilder.java
index 304044c..6621b4c 100644
--- a/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultDistributedSetBuilder.java
+++ b/core/store/primitives/src/main/java/org/onosproject/store/primitives/impl/DefaultDistributedSetBuilder.java
@@ -15,6 +15,8 @@
*/
package org.onosproject.store.primitives.impl;
+import java.util.function.Supplier;
+
import org.onosproject.core.ApplicationId;
import org.onosproject.store.service.AsyncDistributedSet;
import org.onosproject.store.service.ConsistentMapBuilder;
@@ -33,8 +35,8 @@
private ConsistentMapBuilder<E, Boolean> mapBuilder;
private boolean metering = true;
- public DefaultDistributedSetBuilder(DatabaseManager manager) {
- this.mapBuilder = manager.consistentMapBuilder();
+ public DefaultDistributedSetBuilder(Supplier<ConsistentMapBuilder<E, Boolean>> mapBuilderSupplier) {
+ this.mapBuilder = mapBuilderSupplier.get();
mapBuilder.withMeteringDisabled();
}