From efa06527c9a4f2080f383ee09beafd16b02a20f4 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Tue, 8 Mar 2016 16:18:52 +0000 Subject: [PATCH] Moved validation interfaces into respective managers. --- .../api/clients/MessageQueueManager.java | 14 ++++++++++++++ .../api/clients/QueueMessageValidator.java | 13 ------------- .../briarproject/api/sync/MessageValidator.java | 12 ------------ .../api/sync/ValidationManager.java | 13 +++++++++++++ .../clients/BdfMessageValidator.java | 6 +++--- .../clients/MessageQueueManagerImpl.java | 4 +--- .../sync/ValidationManagerImpl.java | 4 ++-- .../sync/ValidationManagerImplTest.java | 17 +++++++++++------ 8 files changed, 44 insertions(+), 39 deletions(-) delete mode 100644 briar-api/src/org/briarproject/api/clients/QueueMessageValidator.java delete mode 100644 briar-api/src/org/briarproject/api/sync/MessageValidator.java diff --git a/briar-api/src/org/briarproject/api/clients/MessageQueueManager.java b/briar-api/src/org/briarproject/api/clients/MessageQueueManager.java index def27a6674..52bb298ac4 100644 --- a/briar-api/src/org/briarproject/api/clients/MessageQueueManager.java +++ b/briar-api/src/org/briarproject/api/clients/MessageQueueManager.java @@ -31,7 +31,21 @@ public interface MessageQueueManager { */ void registerIncomingMessageHook(ClientId c, IncomingQueueMessageHook hook); + interface QueueMessageValidator { + + /** + * Validates the given message and returns its metadata if the message + * is valid, or null if the message is invalid. + */ + Metadata validateMessage(QueueMessage q, Group g); + } + interface IncomingQueueMessageHook { + + /** + * Called once for each incoming message that passes validation. + * Messages are passed to the hook in order. + */ void incomingMessage(Transaction txn, QueueMessage q, Metadata meta) throws DbException; } diff --git a/briar-api/src/org/briarproject/api/clients/QueueMessageValidator.java b/briar-api/src/org/briarproject/api/clients/QueueMessageValidator.java deleted file mode 100644 index 1d25b2039d..0000000000 --- a/briar-api/src/org/briarproject/api/clients/QueueMessageValidator.java +++ /dev/null @@ -1,13 +0,0 @@ -package org.briarproject.api.clients; - -import org.briarproject.api.db.Metadata; -import org.briarproject.api.sync.Group; - -public interface QueueMessageValidator { - - /** - * Validates the given message and returns its metadata if the message - * is valid, or null if the message is invalid. - */ - Metadata validateMessage(QueueMessage q, Group g); -} diff --git a/briar-api/src/org/briarproject/api/sync/MessageValidator.java b/briar-api/src/org/briarproject/api/sync/MessageValidator.java deleted file mode 100644 index 58ee5dc2b9..0000000000 --- a/briar-api/src/org/briarproject/api/sync/MessageValidator.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.briarproject.api.sync; - -import org.briarproject.api.db.Metadata; - -public interface MessageValidator { - - /** - * Validates the given message and returns its metadata if the message - * is valid, or null if the message is invalid. - */ - Metadata validateMessage(Message m, Group g); -} diff --git a/briar-api/src/org/briarproject/api/sync/ValidationManager.java b/briar-api/src/org/briarproject/api/sync/ValidationManager.java index 2342afdbc2..abea827e2b 100644 --- a/briar-api/src/org/briarproject/api/sync/ValidationManager.java +++ b/briar-api/src/org/briarproject/api/sync/ValidationManager.java @@ -41,7 +41,20 @@ public interface ValidationManager { */ void registerIncomingMessageHook(ClientId c, IncomingMessageHook hook); + interface MessageValidator { + + /** + * Validates the given message and returns its metadata if the message + * is valid, or null if the message is invalid. + */ + Metadata validateMessage(Message m, Group g); + } + interface IncomingMessageHook { + + /** + * Called once for each incoming message that passes validation. + */ void incomingMessage(Transaction txn, Message m, Metadata meta) throws DbException; } diff --git a/briar-core/src/org/briarproject/clients/BdfMessageValidator.java b/briar-core/src/org/briarproject/clients/BdfMessageValidator.java index abf9d344a9..a2d97cfd31 100644 --- a/briar-core/src/org/briarproject/clients/BdfMessageValidator.java +++ b/briar-core/src/org/briarproject/clients/BdfMessageValidator.java @@ -2,15 +2,15 @@ package org.briarproject.clients; import org.briarproject.api.FormatException; import org.briarproject.api.clients.ClientHelper; +import org.briarproject.api.clients.MessageQueueManager.QueueMessageValidator; import org.briarproject.api.clients.QueueMessage; -import org.briarproject.api.clients.QueueMessageValidator; import org.briarproject.api.data.BdfDictionary; import org.briarproject.api.data.BdfList; import org.briarproject.api.data.MetadataEncoder; import org.briarproject.api.db.Metadata; import org.briarproject.api.sync.Group; import org.briarproject.api.sync.Message; -import org.briarproject.api.sync.MessageValidator; +import org.briarproject.api.sync.ValidationManager.MessageValidator; import org.briarproject.api.system.Clock; import org.briarproject.util.StringUtils; @@ -104,7 +104,7 @@ public abstract class BdfMessageValidator implements MessageValidator, } protected void checkSize(BdfList list, int minSize, int maxSize) - throws FormatException { + throws FormatException { if (list != null) { if (list.size() < minSize) throw new FormatException(); if (list.size() > maxSize) throw new FormatException(); diff --git a/briar-core/src/org/briarproject/clients/MessageQueueManagerImpl.java b/briar-core/src/org/briarproject/clients/MessageQueueManagerImpl.java index 5889cecdfc..2ff63133a3 100644 --- a/briar-core/src/org/briarproject/clients/MessageQueueManagerImpl.java +++ b/briar-core/src/org/briarproject/clients/MessageQueueManagerImpl.java @@ -5,7 +5,6 @@ import org.briarproject.api.clients.ClientHelper; import org.briarproject.api.clients.MessageQueueManager; import org.briarproject.api.clients.QueueMessage; import org.briarproject.api.clients.QueueMessageFactory; -import org.briarproject.api.clients.QueueMessageValidator; import org.briarproject.api.data.BdfDictionary; import org.briarproject.api.data.BdfList; import org.briarproject.api.db.DatabaseComponent; @@ -17,7 +16,6 @@ import org.briarproject.api.sync.Group; import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.Message; import org.briarproject.api.sync.MessageId; -import org.briarproject.api.sync.MessageValidator; import org.briarproject.api.sync.ValidationManager; import org.briarproject.api.sync.ValidationManager.IncomingMessageHook; import org.briarproject.util.ByteUtils; @@ -146,7 +144,7 @@ class MessageQueueManagerImpl implements MessageQueueManager { } private static class DelegatingMessageValidator - implements MessageValidator { + implements ValidationManager.MessageValidator { private final QueueMessageValidator delegate; diff --git a/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java b/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java index c6196944d5..949dcc516e 100644 --- a/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java +++ b/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java @@ -20,7 +20,6 @@ import org.briarproject.api.sync.Group; import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.Message; import org.briarproject.api.sync.MessageId; -import org.briarproject.api.sync.MessageValidator; import org.briarproject.api.sync.ValidationManager; import org.briarproject.util.ByteUtils; @@ -74,7 +73,8 @@ class ValidationManagerImpl implements ValidationManager, Service, } @Override - public void registerIncomingMessageHook(ClientId c, IncomingMessageHook hook) { + public void registerIncomingMessageHook(ClientId c, + IncomingMessageHook hook) { hooks.put(c, hook); } diff --git a/briar-tests/src/org/briarproject/sync/ValidationManagerImplTest.java b/briar-tests/src/org/briarproject/sync/ValidationManagerImplTest.java index a3058745e8..d883a1ef20 100644 --- a/briar-tests/src/org/briarproject/sync/ValidationManagerImplTest.java +++ b/briar-tests/src/org/briarproject/sync/ValidationManagerImplTest.java @@ -16,8 +16,8 @@ import org.briarproject.api.sync.Group; import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.Message; import org.briarproject.api.sync.MessageId; -import org.briarproject.api.sync.MessageValidator; import org.briarproject.api.sync.ValidationManager.IncomingMessageHook; +import org.briarproject.api.sync.ValidationManager.MessageValidator; import org.briarproject.util.ByteUtils; import org.jmock.Expectations; import org.jmock.Mockery; @@ -56,7 +56,8 @@ public class ValidationManagerImplTest extends BriarTestCase { final Executor dbExecutor = new ImmediateExecutor(); final Executor cryptoExecutor = new ImmediateExecutor(); final MessageValidator validator = context.mock(MessageValidator.class); - final IncomingMessageHook hook = context.mock(IncomingMessageHook.class); + final IncomingMessageHook hook = + context.mock(IncomingMessageHook.class); final Transaction txn = new Transaction(null); final Transaction txn1 = new Transaction(null); final Transaction txn2 = new Transaction(null); @@ -124,7 +125,8 @@ public class ValidationManagerImplTest extends BriarTestCase { final Executor dbExecutor = new ImmediateExecutor(); final Executor cryptoExecutor = new ImmediateExecutor(); final MessageValidator validator = context.mock(MessageValidator.class); - final IncomingMessageHook hook = context.mock(IncomingMessageHook.class); + final IncomingMessageHook hook = + context.mock(IncomingMessageHook.class); final Transaction txn = new Transaction(null); final Transaction txn1 = new Transaction(null); final Transaction txn2 = new Transaction(null); @@ -177,7 +179,8 @@ public class ValidationManagerImplTest extends BriarTestCase { final Executor dbExecutor = new ImmediateExecutor(); final Executor cryptoExecutor = new ImmediateExecutor(); final MessageValidator validator = context.mock(MessageValidator.class); - final IncomingMessageHook hook = context.mock(IncomingMessageHook.class); + final IncomingMessageHook hook = + context.mock(IncomingMessageHook.class); final Transaction txn = new Transaction(null); final Transaction txn1 = new Transaction(null); final Transaction txn2 = new Transaction(null); @@ -232,7 +235,8 @@ public class ValidationManagerImplTest extends BriarTestCase { final Executor dbExecutor = new ImmediateExecutor(); final Executor cryptoExecutor = new ImmediateExecutor(); final MessageValidator validator = context.mock(MessageValidator.class); - final IncomingMessageHook hook = context.mock(IncomingMessageHook.class); + final IncomingMessageHook hook = + context.mock(IncomingMessageHook.class); final Transaction txn = new Transaction(null); final Transaction txn1 = new Transaction(null); context.checking(new Expectations() {{ @@ -272,7 +276,8 @@ public class ValidationManagerImplTest extends BriarTestCase { final Executor dbExecutor = new ImmediateExecutor(); final Executor cryptoExecutor = new ImmediateExecutor(); final MessageValidator validator = context.mock(MessageValidator.class); - final IncomingMessageHook hook = context.mock(IncomingMessageHook.class); + final IncomingMessageHook hook = + context.mock(IncomingMessageHook.class); ValidationManagerImpl vm = new ValidationManagerImpl(db, dbExecutor, cryptoExecutor); -- GitLab