diff options
17 files changed, 357 insertions, 242 deletions
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStore.java b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStore.java index a8d7fb1a..7768287a 100644 --- a/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStore.java +++ b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStore.java | |||
@@ -1,14 +1,20 @@ | |||
1 | package tools.refinery.store.map; | 1 | package tools.refinery.store.map; |
2 | 2 | ||
3 | import tools.refinery.store.map.internal.VersionedMapStoreFactoryBuilderImpl; | ||
4 | |||
3 | import java.util.Set; | 5 | import java.util.Set; |
4 | 6 | ||
5 | public interface VersionedMapStore<K, V> { | 7 | public interface VersionedMapStore<K, V> { |
6 | |||
7 | public VersionedMap<K, V> createMap(); | ||
8 | 8 | ||
9 | public VersionedMap<K, V> createMap(long state); | 9 | VersionedMap<K, V> createMap(); |
10 | 10 | ||
11 | public Set<Long> getStates(); | 11 | VersionedMap<K, V> createMap(long state); |
12 | |||
13 | Set<Long> getStates(); | ||
14 | |||
15 | DiffCursor<K,V> getDiffCursor(long fromState, long toState); | ||
12 | 16 | ||
13 | public DiffCursor<K,V> getDiffCursor(long fromState, long toState); | 17 | static <K,V> VersionedMapStoreFactoryBuilder<K,V> builder() { |
14 | } \ No newline at end of file | 18 | return new VersionedMapStoreFactoryBuilderImpl<>(); |
19 | } | ||
20 | } | ||
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreBuilder.java b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreBuilder.java deleted file mode 100644 index 1a9aa0b3..00000000 --- a/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreBuilder.java +++ /dev/null | |||
@@ -1,130 +0,0 @@ | |||
1 | package tools.refinery.store.map; | ||
2 | |||
3 | import java.util.ArrayList; | ||
4 | import java.util.List; | ||
5 | |||
6 | public class VersionedMapStoreBuilder<K, V> { | ||
7 | public enum StoreStrategy { | ||
8 | STATE, DELTA | ||
9 | } | ||
10 | |||
11 | public enum DeltaStorageStrategy { | ||
12 | LIST, SET | ||
13 | } | ||
14 | |||
15 | public enum StateStorageStrategy { | ||
16 | NO_NODE_CACHE, SHARED_NODE_CACHE, SHARED_NODE_CACHE_IN_GROUP | ||
17 | } | ||
18 | |||
19 | public static <K, V> VersionedMapStoreBuilder<K, V> builder() { | ||
20 | return new VersionedMapStoreBuilder<>(); | ||
21 | } | ||
22 | protected VersionedMapStoreBuilder() { | ||
23 | } | ||
24 | protected VersionedMapStoreBuilder(VersionedMapStoreBuilder<K, V> other) { | ||
25 | this.defaultValue = other.defaultValue; | ||
26 | this.defaultSet = other.defaultSet; | ||
27 | this.strategy = other.strategy; | ||
28 | this.stateBasedImmutableWhenCommitting = other.stateBasedImmutableWhenCommitting; | ||
29 | this.stateBasedNodeSharingStrategy = other.stateBasedNodeSharingStrategy; | ||
30 | this.hashProvider = other.hashProvider; | ||
31 | this.deltaStorageStrategy = other.deltaStorageStrategy; | ||
32 | } | ||
33 | protected boolean defaultSet = false; | ||
34 | protected V defaultValue = null; | ||
35 | protected StoreStrategy strategy = StoreStrategy.DELTA; | ||
36 | protected Boolean stateBasedImmutableWhenCommitting = false; | ||
37 | protected StateStorageStrategy stateBasedNodeSharingStrategy = StateStorageStrategy.SHARED_NODE_CACHE_IN_GROUP; | ||
38 | protected ContinousHashProvider<K> hashProvider = null; | ||
39 | protected DeltaStorageStrategy deltaStorageStrategy = DeltaStorageStrategy.LIST; | ||
40 | |||
41 | public VersionedMapStoreBuilder<K, V> setDefaultValue(V defaultValue) { | ||
42 | var result = new VersionedMapStoreBuilder<>(this); | ||
43 | result.defaultValue = defaultValue; | ||
44 | result.defaultSet = true; | ||
45 | return result; | ||
46 | } | ||
47 | |||
48 | public VersionedMapStoreBuilder<K, V> setStrategy(StoreStrategy strategy) { | ||
49 | var result = new VersionedMapStoreBuilder<>(this); | ||
50 | result.strategy = strategy; | ||
51 | return result; | ||
52 | } | ||
53 | |||
54 | public VersionedMapStoreBuilder<K, V> setHashProvider(ContinousHashProvider<K> hashProvider) { | ||
55 | var result = new VersionedMapStoreBuilder<>(this); | ||
56 | result.hashProvider = hashProvider; | ||
57 | return result; | ||
58 | } | ||
59 | |||
60 | public VersionedMapStoreBuilder<K, V> setStateBasedImmutableWhenCommitting(boolean toImmutableWhenCommitting) { | ||
61 | var result = new VersionedMapStoreBuilder<>(this); | ||
62 | result.stateBasedImmutableWhenCommitting = toImmutableWhenCommitting; | ||
63 | return result; | ||
64 | } | ||
65 | |||
66 | public VersionedMapStoreBuilder<K, V> setStateBasedNodeSharingStrategy(StateStorageStrategy strategy) { | ||
67 | var result = new VersionedMapStoreBuilder<>(this); | ||
68 | result.stateBasedNodeSharingStrategy = strategy; | ||
69 | return result; | ||
70 | } | ||
71 | |||
72 | public VersionedMapStoreBuilder<K, V> setDeltaStorageStrategy(DeltaStorageStrategy deltaStorageStrategy) { | ||
73 | var result = new VersionedMapStoreBuilder<>(this); | ||
74 | result.deltaStorageStrategy = deltaStorageStrategy; | ||
75 | return result; | ||
76 | } | ||
77 | |||
78 | public VersionedMapStore<K, V> buildOne() { | ||
79 | if(!defaultSet) { | ||
80 | throw new IllegalStateException("Default value is missing!"); | ||
81 | } | ||
82 | return switch (strategy) { | ||
83 | case DELTA -> new VersionedMapStoreDeltaImpl<>( | ||
84 | this.deltaStorageStrategy == DeltaStorageStrategy.SET, | ||
85 | this.defaultValue); | ||
86 | case STATE -> new VersionedMapStoreImpl<>( | ||
87 | this.hashProvider, | ||
88 | this.defaultValue, | ||
89 | new VersionedMapStoreConfiguration( | ||
90 | this.stateBasedImmutableWhenCommitting, | ||
91 | this.stateBasedNodeSharingStrategy != StateStorageStrategy.NO_NODE_CACHE, | ||
92 | this.stateBasedNodeSharingStrategy == StateStorageStrategy.SHARED_NODE_CACHE_IN_GROUP)); | ||
93 | }; | ||
94 | } | ||
95 | |||
96 | public List<VersionedMapStore<K, V>> buildGroup(int amount) { | ||
97 | if(!defaultSet) { | ||
98 | throw new IllegalStateException("Default value is missing!"); | ||
99 | } | ||
100 | if (this.strategy == StoreStrategy.STATE && | ||
101 | this.stateBasedNodeSharingStrategy == StateStorageStrategy.SHARED_NODE_CACHE_IN_GROUP) { | ||
102 | return VersionedMapStoreImpl.createSharedVersionedMapStores( | ||
103 | amount, | ||
104 | this.hashProvider, | ||
105 | this.defaultValue, | ||
106 | new VersionedMapStoreConfiguration( | ||
107 | this.stateBasedImmutableWhenCommitting, | ||
108 | true, | ||
109 | true)); | ||
110 | } else { | ||
111 | List<VersionedMapStore<K, V>> result = new ArrayList<>(amount); | ||
112 | for (int i = 0; i < amount; i++) { | ||
113 | result.add(buildOne()); | ||
114 | } | ||
115 | return result; | ||
116 | } | ||
117 | } | ||
118 | |||
119 | @Override | ||
120 | public String toString() { | ||
121 | return "VersionedMapStoreBuilder{" + | ||
122 | "defaultValue=" + defaultValue + | ||
123 | ", strategy=" + strategy + | ||
124 | ", stateBasedImmutableWhenCommitting=" + stateBasedImmutableWhenCommitting + | ||
125 | ", stateBasedNodeSharingStrategy=" + stateBasedNodeSharingStrategy + | ||
126 | ", hashProvider=" + hashProvider + | ||
127 | ", deltaStorageStrategy=" + deltaStorageStrategy + | ||
128 | '}'; | ||
129 | } | ||
130 | } | ||
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreFactory.java b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreFactory.java new file mode 100644 index 00000000..5f882a3a --- /dev/null +++ b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreFactory.java | |||
@@ -0,0 +1,19 @@ | |||
1 | package tools.refinery.store.map; | ||
2 | |||
3 | import java.util.List; | ||
4 | |||
5 | public interface VersionedMapStoreFactory<K,V> { | ||
6 | /** | ||
7 | * Constructs a new instance of {@link VersionedMap}. | ||
8 | * @return The new instance. | ||
9 | */ | ||
10 | VersionedMapStore<K,V> createOne(); | ||
11 | |||
12 | /** | ||
13 | * Constructs a group of {@link VersionedMap}s with the same configuration. If possible, the stores share | ||
14 | * resources with each other. | ||
15 | * @param amount The amount of new instances to be created. | ||
16 | * @return A list of new stores with the given number of elements. | ||
17 | */ | ||
18 | List<VersionedMapStore<K, V>> createGroup(int amount); | ||
19 | } | ||
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreFactoryBuilder.java b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreFactoryBuilder.java new file mode 100644 index 00000000..9cf17b49 --- /dev/null +++ b/subprojects/store/src/main/java/tools/refinery/store/map/VersionedMapStoreFactoryBuilder.java | |||
@@ -0,0 +1,24 @@ | |||
1 | package tools.refinery.store.map; | ||
2 | |||
3 | public interface VersionedMapStoreFactoryBuilder<K,V> { | ||
4 | enum StoreStrategy { | ||
5 | STATE, DELTA | ||
6 | } | ||
7 | |||
8 | enum DeltaTransactionStrategy { | ||
9 | LIST, SET | ||
10 | } | ||
11 | |||
12 | enum SharingStrategy { | ||
13 | NO_NODE_CACHE, SHARED_NODE_CACHE, SHARED_NODE_CACHE_IN_GROUP | ||
14 | } | ||
15 | |||
16 | VersionedMapStoreFactoryBuilder<K,V> defaultValue(V defaultValue); | ||
17 | VersionedMapStoreFactoryBuilder<K,V> strategy(StoreStrategy strategy); | ||
18 | VersionedMapStoreFactoryBuilder<K,V> stateBasedImmutableWhenCommitting(boolean transformToImmutable); | ||
19 | VersionedMapStoreFactoryBuilder<K,V> stateBasedSharingStrategy(SharingStrategy sharingStrategy); | ||
20 | VersionedMapStoreFactoryBuilder<K,V> stateBasedHashProvider(ContinousHashProvider<K> hashProvider); | ||
21 | VersionedMapStoreFactoryBuilder<K,V> deltaTransactionStrategy(DeltaTransactionStrategy deltaStrategy); | ||
22 | |||
23 | VersionedMapStoreFactory<K,V> build(); | ||
24 | } | ||
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/internal/DeltaBasedVersionedMapStoreFactory.java b/subprojects/store/src/main/java/tools/refinery/store/map/internal/DeltaBasedVersionedMapStoreFactory.java new file mode 100644 index 00000000..29ec0da1 --- /dev/null +++ b/subprojects/store/src/main/java/tools/refinery/store/map/internal/DeltaBasedVersionedMapStoreFactory.java | |||
@@ -0,0 +1,34 @@ | |||
1 | package tools.refinery.store.map.internal; | ||
2 | |||
3 | import tools.refinery.store.map.VersionedMapStore; | ||
4 | import tools.refinery.store.map.VersionedMapStoreDeltaImpl; | ||
5 | import tools.refinery.store.map.VersionedMapStoreFactory; | ||
6 | import tools.refinery.store.map.VersionedMapStoreFactoryBuilder; | ||
7 | |||
8 | import java.util.ArrayList; | ||
9 | import java.util.List; | ||
10 | |||
11 | public class DeltaBasedVersionedMapStoreFactory<K, V> implements VersionedMapStoreFactory<K, V> { | ||
12 | private final V defaultValue; | ||
13 | private final boolean summarizeChanges; | ||
14 | |||
15 | public DeltaBasedVersionedMapStoreFactory(V defaultValue, | ||
16 | VersionedMapStoreFactoryBuilder.DeltaTransactionStrategy deltaTransactionStrategy) { | ||
17 | this.defaultValue = defaultValue; | ||
18 | this.summarizeChanges = deltaTransactionStrategy == VersionedMapStoreFactoryBuilder.DeltaTransactionStrategy.SET; | ||
19 | } | ||
20 | |||
21 | @Override | ||
22 | public VersionedMapStore<K, V> createOne() { | ||
23 | return new VersionedMapStoreDeltaImpl<>(summarizeChanges, defaultValue); | ||
24 | } | ||
25 | |||
26 | @Override | ||
27 | public List<VersionedMapStore<K, V>> createGroup(int amount) { | ||
28 | List<VersionedMapStore<K, V>> result = new ArrayList<>(amount); | ||
29 | for(int i=0; i<amount; i++) { | ||
30 | result.add(new VersionedMapStoreDeltaImpl<>(summarizeChanges,defaultValue)); | ||
31 | } | ||
32 | return result; | ||
33 | } | ||
34 | } | ||
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/internal/StateBasedVersionedMapStoreFactory.java b/subprojects/store/src/main/java/tools/refinery/store/map/internal/StateBasedVersionedMapStoreFactory.java new file mode 100644 index 00000000..80dc347f --- /dev/null +++ b/subprojects/store/src/main/java/tools/refinery/store/map/internal/StateBasedVersionedMapStoreFactory.java | |||
@@ -0,0 +1,33 @@ | |||
1 | package tools.refinery.store.map.internal; | ||
2 | |||
3 | import tools.refinery.store.map.*; | ||
4 | |||
5 | import java.util.List; | ||
6 | |||
7 | public class StateBasedVersionedMapStoreFactory<K, V> implements VersionedMapStoreFactory<K, V> { | ||
8 | private final V defaultValue; | ||
9 | private final ContinousHashProvider<K> continousHashProvider; | ||
10 | private final VersionedMapStoreConfiguration config; | ||
11 | |||
12 | public StateBasedVersionedMapStoreFactory(V defaultValue, Boolean transformToImmutable, VersionedMapStoreFactoryBuilder.SharingStrategy sharingStrategy, ContinousHashProvider<K> continousHashProvider) { | ||
13 | this.defaultValue = defaultValue; | ||
14 | this.continousHashProvider = continousHashProvider; | ||
15 | |||
16 | this.config = new VersionedMapStoreConfiguration( | ||
17 | transformToImmutable, | ||
18 | sharingStrategy == VersionedMapStoreFactoryBuilder.SharingStrategy.SHARED_NODE_CACHE || sharingStrategy == VersionedMapStoreFactoryBuilder.SharingStrategy.SHARED_NODE_CACHE_IN_GROUP, | ||
19 | sharingStrategy == VersionedMapStoreFactoryBuilder.SharingStrategy.SHARED_NODE_CACHE_IN_GROUP); | ||
20 | } | ||
21 | |||
22 | @Override | ||
23 | public VersionedMapStore<K, V> createOne() { | ||
24 | return new VersionedMapStoreImpl<>(continousHashProvider, defaultValue, config); | ||
25 | |||
26 | } | ||
27 | |||
28 | @Override | ||
29 | public List<VersionedMapStore<K, V>> createGroup(int amount) { | ||
30 | return VersionedMapStoreImpl.createSharedVersionedMapStores(amount, continousHashProvider, defaultValue, | ||
31 | config); | ||
32 | } | ||
33 | } | ||
diff --git a/subprojects/store/src/main/java/tools/refinery/store/map/internal/VersionedMapStoreFactoryBuilderImpl.java b/subprojects/store/src/main/java/tools/refinery/store/map/internal/VersionedMapStoreFactoryBuilderImpl.java new file mode 100644 index 00000000..3719eef5 --- /dev/null +++ b/subprojects/store/src/main/java/tools/refinery/store/map/internal/VersionedMapStoreFactoryBuilderImpl.java | |||
@@ -0,0 +1,132 @@ | |||
1 | package tools.refinery.store.map.internal; | ||
2 | |||
3 | import tools.refinery.store.map.ContinousHashProvider; | ||
4 | import tools.refinery.store.map.VersionedMapStoreFactory; | ||
5 | import tools.refinery.store.map.VersionedMapStoreFactoryBuilder; | ||
6 | |||
7 | public class VersionedMapStoreFactoryBuilderImpl<K, V> implements VersionedMapStoreFactoryBuilder<K, V> { | ||
8 | |||
9 | private boolean defaultSet = false; | ||
10 | private V defaultValue; | ||
11 | private StoreStrategy strategy = null; | ||
12 | private Boolean transformToImmutable = null; | ||
13 | private SharingStrategy sharingStrategy = null; | ||
14 | private ContinousHashProvider<K> continousHashProvider = null; | ||
15 | private DeltaTransactionStrategy deltaTransactionStrategy = null; | ||
16 | |||
17 | private StoreStrategy checkStrategy() { | ||
18 | StoreStrategy currentStrategy = strategy; | ||
19 | currentStrategy = mergeStrategies(currentStrategy, transformToImmutable, StoreStrategy.STATE); | ||
20 | currentStrategy = mergeStrategies(currentStrategy, sharingStrategy, StoreStrategy.STATE); | ||
21 | currentStrategy = mergeStrategies(currentStrategy, continousHashProvider, StoreStrategy.STATE); | ||
22 | currentStrategy = mergeStrategies(currentStrategy, deltaTransactionStrategy, StoreStrategy.DELTA); | ||
23 | return currentStrategy; | ||
24 | } | ||
25 | |||
26 | private StoreStrategy mergeStrategies(StoreStrategy old, StoreStrategy newStrategy) { | ||
27 | if (old != null && newStrategy != null && old != newStrategy) { | ||
28 | throw new IllegalArgumentException("Mixed strategy parametrization in VersionedMap builder!"); | ||
29 | } | ||
30 | |||
31 | if (old != null) { | ||
32 | return old; | ||
33 | } else { | ||
34 | return newStrategy; | ||
35 | } | ||
36 | } | ||
37 | |||
38 | private StoreStrategy mergeStrategies(StoreStrategy old, Object parameter, StoreStrategy newStrategy) { | ||
39 | if (parameter != null) { | ||
40 | return mergeStrategies(old, newStrategy); | ||
41 | } else { | ||
42 | return old; | ||
43 | } | ||
44 | } | ||
45 | |||
46 | @Override | ||
47 | public VersionedMapStoreFactoryBuilder<K, V> defaultValue(V defaultValue) { | ||
48 | this.defaultSet = true; | ||
49 | this.defaultValue = defaultValue; | ||
50 | return this; | ||
51 | } | ||
52 | |||
53 | @Override | ||
54 | public VersionedMapStoreFactoryBuilder<K, V> strategy(StoreStrategy strategy) { | ||
55 | this.strategy = strategy; | ||
56 | checkStrategy(); | ||
57 | return this; | ||
58 | } | ||
59 | |||
60 | @Override | ||
61 | public VersionedMapStoreFactoryBuilder<K, V> stateBasedImmutableWhenCommitting(boolean transformToImmutable) { | ||
62 | this.transformToImmutable = transformToImmutable; | ||
63 | checkStrategy(); | ||
64 | return this; | ||
65 | } | ||
66 | |||
67 | @Override | ||
68 | public VersionedMapStoreFactoryBuilder<K, V> stateBasedSharingStrategy(SharingStrategy sharingStrategy) { | ||
69 | this.sharingStrategy = sharingStrategy; | ||
70 | checkStrategy(); | ||
71 | return this; | ||
72 | } | ||
73 | |||
74 | @Override | ||
75 | public VersionedMapStoreFactoryBuilder<K, V> stateBasedHashProvider(ContinousHashProvider<K> hashProvider) { | ||
76 | this.continousHashProvider = hashProvider; | ||
77 | checkStrategy(); | ||
78 | return this; | ||
79 | } | ||
80 | |||
81 | @Override | ||
82 | public VersionedMapStoreFactoryBuilder<K, V> deltaTransactionStrategy(DeltaTransactionStrategy deltaTransactionStrategy) { | ||
83 | this.deltaTransactionStrategy = deltaTransactionStrategy; | ||
84 | checkStrategy(); | ||
85 | return this; | ||
86 | } | ||
87 | |||
88 | private <T> T getOrDefault(T value, T defaultValue) { | ||
89 | if(value != null) { | ||
90 | return value; | ||
91 | } else { | ||
92 | return defaultValue; | ||
93 | } | ||
94 | } | ||
95 | |||
96 | @Override | ||
97 | public VersionedMapStoreFactory<K, V> build() { | ||
98 | if (!defaultSet) { | ||
99 | throw new IllegalArgumentException("Default value is missing!"); | ||
100 | } | ||
101 | var strategyToUse = checkStrategy(); | ||
102 | if (strategyToUse == null) { | ||
103 | return new DeltaBasedVersionedMapStoreFactory<>(defaultValue, | ||
104 | getOrDefault(deltaTransactionStrategy, DeltaTransactionStrategy.LIST)); | ||
105 | } | ||
106 | return switch (strategyToUse) { | ||
107 | case STATE -> { | ||
108 | if(continousHashProvider == null) { | ||
109 | throw new IllegalArgumentException("Continuous hash provider is missing!"); | ||
110 | } | ||
111 | yield new StateBasedVersionedMapStoreFactory<>(defaultValue, | ||
112 | getOrDefault(transformToImmutable,true), | ||
113 | getOrDefault(sharingStrategy, SharingStrategy.SHARED_NODE_CACHE_IN_GROUP), | ||
114 | continousHashProvider); | ||
115 | } | ||
116 | case DELTA -> new DeltaBasedVersionedMapStoreFactory<>(defaultValue, | ||
117 | getOrDefault(deltaTransactionStrategy, DeltaTransactionStrategy.LIST)); | ||
118 | }; | ||
119 | } | ||
120 | |||
121 | @Override | ||
122 | public String toString() { | ||
123 | return "VersionedMapStoreBuilder{" + | ||
124 | "defaultValue=" + defaultValue + | ||
125 | ", strategy=" + strategy + | ||
126 | ", stateBasedImmutableWhenCommitting=" + transformToImmutable + | ||
127 | ", stateBasedNodeSharingStrategy=" + sharingStrategy + | ||
128 | ", hashProvider=" + continousHashProvider + | ||
129 | ", deltaStorageStrategy=" + deltaTransactionStrategy + | ||
130 | '}'; | ||
131 | } | ||
132 | } | ||
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/InOrderCursorTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/InOrderCursorTest.java index 05cf5a74..993e5531 100644 --- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/InOrderCursorTest.java +++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/InOrderCursorTest.java | |||
@@ -1,7 +1,8 @@ | |||
1 | package tools.refinery.store.map.tests; | 1 | package tools.refinery.store.map.tests; |
2 | 2 | ||
3 | import org.junit.jupiter.api.Test; | 3 | import org.junit.jupiter.api.Test; |
4 | import tools.refinery.store.map.VersionedMapStoreBuilder; | 4 | import tools.refinery.store.map.VersionedMapStore; |
5 | import tools.refinery.store.map.VersionedMapStoreFactoryBuilder; | ||
5 | import tools.refinery.store.map.internal.InOrderMapCursor; | 6 | import tools.refinery.store.map.internal.InOrderMapCursor; |
6 | import tools.refinery.store.map.internal.VersionedMapImpl; | 7 | import tools.refinery.store.map.internal.VersionedMapImpl; |
7 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; | 8 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; |
@@ -11,13 +12,14 @@ import static org.junit.jupiter.api.Assertions.*; | |||
11 | class InOrderCursorTest { | 12 | class InOrderCursorTest { |
12 | @Test | 13 | @Test |
13 | void testCursor() { | 14 | void testCursor() { |
14 | var store = VersionedMapStoreBuilder.<Integer,String>builder() | 15 | var store = VersionedMapStore.<Integer,String>builder() |
15 | .setStrategy(VersionedMapStoreBuilder.StoreStrategy.STATE) | 16 | .strategy(VersionedMapStoreFactoryBuilder.StoreStrategy.STATE) |
16 | .setStateBasedImmutableWhenCommitting(true) | 17 | .stateBasedImmutableWhenCommitting(true) |
17 | .setHashProvider(MapTestEnvironment.prepareHashProvider(false)) | 18 | .stateBasedHashProvider(MapTestEnvironment.prepareHashProvider(false)) |
18 | .setStateBasedNodeSharingStrategy(VersionedMapStoreBuilder.StateStorageStrategy.SHARED_NODE_CACHE) | 19 | .stateBasedSharingStrategy(VersionedMapStoreFactoryBuilder.SharingStrategy.SHARED_NODE_CACHE) |
19 | .setDefaultValue("x") | 20 | .defaultValue("x") |
20 | .buildOne(); | 21 | .build() |
22 | .createOne(); | ||
21 | 23 | ||
22 | VersionedMapImpl<Integer,String> map = (VersionedMapImpl<Integer,String>) store.createMap(); | 24 | VersionedMapImpl<Integer,String> map = (VersionedMapImpl<Integer,String>) store.createMap(); |
23 | checkMove(map,0); | 25 | checkMove(map,0); |
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/MapUnitTests.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/MapUnitTests.java index 2216db76..6889fd07 100644 --- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/MapUnitTests.java +++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/MapUnitTests.java | |||
@@ -2,7 +2,6 @@ package tools.refinery.store.map.tests; | |||
2 | 2 | ||
3 | import org.junit.jupiter.api.Test; | 3 | import org.junit.jupiter.api.Test; |
4 | import tools.refinery.store.map.VersionedMapStore; | 4 | import tools.refinery.store.map.VersionedMapStore; |
5 | import tools.refinery.store.map.VersionedMapStoreBuilder; | ||
6 | import tools.refinery.store.map.VersionedMapStoreImpl; | 5 | import tools.refinery.store.map.VersionedMapStoreImpl; |
7 | import tools.refinery.store.model.TupleHashProvider; | 6 | import tools.refinery.store.model.TupleHashProvider; |
8 | import tools.refinery.store.tuple.Tuple; | 7 | import tools.refinery.store.tuple.Tuple; |
@@ -23,7 +22,7 @@ class MapUnitTests { | |||
23 | @Test | 22 | @Test |
24 | void deltaRestoreTest() { | 23 | void deltaRestoreTest() { |
25 | VersionedMapStore<Integer,String> store = | 24 | VersionedMapStore<Integer,String> store = |
26 | VersionedMapStoreBuilder.<Integer,String>builder().setDefaultValue("x").buildOne(); | 25 | VersionedMapStore.<Integer,String>builder().defaultValue("x").build().createOne(); |
27 | var map = store.createMap(); | 26 | var map = store.createMap(); |
28 | map.put(1,"val"); | 27 | map.put(1,"val"); |
29 | var version1 = map.commit(); | 28 | var version1 = map.commit(); |
@@ -36,7 +35,7 @@ class MapUnitTests { | |||
36 | @Test | 35 | @Test |
37 | void deltaRestoreTest2() { | 36 | void deltaRestoreTest2() { |
38 | VersionedMapStore<Integer,String> store = | 37 | VersionedMapStore<Integer,String> store = |
39 | VersionedMapStoreBuilder.<Integer,String>builder().setDefaultValue("x").buildOne(); | 38 | VersionedMapStore.<Integer,String>builder().defaultValue("x").build().createOne(); |
40 | var map = store.createMap(); | 39 | var map = store.createMap(); |
41 | map.put(1,"x"); | 40 | map.put(1,"x"); |
42 | var version1 = map.commit(); | 41 | var version1 = map.commit(); |
@@ -48,7 +47,7 @@ class MapUnitTests { | |||
48 | @Test | 47 | @Test |
49 | void deltaRestoreTest3() { | 48 | void deltaRestoreTest3() { |
50 | VersionedMapStore<Integer,String> store = | 49 | VersionedMapStore<Integer,String> store = |
51 | VersionedMapStoreBuilder.<Integer,String>builder().setDefaultValue("x").buildOne(); | 50 | VersionedMapStore.<Integer,String>builder().defaultValue("x").build().createOne(); |
52 | var map = store.createMap(); | 51 | var map = store.createMap(); |
53 | map.commit(); | 52 | map.commit(); |
54 | map.put(1,"1"); | 53 | map.put(1,"1"); |
@@ -71,7 +70,7 @@ class MapUnitTests { | |||
71 | @Test | 70 | @Test |
72 | void deltaRestoreTest4() { | 71 | void deltaRestoreTest4() { |
73 | VersionedMapStore<Integer,String> store = | 72 | VersionedMapStore<Integer,String> store = |
74 | VersionedMapStoreBuilder.<Integer,String>builder().setDefaultValue("x").buildOne(); | 73 | VersionedMapStore.<Integer,String>builder().defaultValue("x").build().createOne(); |
75 | var map = store.createMap(); | 74 | var map = store.createMap(); |
76 | map.commit(); | 75 | map.commit(); |
77 | map.put(1,"1"); | 76 | map.put(1,"1"); |
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/CommitFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/CommitFuzzTest.java index 14a9e2e0..7977f772 100644 --- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/CommitFuzzTest.java +++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/CommitFuzzTest.java | |||
@@ -1,30 +1,29 @@ | |||
1 | package tools.refinery.store.map.tests.fuzz; | 1 | package tools.refinery.store.map.tests.fuzz; |
2 | 2 | ||
3 | import static org.junit.jupiter.api.Assertions.fail; | ||
4 | |||
5 | import java.util.Random; | ||
6 | import java.util.stream.Stream; | ||
7 | |||
8 | import org.junit.jupiter.api.Tag; | 3 | import org.junit.jupiter.api.Tag; |
9 | import org.junit.jupiter.api.Timeout; | 4 | import org.junit.jupiter.api.Timeout; |
10 | import org.junit.jupiter.params.ParameterizedTest; | 5 | import org.junit.jupiter.params.ParameterizedTest; |
11 | import org.junit.jupiter.params.provider.Arguments; | 6 | import org.junit.jupiter.params.provider.Arguments; |
12 | import org.junit.jupiter.params.provider.MethodSource; | 7 | import org.junit.jupiter.params.provider.MethodSource; |
13 | |||
14 | import tools.refinery.store.map.VersionedMapStore; | 8 | import tools.refinery.store.map.VersionedMapStore; |
15 | import tools.refinery.store.map.VersionedMapStoreBuilder; | 9 | import tools.refinery.store.map.VersionedMapStoreFactoryBuilder; |
16 | import tools.refinery.store.map.tests.fuzz.utils.FuzzTestUtils; | 10 | import tools.refinery.store.map.tests.fuzz.utils.FuzzTestUtils; |
17 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; | 11 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; |
18 | 12 | ||
13 | import java.util.Random; | ||
14 | import java.util.stream.Stream; | ||
15 | |||
16 | import static org.junit.jupiter.api.Assertions.fail; | ||
19 | import static tools.refinery.store.map.tests.fuzz.utils.FuzzTestCollections.*; | 17 | import static tools.refinery.store.map.tests.fuzz.utils.FuzzTestCollections.*; |
20 | 18 | ||
21 | class CommitFuzzTest { | 19 | class CommitFuzzTest { |
22 | 20 | ||
23 | private void runFuzzTest(String scenario, int seed, int steps, int maxKey, int maxValue, | 21 | private void runFuzzTest(String scenario, int seed, int steps, int maxKey, int maxValue, |
24 | boolean nullDefault, int commitFrequency, VersionedMapStoreBuilder<Integer, String> builder) { | 22 | boolean nullDefault, int commitFrequency, |
23 | VersionedMapStoreFactoryBuilder<Integer, String> builder) { | ||
25 | String[] values = MapTestEnvironment.prepareValues(maxValue, nullDefault); | 24 | String[] values = MapTestEnvironment.prepareValues(maxValue, nullDefault); |
26 | 25 | ||
27 | VersionedMapStore<Integer, String> store = builder.setDefaultValue(values[0]).buildOne(); | 26 | VersionedMapStore<Integer, String> store = builder.defaultValue(values[0]).build().createOne(); |
28 | var sut = store.createMap(); | 27 | var sut = store.createMap(); |
29 | MapTestEnvironment<Integer, String> e = new MapTestEnvironment<>(sut); | 28 | MapTestEnvironment<Integer, String> e = new MapTestEnvironment<>(sut); |
30 | 29 | ||
@@ -61,7 +60,7 @@ class CommitFuzzTest { | |||
61 | @Timeout(value = 10) | 60 | @Timeout(value = 10) |
62 | @Tag("fuzz") | 61 | @Tag("fuzz") |
63 | void parametrizedFastFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, int commitFrequency, | 62 | void parametrizedFastFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, int commitFrequency, |
64 | int seed, VersionedMapStoreBuilder<Integer, String> builder) { | 63 | int seed, VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
65 | runFuzzTest("CommitS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, | 64 | runFuzzTest("CommitS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, |
66 | nullDefault, commitFrequency, builder); | 65 | nullDefault, commitFrequency, builder); |
67 | } | 66 | } |
@@ -76,7 +75,7 @@ class CommitFuzzTest { | |||
76 | @Tag("fuzz") | 75 | @Tag("fuzz") |
77 | @Tag("slow") | 76 | @Tag("slow") |
78 | void parametrizedSlowFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, int commitFrequency, | 77 | void parametrizedSlowFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, int commitFrequency, |
79 | int seed, VersionedMapStoreBuilder<Integer, String> builder) { | 78 | int seed, VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
80 | runFuzzTest("CommitS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, | 79 | runFuzzTest("CommitS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, |
81 | nullDefault, commitFrequency, builder); | 80 | nullDefault, commitFrequency, builder); |
82 | } | 81 | } |
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/ContentEqualsFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/ContentEqualsFuzzTest.java index b462ed40..99e76649 100644 --- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/ContentEqualsFuzzTest.java +++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/ContentEqualsFuzzTest.java | |||
@@ -5,7 +5,10 @@ import org.junit.jupiter.api.Timeout; | |||
5 | import org.junit.jupiter.params.ParameterizedTest; | 5 | import org.junit.jupiter.params.ParameterizedTest; |
6 | import org.junit.jupiter.params.provider.Arguments; | 6 | import org.junit.jupiter.params.provider.Arguments; |
7 | import org.junit.jupiter.params.provider.MethodSource; | 7 | import org.junit.jupiter.params.provider.MethodSource; |
8 | import tools.refinery.store.map.*; | 8 | import tools.refinery.store.map.Cursor; |
9 | import tools.refinery.store.map.VersionedMap; | ||
10 | import tools.refinery.store.map.VersionedMapStore; | ||
11 | import tools.refinery.store.map.VersionedMapStoreFactoryBuilder; | ||
9 | import tools.refinery.store.map.tests.fuzz.utils.FuzzTestUtils; | 12 | import tools.refinery.store.map.tests.fuzz.utils.FuzzTestUtils; |
10 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; | 13 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; |
11 | 14 | ||
@@ -16,12 +19,13 @@ import java.util.List; | |||
16 | import java.util.Random; | 19 | import java.util.Random; |
17 | import java.util.stream.Stream; | 20 | import java.util.stream.Stream; |
18 | 21 | ||
19 | import static org.junit.jupiter.api.Assertions.*; | 22 | import static org.junit.jupiter.api.Assertions.fail; |
20 | import static tools.refinery.store.map.tests.fuzz.utils.FuzzTestCollections.*; | 23 | import static tools.refinery.store.map.tests.fuzz.utils.FuzzTestCollections.*; |
21 | 24 | ||
22 | class ContentEqualsFuzzTest { | 25 | class ContentEqualsFuzzTest { |
23 | private void runFuzzTest(String scenario, int seed, int steps, int maxKey, int maxValue, | 26 | private void runFuzzTest(String scenario, int seed, int steps, int maxKey, int maxValue, |
24 | boolean nullDefault, int commitFrequency, VersionedMapStoreBuilder<Integer, String> builder) { | 27 | boolean nullDefault, int commitFrequency, |
28 | VersionedMapStoreFactoryBuilder<Integer, String> builder) { | ||
25 | String[] values = MapTestEnvironment.prepareValues(maxValue, nullDefault); | 29 | String[] values = MapTestEnvironment.prepareValues(maxValue, nullDefault); |
26 | 30 | ||
27 | 31 | ||
@@ -30,10 +34,10 @@ class ContentEqualsFuzzTest { | |||
30 | iterativeRandomPutsAndCommitsThenCompare(scenario, builder, steps, maxKey, values, r, commitFrequency); | 34 | iterativeRandomPutsAndCommitsThenCompare(scenario, builder, steps, maxKey, values, r, commitFrequency); |
31 | } | 35 | } |
32 | 36 | ||
33 | private void iterativeRandomPutsAndCommitsThenCompare(String scenario, VersionedMapStoreBuilder<Integer, String> builder, | 37 | private void iterativeRandomPutsAndCommitsThenCompare(String scenario, VersionedMapStoreFactoryBuilder<Integer, String> builder, |
34 | int steps, int maxKey, String[] values, Random r, | 38 | int steps, int maxKey, String[] values, Random r, |
35 | int commitFrequency) { | 39 | int commitFrequency) { |
36 | VersionedMapStore<Integer, String> store1 = builder.setDefaultValue(values[0]).buildOne(); | 40 | VersionedMapStore<Integer, String> store1 = builder.defaultValue(values[0]).build().createOne(); |
37 | VersionedMap<Integer, String> sut1 = store1.createMap(); | 41 | VersionedMap<Integer, String> sut1 = store1.createMap(); |
38 | 42 | ||
39 | // Fill one map | 43 | // Fill one map |
@@ -63,7 +67,7 @@ class ContentEqualsFuzzTest { | |||
63 | // Randomize the order of the content | 67 | // Randomize the order of the content |
64 | Collections.shuffle(content, r); | 68 | Collections.shuffle(content, r); |
65 | 69 | ||
66 | VersionedMapStore<Integer, String> store2 = builder.setDefaultValue(values[0]).buildOne(); | 70 | VersionedMapStore<Integer, String> store2 = builder.defaultValue(values[0]).build().createOne(); |
67 | VersionedMap<Integer, String> sut2 = store2.createMap(); | 71 | VersionedMap<Integer, String> sut2 = store2.createMap(); |
68 | int index2 = 1; | 72 | int index2 = 1; |
69 | for (SimpleEntry<Integer, String> entry : content) { | 73 | for (SimpleEntry<Integer, String> entry : content) { |
@@ -88,7 +92,7 @@ class ContentEqualsFuzzTest { | |||
88 | @Timeout(value = 10) | 92 | @Timeout(value = 10) |
89 | @Tag("fuzz") | 93 | @Tag("fuzz") |
90 | void parametrizedFastFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, int commitFrequency, | 94 | void parametrizedFastFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, int commitFrequency, |
91 | int seed, VersionedMapStoreBuilder<Integer, String> builder) { | 95 | int seed, VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
92 | runFuzzTest("CompareS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, | 96 | runFuzzTest("CompareS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, |
93 | nullDefault, commitFrequency, builder); | 97 | nullDefault, commitFrequency, builder); |
94 | } | 98 | } |
@@ -103,7 +107,7 @@ class ContentEqualsFuzzTest { | |||
103 | @Tag("fuzz") | 107 | @Tag("fuzz") |
104 | @Tag("slow") | 108 | @Tag("slow") |
105 | void parametrizedSlowFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean defaultNull, int commitFrequency, | 109 | void parametrizedSlowFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean defaultNull, int commitFrequency, |
106 | int seed, VersionedMapStoreBuilder<Integer, String> builder) { | 110 | int seed, VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
107 | runFuzzTest("CompareS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, | 111 | runFuzzTest("CompareS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, |
108 | defaultNull, commitFrequency, builder); | 112 | defaultNull, commitFrequency, builder); |
109 | } | 113 | } |
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/DiffCursorFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/DiffCursorFuzzTest.java index b087906d..3a8852a9 100644 --- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/DiffCursorFuzzTest.java +++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/DiffCursorFuzzTest.java | |||
@@ -8,7 +8,7 @@ import org.junit.jupiter.params.provider.MethodSource; | |||
8 | import tools.refinery.store.map.DiffCursor; | 8 | import tools.refinery.store.map.DiffCursor; |
9 | import tools.refinery.store.map.VersionedMap; | 9 | import tools.refinery.store.map.VersionedMap; |
10 | import tools.refinery.store.map.VersionedMapStore; | 10 | import tools.refinery.store.map.VersionedMapStore; |
11 | import tools.refinery.store.map.VersionedMapStoreBuilder; | 11 | import tools.refinery.store.map.VersionedMapStoreFactoryBuilder; |
12 | import tools.refinery.store.map.tests.fuzz.utils.FuzzTestUtils; | 12 | import tools.refinery.store.map.tests.fuzz.utils.FuzzTestUtils; |
13 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; | 13 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; |
14 | 14 | ||
@@ -21,10 +21,10 @@ import static tools.refinery.store.map.tests.fuzz.utils.FuzzTestCollections.*; | |||
21 | class DiffCursorFuzzTest { | 21 | class DiffCursorFuzzTest { |
22 | private void runFuzzTest(String scenario, int seed, int steps, int maxKey, int maxValue, boolean nullDefault, | 22 | private void runFuzzTest(String scenario, int seed, int steps, int maxKey, int maxValue, boolean nullDefault, |
23 | int commitFrequency, boolean commitBeforeDiffCursor, | 23 | int commitFrequency, boolean commitBeforeDiffCursor, |
24 | VersionedMapStoreBuilder<Integer, String> builder) { | 24 | VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
25 | String[] values = MapTestEnvironment.prepareValues(maxValue, nullDefault); | 25 | String[] values = MapTestEnvironment.prepareValues(maxValue, nullDefault); |
26 | 26 | ||
27 | VersionedMapStore<Integer, String> store = builder.setDefaultValue(values[0]).buildOne(); | 27 | VersionedMapStore<Integer, String> store = builder.defaultValue(values[0]).build().createOne(); |
28 | iterativeRandomPutsAndCommitsThenDiffCursor(scenario, store, steps, maxKey, values, seed, commitFrequency, | 28 | iterativeRandomPutsAndCommitsThenDiffCursor(scenario, store, steps, maxKey, values, seed, commitFrequency, |
29 | commitBeforeDiffCursor); | 29 | commitBeforeDiffCursor); |
30 | } | 30 | } |
@@ -109,7 +109,7 @@ class DiffCursorFuzzTest { | |||
109 | @Tag("fuzz") | 109 | @Tag("fuzz") |
110 | void parametrizedFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, | 110 | void parametrizedFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, |
111 | int commitFrequency, int seed, boolean commitBeforeDiffCursor, | 111 | int commitFrequency, int seed, boolean commitBeforeDiffCursor, |
112 | VersionedMapStoreBuilder<Integer, String> builder) { | 112 | VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
113 | runFuzzTest("DiffCursorS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, | 113 | runFuzzTest("DiffCursorS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, |
114 | noKeys, noValues, nullDefault, commitFrequency, commitBeforeDiffCursor, builder); | 114 | noKeys, noValues, nullDefault, commitFrequency, commitBeforeDiffCursor, builder); |
115 | } | 115 | } |
@@ -124,7 +124,7 @@ class DiffCursorFuzzTest { | |||
124 | @Tag("fuzz") | 124 | @Tag("fuzz") |
125 | @Tag("slow") | 125 | @Tag("slow") |
126 | void parametrizedSlowFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, int commitFrequency, | 126 | void parametrizedSlowFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, int commitFrequency, |
127 | int seed, boolean commitBeforeDiffCursor, VersionedMapStoreBuilder<Integer, String> builder) { | 127 | int seed, boolean commitBeforeDiffCursor, VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
128 | runFuzzTest("DiffCursorS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, | 128 | runFuzzTest("DiffCursorS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, |
129 | nullDefault, commitFrequency, commitBeforeDiffCursor, builder); | 129 | nullDefault, commitFrequency, commitBeforeDiffCursor, builder); |
130 | } | 130 | } |
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MultiThreadFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MultiThreadFuzzTest.java index ec2224b4..ea58e1b7 100644 --- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MultiThreadFuzzTest.java +++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MultiThreadFuzzTest.java | |||
@@ -1,32 +1,31 @@ | |||
1 | package tools.refinery.store.map.tests.fuzz; | 1 | package tools.refinery.store.map.tests.fuzz; |
2 | 2 | ||
3 | import static org.junit.jupiter.api.Assertions.assertEquals; | ||
4 | import static org.junit.jupiter.api.Assertions.fail; | ||
5 | import static tools.refinery.store.map.tests.fuzz.utils.FuzzTestCollections.*; | ||
6 | |||
7 | import java.util.Collections; | ||
8 | import java.util.LinkedList; | ||
9 | import java.util.List; | ||
10 | import java.util.stream.Stream; | ||
11 | |||
12 | import org.junit.jupiter.api.Tag; | 3 | import org.junit.jupiter.api.Tag; |
13 | import org.junit.jupiter.api.Timeout; | 4 | import org.junit.jupiter.api.Timeout; |
14 | import org.junit.jupiter.params.ParameterizedTest; | 5 | import org.junit.jupiter.params.ParameterizedTest; |
15 | import org.junit.jupiter.params.provider.Arguments; | 6 | import org.junit.jupiter.params.provider.Arguments; |
16 | import org.junit.jupiter.params.provider.MethodSource; | 7 | import org.junit.jupiter.params.provider.MethodSource; |
17 | |||
18 | import tools.refinery.store.map.VersionedMapStore; | 8 | import tools.refinery.store.map.VersionedMapStore; |
19 | import tools.refinery.store.map.VersionedMapStoreBuilder; | 9 | import tools.refinery.store.map.VersionedMapStoreFactoryBuilder; |
20 | import tools.refinery.store.map.tests.fuzz.utils.FuzzTestUtils; | 10 | import tools.refinery.store.map.tests.fuzz.utils.FuzzTestUtils; |
21 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; | 11 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; |
22 | 12 | ||
13 | import java.util.Collections; | ||
14 | import java.util.LinkedList; | ||
15 | import java.util.List; | ||
16 | import java.util.stream.Stream; | ||
17 | |||
18 | import static org.junit.jupiter.api.Assertions.assertEquals; | ||
19 | import static org.junit.jupiter.api.Assertions.fail; | ||
20 | import static tools.refinery.store.map.tests.fuzz.utils.FuzzTestCollections.*; | ||
21 | |||
23 | class MultiThreadFuzzTest { | 22 | class MultiThreadFuzzTest { |
24 | public static final int noThreads = 10; | 23 | public static final int noThreads = 10; |
25 | 24 | ||
26 | private void runFuzzTest(String scenario, int seed, int steps, int maxKey, int maxValue, boolean nullDefault, int commitFrequency, VersionedMapStoreBuilder<Integer, String> builder) { | 25 | private void runFuzzTest(String scenario, int seed, int steps, int maxKey, int maxValue, boolean nullDefault, int commitFrequency, VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
27 | String[] values = MapTestEnvironment.prepareValues(maxValue, nullDefault); | 26 | String[] values = MapTestEnvironment.prepareValues(maxValue, nullDefault); |
28 | 27 | ||
29 | VersionedMapStore<Integer, String> store = builder.setDefaultValue(values[0]).buildOne(); | 28 | VersionedMapStore<Integer, String> store = builder.defaultValue(values[0]).build().createOne(); |
30 | 29 | ||
31 | // initialize runnables | 30 | // initialize runnables |
32 | MultiThreadTestRunnable[] runnables = new MultiThreadTestRunnable[noThreads]; | 31 | MultiThreadTestRunnable[] runnables = new MultiThreadTestRunnable[noThreads]; |
@@ -73,7 +72,7 @@ class MultiThreadFuzzTest { | |||
73 | @Timeout(value = 10) | 72 | @Timeout(value = 10) |
74 | @Tag("fuzz") | 73 | @Tag("fuzz") |
75 | void parametrizedFastFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean defaultNull, | 74 | void parametrizedFastFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean defaultNull, |
76 | int commitFrequency, int seed, VersionedMapStoreBuilder<Integer, String> builder) { | 75 | int commitFrequency, int seed, VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
77 | runFuzzTest("MultiThreadS" + steps + "K" + noKeys + "V" + noValues + defaultNull + "CF" + commitFrequency + | 76 | runFuzzTest("MultiThreadS" + steps + "K" + noKeys + "V" + noValues + defaultNull + "CF" + commitFrequency + |
78 | "s" + seed, seed, steps, noKeys, noValues, defaultNull, commitFrequency, builder); | 77 | "s" + seed, seed, steps, noKeys, noValues, defaultNull, commitFrequency, builder); |
79 | } | 78 | } |
@@ -88,7 +87,7 @@ class MultiThreadFuzzTest { | |||
88 | @Tag("fuzz") | 87 | @Tag("fuzz") |
89 | @Tag("slow") | 88 | @Tag("slow") |
90 | void parametrizedSlowFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, | 89 | void parametrizedSlowFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, |
91 | int commitFrequency, int seed, VersionedMapStoreBuilder<Integer, String> builder) { | 90 | int commitFrequency, int seed, VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
92 | runFuzzTest("RestoreS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, | 91 | runFuzzTest("RestoreS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, |
93 | nullDefault, commitFrequency, builder); | 92 | nullDefault, commitFrequency, builder); |
94 | } | 93 | } |
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MutableFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MutableFuzzTest.java index bdf72ce4..61b17362 100644 --- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MutableFuzzTest.java +++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/MutableFuzzTest.java | |||
@@ -18,10 +18,10 @@ import tools.refinery.store.map.tests.utils.MapTestEnvironment; | |||
18 | 18 | ||
19 | class MutableFuzzTest { | 19 | class MutableFuzzTest { |
20 | private void runFuzzTest(String scenario, int seed, int steps, int maxKey, int maxValue, | 20 | private void runFuzzTest(String scenario, int seed, int steps, int maxKey, int maxValue, |
21 | boolean nullDefault, VersionedMapStoreBuilder<Integer, String> builder) { | 21 | boolean nullDefault, VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
22 | String[] values = MapTestEnvironment.prepareValues(maxValue, nullDefault); | 22 | String[] values = MapTestEnvironment.prepareValues(maxValue, nullDefault); |
23 | 23 | ||
24 | VersionedMapStore<Integer, String> store = builder.setDefaultValue(values[0]).buildOne(); | 24 | VersionedMapStore<Integer, String> store = builder.defaultValue(values[0]).build().createOne(); |
25 | VersionedMap<Integer, String> sut = store.createMap(); | 25 | VersionedMap<Integer, String> sut = store.createMap(); |
26 | MapTestEnvironment<Integer, String> e = new MapTestEnvironment<>(sut); | 26 | MapTestEnvironment<Integer, String> e = new MapTestEnvironment<>(sut); |
27 | 27 | ||
@@ -56,7 +56,7 @@ class MutableFuzzTest { | |||
56 | @Timeout(value = 10) | 56 | @Timeout(value = 10) |
57 | @Tag("fuzz") | 57 | @Tag("fuzz") |
58 | void parametrizedFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean defaultNull, int seed, | 58 | void parametrizedFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean defaultNull, int seed, |
59 | VersionedMapStoreBuilder<Integer, String> builder) { | 59 | VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
60 | runFuzzTest( | 60 | runFuzzTest( |
61 | "MutableS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, | 61 | "MutableS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, |
62 | seed, steps, noKeys, noValues, defaultNull, builder); | 62 | seed, steps, noKeys, noValues, defaultNull, builder); |
@@ -72,7 +72,7 @@ class MutableFuzzTest { | |||
72 | @Tag("fuzz") | 72 | @Tag("fuzz") |
73 | @Tag("slow") | 73 | @Tag("slow") |
74 | void parametrizedSlowFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, int seed, | 74 | void parametrizedSlowFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, int seed, |
75 | VersionedMapStoreBuilder<Integer, String> builder) { | 75 | VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
76 | runFuzzTest( | 76 | runFuzzTest( |
77 | "MutableS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, | 77 | "MutableS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, |
78 | seed, steps, noKeys, noValues, nullDefault, builder); | 78 | seed, steps, noKeys, noValues, nullDefault, builder); |
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/RestoreFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/RestoreFuzzTest.java index 568aaac9..1661cccb 100644 --- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/RestoreFuzzTest.java +++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/RestoreFuzzTest.java | |||
@@ -1,31 +1,31 @@ | |||
1 | package tools.refinery.store.map.tests.fuzz; | 1 | package tools.refinery.store.map.tests.fuzz; |
2 | 2 | ||
3 | import static org.junit.jupiter.api.Assertions.fail; | ||
4 | import static tools.refinery.store.map.tests.fuzz.utils.FuzzTestCollections.*; | ||
5 | |||
6 | import java.util.HashMap; | ||
7 | import java.util.Map; | ||
8 | import java.util.Random; | ||
9 | import java.util.stream.Stream; | ||
10 | |||
11 | import org.junit.jupiter.api.Tag; | 3 | import org.junit.jupiter.api.Tag; |
12 | import org.junit.jupiter.api.Timeout; | 4 | import org.junit.jupiter.api.Timeout; |
13 | import org.junit.jupiter.params.ParameterizedTest; | 5 | import org.junit.jupiter.params.ParameterizedTest; |
14 | import org.junit.jupiter.params.provider.Arguments; | 6 | import org.junit.jupiter.params.provider.Arguments; |
15 | import org.junit.jupiter.params.provider.MethodSource; | 7 | import org.junit.jupiter.params.provider.MethodSource; |
16 | 8 | import tools.refinery.store.map.VersionedMap; | |
17 | import tools.refinery.store.map.*; | 9 | import tools.refinery.store.map.VersionedMapStore; |
18 | import tools.refinery.store.map.internal.VersionedMapImpl; | 10 | import tools.refinery.store.map.VersionedMapStoreFactoryBuilder; |
19 | import tools.refinery.store.map.tests.fuzz.utils.FuzzTestUtils; | 11 | import tools.refinery.store.map.tests.fuzz.utils.FuzzTestUtils; |
20 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; | 12 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; |
21 | 13 | ||
14 | import java.util.HashMap; | ||
15 | import java.util.Map; | ||
16 | import java.util.Random; | ||
17 | import java.util.stream.Stream; | ||
18 | |||
19 | import static org.junit.jupiter.api.Assertions.fail; | ||
20 | import static tools.refinery.store.map.tests.fuzz.utils.FuzzTestCollections.*; | ||
21 | |||
22 | class RestoreFuzzTest { | 22 | class RestoreFuzzTest { |
23 | private void runFuzzTest(String scenario, int seed, int steps, int maxKey, int maxValue, | 23 | private void runFuzzTest(String scenario, int seed, int steps, int maxKey, int maxValue, |
24 | boolean nullDefault, int commitFrequency, | 24 | boolean nullDefault, int commitFrequency, |
25 | VersionedMapStoreBuilder<Integer, String> builder) { | 25 | VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
26 | String[] values = MapTestEnvironment.prepareValues(maxValue, nullDefault); | 26 | String[] values = MapTestEnvironment.prepareValues(maxValue, nullDefault); |
27 | 27 | ||
28 | VersionedMapStore<Integer, String> store = builder.setDefaultValue(values[0]).buildOne(); | 28 | VersionedMapStore<Integer, String> store = builder.defaultValue(values[0]).build().createOne(); |
29 | 29 | ||
30 | iterativeRandomPutsAndCommitsThenRestore(scenario, store, steps, maxKey, values, seed, commitFrequency); | 30 | iterativeRandomPutsAndCommitsThenRestore(scenario, store, steps, maxKey, values, seed, commitFrequency); |
31 | } | 31 | } |
@@ -84,7 +84,7 @@ class RestoreFuzzTest { | |||
84 | @Timeout(value = 10) | 84 | @Timeout(value = 10) |
85 | @Tag("smoke") | 85 | @Tag("smoke") |
86 | void parametrizedFastFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, int commitFrequency, | 86 | void parametrizedFastFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, int commitFrequency, |
87 | int seed, VersionedMapStoreBuilder<Integer, String> builder) { | 87 | int seed, VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
88 | runFuzzTest("RestoreS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, | 88 | runFuzzTest("RestoreS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, |
89 | nullDefault, commitFrequency, builder); | 89 | nullDefault, commitFrequency, builder); |
90 | } | 90 | } |
@@ -99,7 +99,7 @@ class RestoreFuzzTest { | |||
99 | @Tag("smoke") | 99 | @Tag("smoke") |
100 | @Tag("slow") | 100 | @Tag("slow") |
101 | void parametrizedSlowFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, int commitFrequency, | 101 | void parametrizedSlowFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, int commitFrequency, |
102 | int seed, VersionedMapStoreBuilder<Integer, String> builder) { | 102 | int seed, VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
103 | runFuzzTest("RestoreS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, | 103 | runFuzzTest("RestoreS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, |
104 | nullDefault, commitFrequency, builder); | 104 | nullDefault, commitFrequency, builder); |
105 | } | 105 | } |
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/SingleThreadFuzzTest.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/SingleThreadFuzzTest.java index e7d49227..0e1f9f9f 100644 --- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/SingleThreadFuzzTest.java +++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/SingleThreadFuzzTest.java | |||
@@ -6,7 +6,7 @@ import org.junit.jupiter.params.ParameterizedTest; | |||
6 | import org.junit.jupiter.params.provider.Arguments; | 6 | import org.junit.jupiter.params.provider.Arguments; |
7 | import org.junit.jupiter.params.provider.MethodSource; | 7 | import org.junit.jupiter.params.provider.MethodSource; |
8 | import tools.refinery.store.map.VersionedMapStore; | 8 | import tools.refinery.store.map.VersionedMapStore; |
9 | import tools.refinery.store.map.VersionedMapStoreBuilder; | 9 | import tools.refinery.store.map.VersionedMapStoreFactoryBuilder; |
10 | import tools.refinery.store.map.tests.fuzz.utils.FuzzTestUtils; | 10 | import tools.refinery.store.map.tests.fuzz.utils.FuzzTestUtils; |
11 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; | 11 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; |
12 | 12 | ||
@@ -15,10 +15,10 @@ import java.util.stream.Stream; | |||
15 | import static tools.refinery.store.map.tests.fuzz.utils.FuzzTestCollections.*; | 15 | import static tools.refinery.store.map.tests.fuzz.utils.FuzzTestCollections.*; |
16 | 16 | ||
17 | class SingleThreadFuzzTest { | 17 | class SingleThreadFuzzTest { |
18 | private void runFuzzTest(String scenario, int seed, int steps, int maxKey, int maxValue, boolean nullDefault, int commitFrequency, VersionedMapStoreBuilder<Integer, String> builder) { | 18 | private void runFuzzTest(String scenario, int seed, int steps, int maxKey, int maxValue, boolean nullDefault, int commitFrequency, VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
19 | String[] values = MapTestEnvironment.prepareValues(maxValue, nullDefault); | 19 | String[] values = MapTestEnvironment.prepareValues(maxValue, nullDefault); |
20 | 20 | ||
21 | VersionedMapStore<Integer, String> store = builder.setDefaultValue(values[0]).buildOne(); | 21 | VersionedMapStore<Integer, String> store = builder.defaultValue(values[0]).build().createOne(); |
22 | 22 | ||
23 | // initialize runnables | 23 | // initialize runnables |
24 | MultiThreadTestRunnable runnable = new MultiThreadTestRunnable(scenario, store, steps, maxKey, values, seed, commitFrequency); | 24 | MultiThreadTestRunnable runnable = new MultiThreadTestRunnable(scenario, store, steps, maxKey, values, seed, commitFrequency); |
@@ -35,7 +35,7 @@ class SingleThreadFuzzTest { | |||
35 | @Timeout(value = 10) | 35 | @Timeout(value = 10) |
36 | @Tag("fuzz") | 36 | @Tag("fuzz") |
37 | void parametrizedFastFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean defaultNull, | 37 | void parametrizedFastFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean defaultNull, |
38 | int commitFrequency, int seed, VersionedMapStoreBuilder<Integer, String> builder) { | 38 | int commitFrequency, int seed, VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
39 | runFuzzTest("SingleThreadS" + steps + "K" + noKeys + "V" + noValues + defaultNull + "CF" + commitFrequency + | 39 | runFuzzTest("SingleThreadS" + steps + "K" + noKeys + "V" + noValues + defaultNull + "CF" + commitFrequency + |
40 | "s" + seed, seed, steps, noKeys, noValues, defaultNull, commitFrequency, builder); | 40 | "s" + seed, seed, steps, noKeys, noValues, defaultNull, commitFrequency, builder); |
41 | } | 41 | } |
@@ -50,7 +50,7 @@ class SingleThreadFuzzTest { | |||
50 | @Tag("fuzz") | 50 | @Tag("fuzz") |
51 | @Tag("slow") | 51 | @Tag("slow") |
52 | void parametrizedSlowFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, | 52 | void parametrizedSlowFuzz(int ignoredTests, int steps, int noKeys, int noValues, boolean nullDefault, |
53 | int commitFrequency, int seed, VersionedMapStoreBuilder<Integer, String> builder) { | 53 | int commitFrequency, int seed, VersionedMapStoreFactoryBuilder<Integer, String> builder) { |
54 | runFuzzTest("SingleThreadS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, | 54 | runFuzzTest("SingleThreadS" + steps + "K" + noKeys + "V" + noValues + "s" + seed, seed, steps, noKeys, noValues, |
55 | nullDefault, commitFrequency, builder); | 55 | nullDefault, commitFrequency, builder); |
56 | } | 56 | } |
diff --git a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/utils/FuzzTestCollections.java b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/utils/FuzzTestCollections.java index b344d9b9..94c9cba7 100644 --- a/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/utils/FuzzTestCollections.java +++ b/subprojects/store/src/test/java/tools/refinery/store/map/tests/fuzz/utils/FuzzTestCollections.java | |||
@@ -1,6 +1,7 @@ | |||
1 | package tools.refinery.store.map.tests.fuzz.utils; | 1 | package tools.refinery.store.map.tests.fuzz.utils; |
2 | 2 | ||
3 | import tools.refinery.store.map.VersionedMapStoreBuilder; | 3 | import tools.refinery.store.map.VersionedMapStore; |
4 | import tools.refinery.store.map.VersionedMapStoreFactoryBuilder; | ||
4 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; | 5 | import tools.refinery.store.map.tests.utils.MapTestEnvironment; |
5 | 6 | ||
6 | public final class FuzzTestCollections { | 7 | public final class FuzzTestCollections { |
@@ -12,34 +13,27 @@ public final class FuzzTestCollections { | |||
12 | public static final Object[] randomSeedOptions = {1}; | 13 | public static final Object[] randomSeedOptions = {1}; |
13 | public static final Object[] storeConfigs = { | 14 | public static final Object[] storeConfigs = { |
14 | // State based | 15 | // State based |
15 | VersionedMapStoreBuilder.<Integer,String>builder() | 16 | VersionedMapStore.<Integer,String>builder() |
16 | .setStrategy(VersionedMapStoreBuilder.StoreStrategy.STATE) | 17 | .stateBasedImmutableWhenCommitting(true) |
17 | .setStateBasedImmutableWhenCommitting(true) | 18 | .stateBasedHashProvider(MapTestEnvironment.prepareHashProvider(false)) |
18 | .setHashProvider(MapTestEnvironment.prepareHashProvider(false)) | 19 | .stateBasedSharingStrategy(VersionedMapStoreFactoryBuilder.SharingStrategy.SHARED_NODE_CACHE), |
19 | .setStateBasedNodeSharingStrategy(VersionedMapStoreBuilder.StateStorageStrategy | 20 | VersionedMapStore.<Integer,String>builder() |
20 | .SHARED_NODE_CACHE), | 21 | .stateBasedImmutableWhenCommitting(true) |
21 | VersionedMapStoreBuilder.<Integer,String>builder() | 22 | .stateBasedHashProvider(MapTestEnvironment.prepareHashProvider(true)) |
22 | .setStrategy(VersionedMapStoreBuilder.StoreStrategy.STATE) | 23 | .stateBasedSharingStrategy(VersionedMapStoreFactoryBuilder.SharingStrategy.SHARED_NODE_CACHE), |
23 | .setStateBasedImmutableWhenCommitting(true) | 24 | VersionedMapStore.<Integer,String>builder() |
24 | .setHashProvider(MapTestEnvironment.prepareHashProvider(true)) | 25 | .stateBasedImmutableWhenCommitting(false) |
25 | .setStateBasedNodeSharingStrategy(VersionedMapStoreBuilder.StateStorageStrategy | 26 | .stateBasedHashProvider(MapTestEnvironment.prepareHashProvider(false)) |
26 | .SHARED_NODE_CACHE), | 27 | .stateBasedSharingStrategy(VersionedMapStoreFactoryBuilder.SharingStrategy.SHARED_NODE_CACHE), |
27 | VersionedMapStoreBuilder.<Integer,String>builder() | 28 | VersionedMapStore.<Integer,String>builder() |
28 | .setStrategy(VersionedMapStoreBuilder.StoreStrategy.STATE) | 29 | .stateBasedImmutableWhenCommitting(false) |
29 | .setStateBasedImmutableWhenCommitting(false) | 30 | .stateBasedHashProvider(MapTestEnvironment.prepareHashProvider(false)) |
30 | .setHashProvider(MapTestEnvironment.prepareHashProvider(false)) | 31 | .stateBasedSharingStrategy(VersionedMapStoreFactoryBuilder.SharingStrategy.NO_NODE_CACHE), |
31 | .setStateBasedNodeSharingStrategy(VersionedMapStoreBuilder.StateStorageStrategy.SHARED_NODE_CACHE), | 32 | |
32 | VersionedMapStoreBuilder.<Integer,String>builder() | ||
33 | .setStrategy(VersionedMapStoreBuilder.StoreStrategy.STATE) | ||
34 | .setStateBasedImmutableWhenCommitting(false) | ||
35 | .setHashProvider(MapTestEnvironment.prepareHashProvider(false)) | ||
36 | .setStateBasedNodeSharingStrategy(VersionedMapStoreBuilder.StateStorageStrategy.NO_NODE_CACHE), | ||
37 | // Delta based | 33 | // Delta based |
38 | VersionedMapStoreBuilder.<Integer,String>builder() | 34 | VersionedMapStore.<Integer,String>builder() |
39 | .setStrategy(VersionedMapStoreBuilder.StoreStrategy.DELTA) | 35 | .deltaTransactionStrategy(VersionedMapStoreFactoryBuilder.DeltaTransactionStrategy.SET), |
40 | .setDeltaStorageStrategy(VersionedMapStoreBuilder.DeltaStorageStrategy.SET), | 36 | VersionedMapStore.<Integer,String>builder() |
41 | VersionedMapStoreBuilder.<Integer,String>builder() | 37 | .deltaTransactionStrategy(VersionedMapStoreFactoryBuilder.DeltaTransactionStrategy.LIST) |
42 | .setStrategy(VersionedMapStoreBuilder.StoreStrategy.DELTA) | ||
43 | .setDeltaStorageStrategy(VersionedMapStoreBuilder.DeltaStorageStrategy.LIST) | ||
44 | }; | 38 | }; |
45 | } | 39 | } |