GOSSIP-73 gcounter to example app
This commit is contained in:
@ -111,7 +111,7 @@ public class GrowOnlyCounter implements CrdtCounter<Long, GrowOnlyCounter> {
|
||||
counter = 0L;
|
||||
}
|
||||
|
||||
public GrowOnlyCounter.Builder increment(Integer count) {
|
||||
public GrowOnlyCounter.Builder increment(Long count) {
|
||||
counter += count;
|
||||
return this;
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ import java.net.URI;
|
||||
import java.util.Arrays;
|
||||
import org.apache.gossip.GossipSettings;
|
||||
import org.apache.gossip.RemoteMember;
|
||||
import org.apache.gossip.crdt.GrowOnlyCounter;
|
||||
import org.apache.gossip.crdt.OrSet;
|
||||
import org.apache.gossip.manager.GossipManager;
|
||||
import org.apache.gossip.manager.GossipManagerBuilder;
|
||||
@ -51,6 +52,9 @@ public class StandAloneNodeCrdtOrSet {
|
||||
System.out.println("---------- " + (gossipService.findCrdt("abc") == null ? "":
|
||||
gossipService.findCrdt("abc").value()));
|
||||
System.out.println("********** " + gossipService.findCrdt("abc"));
|
||||
System.out.println("^^^^^^^^^^ " + (gossipService.findCrdt("def") == null ? "":
|
||||
gossipService.findCrdt("def").value()));
|
||||
System.out.println("$$$$$$$$$$ " + gossipService.findCrdt("def"));
|
||||
try {
|
||||
Thread.sleep(2000);
|
||||
} catch (Exception e) {}
|
||||
@ -65,13 +69,31 @@ public class StandAloneNodeCrdtOrSet {
|
||||
String val = line.substring(2);
|
||||
if (op == 'a'){
|
||||
addData(val, gossipService);
|
||||
} else {
|
||||
} else if (op == 'r') {
|
||||
removeData(val, gossipService);
|
||||
} else if (op == 'g'){
|
||||
gcount(val, gossipService);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void gcount(String val, GossipManager gossipManager){
|
||||
GrowOnlyCounter c = (GrowOnlyCounter) gossipManager.findCrdt("def");
|
||||
Long l = Long.valueOf(val);
|
||||
if (c == null){
|
||||
c = new GrowOnlyCounter(new GrowOnlyCounter.Builder(gossipManager).increment((l)));
|
||||
} else {
|
||||
c = new GrowOnlyCounter(c, new GrowOnlyCounter.Builder(gossipManager).increment((l)));
|
||||
}
|
||||
SharedDataMessage m = new SharedDataMessage();
|
||||
m.setExpireAt(Long.MAX_VALUE);
|
||||
m.setKey("def");
|
||||
m.setPayload(c);
|
||||
m.setTimestamp(System.currentTimeMillis());
|
||||
gossipManager.merge(m);
|
||||
}
|
||||
|
||||
private static void removeData(String val, GossipManager gossipService){
|
||||
@SuppressWarnings("unchecked")
|
||||
OrSet<String> s = (OrSet<String>) gossipService.findCrdt("abc");
|
||||
|
@ -115,7 +115,7 @@ public class DataTest extends AbstractIntegrationBase {
|
||||
{
|
||||
SharedDataMessage d = new SharedDataMessage();
|
||||
d.setKey(gCounterKey);
|
||||
d.setPayload(new GrowOnlyCounter(new GrowOnlyCounter.Builder(clients.get(0)).increment(1)));
|
||||
d.setPayload(new GrowOnlyCounter(new GrowOnlyCounter.Builder(clients.get(0)).increment(1L)));
|
||||
d.setExpireAt(Long.MAX_VALUE);
|
||||
d.setTimestamp(System.currentTimeMillis());
|
||||
clients.get(0).merge(d);
|
||||
@ -123,7 +123,7 @@ public class DataTest extends AbstractIntegrationBase {
|
||||
{
|
||||
SharedDataMessage d = new SharedDataMessage();
|
||||
d.setKey(gCounterKey);
|
||||
d.setPayload(new GrowOnlyCounter(new GrowOnlyCounter.Builder(clients.get(1)).increment(2)));
|
||||
d.setPayload(new GrowOnlyCounter(new GrowOnlyCounter.Builder(clients.get(1)).increment(2L)));
|
||||
d.setExpireAt(Long.MAX_VALUE);
|
||||
d.setTimestamp(System.currentTimeMillis());
|
||||
clients.get(1).merge(d);
|
||||
@ -133,7 +133,7 @@ public class DataTest extends AbstractIntegrationBase {
|
||||
private void givenIncreaseOther(final List<GossipManager> clients) {
|
||||
GrowOnlyCounter gc = (GrowOnlyCounter) clients.get(1).findCrdt(gCounterKey);
|
||||
GrowOnlyCounter gc2 = new GrowOnlyCounter(gc,
|
||||
new GrowOnlyCounter.Builder(clients.get(1)).increment(4));
|
||||
new GrowOnlyCounter.Builder(clients.get(1)).increment(4L));
|
||||
|
||||
SharedDataMessage d = new SharedDataMessage();
|
||||
d.setKey(gCounterKey);
|
||||
@ -195,7 +195,7 @@ public class DataTest extends AbstractIntegrationBase {
|
||||
}
|
||||
|
||||
|
||||
private void assertThatCountIsUpdated(final List<GossipManager> clients, int finalCount) {
|
||||
private void assertThatCountIsUpdated(final List<GossipManager> clients, long finalCount) {
|
||||
TUnit.assertThat(() -> {
|
||||
return clients.get(0).findCrdt(gCounterKey);
|
||||
}).afterWaitingAtMost(10, TimeUnit.SECONDS).isEqualTo(new GrowOnlyCounter(
|
||||
|
@ -37,7 +37,7 @@ public class OrSetTest {
|
||||
OrSet<Integer> i = new OrSet<>(new OrSet.Builder<Integer>().add(4).add(5).add(6).remove(5));
|
||||
Assert.assertArrayEquals(Arrays.asList(4, 6).toArray(), i.value().toArray());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void mergeTest(){
|
||||
OrSet<Integer> i = new OrSet<>(new OrSet.Builder<Integer>().add(4).add(5).add(6).remove(5));
|
||||
|
Reference in New Issue
Block a user