You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2017/11/15 08:02:05 UTC

[07/11] james-project git commit: MAILBOX-316 JmapModule will bind PropagateLookupRightListener then the event should only listen on JMAP protocol

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 <qn...@linagora.com>
Authored: Mon Nov 6 17:25:10 2017 +0700
Committer: quynhn <qn...@linagora.com>
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org