Committed by
Gerrit Code Review
Refactor set and value builders to remove reference to DatabaseManager
Change-Id: Ia6d012af0766d117ec1baac8652056818b17c8bf
Showing
3 changed files
with
18 additions
and
10 deletions
| ... | @@ -30,6 +30,7 @@ import java.util.concurrent.Executors; | ... | @@ -30,6 +30,7 @@ import java.util.concurrent.Executors; |
| 30 | import java.util.concurrent.TimeUnit; | 30 | import java.util.concurrent.TimeUnit; |
| 31 | import java.util.concurrent.TimeoutException; | 31 | import java.util.concurrent.TimeoutException; |
| 32 | import java.util.function.Function; | 32 | import java.util.function.Function; |
| 33 | +import java.util.function.Supplier; | ||
| 33 | import java.util.stream.Collectors; | 34 | import java.util.stream.Collectors; |
| 34 | 35 | ||
| 35 | import net.kuujo.copycat.CopycatConfig; | 36 | import net.kuujo.copycat.CopycatConfig; |
| ... | @@ -65,6 +66,7 @@ import org.onosproject.core.ApplicationId; | ... | @@ -65,6 +66,7 @@ import org.onosproject.core.ApplicationId; |
| 65 | import org.onosproject.core.IdGenerator; | 66 | import org.onosproject.core.IdGenerator; |
| 66 | import org.onosproject.persistence.PersistenceService; | 67 | import org.onosproject.persistence.PersistenceService; |
| 67 | import org.onosproject.store.cluster.messaging.ClusterCommunicationService; | 68 | import org.onosproject.store.cluster.messaging.ClusterCommunicationService; |
| 69 | +import org.onosproject.store.serializers.KryoNamespaces; | ||
| 68 | import org.onosproject.store.service.AtomicCounterBuilder; | 70 | import org.onosproject.store.service.AtomicCounterBuilder; |
| 69 | import org.onosproject.store.service.AtomicValueBuilder; | 71 | import org.onosproject.store.service.AtomicValueBuilder; |
| 70 | import org.onosproject.store.service.ConsistentMapBuilder; | 72 | import org.onosproject.store.service.ConsistentMapBuilder; |
| ... | @@ -74,6 +76,7 @@ import org.onosproject.store.service.DistributedSetBuilder; | ... | @@ -74,6 +76,7 @@ import org.onosproject.store.service.DistributedSetBuilder; |
| 74 | import org.onosproject.store.service.EventuallyConsistentMapBuilder; | 76 | import org.onosproject.store.service.EventuallyConsistentMapBuilder; |
| 75 | import org.onosproject.store.service.MapInfo; | 77 | import org.onosproject.store.service.MapInfo; |
| 76 | import org.onosproject.store.service.PartitionInfo; | 78 | import org.onosproject.store.service.PartitionInfo; |
| 79 | +import org.onosproject.store.service.Serializer; | ||
| 77 | import org.onosproject.store.service.StorageAdminService; | 80 | import org.onosproject.store.service.StorageAdminService; |
| 78 | import org.onosproject.store.service.StorageService; | 81 | import org.onosproject.store.service.StorageService; |
| 79 | import org.onosproject.store.service.Transaction; | 82 | import org.onosproject.store.service.Transaction; |
| ... | @@ -318,7 +321,7 @@ public class DatabaseManager implements StorageService, StorageAdminService { | ... | @@ -318,7 +321,7 @@ public class DatabaseManager implements StorageService, StorageAdminService { |
| 318 | 321 | ||
| 319 | @Override | 322 | @Override |
| 320 | public <E> DistributedSetBuilder<E> setBuilder() { | 323 | public <E> DistributedSetBuilder<E> setBuilder() { |
| 321 | - return new DefaultDistributedSetBuilder<>(this); | 324 | + return new DefaultDistributedSetBuilder<>(() -> this.<E, Boolean>consistentMapBuilder()); |
| 322 | } | 325 | } |
| 323 | 326 | ||
| 324 | 327 | ||
| ... | @@ -334,7 +337,12 @@ public class DatabaseManager implements StorageService, StorageAdminService { | ... | @@ -334,7 +337,12 @@ public class DatabaseManager implements StorageService, StorageAdminService { |
| 334 | 337 | ||
| 335 | @Override | 338 | @Override |
| 336 | public <V> AtomicValueBuilder<V> atomicValueBuilder() { | 339 | public <V> AtomicValueBuilder<V> atomicValueBuilder() { |
| 337 | - return new DefaultAtomicValueBuilder<>(this); | 340 | + Supplier<ConsistentMapBuilder<String, byte[]>> mapBuilderSupplier = |
| 341 | + () -> this.<String, byte[]>consistentMapBuilder() | ||
| 342 | + .withName("onos-atomic-values") | ||
| 343 | + .withMeteringDisabled() | ||
| 344 | + .withSerializer(Serializer.using(KryoNamespaces.BASIC)); | ||
| 345 | + return new DefaultAtomicValueBuilder<>(mapBuilderSupplier); | ||
| 338 | } | 346 | } |
| 339 | 347 | ||
| 340 | @Override | 348 | @Override | ... | ... |
| ... | @@ -15,7 +15,8 @@ | ... | @@ -15,7 +15,8 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.store.primitives.impl; | 16 | package org.onosproject.store.primitives.impl; |
| 17 | 17 | ||
| 18 | -import org.onosproject.store.serializers.KryoNamespaces; | 18 | +import java.util.function.Supplier; |
| 19 | + | ||
| 19 | import org.onosproject.store.service.AsyncAtomicValue; | 20 | import org.onosproject.store.service.AsyncAtomicValue; |
| 20 | import org.onosproject.store.service.AtomicValue; | 21 | import org.onosproject.store.service.AtomicValue; |
| 21 | import org.onosproject.store.service.AtomicValueBuilder; | 22 | import org.onosproject.store.service.AtomicValueBuilder; |
| ... | @@ -33,11 +34,8 @@ public class DefaultAtomicValueBuilder<V> implements AtomicValueBuilder<V> { | ... | @@ -33,11 +34,8 @@ public class DefaultAtomicValueBuilder<V> implements AtomicValueBuilder<V> { |
| 33 | private Serializer serializer; | 34 | private Serializer serializer; |
| 34 | private ConsistentMapBuilder<String, byte[]> mapBuilder; | 35 | private ConsistentMapBuilder<String, byte[]> mapBuilder; |
| 35 | 36 | ||
| 36 | - public DefaultAtomicValueBuilder(DatabaseManager manager) { | 37 | + public DefaultAtomicValueBuilder(Supplier<ConsistentMapBuilder<String, byte[]>> mapBuilderSupplier) { |
| 37 | - mapBuilder = manager.<String, byte[]>consistentMapBuilder() | 38 | + mapBuilder = mapBuilderSupplier.get(); |
| 38 | - .withName("onos-atomic-values") | ||
| 39 | - .withMeteringDisabled() | ||
| 40 | - .withSerializer(Serializer.using(KryoNamespaces.BASIC)); | ||
| 41 | } | 39 | } |
| 42 | 40 | ||
| 43 | @Override | 41 | @Override | ... | ... |
| ... | @@ -15,6 +15,8 @@ | ... | @@ -15,6 +15,8 @@ |
| 15 | */ | 15 | */ |
| 16 | package org.onosproject.store.primitives.impl; | 16 | package org.onosproject.store.primitives.impl; |
| 17 | 17 | ||
| 18 | +import java.util.function.Supplier; | ||
| 19 | + | ||
| 18 | import org.onosproject.core.ApplicationId; | 20 | import org.onosproject.core.ApplicationId; |
| 19 | import org.onosproject.store.service.AsyncDistributedSet; | 21 | import org.onosproject.store.service.AsyncDistributedSet; |
| 20 | import org.onosproject.store.service.ConsistentMapBuilder; | 22 | import org.onosproject.store.service.ConsistentMapBuilder; |
| ... | @@ -33,8 +35,8 @@ public class DefaultDistributedSetBuilder<E> implements DistributedSetBuilder<E> | ... | @@ -33,8 +35,8 @@ public class DefaultDistributedSetBuilder<E> implements DistributedSetBuilder<E> |
| 33 | private ConsistentMapBuilder<E, Boolean> mapBuilder; | 35 | private ConsistentMapBuilder<E, Boolean> mapBuilder; |
| 34 | private boolean metering = true; | 36 | private boolean metering = true; |
| 35 | 37 | ||
| 36 | - public DefaultDistributedSetBuilder(DatabaseManager manager) { | 38 | + public DefaultDistributedSetBuilder(Supplier<ConsistentMapBuilder<E, Boolean>> mapBuilderSupplier) { |
| 37 | - this.mapBuilder = manager.consistentMapBuilder(); | 39 | + this.mapBuilder = mapBuilderSupplier.get(); |
| 38 | mapBuilder.withMeteringDisabled(); | 40 | mapBuilder.withMeteringDisabled(); |
| 39 | } | 41 | } |
| 40 | 42 | ... | ... |
-
Please register or login to post a comment