diff --git a/briar-api/src/org/briarproject/api/sync/ValidationManager.java b/briar-api/src/org/briarproject/api/sync/ValidationManager.java index 35fcea79c44b4c2e7dd27963cb141c69101c8cba..4de322bc0c793d13f4cfd80220a81f47448a5302 100644 --- a/briar-api/src/org/briarproject/api/sync/ValidationManager.java +++ b/briar-api/src/org/briarproject/api/sync/ValidationManager.java @@ -27,5 +27,5 @@ public interface ValidationManager { } /** Sets the message validator for the given client. */ - void setMessageValidator(ClientId c, MessageValidator v); + void registerMessageValidator(ClientId c, MessageValidator v); } diff --git a/briar-core/src/org/briarproject/forum/ForumModule.java b/briar-core/src/org/briarproject/forum/ForumModule.java index 94f0f829cdd6406702740dfe094fdcf84376f702..3d82cdfe44bc5b13b69e5a82c0b7e49b75cc6b64 100644 --- a/briar-core/src/org/briarproject/forum/ForumModule.java +++ b/briar-core/src/org/briarproject/forum/ForumModule.java @@ -34,7 +34,7 @@ public class ForumModule extends AbstractModule { ForumPostValidator validator = new ForumPostValidator(crypto, bdfReaderFactory, bdfWriterFactory, authorReader, metadataEncoder, clock); - validationManager.setMessageValidator(forumManager.getClientId(), + validationManager.registerMessageValidator(forumManager.getClientId(), validator); return validator; } diff --git a/briar-core/src/org/briarproject/messaging/MessagingModule.java b/briar-core/src/org/briarproject/messaging/MessagingModule.java index 1854afcc769a0600036ddf9cc7eb0ad8167af0ff..0e55193e049a175b52d34f755d2b1bbfc5138aca 100644 --- a/briar-core/src/org/briarproject/messaging/MessagingModule.java +++ b/briar-core/src/org/briarproject/messaging/MessagingModule.java @@ -27,7 +27,8 @@ public class MessagingModule extends AbstractModule { Clock clock) { PrivateMessageValidator validator = new PrivateMessageValidator( bdfReaderFactory, metadataEncoder, clock); - validationManager.setMessageValidator(messagingManager.getClientId(), + validationManager.registerMessageValidator( + messagingManager.getClientId(), validator); return validator; } diff --git a/briar-core/src/org/briarproject/sync/SyncModule.java b/briar-core/src/org/briarproject/sync/SyncModule.java index 77633c7d2fbea88d2f20bd707db4b3d7b541e14a..f90c6c1ecc05642840ff48579ee27f4014c2505a 100644 --- a/briar-core/src/org/briarproject/sync/SyncModule.java +++ b/briar-core/src/org/briarproject/sync/SyncModule.java @@ -7,6 +7,7 @@ import org.briarproject.api.data.ObjectReader; import org.briarproject.api.event.EventBus; import org.briarproject.api.identity.Author; import org.briarproject.api.identity.AuthorFactory; +import org.briarproject.api.lifecycle.LifecycleManager; import org.briarproject.api.sync.Group; import org.briarproject.api.sync.GroupFactory; import org.briarproject.api.sync.MessageFactory; @@ -48,8 +49,9 @@ public class SyncModule extends AbstractModule { } @Provides @Singleton - ValidationManager getValidationManager(EventBus eventBus, - ValidationManagerImpl validationManager) { + ValidationManager getValidationManager(LifecycleManager lifecycleManager, + EventBus eventBus, ValidationManagerImpl validationManager) { + lifecycleManager.register(validationManager); eventBus.addListener(validationManager); return validationManager; } diff --git a/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java b/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java index 9f977ef15bd076bb80721f7ed2285e3b63cee238..28e248ae42fbd79b59f777978db4e8fa6ebf9109 100644 --- a/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java +++ b/briar-core/src/org/briarproject/sync/ValidationManagerImpl.java @@ -13,6 +13,7 @@ import org.briarproject.api.db.NoSuchSubscriptionException; import org.briarproject.api.event.Event; import org.briarproject.api.event.EventListener; import org.briarproject.api.event.MessageAddedEvent; +import org.briarproject.api.lifecycle.Service; import org.briarproject.api.sync.ClientId; import org.briarproject.api.sync.GroupId; import org.briarproject.api.sync.Message; @@ -29,7 +30,8 @@ import java.util.logging.Logger; import static java.util.logging.Level.WARNING; import static org.briarproject.api.sync.SyncConstants.MESSAGE_HEADER_LENGTH; -class ValidationManagerImpl implements ValidationManager, EventListener { +class ValidationManagerImpl implements ValidationManager, Service, + EventListener { private static final Logger LOG = Logger.getLogger(ValidationManagerImpl.class.getName()); @@ -50,9 +52,19 @@ class ValidationManagerImpl implements ValidationManager, EventListener { } @Override - public void setMessageValidator(ClientId c, MessageValidator v) { + public boolean start() { + for (ClientId c : validators.keySet()) getMessagesToValidate(c); + return true; + } + + @Override + public boolean stop() { + return true; + } + + @Override + public void registerMessageValidator(ClientId c, MessageValidator v) { validators.put(c, v); - getMessagesToValidate(c); } private void getMessagesToValidate(final ClientId c) {