From e4c4ee90cf9a167cace15860e4ab53d4d455a0cc Mon Sep 17 00:00:00 2001 From: Benoit Tellier Date: Fri, 26 Feb 2021 14:43:55 +0700 Subject: [PATCH] JAMES-3470 Bind Cassandra changes DAOs in singleton scope This avoids re-preparing several time the same Cassandra queries --- .../apache/james/modules/mailbox/CassandraMailboxModule.java | 4 ++++ .../jmap/cassandra/change/MailboxChangeRepositoryDAO.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java b/server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java index 925f845d3ab..0e8c809136a 100644 --- a/server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java +++ b/server/container/guice/cassandra/src/main/java/org/apache/james/modules/mailbox/CassandraMailboxModule.java @@ -35,6 +35,8 @@ import org.apache.james.jmap.cassandra.change.CassandraEmailChangeRepository; import org.apache.james.jmap.cassandra.change.CassandraMailboxChangeRepository; import org.apache.james.jmap.cassandra.change.CassandraStateFactory; +import org.apache.james.jmap.cassandra.change.EmailChangeRepositoryDAO; +import org.apache.james.jmap.cassandra.change.MailboxChangeRepositoryDAO; import org.apache.james.mailbox.AttachmentContentLoader; import org.apache.james.mailbox.AttachmentManager; import org.apache.james.mailbox.Authenticator; @@ -165,6 +167,8 @@ protected void configure() { bind(NoMailboxPathLocker.class).in(Scopes.SINGLETON); bind(UserRepositoryAuthenticator.class).in(Scopes.SINGLETON); bind(UserRepositoryAuthorizator.class).in(Scopes.SINGLETON); + bind(EmailChangeRepositoryDAO.class).in(Scopes.SINGLETON); + bind(MailboxChangeRepositoryDAO.class).in(Scopes.SINGLETON); bind(ReIndexerImpl.class).in(Scopes.SINGLETON); bind(MessageIdReIndexerImpl.class).in(Scopes.SINGLETON); diff --git a/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/change/MailboxChangeRepositoryDAO.java b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/change/MailboxChangeRepositoryDAO.java index 7232dbb8cde..d118b19f529 100644 --- a/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/change/MailboxChangeRepositoryDAO.java +++ b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/change/MailboxChangeRepositoryDAO.java @@ -62,7 +62,7 @@ import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; -class MailboxChangeRepositoryDAO { +public class MailboxChangeRepositoryDAO { private final CassandraAsyncExecutor executor; private final UserType zonedDateTimeUserType; private final PreparedStatement insertStatement;