MAILBOX-316 JmapModule will bind PropagateLookupRightListener then the event should only listen on JMAP protocol
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/2462904d Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/2462904d Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/2462904d Branch: refs/heads/master Commit: 2462904dbed12339ad0a8521cba2dcb5dfcf4746 Parents: 2aa77b5 Author: quynhn <[email protected]> Authored: Mon Nov 6 17:25:10 2017 +0700 Committer: quynhn <[email protected]> Committed: Wed Nov 15 09:33:58 2017 +0700 ---------------------------------------------------------------------- .../java/org/apache/james/jmap/JMAPModule.java | 30 ++++++++++++++++++++ 1 file changed, 30 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/2462904d/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPModule.java ---------------------------------------------------------------------- diff --git a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPModule.java b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPModule.java index f5f6a29..42a3d07 100644 --- a/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPModule.java +++ b/server/container/guice/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPModule.java @@ -28,6 +28,7 @@ import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.commons.io.FileUtils; import org.apache.james.filesystem.api.FileSystem; +import org.apache.james.jmap.event.PropagateLookupRightListener; import org.apache.james.jmap.mailet.VacationMailet; import org.apache.james.jmap.methods.RequestHandler; import org.apache.james.jmap.send.PostDequeueDecoratorFactory; @@ -39,6 +40,7 @@ import org.apache.james.jwt.JwtConfiguration; import org.apache.james.lifecycle.api.Configurable; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxManager.SearchCapabilities; +import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailetcontainer.impl.MatcherMailetPair; import org.apache.james.modules.server.CamelMailetContainerModule; import org.apache.james.queue.api.MailQueueItemDecoratorFactory; @@ -89,6 +91,7 @@ public class JMAPModule extends AbstractModule { bind(HtmlTextExtractor.class).to(JsoupHtmlTextExtractor.class); Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(RequiredCapabilitiesPrecondition.class); + Multibinder.newSetBinder(binder(), ConfigurationPerformer.class).addBinding().to(JmapListenerRegistrationPerformer.class); Multibinder<CamelMailetContainerModule.TransportProcessorCheck> transportProcessorChecks = Multibinder.newSetBinder(binder(), CamelMailetContainerModule.TransportProcessorCheck.class); transportProcessorChecks.addBinding().to(VacationMailetCheck.class); @@ -128,6 +131,33 @@ public class JMAPModule extends AbstractModule { } @Singleton + public static class JmapListenerRegistrationPerformer implements ConfigurationPerformer { + private final MailboxManager mailboxManager; + private final PropagateLookupRightListener propagateLookupRightListener; + + @Inject + public JmapListenerRegistrationPerformer(MailboxManager mailboxManager, PropagateLookupRightListener propagateLookupRightListener) { + this.mailboxManager = mailboxManager; + this.propagateLookupRightListener = propagateLookupRightListener; + } + + @Override + public void initModule() { + try { + mailboxManager.addGlobalListener(propagateLookupRightListener, + mailboxManager.createSystemSession("storeMailboxManager")); + } catch (MailboxException e) { + Throwables.propagate(e); + } + } + + @Override + public List<Class<? extends Configurable>> forClasses() { + return ImmutableList.of(); + } + } + + @Singleton public static class RequiredCapabilitiesPrecondition implements ConfigurationPerformer { private final MailboxManager mailboxManager; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
