You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2020/12/07 03:57:38 UTC
[james-project] 08/13: JAMES-3435 CassandraACLDAOV2 no longer need
to return ACLDiffs upon updates
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 38024f9566c820bd1b6a84a3e9359a1e65017f99
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Sat Dec 5 08:39:19 2020 +0700
JAMES-3435 CassandraACLDAOV2 no longer need to return ACLDiffs upon updates
The event sourcing system wrapping CassandraACLDAOV2 updates already takes care of it.
---
.../mailbox/cassandra/mail/CassandraACLDAO.java | 42 ----------------------
.../mailbox/cassandra/mail/CassandraACLDAOV1.java | 2 +-
.../mailbox/cassandra/mail/CassandraACLDAOV2.java | 23 +++---------
.../mailbox/cassandra/mail/utils/GuiceUtils.java | 1 -
4 files changed, 6 insertions(+), 62 deletions(-)
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLDAO.java
deleted file mode 100644
index 627baec..0000000
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLDAO.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.james.mailbox.cassandra.mail;
-
-import java.util.function.Supplier;
-
-import org.apache.james.mailbox.acl.ACLDiff;
-import org.apache.james.mailbox.cassandra.ids.CassandraId;
-import org.apache.james.mailbox.model.MailboxACL;
-
-import reactor.core.publisher.Mono;
-
-public interface CassandraACLDAO {
- interface CassandraACLDAOSupplier extends Supplier<CassandraACLDAO> {
-
- }
-
- Mono<Void> delete(CassandraId cassandraId);
-
- Mono<MailboxACL> getACL(CassandraId cassandraId);
-
- Mono<ACLDiff> updateACL(CassandraId cassandraId, MailboxACL.ACLCommand command);
-
- Mono<ACLDiff> setACL(CassandraId cassandraId, MailboxACL mailboxACL);
-}
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLDAOV1.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLDAOV1.java
index 3bd9c47..db5eb86 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLDAOV1.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLDAOV1.java
@@ -54,7 +54,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import reactor.core.publisher.Mono;
-public class CassandraACLDAOV1 implements CassandraACLDAO {
+public class CassandraACLDAOV1 {
public static final int INITIAL_VALUE = 0;
private static final Logger LOG = LoggerFactory.getLogger(CassandraACLDAOV1.class);
private static final String OLD_VERSION = "oldVersion";
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLDAOV2.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLDAOV2.java
index c9e6339..8357650 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLDAOV2.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraACLDAOV2.java
@@ -31,7 +31,6 @@ import javax.inject.Inject;
import org.apache.commons.lang3.NotImplementedException;
import org.apache.james.backends.cassandra.utils.CassandraAsyncExecutor;
-import org.apache.james.mailbox.acl.ACLDiff;
import org.apache.james.mailbox.cassandra.ids.CassandraId;
import org.apache.james.mailbox.cassandra.table.CassandraACLTable;
import org.apache.james.mailbox.cassandra.table.CassandraACLV2Table;
@@ -49,7 +48,7 @@ import com.google.common.collect.ImmutableSet;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
-public class CassandraACLDAOV2 implements CassandraACLDAO {
+public class CassandraACLDAOV2 {
private final CassandraAsyncExecutor executor;
private final PreparedStatement insertRights;
private final PreparedStatement removeRights;
@@ -125,26 +124,14 @@ public class CassandraACLDAOV2 implements CassandraACLDAO {
.reduce(Throwing.biFunction(MailboxACL::union));
}
- public Mono<ACLDiff> updateACL(CassandraId cassandraId, MailboxACL.ACLCommand command) {
- return getACL(cassandraId)
- .switchIfEmpty(Mono.just(new MailboxACL()))
- .flatMap(before -> doUpdateACL(cassandraId, command)
- .then(getACL(cassandraId)
- .switchIfEmpty(Mono.just(new MailboxACL()))
- .map(after -> ACLDiff.computeDiff(before, after))));
- }
-
- public Mono<ACLDiff> setACL(CassandraId cassandraId, MailboxACL mailboxACL) {
- return getACL(cassandraId)
- .switchIfEmpty(Mono.just(MailboxACL.EMPTY))
- .flatMap(oldACL -> delete(cassandraId)
+ public Mono<Void> setACL(CassandraId cassandraId, MailboxACL mailboxACL) {
+ return delete(cassandraId)
.then(Flux.fromIterable(mailboxACL.getEntries().entrySet())
.concatMap(entry -> doSetACL(cassandraId, mailboxACL))
- .then())
- .thenReturn(ACLDiff.computeDiff(oldACL, mailboxACL)));
+ .then());
}
- private Mono<Void> doUpdateACL(CassandraId cassandraId, MailboxACL.ACLCommand command) {
+ public Mono<Void> updateACL(CassandraId cassandraId, MailboxACL.ACLCommand command) {
ImmutableSet<String> rightStrings = asStringSet(command.getRights());
switch (command.getEditMode()) {
case ADD:
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
index ad7fa95..bb2d0c7 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/utils/GuiceUtils.java
@@ -38,7 +38,6 @@ import org.apache.james.eventsourcing.eventstore.cassandra.dto.EventDTOModule;
import org.apache.james.json.DTO;
import org.apache.james.json.DTOModule;
import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
-import org.apache.james.mailbox.cassandra.mail.CassandraACLDAO;
import org.apache.james.mailbox.cassandra.mail.CassandraACLDAOV1;
import org.apache.james.mailbox.cassandra.mail.eventsourcing.acl.ACLModule;
import org.apache.james.mailbox.model.MessageId;
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org