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 ma...@apache.org on 2017/09/29 07:21:54 UTC
[16/31] james-project git commit: MAILBOX-307 Make CassandraAclMapper
generic: MailboxId should not be a field
MAILBOX-307 Make CassandraAclMapper generic: MailboxId should not be a field
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/edf8a9a7
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/edf8a9a7
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/edf8a9a7
Branch: refs/heads/master
Commit: edf8a9a734cb98e4700d5b94829630a3f603a9ce
Parents: 5accac0
Author: benwa <bt...@linagora.com>
Authored: Mon Sep 25 16:47:03 2017 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Sep 29 09:20:40 2017 +0200
----------------------------------------------------------------------
.../cassandra/mail/CassandraACLMapper.java | 44 +++++------
.../cassandra/mail/CassandraMailboxDAO.java | 12 +--
.../cassandra/mail/CassandraMailboxMapper.java | 15 +---
.../cassandra/mail/CassandraACLMapperTest.java | 83 ++++++++++++--------
4 files changed, 77 insertions(+), 77 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/edf8a9a7/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java
index f7df7d5..5695ffc 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapper.java
@@ -49,7 +49,6 @@ import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;
import com.fasterxml.jackson.core.JsonProcessingException;
-import com.google.common.base.Preconditions;
import com.google.common.base.Throwables;
public class CassandraACLMapper {
@@ -61,44 +60,41 @@ public class CassandraACLMapper {
void inject();
}
- private final CassandraId cassandraId;
private final CassandraAsyncExecutor executor;
private final Session session;
private final int maxRetry;
private final CodeInjector codeInjector;
- public CassandraACLMapper(CassandraId cassandraId, Session session, CassandraAsyncExecutor cassandraAsyncExecutor, CassandraConfiguration cassandraConfiguration) {
- this(cassandraId, session, cassandraAsyncExecutor, cassandraConfiguration, () -> {});
+ public CassandraACLMapper(Session session, CassandraConfiguration cassandraConfiguration) {
+ this(session, cassandraConfiguration, () -> {});
}
- public CassandraACLMapper(CassandraId cassandraId, Session session, CassandraAsyncExecutor cassandraAsyncExecutor, CassandraConfiguration cassandraConfiguration, CodeInjector codeInjector) {
- Preconditions.checkArgument(cassandraId != null);
- this.cassandraId = cassandraId;
+ public CassandraACLMapper(Session session, CassandraConfiguration cassandraConfiguration, CodeInjector codeInjector) {
this.session = session;
- this.executor = cassandraAsyncExecutor;
+ this.executor = new CassandraAsyncExecutor(session);
this.maxRetry = cassandraConfiguration.getAclMaxRetry();
this.codeInjector = codeInjector;
}
- public CompletableFuture<MailboxACL> getACL() {
- return getStoredACLRow().thenApply(resultSet -> {
+ public CompletableFuture<MailboxACL> getACL(CassandraId cassandraId) {
+ return getStoredACLRow(cassandraId).thenApply(resultSet -> {
if (resultSet.isExhausted()) {
return SimpleMailboxACL.EMPTY;
}
String serializedACL = resultSet.one().getString(CassandraACLTable.ACL);
- return deserializeACL(serializedACL);
+ return deserializeACL(cassandraId, serializedACL);
});
}
- public void updateACL(MailboxACL.MailboxACLCommand command) throws MailboxException {
+ public void updateACL(CassandraId cassandraId, MailboxACL.MailboxACLCommand command) throws MailboxException {
try {
new FunctionRunnerWithRetry(maxRetry).execute(
() -> {
codeInjector.inject();
- ResultSet resultSet = getAclWithVersion()
- .map((x) -> x.apply(command))
- .map(this::updateStoredACL)
- .orElseGet(() -> insertACL(applyCommandOnEmptyACL(command)));
+ ResultSet resultSet = getAclWithVersion(cassandraId)
+ .map(aclWithVersion -> aclWithVersion.apply(command))
+ .map(aclWithVersion -> updateStoredACL(cassandraId, aclWithVersion))
+ .orElseGet(() -> insertACL(cassandraId, applyCommandOnEmptyACL(command)));
return resultSet.one().getBool(CassandraConstants.LIGHTWEIGHT_TRANSACTION_APPLIED);
}
);
@@ -107,7 +103,7 @@ public class CassandraACLMapper {
}
}
- public void resetACL(MailboxACL mailboxACL) {
+ public void resetACL(CassandraId cassandraId, MailboxACL mailboxACL) {
try {
session.execute(
insertInto(CassandraACLTable.TABLE_NAME)
@@ -127,13 +123,13 @@ public class CassandraACLMapper {
}
}
- private CompletableFuture<ResultSet> getStoredACLRow() {
+ private CompletableFuture<ResultSet> getStoredACLRow(CassandraId cassandraId) {
return executor.execute(select(CassandraACLTable.ACL, CassandraACLTable.VERSION)
.from(CassandraACLTable.TABLE_NAME)
.where(eq(CassandraMailboxTable.ID, cassandraId.asUuid())));
}
- private ResultSet updateStoredACL(ACLWithVersion aclWithVersion) {
+ private ResultSet updateStoredACL(CassandraId cassandraId, ACLWithVersion aclWithVersion) {
try {
return session.execute(
update(CassandraACLTable.TABLE_NAME)
@@ -147,7 +143,7 @@ public class CassandraACLMapper {
}
}
- private ResultSet insertACL(MailboxACL acl) {
+ private ResultSet insertACL(CassandraId cassandraId, MailboxACL acl) {
try {
return session.execute(
insertInto(CassandraACLTable.TABLE_NAME)
@@ -161,16 +157,16 @@ public class CassandraACLMapper {
}
}
- private Optional<ACLWithVersion> getAclWithVersion() {
- ResultSet resultSet = getStoredACLRow().join();
+ private Optional<ACLWithVersion> getAclWithVersion(CassandraId cassandraId) {
+ ResultSet resultSet = getStoredACLRow(cassandraId).join();
if (resultSet.isExhausted()) {
return Optional.empty();
}
Row row = resultSet.one();
- return Optional.of(new ACLWithVersion(row.getLong(CassandraACLTable.VERSION), deserializeACL(row.getString(CassandraACLTable.ACL))));
+ return Optional.of(new ACLWithVersion(row.getLong(CassandraACLTable.VERSION), deserializeACL(cassandraId, row.getString(CassandraACLTable.ACL))));
}
- private MailboxACL deserializeACL(String serializedACL) {
+ private MailboxACL deserializeACL(CassandraId cassandraId, String serializedACL) {
try {
return SimpleMailboxACLJsonConverter.toACL(serializedACL);
} catch(IOException exception) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/edf8a9a7/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java
index 6d06e5e..7d0dead 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java
@@ -62,27 +62,25 @@ public class CassandraMailboxDAO {
private final CassandraAsyncExecutor executor;
private final MailboxBaseTupleUtil mailboxBaseTupleUtil;
- private final Session session;
private final CassandraUtils cassandraUtils;
- private CassandraConfiguration cassandraConfiguration;
private final PreparedStatement readStatement;
private final PreparedStatement listStatement;
private final PreparedStatement deleteStatement;
private final PreparedStatement insertStatement;
private final PreparedStatement updateStatement;
+ private CassandraACLMapper cassandraACLMapper;
@Inject
public CassandraMailboxDAO(Session session, CassandraTypesProvider typesProvider, CassandraUtils cassandraUtils, CassandraConfiguration cassandraConfiguration) {
this.executor = new CassandraAsyncExecutor(session);
this.mailboxBaseTupleUtil = new MailboxBaseTupleUtil(typesProvider);
- this.session = session;
this.insertStatement = prepareInsert(session);
this.updateStatement = prepareUpdate(session);
this.deleteStatement = prepareDelete(session);
this.listStatement = prepareList(session);
this.readStatement = prepareRead(session);
this.cassandraUtils = cassandraUtils;
- this.cassandraConfiguration = cassandraConfiguration;
+ this.cassandraACLMapper = new CassandraACLMapper(session, cassandraConfiguration);
}
@VisibleForTesting
@@ -142,9 +140,7 @@ public class CassandraMailboxDAO {
}
public CompletableFuture<Optional<SimpleMailbox>> retrieveMailbox(CassandraId mailboxId) {
- CompletableFuture<MailboxACL> aclCompletableFuture =
- new CassandraACLMapper(mailboxId, session, executor, cassandraConfiguration)
- .getACL();
+ CompletableFuture<MailboxACL> aclCompletableFuture = cassandraACLMapper.getACL(mailboxId);
CompletableFuture<Optional<SimpleMailbox>> simpleMailboxFuture = executor.executeSingleRow(readStatement.bind()
.setUUID(ID, mailboxId.asUuid()))
@@ -192,7 +188,7 @@ public class CassandraMailboxDAO {
private CompletableFuture<SimpleMailbox> toMailboxWithAclFuture(SimpleMailbox mailbox) {
CassandraId cassandraId = (CassandraId) mailbox.getMailboxId();
- return new CassandraACLMapper(cassandraId, session, executor, cassandraConfiguration).getACL()
+ return cassandraACLMapper.getACL(cassandraId)
.thenApply(acl -> {
mailbox.setACL(acl);
return mailbox;
http://git-wip-us.apache.org/repos/asf/james-project/blob/edf8a9a7/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
index 81b43e7..a997152 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java
@@ -32,7 +32,6 @@ import javax.inject.Inject;
import org.apache.commons.lang3.StringUtils;
import org.apache.james.backends.cassandra.init.CassandraConfiguration;
-import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxExistsException;
@@ -62,19 +61,15 @@ public class CassandraMailboxMapper implements MailboxMapper {
public static final String CLUSTERING_COLUMNS_IS_TOO_LONG = "The sum of all clustering columns is too long";
public static final Logger LOGGER = LoggerFactory.getLogger(CassandraMailboxMapper.class);
- private final CassandraAsyncExecutor cassandraAsyncExecutor;
private final CassandraMailboxPathDAO mailboxPathDAO;
private final CassandraMailboxDAO mailboxDAO;
- private final Session session;
- private final CassandraConfiguration cassandraConfiguration;
+ private final CassandraACLMapper cassandraACLMapper;
@Inject
public CassandraMailboxMapper(Session session, CassandraMailboxDAO mailboxDAO, CassandraMailboxPathDAO mailboxPathDAO, CassandraConfiguration cassandraConfiguration) {
- this.cassandraAsyncExecutor = new CassandraAsyncExecutor(session);
this.mailboxDAO = mailboxDAO;
this.mailboxPathDAO = mailboxPathDAO;
- this.session = session;
- this.cassandraConfiguration = cassandraConfiguration;
+ this.cassandraACLMapper = new CassandraACLMapper(session, cassandraConfiguration);
}
@Override
@@ -206,15 +201,13 @@ public class CassandraMailboxMapper implements MailboxMapper {
@Override
public void updateACL(Mailbox mailbox, MailboxACL.MailboxACLCommand mailboxACLCommand) throws MailboxException {
CassandraId cassandraId = (CassandraId) mailbox.getMailboxId();
- new CassandraACLMapper(cassandraId, session, cassandraAsyncExecutor, cassandraConfiguration)
- .updateACL(mailboxACLCommand);
+ cassandraACLMapper.updateACL(cassandraId, mailboxACLCommand);
}
@Override
public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws MailboxException {
CassandraId cassandraId = (CassandraId) mailbox.getMailboxId();
- new CassandraACLMapper(cassandraId, session, cassandraAsyncExecutor, cassandraConfiguration)
- .resetACL(mailboxACL);
+ cassandraACLMapper.resetACL(cassandraId, mailboxACL);
}
@Override
http://git-wip-us.apache.org/repos/asf/james-project/blob/edf8a9a7/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
index 6976f76..9c4ef70 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraACLMapperTest.java
@@ -33,7 +33,6 @@ import java.util.concurrent.TimeoutException;
import org.apache.james.backends.cassandra.CassandraCluster;
import org.apache.james.backends.cassandra.DockerCassandraRule;
import org.apache.james.backends.cassandra.init.CassandraConfiguration;
-import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
import org.apache.james.mailbox.cassandra.table.CassandraACLTable;
@@ -52,7 +51,6 @@ public class CassandraACLMapperTest {
public static final CassandraId MAILBOX_ID = CassandraId.of(UUID.fromString("464765a0-e4e7-11e4-aba4-710c1de3782b"));
private CassandraACLMapper cassandraACLMapper;
private CassandraCluster cassandra;
- private CassandraAsyncExecutor cassandraAsyncExecutor;
private ExecutorService executor;
@ClassRule public static DockerCassandraRule cassandraServer = new DockerCassandraRule();
@@ -60,8 +58,7 @@ public class CassandraACLMapperTest {
@Before
public void setUp() {
cassandra = CassandraCluster.create(new CassandraAclModule(), cassandraServer.getIp(), cassandraServer.getBindingPort());
- cassandraAsyncExecutor = new CassandraAsyncExecutor(cassandra.getConf());
- cassandraACLMapper = new CassandraACLMapper(MAILBOX_ID, cassandra.getConf(), cassandraAsyncExecutor, CassandraConfiguration.DEFAULT_CONFIGURATION);
+ cassandraACLMapper = new CassandraACLMapper(cassandra.getConf(), CassandraConfiguration.DEFAULT_CONFIGURATION);
executor = Executors.newFixedThreadPool(2);
}
@@ -77,9 +74,9 @@ public class CassandraACLMapperTest {
insertInto(CassandraACLTable.TABLE_NAME)
.value(CassandraACLTable.ID, MAILBOX_ID.asUuid())
.value(CassandraACLTable.ACL, "{\"entries\":{\"bob\":64}}")
- .value(CassandraACLTable.VERSION, 1)
- );
- assertThat(cassandraACLMapper.getACL().join())
+ .value(CassandraACLTable.VERSION, 1));
+
+ assertThat(cassandraACLMapper.getACL(MAILBOX_ID).join())
.isEqualTo(
SimpleMailboxACL.EMPTY.union(
new SimpleMailboxACL.SimpleMailboxACLEntryKey("bob", MailboxACL.NameType.user, false),
@@ -93,58 +90,71 @@ public class CassandraACLMapperTest {
insertInto(CassandraACLTable.TABLE_NAME)
.value(CassandraACLTable.ID, MAILBOX_ID.asUuid())
.value(CassandraACLTable.ACL, "{\"entries\":{\"bob\":invalid}}")
- .value(CassandraACLTable.VERSION, 1)
- );
- assertThat(cassandraACLMapper.getACL().join()).isEqualTo(SimpleMailboxACL.EMPTY);
+ .value(CassandraACLTable.VERSION, 1));
+
+ assertThat(cassandraACLMapper.getACL(MAILBOX_ID).join()).isEqualTo(SimpleMailboxACL.EMPTY);
}
@Test
public void retrieveACLWhenNoACLStoredShouldReturnEmptyACL() {
- assertThat(cassandraACLMapper.getACL().join()).isEqualTo(SimpleMailboxACL.EMPTY);
+ assertThat(cassandraACLMapper.getACL(MAILBOX_ID).join()).isEqualTo(SimpleMailboxACL.EMPTY);
}
@Test
public void addACLWhenNoneStoredShouldReturnUpdatedACL() throws Exception {
SimpleMailboxACL.SimpleMailboxACLEntryKey key = new SimpleMailboxACL.SimpleMailboxACLEntryKey("bob", MailboxACL.NameType.user, false);
SimpleMailboxACL.Rfc4314Rights rights = new SimpleMailboxACL.Rfc4314Rights(SimpleMailboxACL.Right.Read);
- cassandraACLMapper.updateACL(new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.ADD, rights));
- assertThat(cassandraACLMapper.getACL().join()).isEqualTo(new SimpleMailboxACL().union(key, rights));
+
+ cassandraACLMapper.updateACL(MAILBOX_ID,
+ new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.ADD, rights));
+
+ assertThat(cassandraACLMapper.getACL(MAILBOX_ID).join())
+ .isEqualTo(new SimpleMailboxACL().union(key, rights));
}
@Test
public void modifyACLWhenStoredShouldReturnUpdatedACL() throws MailboxException {
SimpleMailboxACL.SimpleMailboxACLEntryKey keyBob = new SimpleMailboxACL.SimpleMailboxACLEntryKey("bob", MailboxACL.NameType.user, false);
SimpleMailboxACL.Rfc4314Rights rights = new SimpleMailboxACL.Rfc4314Rights(SimpleMailboxACL.Right.Read);
- cassandraACLMapper.updateACL(new SimpleMailboxACL.SimpleMailboxACLCommand(keyBob, MailboxACL.EditMode.ADD, rights));
+
+ cassandraACLMapper.updateACL(MAILBOX_ID, new SimpleMailboxACL.SimpleMailboxACLCommand(keyBob, MailboxACL.EditMode.ADD, rights));
SimpleMailboxACL.SimpleMailboxACLEntryKey keyAlice = new SimpleMailboxACL.SimpleMailboxACLEntryKey("alice", MailboxACL.NameType.user, false);
- cassandraACLMapper.updateACL(new SimpleMailboxACL.SimpleMailboxACLCommand(keyAlice, MailboxACL.EditMode.ADD, rights));
- assertThat(cassandraACLMapper.getACL().join()).isEqualTo(new SimpleMailboxACL().union(keyBob, rights).union(keyAlice, rights));
+ cassandraACLMapper.updateACL(MAILBOX_ID, new SimpleMailboxACL.SimpleMailboxACLCommand(keyAlice, MailboxACL.EditMode.ADD, rights));
+
+ assertThat(cassandraACLMapper.getACL(MAILBOX_ID).join())
+ .isEqualTo(new SimpleMailboxACL().union(keyBob, rights).union(keyAlice, rights));
}
@Test
public void removeWhenStoredShouldReturnUpdatedACL() throws MailboxException {
SimpleMailboxACL.SimpleMailboxACLEntryKey key = new SimpleMailboxACL.SimpleMailboxACLEntryKey("bob", MailboxACL.NameType.user, false);
SimpleMailboxACL.Rfc4314Rights rights = new SimpleMailboxACL.Rfc4314Rights(SimpleMailboxACL.Right.Read);
- cassandraACLMapper.updateACL(new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.ADD, rights));
- cassandraACLMapper.updateACL(new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.REMOVE, rights));
- assertThat(cassandraACLMapper.getACL().join()).isEqualTo(SimpleMailboxACL.EMPTY);
+
+ cassandraACLMapper.updateACL(MAILBOX_ID, new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.ADD, rights));
+ cassandraACLMapper.updateACL(MAILBOX_ID, new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.REMOVE, rights));
+
+ assertThat(cassandraACLMapper.getACL(MAILBOX_ID).join()).isEqualTo(SimpleMailboxACL.EMPTY);
}
@Test
public void replaceForSingleKeyWithNullRightsWhenSingleKeyStoredShouldReturnEmptyACL() throws MailboxException {
SimpleMailboxACL.SimpleMailboxACLEntryKey key = new SimpleMailboxACL.SimpleMailboxACLEntryKey("bob", MailboxACL.NameType.user, false);
SimpleMailboxACL.Rfc4314Rights rights = new SimpleMailboxACL.Rfc4314Rights(SimpleMailboxACL.Right.Read);
- cassandraACLMapper.updateACL(new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.ADD, rights));
- cassandraACLMapper.updateACL(new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.REPLACE, null));
- assertThat(cassandraACLMapper.getACL().join()).isEqualTo(SimpleMailboxACL.EMPTY);
+
+ cassandraACLMapper.updateACL(MAILBOX_ID, new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.ADD, rights));
+ cassandraACLMapper.updateACL(MAILBOX_ID, new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.REPLACE, null));
+
+ assertThat(cassandraACLMapper.getACL(MAILBOX_ID).join()).isEqualTo(SimpleMailboxACL.EMPTY);
}
@Test
public void replaceWhenNotStoredShouldUpdateACLEntry() throws MailboxException {
SimpleMailboxACL.SimpleMailboxACLEntryKey key = new SimpleMailboxACL.SimpleMailboxACLEntryKey("bob", MailboxACL.NameType.user, false);
SimpleMailboxACL.Rfc4314Rights rights = new SimpleMailboxACL.Rfc4314Rights(SimpleMailboxACL.Right.Read);
- cassandraACLMapper.updateACL(new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.REPLACE, rights));
- assertThat(cassandraACLMapper.getACL().join()).isEqualTo(new SimpleMailboxACL().union(key, rights));
+
+ cassandraACLMapper.updateACL(MAILBOX_ID, new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.REPLACE, rights));
+
+ assertThat(cassandraACLMapper.getACL(MAILBOX_ID).join()).isEqualTo(new SimpleMailboxACL().union(key, rights));
}
@Test
@@ -153,12 +163,13 @@ public class CassandraACLMapperTest {
insertInto(CassandraACLTable.TABLE_NAME)
.value(CassandraACLTable.ID, MAILBOX_ID.asUuid())
.value(CassandraACLTable.ACL, "{\"entries\":{\"bob\":invalid}}")
- .value(CassandraACLTable.VERSION, 1)
- );
+ .value(CassandraACLTable.VERSION, 1));
SimpleMailboxACL.SimpleMailboxACLEntryKey key = new SimpleMailboxACL.SimpleMailboxACLEntryKey("bob", MailboxACL.NameType.user, false);
SimpleMailboxACL.Rfc4314Rights rights = new SimpleMailboxACL.Rfc4314Rights(SimpleMailboxACL.Right.Read);
- cassandraACLMapper.updateACL(new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.ADD, rights));
- assertThat(cassandraACLMapper.getACL().join()).isEqualTo(new SimpleMailboxACL().union(key, rights));
+
+ cassandraACLMapper.updateACL(MAILBOX_ID, new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.ADD, rights));
+
+ assertThat(cassandraACLMapper.getACL(MAILBOX_ID).join()).isEqualTo(new SimpleMailboxACL().union(key, rights));
}
@Test
@@ -170,7 +181,9 @@ public class CassandraACLMapperTest {
Future<Boolean> future1 = performACLUpdateInExecutor(executor, keyBob, rights, countDownLatch::countDown);
Future<Boolean> future2 = performACLUpdateInExecutor(executor, keyAlice, rights, countDownLatch::countDown);
awaitAll(future1, future2);
- assertThat(cassandraACLMapper.getACL().join()).isEqualTo(new SimpleMailboxACL().union(keyBob, rights).union(keyAlice, rights));
+
+ assertThat(cassandraACLMapper.getACL(MAILBOX_ID).join())
+ .isEqualTo(new SimpleMailboxACL().union(keyBob, rights).union(keyAlice, rights));
}
@Test
@@ -178,13 +191,16 @@ public class CassandraACLMapperTest {
CountDownLatch countDownLatch = new CountDownLatch(2);
SimpleMailboxACL.SimpleMailboxACLEntryKey keyBenwa = new SimpleMailboxACL.SimpleMailboxACLEntryKey("benwa", MailboxACL.NameType.user, false);
SimpleMailboxACL.Rfc4314Rights rights = new SimpleMailboxACL.Rfc4314Rights(SimpleMailboxACL.Right.Read);
- cassandraACLMapper.updateACL(new SimpleMailboxACL.SimpleMailboxACLCommand(keyBenwa, MailboxACL.EditMode.ADD, rights));
+ cassandraACLMapper.updateACL(MAILBOX_ID, new SimpleMailboxACL.SimpleMailboxACLCommand(keyBenwa, MailboxACL.EditMode.ADD, rights));
+
SimpleMailboxACL.SimpleMailboxACLEntryKey keyBob = new SimpleMailboxACL.SimpleMailboxACLEntryKey("bob", MailboxACL.NameType.user, false);
SimpleMailboxACL.SimpleMailboxACLEntryKey keyAlice = new SimpleMailboxACL.SimpleMailboxACLEntryKey("alice", MailboxACL.NameType.user, false);
Future<Boolean> future1 = performACLUpdateInExecutor(executor, keyBob, rights, countDownLatch::countDown);
Future<Boolean> future2 = performACLUpdateInExecutor(executor, keyAlice, rights, countDownLatch::countDown);
awaitAll(future1, future2);
- assertThat(cassandraACLMapper.getACL().join()).isEqualTo(new SimpleMailboxACL().union(keyBob, rights).union(keyAlice, rights).union(keyBenwa, rights));
+
+ assertThat(cassandraACLMapper.getACL(MAILBOX_ID).join())
+ .isEqualTo(new SimpleMailboxACL().union(keyBob, rights).union(keyAlice, rights).union(keyBenwa, rights));
}
private void awaitAll(Future<?>... futures)
@@ -196,13 +212,12 @@ public class CassandraACLMapperTest {
private Future<Boolean> performACLUpdateInExecutor(ExecutorService executor, SimpleMailboxACL.SimpleMailboxACLEntryKey key, SimpleMailboxACL.Rfc4314Rights rights, CassandraACLMapper.CodeInjector runnable) {
return executor.submit(() -> {
- CassandraACLMapper aclMapper = new CassandraACLMapper(MAILBOX_ID,
+ CassandraACLMapper aclMapper = new CassandraACLMapper(
cassandra.getConf(),
- new CassandraAsyncExecutor(cassandra.getConf()),
CassandraConfiguration.DEFAULT_CONFIGURATION,
runnable);
try {
- aclMapper.updateACL(new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.ADD, rights));
+ aclMapper.updateACL(MAILBOX_ID, new SimpleMailboxACL.SimpleMailboxACLCommand(key, MailboxACL.EditMode.ADD, rights));
} catch (MailboxException exception) {
throw Throwables.propagate(exception);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org