Changed the type of the message validator and reformated the classes in an appropriate way.
parent
d9272c9f94
commit
9828832553
|
@ -30,7 +30,7 @@ ext {
|
||||||
nexusPassword = project.hasProperty('nexusPassword') ? project.property('nexusPassword') : ""
|
nexusPassword = project.hasProperty('nexusPassword') ? project.property('nexusPassword') : ""
|
||||||
}
|
}
|
||||||
|
|
||||||
description = "Meerkat Voter Registry application"
|
description = "Meerkat Voter RegistryUtils application"
|
||||||
|
|
||||||
// Your project version
|
// Your project version
|
||||||
version = "0.0"
|
version = "0.0"
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
package meerkat;
|
package meerkat;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides the validation option for objects
|
* Provides the validation option for objects
|
||||||
* @param <T>
|
* @param <T>
|
||||||
*/
|
*/
|
||||||
public interface MessageValidator<T>
|
public interface MessageValidator <T extends List<?>>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Throws ValidationError when no part of the object is valid else return the valid part
|
* Throws ValidationError when no part of the object is valid else return the valid part
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package meerkat;
|
package meerkat;
|
||||||
|
|
||||||
import com.google.protobuf.Timestamp;
|
import com.google.protobuf.Timestamp;
|
||||||
import meerkat.Registry.BooleanCallBack;
|
import meerkat.RegistryUtils.MessagesCallBack;
|
||||||
import meerkat.Registry.CollectionMessagesUtils;
|
import meerkat.RegistryUtils.CollectionMessagesUtils;
|
||||||
import meerkat.Registry.RegistryTags;
|
import meerkat.RegistryUtils.RegistryTags;
|
||||||
import meerkat.Registry.RelevantDataCallBack;
|
import meerkat.RegistryUtils.LatestMessagesCallBack;
|
||||||
import meerkat.bulletinboard.AsyncBulletinBoardClient;
|
import meerkat.bulletinboard.AsyncBulletinBoardClient;
|
||||||
import meerkat.crypto.DigitalSignature;
|
import meerkat.crypto.DigitalSignature;
|
||||||
import meerkat.protobuf.BulletinBoardAPI.BulletinBoardMessage;
|
import meerkat.protobuf.BulletinBoardAPI.BulletinBoardMessage;
|
||||||
|
@ -70,7 +70,7 @@ public class Registry implements VoterRegistry{
|
||||||
.addTag(RegistryTags.VOTER_DATA_TAG + voterInfo.getInfo())
|
.addTag(RegistryTags.VOTER_DATA_TAG + voterInfo.getInfo())
|
||||||
.setTimestamp(Timestamp.newBuilder().setNanos((int) System.nanoTime()).build());
|
.setTimestamp(Timestamp.newBuilder().setNanos((int) System.nanoTime()).build());
|
||||||
|
|
||||||
bulletinBoardClient.postMessage(CreateBulletinBoardMessage(basicMessage.build()), new BooleanCallBack(callback));
|
bulletinBoardClient.postMessage(CreateBulletinBoardMessage(basicMessage.build()), new MessagesCallBack(callback));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddToGroups(VoterRegistryMessage voterGroup, RegistryCallBack callback) {
|
public void AddToGroups(VoterRegistryMessage voterGroup, RegistryCallBack callback) {
|
||||||
|
@ -85,7 +85,7 @@ public class Registry implements VoterRegistry{
|
||||||
basicMessage.addTag(RegistryTags.GROUP_ID_TAG + voterGroup.getGroupID(i).getId());
|
basicMessage.addTag(RegistryTags.GROUP_ID_TAG + voterGroup.getGroupID(i).getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
bulletinBoardClient.postMessage(CreateBulletinBoardMessage(basicMessage.build()), new BooleanCallBack(callback));
|
bulletinBoardClient.postMessage(CreateBulletinBoardMessage(basicMessage.build()), new MessagesCallBack(callback));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetVoted(VoterID voterId, RegistryCallBack callback) {
|
public void SetVoted(VoterID voterId, RegistryCallBack callback) {
|
||||||
|
@ -95,7 +95,7 @@ public class Registry implements VoterRegistry{
|
||||||
.addTag(RegistryTags.VOTE_ACTION_TAG)
|
.addTag(RegistryTags.VOTE_ACTION_TAG)
|
||||||
.setTimestamp(Timestamp.newBuilder().setNanos((int) System.nanoTime()).build());
|
.setTimestamp(Timestamp.newBuilder().setNanos((int) System.nanoTime()).build());
|
||||||
|
|
||||||
bulletinBoardClient.postMessage(CreateBulletinBoardMessage(basicMessage.build()), new BooleanCallBack(callback));
|
bulletinBoardClient.postMessage(CreateBulletinBoardMessage(basicMessage.build()), new MessagesCallBack(callback));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void GetGroups(GroupID groupID, RegistryCallBack callback) {
|
public void GetGroups(GroupID groupID, RegistryCallBack callback) {
|
||||||
|
@ -103,7 +103,7 @@ public class Registry implements VoterRegistry{
|
||||||
add(RegistryTags.GROUP_ID_TAG + groupID.getId());
|
add(RegistryTags.GROUP_ID_TAG + groupID.getId());
|
||||||
}};
|
}};
|
||||||
bulletinBoardClient.readMessages(CollectionMessagesUtils.GenerateFiltersFromTags(GroupsActionsTags),
|
bulletinBoardClient.readMessages(CollectionMessagesUtils.GenerateFiltersFromTags(GroupsActionsTags),
|
||||||
new RelevantDataCallBack(callback, signer, signature, certificateStream));
|
new LatestMessagesCallBack(callback, signer, signature, certificateStream));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void GetPersonIDDetails(VoterID voterID, RegistryCallBack callback) {
|
public void GetPersonIDDetails(VoterID voterID, RegistryCallBack callback) {
|
||||||
|
@ -112,6 +112,6 @@ public class Registry implements VoterRegistry{
|
||||||
add(RegistryTags.VOTER_ENTRY_TAG);
|
add(RegistryTags.VOTER_ENTRY_TAG);
|
||||||
}};
|
}};
|
||||||
bulletinBoardClient.readMessages(CollectionMessagesUtils.GenerateFiltersFromTags(GroupsActionsTags),
|
bulletinBoardClient.readMessages(CollectionMessagesUtils.GenerateFiltersFromTags(GroupsActionsTags),
|
||||||
new RelevantDataCallBack(callback, signer, signature, certificateStream));
|
new LatestMessagesCallBack(callback, signer, signature, certificateStream));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
package meerkat.Registry;
|
package meerkat.RegistryUtils;
|
||||||
|
|
||||||
import com.google.protobuf.InvalidProtocolBufferException;
|
import com.google.protobuf.InvalidProtocolBufferException;
|
||||||
import meerkat.protobuf.BulletinBoardAPI.*;
|
import meerkat.protobuf.BulletinBoardAPI.*;
|
||||||
import meerkat.protobuf.VoterRegistry;
|
|
||||||
|
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
@ -46,16 +45,9 @@ public abstract class CollectionMessagesUtils {
|
||||||
*/
|
*/
|
||||||
private static boolean FirstBeforeSecond(BulletinBoardMessage message1, BulletinBoardMessage message2)
|
private static boolean FirstBeforeSecond(BulletinBoardMessage message1, BulletinBoardMessage message2)
|
||||||
throws InvalidProtocolBufferException {
|
throws InvalidProtocolBufferException {
|
||||||
try {
|
int firstCreationTime = message1.getMsg().getTimestamp().getNanos();
|
||||||
long firstCreationTime = VoterRegistry.VoterRegistryMessage.newBuilder()
|
long secondCreationTime = message2.getMsg().getTimestamp().getNanos();
|
||||||
.mergeFrom(message1.getMsg().getData()).build().getCreationMiliseconds();
|
|
||||||
long secondCreationTime = VoterRegistry.VoterRegistryMessage.newBuilder()
|
|
||||||
.mergeFrom(message2.getMsg().getData()).build().getCreationMiliseconds();
|
|
||||||
return firstCreationTime < secondCreationTime;
|
return firstCreationTime < secondCreationTime;
|
||||||
} catch (InvalidProtocolBufferException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
|
@ -1,4 +1,4 @@
|
||||||
package meerkat.Registry;
|
package meerkat.RegistryUtils;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.FutureCallback;
|
import com.google.common.util.concurrent.FutureCallback;
|
||||||
import com.google.protobuf.InvalidProtocolBufferException;
|
import com.google.protobuf.InvalidProtocolBufferException;
|
||||||
|
@ -18,7 +18,7 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static meerkat.Registry.CollectionMessagesUtils.*;
|
import static meerkat.RegistryUtils.CollectionMessagesUtils.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO : add logging
|
* TODO : add logging
|
||||||
|
@ -26,21 +26,21 @@ import static meerkat.Registry.CollectionMessagesUtils.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Vladimir Eliezer Tokarev on 2/19/2016.
|
* Created by Vladimir Eliezer Tokarev on 2/19/2016.
|
||||||
* Object that handles the GetGroups or the GetPersonIDDetails of the simpleRegistry
|
* Gets latest data from given List<BulletinBoardMessage>
|
||||||
*/
|
*/
|
||||||
public class RelevantDataCallBack implements FutureCallback<List<BulletinBoardMessage>>, MessageValidator<List<BulletinBoardMessage>> {
|
public class LatestMessagesCallBack implements FutureCallback<List<BulletinBoardMessage>>, MessageValidator<List<BulletinBoardMessage>> {
|
||||||
public RegistryCallBack callback;
|
public RegistryCallBack callback;
|
||||||
protected DigitalSignature validator;
|
protected DigitalSignature validator;
|
||||||
protected Crypto.Signature signature;
|
protected Crypto.Signature signature;
|
||||||
protected InputStream certificateStream;
|
protected InputStream certificateStream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Init BooleanCallBack
|
* Init MessagesCallBack
|
||||||
* @param callback voter registry callback object
|
* @param callback voter registry callback object
|
||||||
* @param validator DigitalSignature object
|
* @param validator DigitalSignature object
|
||||||
* @param signature Crypto.Signature object
|
* @param signature Crypto.Signature object
|
||||||
*/
|
*/
|
||||||
public RelevantDataCallBack(RegistryCallBack callback,
|
public LatestMessagesCallBack(RegistryCallBack callback,
|
||||||
DigitalSignature validator,
|
DigitalSignature validator,
|
||||||
Crypto.Signature signature,
|
Crypto.Signature signature,
|
||||||
InputStream certificateStream) {
|
InputStream certificateStream) {
|
|
@ -1,7 +1,6 @@
|
||||||
package meerkat.Registry;
|
package meerkat.RegistryUtils;
|
||||||
|
|
||||||
import com.google.common.util.concurrent.FutureCallback;
|
import com.google.common.util.concurrent.FutureCallback;
|
||||||
import meerkat.MessageValidator;
|
|
||||||
import meerkat.VoterRegistry;
|
import meerkat.VoterRegistry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -12,14 +11,15 @@ import meerkat.VoterRegistry;
|
||||||
* Created by Vladimir Eliezer Tokarev on 2/19/2016.
|
* Created by Vladimir Eliezer Tokarev on 2/19/2016.
|
||||||
* Handles the the after post state of VoterRegistry methods (that uses bulletinBoardClient to communicate with the server)
|
* Handles the the after post state of VoterRegistry methods (that uses bulletinBoardClient to communicate with the server)
|
||||||
*/
|
*/
|
||||||
public class BooleanCallBack implements FutureCallback<Boolean>, MessageValidator<Boolean> {
|
public class MessagesCallBack implements FutureCallback<Boolean>
|
||||||
|
{
|
||||||
public VoterRegistry.RegistryCallBack callback;
|
public VoterRegistry.RegistryCallBack callback;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Init BooleanCallBack
|
* Init MessagesCallBack
|
||||||
* @param callback voter registry callback object
|
* @param callback voter registry callback object
|
||||||
*/
|
*/
|
||||||
public BooleanCallBack(VoterRegistry.RegistryCallBack callback) {
|
public MessagesCallBack(VoterRegistry.RegistryCallBack callback) {
|
||||||
this.callback = callback;
|
this.callback = callback;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,15 +42,4 @@ public class BooleanCallBack implements FutureCallback<Boolean>, MessageValidato
|
||||||
public void onFailure(Throwable t) {
|
public void onFailure(Throwable t) {
|
||||||
callback.HandleFailure(t);
|
callback.HandleFailure(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* always return true because there no n
|
|
||||||
* @param object object which will be checked
|
|
||||||
* @return alwyas true
|
|
||||||
* @throws ValidationError
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public Boolean validate(Boolean object) throws ValidationError {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package meerkat.Registry;
|
package meerkat.RegistryUtils;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
|
@ -2,8 +2,8 @@ import com.google.common.util.concurrent.FutureCallback;
|
||||||
import com.google.protobuf.InvalidProtocolBufferException;
|
import com.google.protobuf.InvalidProtocolBufferException;
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
import meerkat.Registry;
|
import meerkat.Registry;
|
||||||
import meerkat.Registry.CollectionMessagesUtils;
|
import meerkat.RegistryUtils.CollectionMessagesUtils;
|
||||||
import meerkat.Registry.RegistryTags;
|
import meerkat.RegistryUtils.RegistryTags;
|
||||||
import meerkat.bulletinboard.AsyncBulletinBoardClient;
|
import meerkat.bulletinboard.AsyncBulletinBoardClient;
|
||||||
import meerkat.bulletinboard.ThreadedBulletinBoardClient;
|
import meerkat.bulletinboard.ThreadedBulletinBoardClient;
|
||||||
import meerkat.crypto.concrete.ECDSASignature;
|
import meerkat.crypto.concrete.ECDSASignature;
|
||||||
|
@ -29,7 +29,7 @@ import java.util.concurrent.Semaphore;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Vladimir Eliezer Tokarev on 1/16/2016.
|
* Created by Vladimir Eliezer Tokarev on 1/16/2016.
|
||||||
* Tests the Simple Registry contents
|
* Tests the Simple RegistryUtils contents
|
||||||
* NOTE: for most of this tests to pass there should run BulletinBoardServer
|
* NOTE: for most of this tests to pass there should run BulletinBoardServer
|
||||||
* that should be reachable on BULLETIN_BOARD_SERVER_ADDRESS
|
* that should be reachable on BULLETIN_BOARD_SERVER_ADDRESS
|
||||||
*/
|
*/
|
||||||
|
@ -114,7 +114,7 @@ public class SimpleRegistryTest extends TestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize Registry object
|
* Initialize RegistryUtils object
|
||||||
*/
|
*/
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
SetSigner();
|
SetSigner();
|
||||||
|
@ -130,7 +130,7 @@ public class SimpleRegistryTest extends TestCase {
|
||||||
try {
|
try {
|
||||||
new Registry(signer, bulletinBoardClient, certStream);
|
new Registry(signer, bulletinBoardClient, certStream);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
assert false : "While creating the Registry exception have been thrown " + e;
|
assert false : "While creating the RegistryUtils exception have been thrown " + e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue