GOSSIP-26 Gossip shared data

This commit is contained in:
Edward Capriolo
2016-10-07 03:04:59 -04:00
parent f35dddd8f2
commit 201b101a91
10 changed files with 252 additions and 28 deletions

View File

@ -12,6 +12,7 @@ import java.util.concurrent.TimeUnit;
import org.apache.gossip.event.GossipListener;
import org.apache.gossip.event.GossipState;
import org.apache.gossip.model.GossipDataMessage;
import org.apache.gossip.model.SharedGossipDataMessage;
import org.junit.Test;
import io.teknek.tunit.TUnit;
@ -19,7 +20,7 @@ import io.teknek.tunit.TUnit;
public class DataTest {
@Test
public void abc() throws InterruptedException, UnknownHostException, URISyntaxException{
public void dataTest() throws InterruptedException, UnknownHostException, URISyntaxException{
GossipSettings settings = new GossipSettings();
String cluster = UUID.randomUUID().toString();
int seedNodes = 1;
@ -51,20 +52,32 @@ public class DataTest {
return total;
}}).afterWaitingAtMost(20, TimeUnit.SECONDS).isEqualTo(2);
clients.get(0).gossipPerNodeData(msg());
clients.get(0).gossipSharedData(sharedMsg());
Thread.sleep(10000);
TUnit.assertThat(
new Callable<Object> (){
new Callable<Object>() {
public Object call() throws Exception {
GossipDataMessage x = clients.get(1).findPerNodeData(1+"" , "a");
if (x == null) return "";
else return x.getPayload();
}})
//() -> clients.get(1).findGossipData(1+"" , "a").getPayload())
.afterWaitingAtMost(20, TimeUnit.SECONDS)
.isEqualTo("b");
GossipDataMessage x = clients.get(1).findPerNodeData(1 + "", "a");
if (x == null)
return "";
else
return x.getPayload();
}
}).afterWaitingAtMost(20, TimeUnit.SECONDS).isEqualTo("b");
TUnit.assertThat(
new Callable<Object>() {
public Object call() throws Exception {
SharedGossipDataMessage x = clients.get(1).findSharedData("a");
if (x == null)
return "";
else
return x.getPayload();
}
}).afterWaitingAtMost(20, TimeUnit.SECONDS).isEqualTo("c");
for (int i = 0; i < clusterMembers; ++i) {
clients.get(i).shutdown();
}
@ -78,4 +91,14 @@ public class DataTest {
g.setTimestamp(System.currentTimeMillis());
return g;
}
private SharedGossipDataMessage sharedMsg(){
SharedGossipDataMessage g = new SharedGossipDataMessage();
g.setExpireAt(Long.MAX_VALUE);
g.setKey("a");
g.setPayload("c");
g.setTimestamp(System.currentTimeMillis());
return g;
}
}