diff --git a/briar-core/src/main/java/org/briarproject/briar/client/BdfIncomingMessageHook.java b/bramble-api/src/main/java/org/briarproject/bramble/api/client/BdfIncomingMessageHook.java similarity index 93% rename from briar-core/src/main/java/org/briarproject/briar/client/BdfIncomingMessageHook.java rename to bramble-api/src/main/java/org/briarproject/bramble/api/client/BdfIncomingMessageHook.java index edc62948d..4b3f76795 100644 --- a/briar-core/src/main/java/org/briarproject/briar/client/BdfIncomingMessageHook.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/client/BdfIncomingMessageHook.java @@ -1,7 +1,6 @@ -package org.briarproject.briar.client; +package org.briarproject.bramble.api.client; import org.briarproject.bramble.api.FormatException; -import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.data.BdfDictionary; import org.briarproject.bramble.api.data.BdfList; import org.briarproject.bramble.api.data.MetadataParser; @@ -12,7 +11,7 @@ import org.briarproject.bramble.api.db.Transaction; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.sync.InvalidMessageException; import org.briarproject.bramble.api.sync.Message; -import org.briarproject.bramble.api.sync.ValidationManager.IncomingMessageHook; +import org.briarproject.bramble.api.sync.validation.IncomingMessageHook; import javax.annotation.concurrent.Immutable; @@ -62,5 +61,4 @@ public abstract class BdfIncomingMessageHook implements IncomingMessageHook { throw new InvalidMessageException(e); } } - } diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/client/BdfMessageValidator.java b/bramble-api/src/main/java/org/briarproject/bramble/api/client/BdfMessageValidator.java index 7d05ee21a..3dfde81bf 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/client/BdfMessageValidator.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/client/BdfMessageValidator.java @@ -9,7 +9,7 @@ import org.briarproject.bramble.api.sync.Group; import org.briarproject.bramble.api.sync.InvalidMessageException; import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.MessageContext; -import org.briarproject.bramble.api.sync.ValidationManager.MessageValidator; +import org.briarproject.bramble.api.sync.validation.MessageValidator; import org.briarproject.bramble.api.system.Clock; import java.util.logging.Logger; diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/db/DatabaseComponent.java b/bramble-api/src/main/java/org/briarproject/bramble/api/db/DatabaseComponent.java index 5e6aeb299..9ec8b5c7b 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/db/DatabaseComponent.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/db/DatabaseComponent.java @@ -19,6 +19,7 @@ import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.sync.MessageStatus; import org.briarproject.bramble.api.sync.Offer; import org.briarproject.bramble.api.sync.Request; +import org.briarproject.bramble.api.sync.validation.MessageState; import org.briarproject.bramble.api.transport.KeySet; import org.briarproject.bramble.api.transport.KeySetId; import org.briarproject.bramble.api.transport.TransportKeys; @@ -28,8 +29,6 @@ import java.util.Map; import javax.annotation.Nullable; -import static org.briarproject.bramble.api.sync.ValidationManager.State; - /** * Encapsulates the database implementation and exposes high-level operations * to other components. @@ -374,12 +373,12 @@ public interface DatabaseComponent { /** * Returns the IDs and states of all dependencies of the given message. * For missing dependencies and dependencies in other groups, the state - * {@link State UNKNOWN} is returned. + * {@link MessageState UNKNOWN} is returned. *

* Read-only. */ - Map getMessageDependencies(Transaction txn, MessageId m) - throws DbException; + Map getMessageDependencies(Transaction txn, + MessageId m) throws DbException; /** * Returns the IDs and states of all dependents of the given message. @@ -388,15 +387,16 @@ public interface DatabaseComponent { *

* Read-only. */ - Map getMessageDependents(Transaction txn, MessageId m) - throws DbException; + Map getMessageDependents(Transaction txn, + MessageId m) throws DbException; /** * Gets the validation and delivery state of the given message. *

* Read-only. */ - State getMessageState(Transaction txn, MessageId m) throws DbException; + MessageState getMessageState(Transaction txn, MessageId m) + throws DbException; /** * Returns the status of the given delivered message with respect to the @@ -543,7 +543,7 @@ public interface DatabaseComponent { /** * Sets the validation and delivery state of the given message. */ - void setMessageState(Transaction txn, MessageId m, State state) + void setMessageState(Transaction txn, MessageId m, MessageState state) throws DbException; /** diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/sync/ValidationManager.java b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/ValidationManager.java deleted file mode 100644 index 3b5c90342..000000000 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/sync/ValidationManager.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.briarproject.bramble.api.sync; - -import org.briarproject.bramble.api.crypto.SecretKey; -import org.briarproject.bramble.api.db.DbException; -import org.briarproject.bramble.api.db.Metadata; -import org.briarproject.bramble.api.db.Transaction; -import org.briarproject.bramble.api.lifecycle.LifecycleManager; -import org.briarproject.bramble.api.nullsafety.NotNullByDefault; - -/** - * Responsible for managing message validators and passing them messages to - * validate. - */ -@NotNullByDefault -public interface ValidationManager { - - enum State { - - UNKNOWN(0), INVALID(1), PENDING(2), DELIVERED(3); - - private final int value; - - State(int value) { - this.value = value; - } - - public int getValue() { - return value; - } - - public static State fromValue(int value) { - for (State s : values()) if (s.value == value) return s; - throw new IllegalArgumentException(); - } - } - - /** - * Registers the message validator for the given client. This method - * should be called before - * {@link LifecycleManager#startServices(SecretKey)}. - */ - void registerMessageValidator(ClientId c, int majorVersion, - MessageValidator v); - - /** - * Registers the incoming message hook for the given client. The hook will - * be called once for each incoming message that passes validation. This - * method should be called before - * {@link LifecycleManager#startServices(SecretKey)}. - */ - void registerIncomingMessageHook(ClientId c, int majorVersion, - IncomingMessageHook hook); - - interface MessageValidator { - - /** - * Validates the given message and returns its metadata and - * dependencies. - */ - MessageContext validateMessage(Message m, Group g) - throws InvalidMessageException; - } - - interface IncomingMessageHook { - - /** - * Called once for each incoming message that passes validation. - * - * @return whether or not this message should be shared - * @throws DbException Should only be used for real database errors. - * If this is thrown, delivery will be attempted again at next startup, - * whereas if an InvalidMessageException is thrown, - * the message will be permanently invalidated. - * @throws InvalidMessageException for any non-database error - * that occurs while handling remotely created data. - * This includes errors that occur while handling locally created data - * in a context controlled by remotely created data - * (for example, parsing the metadata of a dependency - * of an incoming message). - * Throwing this will delete the incoming message and its metadata - * marking it as invalid in the database. - * Never rethrow DbException as InvalidMessageException! - */ - boolean incomingMessage(Transaction txn, Message m, Metadata meta) - throws DbException, InvalidMessageException; - } -} diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/sync/event/MessageStateChangedEvent.java b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/event/MessageStateChangedEvent.java index 450512e53..7a6829e7c 100644 --- a/bramble-api/src/main/java/org/briarproject/bramble/api/sync/event/MessageStateChangedEvent.java +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/event/MessageStateChangedEvent.java @@ -3,11 +3,10 @@ package org.briarproject.bramble.api.sync.event; import org.briarproject.bramble.api.event.Event; import org.briarproject.bramble.api.nullsafety.NotNullByDefault; import org.briarproject.bramble.api.sync.MessageId; +import org.briarproject.bramble.api.sync.validation.MessageState; import javax.annotation.concurrent.Immutable; -import static org.briarproject.bramble.api.sync.ValidationManager.State; - /** * An event that is broadcast when a message state changed. */ @@ -17,10 +16,10 @@ public class MessageStateChangedEvent extends Event { private final MessageId messageId; private final boolean local; - private final State state; + private final MessageState state; public MessageStateChangedEvent(MessageId messageId, boolean local, - State state) { + MessageState state) { this.messageId = messageId; this.local = local; this.state = state; @@ -34,7 +33,7 @@ public class MessageStateChangedEvent extends Event { return local; } - public State getState() { + public MessageState getState() { return state; } diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/sync/validation/IncomingMessageHook.java b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/validation/IncomingMessageHook.java new file mode 100644 index 000000000..9d14b1a1e --- /dev/null +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/validation/IncomingMessageHook.java @@ -0,0 +1,31 @@ +package org.briarproject.bramble.api.sync.validation; + +import org.briarproject.bramble.api.db.DbException; +import org.briarproject.bramble.api.db.Metadata; +import org.briarproject.bramble.api.db.Transaction; +import org.briarproject.bramble.api.sync.InvalidMessageException; +import org.briarproject.bramble.api.sync.Message; + +public interface IncomingMessageHook { + + /** + * Called once for each incoming message that passes validation. + * + * @return whether or not this message should be shared + * @throws DbException Should only be used for real database errors. + * If this is thrown, delivery will be attempted again at next startup, + * whereas if an InvalidMessageException is thrown, + * the message will be permanently invalidated. + * @throws InvalidMessageException for any non-database error + * that occurs while handling remotely created data. + * This includes errors that occur while handling locally created data + * in a context controlled by remotely created data + * (for example, parsing the metadata of a dependency + * of an incoming message). + * Throwing this will delete the incoming message and its metadata + * marking it as invalid in the database. + * Never rethrow DbException as InvalidMessageException! + */ + boolean incomingMessage(Transaction txn, Message m, Metadata meta) + throws DbException, InvalidMessageException; +} diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/sync/validation/MessageState.java b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/validation/MessageState.java new file mode 100644 index 000000000..42a1adb85 --- /dev/null +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/validation/MessageState.java @@ -0,0 +1,21 @@ +package org.briarproject.bramble.api.sync.validation; + +public enum MessageState { + + UNKNOWN(0), INVALID(1), PENDING(2), DELIVERED(3); + + private final int value; + + MessageState(int value) { + this.value = value; + } + + public int getValue() { + return value; + } + + public static MessageState fromValue(int value) { + for (MessageState s : values()) if (s.value == value) return s; + throw new IllegalArgumentException(); + } +} diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/sync/validation/MessageValidator.java b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/validation/MessageValidator.java new file mode 100644 index 000000000..ab47b6ffc --- /dev/null +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/validation/MessageValidator.java @@ -0,0 +1,16 @@ +package org.briarproject.bramble.api.sync.validation; + +import org.briarproject.bramble.api.sync.Group; +import org.briarproject.bramble.api.sync.InvalidMessageException; +import org.briarproject.bramble.api.sync.Message; +import org.briarproject.bramble.api.sync.MessageContext; + +public interface MessageValidator { + + /** + * Validates the given message and returns its metadata and + * dependencies. + */ + MessageContext validateMessage(Message m, Group g) + throws InvalidMessageException; +} diff --git a/bramble-api/src/main/java/org/briarproject/bramble/api/sync/validation/ValidationManager.java b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/validation/ValidationManager.java new file mode 100644 index 000000000..fcaa5ee77 --- /dev/null +++ b/bramble-api/src/main/java/org/briarproject/bramble/api/sync/validation/ValidationManager.java @@ -0,0 +1,31 @@ +package org.briarproject.bramble.api.sync.validation; + +import org.briarproject.bramble.api.crypto.SecretKey; +import org.briarproject.bramble.api.lifecycle.LifecycleManager; +import org.briarproject.bramble.api.nullsafety.NotNullByDefault; +import org.briarproject.bramble.api.sync.ClientId; + +/** + * Responsible for managing message validators and passing them messages to + * validate. + */ +@NotNullByDefault +public interface ValidationManager { + + /** + * Registers the {@link MessageValidator} for the given client. This method + * should be called before + * {@link LifecycleManager#startServices(SecretKey)}. + */ + void registerMessageValidator(ClientId c, int majorVersion, + MessageValidator v); + + /** + * Registers the {@link IncomingMessageHook} for the given client. The hook + * will be called once for each incoming message that passes validation. + * This method should be called before + * {@link LifecycleManager#startServices(SecretKey)}. + */ + void registerIncomingMessageHook(ClientId c, int majorVersion, + IncomingMessageHook hook); +} diff --git a/bramble-core/src/main/java/org/briarproject/bramble/BrambleCoreEagerSingletons.java b/bramble-core/src/main/java/org/briarproject/bramble/BrambleCoreEagerSingletons.java index 6ef1af577..f9f66375c 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/BrambleCoreEagerSingletons.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/BrambleCoreEagerSingletons.java @@ -8,7 +8,7 @@ import org.briarproject.bramble.lifecycle.LifecycleModule; import org.briarproject.bramble.plugin.PluginModule; import org.briarproject.bramble.properties.PropertiesModule; import org.briarproject.bramble.reporting.ReportingModule; -import org.briarproject.bramble.sync.SyncModule; +import org.briarproject.bramble.sync.validation.ValidationModule; import org.briarproject.bramble.system.SystemModule; import org.briarproject.bramble.transport.TransportModule; import org.briarproject.bramble.versioning.VersioningModule; @@ -31,11 +31,11 @@ public interface BrambleCoreEagerSingletons { void inject(ReportingModule.EagerSingletons init); - void inject(SyncModule.EagerSingletons init); - void inject(SystemModule.EagerSingletons init); void inject(TransportModule.EagerSingletons init); + void inject(ValidationModule.EagerSingletons init); + void inject(VersioningModule.EagerSingletons init); } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/BrambleCoreModule.java b/bramble-core/src/main/java/org/briarproject/bramble/BrambleCoreModule.java index 07bc14eea..44535a50a 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/BrambleCoreModule.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/BrambleCoreModule.java @@ -19,6 +19,7 @@ import org.briarproject.bramble.reporting.ReportingModule; import org.briarproject.bramble.settings.SettingsModule; import org.briarproject.bramble.socks.SocksModule; import org.briarproject.bramble.sync.SyncModule; +import org.briarproject.bramble.sync.validation.ValidationModule; import org.briarproject.bramble.system.SystemModule; import org.briarproject.bramble.transport.TransportModule; import org.briarproject.bramble.versioning.VersioningModule; @@ -47,6 +48,7 @@ import dagger.Module; SyncModule.class, SystemModule.class, TransportModule.class, + ValidationModule.class, VersioningModule.class }) public class BrambleCoreModule { @@ -60,9 +62,9 @@ public class BrambleCoreModule { c.inject(new PluginModule.EagerSingletons()); c.inject(new PropertiesModule.EagerSingletons()); c.inject(new ReportingModule.EagerSingletons()); - c.inject(new SyncModule.EagerSingletons()); c.inject(new SystemModule.EagerSingletons()); c.inject(new TransportModule.EagerSingletons()); + c.inject(new ValidationModule.EagerSingletons()); c.inject(new VersioningModule.EagerSingletons()); } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/db/Database.java b/bramble-core/src/main/java/org/briarproject/bramble/db/Database.java index 45764418b..6bb428578 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/db/Database.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/db/Database.java @@ -22,7 +22,7 @@ import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.sync.MessageStatus; -import org.briarproject.bramble.api.sync.ValidationManager.State; +import org.briarproject.bramble.api.sync.validation.MessageState; import org.briarproject.bramble.api.transport.KeySet; import org.briarproject.bramble.api.transport.KeySetId; import org.briarproject.bramble.api.transport.TransportKeys; @@ -106,7 +106,7 @@ interface Database { * @param sender the contact from whom the message was received, or null * if the message was created locally. */ - void addMessage(T txn, Message m, State state, boolean shared, + void addMessage(T txn, Message m, MessageState state, boolean shared, @Nullable ContactId sender) throws DbException; /** @@ -114,7 +114,7 @@ interface Database { * in the given state. */ void addMessageDependency(T txn, Message dependent, MessageId dependency, - State dependentState) throws DbException; + MessageState dependentState) throws DbException; /** * Records that a message has been offered by the given contact. @@ -310,11 +310,11 @@ interface Database { /** * Returns the IDs and states of all dependencies of the given message. * For missing dependencies and dependencies in other groups, the state - * {@link State UNKNOWN} is returned. + * {@link MessageState UNKNOWN} is returned. *

* Read-only. */ - Map getMessageDependencies(T txn, MessageId m) + Map getMessageDependencies(T txn, MessageId m) throws DbException; /** @@ -324,7 +324,7 @@ interface Database { *

* Read-only. */ - Map getMessageDependents(T txn, MessageId m) + Map getMessageDependents(T txn, MessageId m) throws DbException; /** @@ -383,7 +383,7 @@ interface Database { *

* Read-only. */ - State getMessageState(T txn, MessageId m) throws DbException; + MessageState getMessageState(T txn, MessageId m) throws DbException; /** * Returns the status of all delivered messages in the given group with @@ -637,7 +637,8 @@ interface Database { /** * Sets the validation and delivery state of the given message. */ - void setMessageState(T txn, MessageId m, State state) throws DbException; + void setMessageState(T txn, MessageId m, MessageState state) + throws DbException; /** * Sets the reordering window for the given key set and transport in the diff --git a/bramble-core/src/main/java/org/briarproject/bramble/db/DatabaseComponentImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/db/DatabaseComponentImpl.java index 68f5afd12..97e7670c9 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/db/DatabaseComponentImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/db/DatabaseComponentImpl.java @@ -43,7 +43,6 @@ import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.sync.MessageStatus; import org.briarproject.bramble.api.sync.Offer; import org.briarproject.bramble.api.sync.Request; -import org.briarproject.bramble.api.sync.ValidationManager.State; import org.briarproject.bramble.api.sync.event.GroupAddedEvent; import org.briarproject.bramble.api.sync.event.GroupRemovedEvent; import org.briarproject.bramble.api.sync.event.GroupVisibilityUpdatedEvent; @@ -55,6 +54,7 @@ import org.briarproject.bramble.api.sync.event.MessageToAckEvent; import org.briarproject.bramble.api.sync.event.MessageToRequestEvent; import org.briarproject.bramble.api.sync.event.MessagesAckedEvent; import org.briarproject.bramble.api.sync.event.MessagesSentEvent; +import org.briarproject.bramble.api.sync.validation.MessageState; import org.briarproject.bramble.api.transport.KeySet; import org.briarproject.bramble.api.transport.KeySetId; import org.briarproject.bramble.api.transport.TransportKeys; @@ -75,8 +75,8 @@ import javax.inject.Inject; import static java.util.logging.Level.WARNING; import static org.briarproject.bramble.api.sync.Group.Visibility.INVISIBLE; import static org.briarproject.bramble.api.sync.Group.Visibility.SHARED; -import static org.briarproject.bramble.api.sync.ValidationManager.State.DELIVERED; -import static org.briarproject.bramble.api.sync.ValidationManager.State.UNKNOWN; +import static org.briarproject.bramble.api.sync.validation.MessageState.DELIVERED; +import static org.briarproject.bramble.api.sync.validation.MessageState.UNKNOWN; import static org.briarproject.bramble.db.DatabaseConstants.MAX_OFFERED_MESSAGES; import static org.briarproject.bramble.util.LogUtils.logDuration; import static org.briarproject.bramble.util.LogUtils.logException; @@ -579,7 +579,7 @@ class DatabaseComponentImpl implements DatabaseComponent { } @Override - public State getMessageState(Transaction transaction, MessageId m) + public MessageState getMessageState(Transaction transaction, MessageId m) throws DbException { T txn = unbox(transaction); if (!db.containsMessage(txn, m)) @@ -619,8 +619,8 @@ class DatabaseComponentImpl implements DatabaseComponent { } @Override - public Map getMessageDependencies(Transaction transaction, - MessageId m) throws DbException { + public Map getMessageDependencies( + Transaction transaction, MessageId m) throws DbException { T txn = unbox(transaction); if (!db.containsMessage(txn, m)) throw new NoSuchMessageException(); @@ -628,8 +628,8 @@ class DatabaseComponentImpl implements DatabaseComponent { } @Override - public Map getMessageDependents(Transaction transaction, - MessageId m) throws DbException { + public Map getMessageDependents( + Transaction transaction, MessageId m) throws DbException { T txn = unbox(transaction); if (!db.containsMessage(txn, m)) throw new NoSuchMessageException(); @@ -918,7 +918,7 @@ class DatabaseComponentImpl implements DatabaseComponent { @Override public void setMessageState(Transaction transaction, MessageId m, - State state) throws DbException { + MessageState state) throws DbException { if (transaction.isReadOnly()) throw new IllegalArgumentException(); T txn = unbox(transaction); if (!db.containsMessage(txn, m)) @@ -935,10 +935,10 @@ class DatabaseComponentImpl implements DatabaseComponent { T txn = unbox(transaction); if (!db.containsMessage(txn, dependent.getId())) throw new NoSuchMessageException(); - State dependentState = db.getMessageState(txn, dependent.getId()); + MessageState dependentState = + db.getMessageState(txn, dependent.getId()); for (MessageId dependency : dependencies) { - db.addMessageDependency(txn, dependent, dependency, - dependentState); + db.addMessageDependency(txn, dependent, dependency, dependentState); } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java b/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java index f893d0a7f..751e68224 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/db/JdbcDatabase.java @@ -24,7 +24,7 @@ import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.MessageFactory; import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.sync.MessageStatus; -import org.briarproject.bramble.api.sync.ValidationManager.State; +import org.briarproject.bramble.api.sync.validation.MessageState; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.transport.IncomingKeys; import org.briarproject.bramble.api.transport.KeySet; @@ -64,9 +64,9 @@ import static org.briarproject.bramble.api.sync.Group.Visibility.INVISIBLE; import static org.briarproject.bramble.api.sync.Group.Visibility.SHARED; import static org.briarproject.bramble.api.sync.Group.Visibility.VISIBLE; import static org.briarproject.bramble.api.sync.SyncConstants.MESSAGE_HEADER_LENGTH; -import static org.briarproject.bramble.api.sync.ValidationManager.State.DELIVERED; -import static org.briarproject.bramble.api.sync.ValidationManager.State.PENDING; -import static org.briarproject.bramble.api.sync.ValidationManager.State.UNKNOWN; +import static org.briarproject.bramble.api.sync.validation.MessageState.DELIVERED; +import static org.briarproject.bramble.api.sync.validation.MessageState.PENDING; +import static org.briarproject.bramble.api.sync.validation.MessageState.UNKNOWN; import static org.briarproject.bramble.db.DatabaseConstants.DB_SETTINGS_NAMESPACE; import static org.briarproject.bramble.db.DatabaseConstants.LAST_COMPACTED_KEY; import static org.briarproject.bramble.db.DatabaseConstants.MAX_COMPACTION_INTERVAL_MS; @@ -724,7 +724,7 @@ abstract class JdbcDatabase implements Database { while (rs.next()) { MessageId id = new MessageId(rs.getBytes(1)); long timestamp = rs.getLong(2); - State state = State.fromValue(rs.getInt(3)); + MessageState state = MessageState.fromValue(rs.getInt(3)); boolean messageShared = rs.getBoolean(4); int length = rs.getInt(5); boolean deleted = rs.getBoolean(6); @@ -767,7 +767,7 @@ abstract class JdbcDatabase implements Database { } @Override - public void addMessage(Connection txn, Message m, State state, + public void addMessage(Connection txn, Message m, MessageState state, boolean messageShared, @Nullable ContactId sender) throws DbException { PreparedStatement ps = null; @@ -847,7 +847,7 @@ abstract class JdbcDatabase implements Database { } private void addStatus(Connection txn, MessageId m, ContactId c, GroupId g, - long timestamp, int length, State state, boolean groupShared, + long timestamp, int length, MessageState state, boolean groupShared, boolean messageShared, boolean deleted, boolean seen) throws DbException { PreparedStatement ps = null; @@ -880,7 +880,8 @@ abstract class JdbcDatabase implements Database { @Override public void addMessageDependency(Connection txn, Message dependent, - MessageId dependency, State dependentState) throws DbException { + MessageId dependency, MessageState dependentState) + throws DbException { PreparedStatement ps = null; ResultSet rs = null; try { @@ -891,9 +892,9 @@ abstract class JdbcDatabase implements Database { ps.setBytes(1, dependency.getBytes()); ps.setBytes(2, dependent.getGroupId().getBytes()); rs = ps.executeQuery(); - State dependencyState = null; + MessageState dependencyState = null; if (rs.next()) { - dependencyState = State.fromValue(rs.getInt(1)); + dependencyState = MessageState.fromValue(rs.getInt(1)); if (rs.next()) throw new DbStateException(); } rs.close(); @@ -1813,7 +1814,7 @@ abstract class JdbcDatabase implements Database { } @Override - public Map getMessageDependencies(Connection txn, + public Map getMessageDependencies(Connection txn, MessageId m) throws DbException { PreparedStatement ps = null; ResultSet rs = null; @@ -1824,10 +1825,10 @@ abstract class JdbcDatabase implements Database { ps = txn.prepareStatement(sql); ps.setBytes(1, m.getBytes()); rs = ps.executeQuery(); - Map dependencies = new HashMap<>(); + Map dependencies = new HashMap<>(); while (rs.next()) { MessageId dependency = new MessageId(rs.getBytes(1)); - State state = State.fromValue(rs.getInt(2)); + MessageState state = MessageState.fromValue(rs.getInt(2)); if (rs.wasNull()) state = UNKNOWN; // Missing or in a different group dependencies.put(dependency, state); @@ -1843,7 +1844,7 @@ abstract class JdbcDatabase implements Database { } @Override - public Map getMessageDependents(Connection txn, + public Map getMessageDependents(Connection txn, MessageId m) throws DbException { PreparedStatement ps = null; ResultSet rs = null; @@ -1857,10 +1858,10 @@ abstract class JdbcDatabase implements Database { ps = txn.prepareStatement(sql); ps.setBytes(1, m.getBytes()); rs = ps.executeQuery(); - Map dependents = new HashMap<>(); + Map dependents = new HashMap<>(); while (rs.next()) { MessageId dependent = new MessageId(rs.getBytes(1)); - State state = State.fromValue(rs.getInt(2)); + MessageState state = MessageState.fromValue(rs.getInt(2)); dependents.put(dependent, state); } rs.close(); @@ -1874,7 +1875,7 @@ abstract class JdbcDatabase implements Database { } @Override - public State getMessageState(Connection txn, MessageId m) + public MessageState getMessageState(Connection txn, MessageId m) throws DbException { PreparedStatement ps = null; ResultSet rs = null; @@ -1884,7 +1885,7 @@ abstract class JdbcDatabase implements Database { ps.setBytes(1, m.getBytes()); rs = ps.executeQuery(); if (!rs.next()) throw new DbStateException(); - State state = State.fromValue(rs.getInt(1)); + MessageState state = MessageState.fromValue(rs.getInt(1)); if (rs.next()) throw new DbStateException(); rs.close(); ps.close(); @@ -2032,7 +2033,7 @@ abstract class JdbcDatabase implements Database { } private Collection getMessagesInState(Connection txn, - State state) throws DbException { + MessageState state) throws DbException { PreparedStatement ps = null; ResultSet rs = null; try { @@ -2359,7 +2360,7 @@ abstract class JdbcDatabase implements Database { rs = ps.executeQuery(); if (!rs.next()) throw new DbStateException(); GroupId g = new GroupId(rs.getBytes(1)); - State state = State.fromValue(rs.getInt(2)); + MessageState state = MessageState.fromValue(rs.getInt(2)); rs.close(); ps.close(); // Insert any keys that don't already exist @@ -2865,7 +2866,7 @@ abstract class JdbcDatabase implements Database { } @Override - public void setMessageState(Connection txn, MessageId m, State state) + public void setMessageState(Connection txn, MessageId m, MessageState state) throws DbException { PreparedStatement ps = null; try { diff --git a/bramble-core/src/main/java/org/briarproject/bramble/properties/PropertiesModule.java b/bramble-core/src/main/java/org/briarproject/bramble/properties/PropertiesModule.java index 866f95da2..a208f5881 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/properties/PropertiesModule.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/properties/PropertiesModule.java @@ -5,7 +5,7 @@ import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.data.MetadataEncoder; import org.briarproject.bramble.api.lifecycle.LifecycleManager; import org.briarproject.bramble.api.properties.TransportPropertyManager; -import org.briarproject.bramble.api.sync.ValidationManager; +import org.briarproject.bramble.api.sync.validation.ValidationManager; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/properties/TransportPropertyManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/properties/TransportPropertyManagerImpl.java index 2b296dbcf..3b7b7077d 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/properties/TransportPropertyManagerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/properties/TransportPropertyManagerImpl.java @@ -24,7 +24,7 @@ import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.InvalidMessageException; import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.MessageId; -import org.briarproject.bramble.api.sync.ValidationManager.IncomingMessageHook; +import org.briarproject.bramble.api.sync.validation.IncomingMessageHook; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; import org.briarproject.bramble.api.versioning.ClientVersioningManager.ClientVersioningHook; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/sync/SyncModule.java b/bramble-core/src/main/java/org/briarproject/bramble/sync/SyncModule.java index 0034289e7..1313a7ff7 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/sync/SyncModule.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/sync/SyncModule.java @@ -1,23 +1,11 @@ package org.briarproject.bramble.sync; -import org.briarproject.bramble.PoliteExecutor; -import org.briarproject.bramble.api.crypto.CryptoComponent; -import org.briarproject.bramble.api.crypto.CryptoExecutor; -import org.briarproject.bramble.api.db.DatabaseComponent; -import org.briarproject.bramble.api.db.DatabaseExecutor; -import org.briarproject.bramble.api.event.EventBus; -import org.briarproject.bramble.api.lifecycle.LifecycleManager; import org.briarproject.bramble.api.sync.GroupFactory; import org.briarproject.bramble.api.sync.MessageFactory; import org.briarproject.bramble.api.sync.SyncRecordReaderFactory; import org.briarproject.bramble.api.sync.SyncRecordWriterFactory; import org.briarproject.bramble.api.sync.SyncSessionFactory; -import org.briarproject.bramble.api.sync.ValidationManager; -import org.briarproject.bramble.api.system.Clock; -import java.util.concurrent.Executor; - -import javax.inject.Inject; import javax.inject.Singleton; import dagger.Module; @@ -26,29 +14,14 @@ import dagger.Provides; @Module public class SyncModule { - public static class EagerSingletons { - @Inject - ValidationManager validationManager; - } - - /** - * The maximum number of validation tasks to delegate to the crypto - * executor concurrently. - *

- * The number of available processors can change during the lifetime of the - * JVM, so this is just a reasonable guess. - */ - private static final int MAX_CONCURRENT_VALIDATION_TASKS = - Math.max(1, Runtime.getRuntime().availableProcessors() - 1); - @Provides - GroupFactory provideGroupFactory(CryptoComponent crypto) { - return new GroupFactoryImpl(crypto); + GroupFactory provideGroupFactory(GroupFactoryImpl groupFactory) { + return groupFactory; } @Provides - MessageFactory provideMessageFactory(CryptoComponent crypto) { - return new MessageFactoryImpl(crypto); + MessageFactory provideMessageFactory(MessageFactoryImpl messageFactory) { + return messageFactory; } @Provides @@ -65,30 +38,8 @@ public class SyncModule { @Provides @Singleton - SyncSessionFactory provideSyncSessionFactory(DatabaseComponent db, - @DatabaseExecutor Executor dbExecutor, EventBus eventBus, - Clock clock, SyncRecordReaderFactory recordReaderFactory, - SyncRecordWriterFactory recordWriterFactory) { - return new SyncSessionFactoryImpl(db, dbExecutor, eventBus, clock, - recordReaderFactory, recordWriterFactory); - } - - @Provides - @Singleton - ValidationManager provideValidationManager( - LifecycleManager lifecycleManager, EventBus eventBus, - ValidationManagerImpl validationManager) { - lifecycleManager.registerService(validationManager); - eventBus.addListener(validationManager); - return validationManager; - } - - @Provides - @Singleton - @ValidationExecutor - Executor provideValidationExecutor( - @CryptoExecutor Executor cryptoExecutor) { - return new PoliteExecutor("ValidationExecutor", cryptoExecutor, - MAX_CONCURRENT_VALIDATION_TASKS); + SyncSessionFactory provideSyncSessionFactory( + SyncSessionFactoryImpl syncSessionFactory) { + return syncSessionFactory; } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/sync/ValidationExecutor.java b/bramble-core/src/main/java/org/briarproject/bramble/sync/validation/ValidationExecutor.java similarity index 94% rename from bramble-core/src/main/java/org/briarproject/bramble/sync/ValidationExecutor.java rename to bramble-core/src/main/java/org/briarproject/bramble/sync/validation/ValidationExecutor.java index 41cda1d35..645ecf80a 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/sync/ValidationExecutor.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/sync/validation/ValidationExecutor.java @@ -1,4 +1,4 @@ -package org.briarproject.bramble.sync; +package org.briarproject.bramble.sync.validation; import java.lang.annotation.Retention; import java.lang.annotation.Target; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/sync/ValidationManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/sync/validation/ValidationManagerImpl.java similarity index 93% rename from bramble-core/src/main/java/org/briarproject/bramble/sync/ValidationManagerImpl.java rename to bramble-core/src/main/java/org/briarproject/bramble/sync/validation/ValidationManagerImpl.java index 2d4579992..ddd5193d3 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/sync/ValidationManagerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/sync/validation/ValidationManagerImpl.java @@ -1,4 +1,4 @@ -package org.briarproject.bramble.sync; +package org.briarproject.bramble.sync.validation; import org.briarproject.bramble.api.Pair; import org.briarproject.bramble.api.db.DatabaseComponent; @@ -18,8 +18,11 @@ import org.briarproject.bramble.api.sync.InvalidMessageException; import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.MessageContext; import org.briarproject.bramble.api.sync.MessageId; -import org.briarproject.bramble.api.sync.ValidationManager; import org.briarproject.bramble.api.sync.event.MessageAddedEvent; +import org.briarproject.bramble.api.sync.validation.IncomingMessageHook; +import org.briarproject.bramble.api.sync.validation.MessageState; +import org.briarproject.bramble.api.sync.validation.MessageValidator; +import org.briarproject.bramble.api.sync.validation.ValidationManager; import org.briarproject.bramble.api.versioning.ClientMajorVersion; import java.util.Collection; @@ -37,9 +40,9 @@ import javax.inject.Inject; import static java.util.logging.Level.INFO; import static java.util.logging.Level.WARNING; -import static org.briarproject.bramble.api.sync.ValidationManager.State.DELIVERED; -import static org.briarproject.bramble.api.sync.ValidationManager.State.INVALID; -import static org.briarproject.bramble.api.sync.ValidationManager.State.PENDING; +import static org.briarproject.bramble.api.sync.validation.MessageState.DELIVERED; +import static org.briarproject.bramble.api.sync.validation.MessageState.INVALID; +import static org.briarproject.bramble.api.sync.validation.MessageState.PENDING; import static org.briarproject.bramble.util.LogUtils.logException; @ThreadSafe @@ -166,9 +169,9 @@ class ValidationManagerImpl implements ValidationManager, Service, // Check if message is still pending if (db.getMessageState(txn, id) == PENDING) { // Check if dependencies are valid and delivered - Map states = + Map states = db.getMessageDependencies(txn, id); - for (Entry e : states.entrySet()) { + for (Entry e : states.entrySet()) { if (e.getValue() == INVALID) anyInvalid = true; if (e.getValue() != DELIVERED) allDelivered = false; } @@ -256,9 +259,9 @@ class ValidationManagerImpl implements ValidationManager, Service, if (!dependencies.isEmpty()) { db.addMessageDependencies(txn, m, dependencies); // Check if dependencies are valid and delivered - Map states = + Map states = db.getMessageDependencies(txn, id); - for (Entry e : states.entrySet()) { + for (Entry e : states.entrySet()) { if (e.getValue() == INVALID) anyInvalid = true; if (e.getValue() != DELIVERED) allDelivered = false; } @@ -322,8 +325,8 @@ class ValidationManagerImpl implements ValidationManager, Service, @DatabaseExecutor private void addPendingDependents(Transaction txn, MessageId m, Queue pending) throws DbException { - Map states = db.getMessageDependents(txn, m); - for (Entry e : states.entrySet()) { + Map states = db.getMessageDependents(txn, m); + for (Entry e : states.entrySet()) { if (e.getValue() == PENDING) pending.add(e.getKey()); } } @@ -411,8 +414,8 @@ class ValidationManagerImpl implements ValidationManager, Service, @DatabaseExecutor private void addDependentsToInvalidate(Transaction txn, MessageId m, Queue invalidate) throws DbException { - Map states = db.getMessageDependents(txn, m); - for (Entry e : states.entrySet()) { + Map states = db.getMessageDependents(txn, m); + for (Entry e : states.entrySet()) { if (e.getValue() != INVALID) invalidate.add(e.getKey()); } } diff --git a/bramble-core/src/main/java/org/briarproject/bramble/sync/validation/ValidationModule.java b/bramble-core/src/main/java/org/briarproject/bramble/sync/validation/ValidationModule.java new file mode 100644 index 000000000..d59032ac8 --- /dev/null +++ b/bramble-core/src/main/java/org/briarproject/bramble/sync/validation/ValidationModule.java @@ -0,0 +1,53 @@ +package org.briarproject.bramble.sync.validation; + +import org.briarproject.bramble.PoliteExecutor; +import org.briarproject.bramble.api.crypto.CryptoExecutor; +import org.briarproject.bramble.api.event.EventBus; +import org.briarproject.bramble.api.lifecycle.LifecycleManager; +import org.briarproject.bramble.api.sync.validation.ValidationManager; + +import java.util.concurrent.Executor; + +import javax.inject.Inject; +import javax.inject.Singleton; + +import dagger.Module; +import dagger.Provides; + +@Module +public class ValidationModule { + + public static class EagerSingletons { + @Inject + ValidationManager validationManager; + } + + /** + * The maximum number of validation tasks to delegate to the crypto + * executor concurrently. + *

+ * The number of available processors can change during the lifetime of the + * JVM, so this is just a reasonable guess. + */ + private static final int MAX_CONCURRENT_VALIDATION_TASKS = + Math.max(1, Runtime.getRuntime().availableProcessors() - 1); + + @Provides + @Singleton + ValidationManager provideValidationManager( + LifecycleManager lifecycleManager, EventBus eventBus, + ValidationManagerImpl validationManager) { + lifecycleManager.registerService(validationManager); + eventBus.addListener(validationManager); + return validationManager; + } + + @Provides + @Singleton + @ValidationExecutor + Executor provideValidationExecutor( + @CryptoExecutor Executor cryptoExecutor) { + return new PoliteExecutor("ValidationExecutor", cryptoExecutor, + MAX_CONCURRENT_VALIDATION_TASKS); + } +} diff --git a/bramble-core/src/main/java/org/briarproject/bramble/versioning/ClientVersioningManagerImpl.java b/bramble-core/src/main/java/org/briarproject/bramble/versioning/ClientVersioningManagerImpl.java index e802c8982..a7a6ac312 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/versioning/ClientVersioningManagerImpl.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/versioning/ClientVersioningManagerImpl.java @@ -23,7 +23,7 @@ import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.InvalidMessageException; import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.MessageId; -import org.briarproject.bramble.api.sync.ValidationManager.IncomingMessageHook; +import org.briarproject.bramble.api.sync.validation.IncomingMessageHook; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientMajorVersion; import org.briarproject.bramble.api.versioning.ClientVersioningManager; diff --git a/bramble-core/src/main/java/org/briarproject/bramble/versioning/VersioningModule.java b/bramble-core/src/main/java/org/briarproject/bramble/versioning/VersioningModule.java index f018ffd76..070e90c76 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/versioning/VersioningModule.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/versioning/VersioningModule.java @@ -4,7 +4,7 @@ import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.data.MetadataEncoder; import org.briarproject.bramble.api.lifecycle.LifecycleManager; -import org.briarproject.bramble.api.sync.ValidationManager; +import org.briarproject.bramble.api.sync.validation.ValidationManager; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; diff --git a/bramble-core/src/test/java/org/briarproject/bramble/db/DatabaseComponentImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/db/DatabaseComponentImplTest.java index 77d7ef146..0ca1f3b5e 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/db/DatabaseComponentImplTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/db/DatabaseComponentImplTest.java @@ -64,8 +64,8 @@ import static org.briarproject.bramble.api.sync.Group.Visibility.INVISIBLE; import static org.briarproject.bramble.api.sync.Group.Visibility.SHARED; import static org.briarproject.bramble.api.sync.Group.Visibility.VISIBLE; import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_LENGTH; -import static org.briarproject.bramble.api.sync.ValidationManager.State.DELIVERED; -import static org.briarproject.bramble.api.sync.ValidationManager.State.UNKNOWN; +import static org.briarproject.bramble.api.sync.validation.MessageState.DELIVERED; +import static org.briarproject.bramble.api.sync.validation.MessageState.UNKNOWN; import static org.briarproject.bramble.api.transport.TransportConstants.REORDERING_WINDOW_SIZE; import static org.briarproject.bramble.db.DatabaseConstants.MAX_OFFERED_MESSAGES; import static org.briarproject.bramble.test.TestUtils.getAuthor; diff --git a/bramble-core/src/test/java/org/briarproject/bramble/db/DatabasePerformanceTest.java b/bramble-core/src/test/java/org/briarproject/bramble/db/DatabasePerformanceTest.java index 55e5e5ade..f9b2f6149 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/db/DatabasePerformanceTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/db/DatabasePerformanceTest.java @@ -11,7 +11,7 @@ import org.briarproject.bramble.api.sync.Group; import org.briarproject.bramble.api.sync.GroupId; import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.MessageId; -import org.briarproject.bramble.api.sync.ValidationManager.State; +import org.briarproject.bramble.api.sync.validation.MessageState; import org.briarproject.bramble.test.BrambleTestCase; import org.briarproject.bramble.test.UTest; import org.junit.After; @@ -33,7 +33,7 @@ import java.util.logging.Logger; import static java.util.logging.Level.OFF; import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_IDS; -import static org.briarproject.bramble.api.sync.ValidationManager.State.DELIVERED; +import static org.briarproject.bramble.api.sync.validation.MessageState.DELIVERED; import static org.briarproject.bramble.test.TestUtils.deleteTestDirectory; import static org.briarproject.bramble.test.TestUtils.getAuthor; import static org.briarproject.bramble.test.TestUtils.getGroup; @@ -565,7 +565,8 @@ public abstract class DatabasePerformanceTest extends BrambleTestCase { for (int k = 0; k < MESSAGES_PER_GROUP; k++) { Message m = getMessage(g.getId()); messages.add(m); - State state = State.fromValue(random.nextInt(4)); + MessageState state = + MessageState.fromValue(random.nextInt(4)); boolean shared = random.nextBoolean(); ContactId sender = random.nextBoolean() ? c : null; db.addMessage(txn, m, state, shared, sender); diff --git a/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java b/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java index ba032aa72..dcfc96fba 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabaseTest.java @@ -18,7 +18,7 @@ import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.MessageFactory; import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.api.sync.MessageStatus; -import org.briarproject.bramble.api.sync.ValidationManager.State; +import org.briarproject.bramble.api.sync.validation.MessageState; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.transport.IncomingKeys; import org.briarproject.bramble.api.transport.KeySet; @@ -58,10 +58,10 @@ import static org.briarproject.bramble.api.sync.Group.Visibility.INVISIBLE; import static org.briarproject.bramble.api.sync.Group.Visibility.SHARED; import static org.briarproject.bramble.api.sync.Group.Visibility.VISIBLE; import static org.briarproject.bramble.api.sync.SyncConstants.MAX_MESSAGE_BODY_LENGTH; -import static org.briarproject.bramble.api.sync.ValidationManager.State.DELIVERED; -import static org.briarproject.bramble.api.sync.ValidationManager.State.INVALID; -import static org.briarproject.bramble.api.sync.ValidationManager.State.PENDING; -import static org.briarproject.bramble.api.sync.ValidationManager.State.UNKNOWN; +import static org.briarproject.bramble.api.sync.validation.MessageState.DELIVERED; +import static org.briarproject.bramble.api.sync.validation.MessageState.INVALID; +import static org.briarproject.bramble.api.sync.validation.MessageState.PENDING; +import static org.briarproject.bramble.api.sync.validation.MessageState.UNKNOWN; import static org.briarproject.bramble.db.DatabaseConstants.DB_SETTINGS_NAMESPACE; import static org.briarproject.bramble.db.DatabaseConstants.LAST_COMPACTED_KEY; import static org.briarproject.bramble.db.DatabaseConstants.MAX_COMPACTION_INTERVAL_MS; @@ -1309,7 +1309,7 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { db.addMessageDependency(txn, message1, messageId3, PENDING); db.addMessageDependency(txn, message2, messageId4, INVALID); - Map dependencies; + Map dependencies; // Retrieve dependencies for root dependencies = db.getMessageDependencies(txn, messageId); @@ -1333,7 +1333,7 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { dependencies = db.getMessageDependencies(txn, messageId4); assertEquals(0, dependencies.size()); - Map dependents; + Map dependents; // Root message does not have dependents dependents = db.getMessageDependents(txn, messageId); @@ -1408,7 +1408,7 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { db.addMessageDependency(txn, message, messageId3, PENDING); // Retrieve the dependencies for the root - Map dependencies; + Map dependencies; dependencies = db.getMessageDependencies(txn, messageId); // The cross-group dependency should have state UNKNOWN @@ -1421,7 +1421,7 @@ public abstract class JdbcDatabaseTest extends BrambleTestCase { assertEquals(DELIVERED, dependencies.get(messageId3)); // Retrieve the dependents for the message in the second group - Map dependents; + Map dependents; dependents = db.getMessageDependents(txn, messageId1); // The cross-group dependent should be excluded diff --git a/bramble-core/src/test/java/org/briarproject/bramble/sync/SyncIntegrationTestComponent.java b/bramble-core/src/test/java/org/briarproject/bramble/sync/SyncIntegrationTestComponent.java index 0397f549f..e1657306a 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/sync/SyncIntegrationTestComponent.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/sync/SyncIntegrationTestComponent.java @@ -2,6 +2,7 @@ package org.briarproject.bramble.sync; import org.briarproject.bramble.crypto.CryptoModule; import org.briarproject.bramble.record.RecordModule; +import org.briarproject.bramble.sync.validation.ValidationModule; import org.briarproject.bramble.system.SystemModule; import org.briarproject.bramble.test.TestSecureRandomModule; import org.briarproject.bramble.transport.TransportModule; @@ -17,6 +18,7 @@ import dagger.Component; RecordModule.class, SyncModule.class, SystemModule.class, + ValidationModule.class, TransportModule.class }) interface SyncIntegrationTestComponent { diff --git a/bramble-core/src/test/java/org/briarproject/bramble/sync/ValidationManagerImplTest.java b/bramble-core/src/test/java/org/briarproject/bramble/sync/validation/ValidationManagerImplTest.java similarity index 97% rename from bramble-core/src/test/java/org/briarproject/bramble/sync/ValidationManagerImplTest.java rename to bramble-core/src/test/java/org/briarproject/bramble/sync/validation/ValidationManagerImplTest.java index f85447c10..09d9cfe7e 100644 --- a/bramble-core/src/test/java/org/briarproject/bramble/sync/ValidationManagerImplTest.java +++ b/bramble-core/src/test/java/org/briarproject/bramble/sync/validation/ValidationManagerImplTest.java @@ -1,4 +1,4 @@ -package org.briarproject.bramble.sync; +package org.briarproject.bramble.sync.validation; import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.db.DatabaseComponent; @@ -13,10 +13,10 @@ import org.briarproject.bramble.api.sync.InvalidMessageException; import org.briarproject.bramble.api.sync.Message; import org.briarproject.bramble.api.sync.MessageContext; import org.briarproject.bramble.api.sync.MessageId; -import org.briarproject.bramble.api.sync.ValidationManager.IncomingMessageHook; -import org.briarproject.bramble.api.sync.ValidationManager.MessageValidator; -import org.briarproject.bramble.api.sync.ValidationManager.State; import org.briarproject.bramble.api.sync.event.MessageAddedEvent; +import org.briarproject.bramble.api.sync.validation.IncomingMessageHook; +import org.briarproject.bramble.api.sync.validation.MessageState; +import org.briarproject.bramble.api.sync.validation.MessageValidator; import org.briarproject.bramble.test.BrambleMockTestCase; import org.briarproject.bramble.test.DbExpectations; import org.briarproject.bramble.test.ImmediateExecutor; @@ -32,10 +32,10 @@ import static java.util.Collections.emptyList; import static java.util.Collections.emptyMap; import static java.util.Collections.singletonList; import static java.util.Collections.singletonMap; -import static org.briarproject.bramble.api.sync.ValidationManager.State.DELIVERED; -import static org.briarproject.bramble.api.sync.ValidationManager.State.INVALID; -import static org.briarproject.bramble.api.sync.ValidationManager.State.PENDING; -import static org.briarproject.bramble.api.sync.ValidationManager.State.UNKNOWN; +import static org.briarproject.bramble.api.sync.validation.MessageState.DELIVERED; +import static org.briarproject.bramble.api.sync.validation.MessageState.INVALID; +import static org.briarproject.bramble.api.sync.validation.MessageState.PENDING; +import static org.briarproject.bramble.api.sync.validation.MessageState.UNKNOWN; import static org.briarproject.bramble.test.TestUtils.getClientId; import static org.briarproject.bramble.test.TestUtils.getGroup; import static org.briarproject.bramble.test.TestUtils.getMessage; @@ -559,7 +559,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { public void testRecursiveInvalidation() throws Exception { MessageId messageId3 = new MessageId(getRandomId()); MessageId messageId4 = new MessageId(getRandomId()); - Map twoDependents = new LinkedHashMap<>(); + Map twoDependents = new LinkedHashMap<>(); twoDependents.put(messageId1, PENDING); twoDependents.put(messageId2, PENDING); Transaction txn = new Transaction(null, true); @@ -643,10 +643,10 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { Message message4 = getMessage(groupId); MessageId messageId3 = message3.getId(); MessageId messageId4 = message4.getId(); - Map twoDependents = new LinkedHashMap<>(); + Map twoDependents = new LinkedHashMap<>(); twoDependents.put(messageId1, PENDING); twoDependents.put(messageId2, PENDING); - Map twoDependencies = new LinkedHashMap<>(); + Map twoDependencies = new LinkedHashMap<>(); twoDependencies.put(messageId1, DELIVERED); twoDependencies.put(messageId2, DELIVERED); Transaction txn = new Transaction(null, true); @@ -765,7 +765,7 @@ public class ValidationManagerImplTest extends BrambleMockTestCase { @Test public void testOnlyReadyPendingDependentsGetDelivered() throws Exception { - Map twoDependencies = new LinkedHashMap<>(); + Map twoDependencies = new LinkedHashMap<>(); twoDependencies.put(messageId, DELIVERED); twoDependencies.put(messageId2, UNKNOWN); Transaction txn = new Transaction(null, true); diff --git a/briar-core/src/main/java/org/briarproject/briar/blog/BlogManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/blog/BlogManagerImpl.java index 7c4bde477..9b62cf8aa 100644 --- a/briar-core/src/main/java/org/briarproject/briar/blog/BlogManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/blog/BlogManagerImpl.java @@ -1,6 +1,7 @@ package org.briarproject.briar.blog; import org.briarproject.bramble.api.FormatException; +import org.briarproject.bramble.api.client.BdfIncomingMessageHook; import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.contact.Contact; import org.briarproject.bramble.api.contact.ContactManager; @@ -32,7 +33,6 @@ import org.briarproject.briar.api.blog.BlogPostFactory; import org.briarproject.briar.api.blog.BlogPostHeader; import org.briarproject.briar.api.blog.MessageType; import org.briarproject.briar.api.blog.event.BlogPostAddedEvent; -import org.briarproject.briar.client.BdfIncomingMessageHook; import java.security.GeneralSecurityException; import java.util.ArrayList; diff --git a/briar-core/src/main/java/org/briarproject/briar/blog/BlogModule.java b/briar-core/src/main/java/org/briarproject/briar/blog/BlogModule.java index dcc829d39..7e3873f36 100644 --- a/briar-core/src/main/java/org/briarproject/briar/blog/BlogModule.java +++ b/briar-core/src/main/java/org/briarproject/briar/blog/BlogModule.java @@ -6,7 +6,7 @@ import org.briarproject.bramble.api.data.MetadataEncoder; import org.briarproject.bramble.api.lifecycle.LifecycleManager; import org.briarproject.bramble.api.sync.GroupFactory; import org.briarproject.bramble.api.sync.MessageFactory; -import org.briarproject.bramble.api.sync.ValidationManager; +import org.briarproject.bramble.api.sync.validation.ValidationManager; import org.briarproject.bramble.api.system.Clock; import org.briarproject.briar.api.blog.BlogFactory; import org.briarproject.briar.api.blog.BlogManager; diff --git a/briar-core/src/main/java/org/briarproject/briar/client/ConversationClientImpl.java b/briar-core/src/main/java/org/briarproject/briar/client/ConversationClientImpl.java index ce52208f8..4ba35c020 100644 --- a/briar-core/src/main/java/org/briarproject/briar/client/ConversationClientImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/client/ConversationClientImpl.java @@ -1,5 +1,6 @@ package org.briarproject.briar.client; +import org.briarproject.bramble.api.client.BdfIncomingMessageHook; import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.contact.Contact; import org.briarproject.bramble.api.contact.ContactId; diff --git a/briar-core/src/main/java/org/briarproject/briar/forum/ForumManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/forum/ForumManagerImpl.java index 493778470..6e196b196 100644 --- a/briar-core/src/main/java/org/briarproject/briar/forum/ForumManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/forum/ForumManagerImpl.java @@ -1,6 +1,7 @@ package org.briarproject.briar.forum; import org.briarproject.bramble.api.FormatException; +import org.briarproject.bramble.api.client.BdfIncomingMessageHook; import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.data.BdfDictionary; @@ -27,7 +28,6 @@ import org.briarproject.briar.api.forum.ForumPost; import org.briarproject.briar.api.forum.ForumPostFactory; import org.briarproject.briar.api.forum.ForumPostHeader; import org.briarproject.briar.api.forum.event.ForumPostReceivedEvent; -import org.briarproject.briar.client.BdfIncomingMessageHook; import java.security.GeneralSecurityException; import java.util.ArrayList; diff --git a/briar-core/src/main/java/org/briarproject/briar/forum/ForumModule.java b/briar-core/src/main/java/org/briarproject/briar/forum/ForumModule.java index fd1703232..ca24f9d33 100644 --- a/briar-core/src/main/java/org/briarproject/briar/forum/ForumModule.java +++ b/briar-core/src/main/java/org/briarproject/briar/forum/ForumModule.java @@ -2,7 +2,7 @@ package org.briarproject.briar.forum; import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.data.MetadataEncoder; -import org.briarproject.bramble.api.sync.ValidationManager; +import org.briarproject.bramble.api.sync.validation.ValidationManager; import org.briarproject.bramble.api.system.Clock; import org.briarproject.briar.api.forum.ForumFactory; import org.briarproject.briar.api.forum.ForumManager; diff --git a/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionModule.java b/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionModule.java index 832875643..be80647d5 100644 --- a/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionModule.java +++ b/briar-core/src/main/java/org/briarproject/briar/introduction/IntroductionModule.java @@ -4,11 +4,11 @@ import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.data.MetadataEncoder; import org.briarproject.bramble.api.lifecycle.LifecycleManager; -import org.briarproject.bramble.api.sync.ValidationManager; +import org.briarproject.bramble.api.sync.validation.ValidationManager; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; -import org.briarproject.briar.api.introduction.IntroductionManager; import org.briarproject.briar.api.conversation.ConversationManager; +import org.briarproject.briar.api.introduction.IntroductionManager; import javax.inject.Inject; import javax.inject.Singleton; diff --git a/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingModule.java b/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingModule.java index 5067b56f2..c806ebea3 100644 --- a/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingModule.java +++ b/briar-core/src/main/java/org/briarproject/briar/messaging/MessagingModule.java @@ -4,7 +4,7 @@ import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.data.MetadataEncoder; import org.briarproject.bramble.api.lifecycle.LifecycleManager; -import org.briarproject.bramble.api.sync.ValidationManager; +import org.briarproject.bramble.api.sync.validation.ValidationManager; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; import org.briarproject.briar.api.conversation.ConversationManager; diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/PrivateGroupManagerImpl.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/PrivateGroupManagerImpl.java index 10614efd6..2e89dc8cd 100644 --- a/briar-core/src/main/java/org/briarproject/briar/privategroup/PrivateGroupManagerImpl.java +++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/PrivateGroupManagerImpl.java @@ -1,6 +1,7 @@ package org.briarproject.briar.privategroup; import org.briarproject.bramble.api.FormatException; +import org.briarproject.bramble.api.client.BdfIncomingMessageHook; import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.contact.ContactId; import org.briarproject.bramble.api.contact.ContactManager; @@ -38,7 +39,6 @@ import org.briarproject.briar.api.privategroup.Visibility; import org.briarproject.briar.api.privategroup.event.ContactRelationshipRevealedEvent; import org.briarproject.briar.api.privategroup.event.GroupDissolvedEvent; import org.briarproject.briar.api.privategroup.event.GroupMessageAddedEvent; -import org.briarproject.briar.client.BdfIncomingMessageHook; import java.util.ArrayList; import java.util.Collection; diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/PrivateGroupModule.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/PrivateGroupModule.java index 61901bc8b..3b03376c6 100644 --- a/briar-core/src/main/java/org/briarproject/briar/privategroup/PrivateGroupModule.java +++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/PrivateGroupModule.java @@ -2,7 +2,7 @@ package org.briarproject.briar.privategroup; import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.data.MetadataEncoder; -import org.briarproject.bramble.api.sync.ValidationManager; +import org.briarproject.bramble.api.sync.validation.ValidationManager; import org.briarproject.bramble.api.system.Clock; import org.briarproject.briar.api.privategroup.GroupMessageFactory; import org.briarproject.briar.api.privategroup.PrivateGroupFactory; diff --git a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationModule.java b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationModule.java index 061e5a921..6960dae6b 100644 --- a/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationModule.java +++ b/briar-core/src/main/java/org/briarproject/briar/privategroup/invitation/GroupInvitationModule.java @@ -4,7 +4,7 @@ import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.data.MetadataEncoder; import org.briarproject.bramble.api.lifecycle.LifecycleManager; -import org.briarproject.bramble.api.sync.ValidationManager; +import org.briarproject.bramble.api.sync.validation.ValidationManager; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; import org.briarproject.briar.api.conversation.ConversationManager; diff --git a/briar-core/src/main/java/org/briarproject/briar/sharing/SharingModule.java b/briar-core/src/main/java/org/briarproject/briar/sharing/SharingModule.java index e290e19eb..a71d215af 100644 --- a/briar-core/src/main/java/org/briarproject/briar/sharing/SharingModule.java +++ b/briar-core/src/main/java/org/briarproject/briar/sharing/SharingModule.java @@ -4,7 +4,7 @@ import org.briarproject.bramble.api.client.ClientHelper; import org.briarproject.bramble.api.contact.ContactManager; import org.briarproject.bramble.api.data.MetadataEncoder; import org.briarproject.bramble.api.lifecycle.LifecycleManager; -import org.briarproject.bramble.api.sync.ValidationManager; +import org.briarproject.bramble.api.sync.validation.ValidationManager; import org.briarproject.bramble.api.system.Clock; import org.briarproject.bramble.api.versioning.ClientVersioningManager; import org.briarproject.briar.api.blog.Blog; @@ -12,12 +12,12 @@ import org.briarproject.briar.api.blog.BlogFactory; import org.briarproject.briar.api.blog.BlogInvitationResponse; import org.briarproject.briar.api.blog.BlogManager; import org.briarproject.briar.api.blog.BlogSharingManager; +import org.briarproject.briar.api.conversation.ConversationManager; import org.briarproject.briar.api.forum.Forum; import org.briarproject.briar.api.forum.ForumFactory; import org.briarproject.briar.api.forum.ForumInvitationResponse; import org.briarproject.briar.api.forum.ForumManager; import org.briarproject.briar.api.forum.ForumSharingManager; -import org.briarproject.briar.api.conversation.ConversationManager; import javax.inject.Inject; import javax.inject.Singleton; diff --git a/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerIntegrationTest.java index ced26a4a1..09498c5c6 100644 --- a/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerIntegrationTest.java @@ -7,7 +7,7 @@ import org.briarproject.bramble.contact.ContactModule; import org.briarproject.bramble.crypto.CryptoExecutorModule; import org.briarproject.bramble.identity.IdentityModule; import org.briarproject.bramble.lifecycle.LifecycleModule; -import org.briarproject.bramble.sync.SyncModule; +import org.briarproject.bramble.sync.validation.ValidationModule; import org.briarproject.bramble.system.SystemModule; import org.briarproject.bramble.test.TestDatabaseModule; import org.briarproject.bramble.test.TestUtils; @@ -127,9 +127,9 @@ public class FeedManagerIntegrationTest extends BriarTestCase { component.inject(new FeedModule.EagerSingletons()); component.inject(new IdentityModule.EagerSingletons()); component.inject(new LifecycleModule.EagerSingletons()); - component.inject(new SyncModule.EagerSingletons()); component.inject(new SystemModule.EagerSingletons()); component.inject(new TransportModule.EagerSingletons()); + component.inject(new ValidationModule.EagerSingletons()); component.inject(new VersioningModule.EagerSingletons()); } diff --git a/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerIntegrationTestComponent.java b/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerIntegrationTestComponent.java index 685eedacb..11667b6d1 100644 --- a/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerIntegrationTestComponent.java +++ b/briar-core/src/test/java/org/briarproject/briar/feed/FeedManagerIntegrationTestComponent.java @@ -12,6 +12,7 @@ import org.briarproject.bramble.event.EventModule; import org.briarproject.bramble.identity.IdentityModule; import org.briarproject.bramble.lifecycle.LifecycleModule; import org.briarproject.bramble.sync.SyncModule; +import org.briarproject.bramble.sync.validation.ValidationModule; import org.briarproject.bramble.system.SystemModule; import org.briarproject.bramble.test.TestDatabaseModule; import org.briarproject.bramble.test.TestPluginConfigModule; @@ -51,6 +52,7 @@ import dagger.Component; SyncModule.class, SystemModule.class, TransportModule.class, + ValidationModule.class, VersioningModule.class }) interface FeedManagerIntegrationTestComponent { @@ -69,12 +71,12 @@ interface FeedManagerIntegrationTestComponent { void inject(LifecycleModule.EagerSingletons init); - void inject(SyncModule.EagerSingletons init); - void inject(SystemModule.EagerSingletons init); void inject(TransportModule.EagerSingletons init); + void inject(ValidationModule.EagerSingletons init); + void inject(VersioningModule.EagerSingletons init); IdentityManager getIdentityManager(); diff --git a/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTestComponent.java b/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTestComponent.java index 108f48849..1ef0a9210 100644 --- a/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTestComponent.java +++ b/briar-core/src/test/java/org/briarproject/briar/introduction/IntroductionIntegrationTestComponent.java @@ -12,6 +12,7 @@ import org.briarproject.bramble.lifecycle.LifecycleModule; import org.briarproject.bramble.properties.PropertiesModule; import org.briarproject.bramble.record.RecordModule; import org.briarproject.bramble.sync.SyncModule; +import org.briarproject.bramble.sync.validation.ValidationModule; import org.briarproject.bramble.system.SystemModule; import org.briarproject.bramble.test.TestDatabaseModule; import org.briarproject.bramble.test.TestPluginConfigModule; @@ -58,6 +59,7 @@ import dagger.Component; SyncModule.class, SystemModule.class, TransportModule.class, + ValidationModule.class, VersioningModule.class }) interface IntroductionIntegrationTestComponent diff --git a/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTest.java index e68510797..086f7f2b1 100644 --- a/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTest.java @@ -10,7 +10,7 @@ import org.briarproject.bramble.api.sync.MessageId; import org.briarproject.bramble.contact.ContactModule; import org.briarproject.bramble.crypto.CryptoExecutorModule; import org.briarproject.bramble.identity.IdentityModule; -import org.briarproject.bramble.sync.SyncModule; +import org.briarproject.bramble.sync.validation.ValidationModule; import org.briarproject.bramble.system.SystemModule; import org.briarproject.bramble.transport.TransportModule; import org.briarproject.bramble.versioning.VersioningModule; @@ -98,9 +98,9 @@ public class MessageSizeIntegrationTest extends BriarTestCase { component.inject(new ForumModule.EagerSingletons()); component.inject(new IdentityModule.EagerSingletons()); component.inject(new MessagingModule.EagerSingletons()); - component.inject(new SyncModule.EagerSingletons()); component.inject(new SystemModule.EagerSingletons()); component.inject(new TransportModule.EagerSingletons()); + component.inject(new ValidationModule.EagerSingletons()); component.inject(new VersioningModule.EagerSingletons()); } } diff --git a/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTestComponent.java b/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTestComponent.java index 01caa2e4b..f56035fb6 100644 --- a/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTestComponent.java +++ b/briar-core/src/test/java/org/briarproject/briar/messaging/MessageSizeIntegrationTestComponent.java @@ -9,6 +9,7 @@ import org.briarproject.bramble.db.DatabaseModule; import org.briarproject.bramble.event.EventModule; import org.briarproject.bramble.identity.IdentityModule; import org.briarproject.bramble.sync.SyncModule; +import org.briarproject.bramble.sync.validation.ValidationModule; import org.briarproject.bramble.system.SystemModule; import org.briarproject.bramble.test.TestDatabaseModule; import org.briarproject.bramble.test.TestLifecycleModule; @@ -43,6 +44,7 @@ import dagger.Component; SyncModule.class, SystemModule.class, TransportModule.class, + ValidationModule.class, VersioningModule.class }) interface MessageSizeIntegrationTestComponent { @@ -59,11 +61,11 @@ interface MessageSizeIntegrationTestComponent { void inject(MessagingModule.EagerSingletons init); - void inject(SyncModule.EagerSingletons init); - void inject(SystemModule.EagerSingletons init); void inject(TransportModule.EagerSingletons init); + void inject(ValidationModule.EagerSingletons init); + void inject(VersioningModule.EagerSingletons init); } diff --git a/briar-core/src/test/java/org/briarproject/briar/messaging/SimplexMessagingIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/messaging/SimplexMessagingIntegrationTest.java index 581a397ad..af0c4bea9 100644 --- a/briar-core/src/test/java/org/briarproject/briar/messaging/SimplexMessagingIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/messaging/SimplexMessagingIntegrationTest.java @@ -21,7 +21,7 @@ import org.briarproject.bramble.api.transport.StreamWriterFactory; import org.briarproject.bramble.contact.ContactModule; import org.briarproject.bramble.identity.IdentityModule; import org.briarproject.bramble.lifecycle.LifecycleModule; -import org.briarproject.bramble.sync.SyncModule; +import org.briarproject.bramble.sync.validation.ValidationModule; import org.briarproject.bramble.system.SystemModule; import org.briarproject.bramble.test.TestDatabaseModule; import org.briarproject.bramble.test.TestUtils; @@ -193,9 +193,9 @@ public class SimplexMessagingIntegrationTest extends BriarTestCase { component.inject(new IdentityModule.EagerSingletons()); component.inject(new LifecycleModule.EagerSingletons()); component.inject(new MessagingModule.EagerSingletons()); - component.inject(new SyncModule.EagerSingletons()); component.inject(new SystemModule.EagerSingletons()); component.inject(new TransportModule.EagerSingletons()); + component.inject(new ValidationModule.EagerSingletons()); component.inject(new VersioningModule.EagerSingletons()); } diff --git a/briar-core/src/test/java/org/briarproject/briar/messaging/SimplexMessagingIntegrationTestComponent.java b/briar-core/src/test/java/org/briarproject/briar/messaging/SimplexMessagingIntegrationTestComponent.java index 7dade1ed1..6835add8c 100644 --- a/briar-core/src/test/java/org/briarproject/briar/messaging/SimplexMessagingIntegrationTestComponent.java +++ b/briar-core/src/test/java/org/briarproject/briar/messaging/SimplexMessagingIntegrationTestComponent.java @@ -18,6 +18,7 @@ import org.briarproject.bramble.identity.IdentityModule; import org.briarproject.bramble.lifecycle.LifecycleModule; import org.briarproject.bramble.record.RecordModule; import org.briarproject.bramble.sync.SyncModule; +import org.briarproject.bramble.sync.validation.ValidationModule; import org.briarproject.bramble.system.SystemModule; import org.briarproject.bramble.test.TestCryptoExecutorModule; import org.briarproject.bramble.test.TestDatabaseModule; @@ -53,6 +54,7 @@ import dagger.Component; SyncModule.class, SystemModule.class, TransportModule.class, + ValidationModule.class, VersioningModule.class }) interface SimplexMessagingIntegrationTestComponent { @@ -65,12 +67,12 @@ interface SimplexMessagingIntegrationTestComponent { void inject(MessagingModule.EagerSingletons init); - void inject(SyncModule.EagerSingletons init); - void inject(SystemModule.EagerSingletons init); void inject(TransportModule.EagerSingletons init); + void inject(ValidationModule.EagerSingletons init); + void inject(VersioningModule.EagerSingletons init); LifecycleManager getLifecycleManager(); diff --git a/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTest.java b/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTest.java index c278b83bb..cb720a433 100644 --- a/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTest.java +++ b/briar-core/src/test/java/org/briarproject/briar/test/BriarIntegrationTest.java @@ -32,7 +32,7 @@ import org.briarproject.bramble.crypto.CryptoExecutorModule; import org.briarproject.bramble.identity.IdentityModule; import org.briarproject.bramble.lifecycle.LifecycleModule; import org.briarproject.bramble.properties.PropertiesModule; -import org.briarproject.bramble.sync.SyncModule; +import org.briarproject.bramble.sync.validation.ValidationModule; import org.briarproject.bramble.system.SystemModule; import org.briarproject.bramble.test.TestUtils; import org.briarproject.bramble.transport.TransportModule; @@ -71,9 +71,9 @@ import static java.util.concurrent.Executors.newSingleThreadExecutor; import static java.util.concurrent.TimeUnit.MILLISECONDS; import static java.util.logging.Level.WARNING; import static junit.framework.Assert.assertNotNull; -import static org.briarproject.bramble.api.sync.ValidationManager.State.DELIVERED; -import static org.briarproject.bramble.api.sync.ValidationManager.State.INVALID; -import static org.briarproject.bramble.api.sync.ValidationManager.State.PENDING; +import static org.briarproject.bramble.api.sync.validation.MessageState.DELIVERED; +import static org.briarproject.bramble.api.sync.validation.MessageState.INVALID; +import static org.briarproject.bramble.api.sync.validation.MessageState.PENDING; import static org.briarproject.bramble.test.TestPluginConfigModule.MAX_LATENCY; import static org.briarproject.bramble.test.TestUtils.getSecretKey; import static org.briarproject.bramble.util.LogUtils.logException; @@ -195,9 +195,9 @@ public abstract class BriarIntegrationTest