[prev in list] [next in list] [prev in thread] [next in thread] 

List:       james-dev
Subject:    [09/31] james-project git commit: MAILBOX-307 Allow full ACL reset operations
From:       matthieu () apache ! org
Date:       2017-09-29 7:21:47
Message-ID: 11adaafe53fa4a17b59628ce2d62dbef () git ! apache ! org
[Download RAW message or body]

MAILBOX-307 Allow full ACL reset operations


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/5accac0a
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/5accac0a
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/5accac0a

Branch: refs/heads/master
Commit: 5accac0a31e96a110629a34d6e05a3704735ddf9
Parents: d87584e
Author: benwa <btellier@linagora.com>
Authored: Mon Sep 25 16:16:40 2017 +0700
Committer: Matthieu Baechler <matthieu@apache.org>
Committed: Fri Sep 29 09:20:40 2017 +0200

----------------------------------------------------------------------
 .../apache/james/mailbox/MailboxManager.java    |  8 +++++
 .../mailbox/caching/CachingMailboxMapper.java   |  5 +++
 .../cassandra/mail/CassandraACLMapper.java      | 16 +++++++--
 .../cassandra/mail/CassandraMailboxMapper.java  | 15 +++++++--
 .../mailbox/hbase/mail/HBaseMailboxMapper.java  |  5 +++
 .../mailbox/jcr/mail/JCRMailboxMapper.java      |  5 +++
 .../mailbox/jpa/mail/JPAMailboxMapper.java      |  5 +++
 .../jpa/mail/TransactionalMailboxMapper.java    |  6 ++++
 .../maildir/mail/MaildirMailboxMapper.java      |  7 ++++
 .../inmemory/mail/InMemoryMailboxMapper.java    |  5 +++
 .../mailbox/store/StoreMailboxManager.java      |  7 ++++
 .../james/mailbox/store/mail/MailboxMapper.java |  8 +++++
 .../store/TestMailboxSessionMapperFactory.java  |  5 +++
 .../store/mail/model/MailboxMapperACLTest.java  | 35 ++++++++++++++++++++
 .../base/MailboxEventAnalyserTest.java          | 10 +++++-
 15 files changed, 136 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
                
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java \
b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java index \
                0a34607..2963ad6 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
@@ -397,6 +397,14 @@ public interface MailboxManager extends RequestAware, \
MailboxListenerSupport {  
 
     /**
+     * Reset the Mailbox ACL of the designated mailbox.
+     *
+     * @param mailboxACL New ACL value
+     * @throws UnsupportedRightException
+     */
+    void resetRights(MailboxPath mailboxPath, MailboxACL mailboxACL, MailboxSession \
session) throws MailboxException; +
+    /**
      * Return a unmodifiable {@link List} of {@link MailboxPath} objects
      * 
      * @param session

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxMapper.java
                
----------------------------------------------------------------------
diff --git a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxMapper.java \
b/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxMapper.java
 index 2c326c4..737a33f 100644
--- a/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxMapper.java
                
+++ b/mailbox/caching/src/main/java/org/apache/james/mailbox/caching/CachingMailboxMapper.java
 @@ -110,6 +110,11 @@ public class CachingMailboxMapper implements MailboxMapper {
 		mailbox.setACL(mailbox.getACL().apply(mailboxACLCommand));
 	}
 
+	@Override
+	public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws \
MailboxException { +		mailbox.setACL(mailboxACL);
+	}
+
 	private void invalidate(Mailbox mailbox) {
 		cache.invalidate(mailbox);
 	}

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/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 9a951a2..f7df7d5 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
 @@ -53,6 +53,8 @@ import com.google.common.base.Preconditions;
 import com.google.common.base.Throwables;
 
 public class CassandraACLMapper {
+    private static final Logger LOG = \
LoggerFactory.getLogger(CassandraACLMapper.class); +    public static final int \
INITIAL_VALUE = 0;  
     @FunctionalInterface
     public interface CodeInjector {
@@ -65,8 +67,6 @@ public class CassandraACLMapper {
     private final int maxRetry;
     private final CodeInjector codeInjector;
 
-    private static final Logger LOG = \
                LoggerFactory.getLogger(CassandraACLMapper.class);
-
     public CassandraACLMapper(CassandraId cassandraId, Session session, \
CassandraAsyncExecutor cassandraAsyncExecutor, CassandraConfiguration \
                cassandraConfiguration) {
         this(cassandraId, session, cassandraAsyncExecutor, cassandraConfiguration, \
() -> {});  }
@@ -107,6 +107,18 @@ public class CassandraACLMapper {
         }
     }
 
+    public void resetACL(MailboxACL mailboxACL) {
+        try {
+            session.execute(
+                insertInto(CassandraACLTable.TABLE_NAME)
+                    .value(CassandraACLTable.ID, cassandraId.asUuid())
+                    .value(CassandraACLTable.ACL, \
SimpleMailboxACLJsonConverter.toJson(mailboxACL)) +                    \
.value(CassandraACLTable.VERSION, INITIAL_VALUE)); +        } catch \
(JsonProcessingException e) { +            throw Throwables.propagate(e);
+        }
+    }
+
     private MailboxACL applyCommandOnEmptyACL(MailboxACL.MailboxACLCommand command) \
{  try {
             return SimpleMailboxACL.EMPTY.apply(command);

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/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 c170a73..81b43e7 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
 @@ -27,6 +27,7 @@ import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.CompletionException;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
+
 import javax.inject.Inject;
 
 import org.apache.commons.lang3.StringUtils;
@@ -46,13 +47,13 @@ import \
org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;  import \
org.apache.james.util.CompletableFutureUtil;  import \
org.apache.james.util.FluentFutureStream;  import \
org.apache.james.util.OptionalUtils; +import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import com.datastax.driver.core.Session;
 import com.datastax.driver.core.exceptions.InvalidQueryException;
 import com.github.steveash.guavate.Guavate;
 import com.google.common.base.Preconditions;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class CassandraMailboxMapper implements MailboxMapper {
 
@@ -205,7 +206,15 @@ 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); +        new \
CassandraACLMapper(cassandraId, session, cassandraAsyncExecutor, \
cassandraConfiguration) +            .updateACL(mailboxACLCommand);
+    }
+
+    @Override
+    public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws \
MailboxException { +        CassandraId cassandraId = (CassandraId) \
mailbox.getMailboxId(); +        new CassandraACLMapper(cassandraId, session, \
cassandraAsyncExecutor, cassandraConfiguration) +            .resetACL(mailboxACL);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java
                
----------------------------------------------------------------------
diff --git a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java \
b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java
 index 4b205fe..7675e4a 100644
--- a/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java
                
+++ b/mailbox/hbase/src/main/java/org/apache/james/mailbox/hbase/mail/HBaseMailboxMapper.java
 @@ -417,4 +417,9 @@ public class HBaseMailboxMapper extends \
                HBaseNonTransactionalMapper implements M
     public void updateACL(Mailbox mailbox, MailboxACL.MailboxACLCommand \
mailboxACLCommand) throws MailboxException {  \
mailbox.setACL(mailbox.getACL().apply(mailboxACLCommand));  }
+
+    @Override
+    public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws \
MailboxException { +        mailbox.setACL(mailboxACL);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
                
----------------------------------------------------------------------
diff --git a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java \
b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java \
                index 901a268..67f68c4 100644
--- a/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
                
+++ b/mailbox/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
 @@ -254,4 +254,9 @@ public class JCRMailboxMapper extends AbstractJCRScalingMapper \
                implements Mailbo
     public void updateACL(Mailbox mailbox, MailboxACL.MailboxACLCommand \
mailboxACLCommand) throws MailboxException {  \
mailbox.setACL(mailbox.getACL().apply(mailboxACLCommand));  }
+
+    @Override
+    public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws \
MailboxException { +        mailbox.setACL(mailboxACL);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
                
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java \
b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java \
                index a6a7abe..1f14941 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
                
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
 @@ -224,4 +224,9 @@ public class JPAMailboxMapper extends JPATransactionalMapper \
                implements MailboxM
     public void updateACL(Mailbox mailbox, MailboxACL.MailboxACLCommand \
mailboxACLCommand) throws MailboxException {  \
mailbox.setACL(mailbox.getACL().apply(mailboxACLCommand));  }
+
+    @Override
+    public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws \
MailboxException { +        mailbox.setACL(mailboxACL);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
                
----------------------------------------------------------------------
diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java \
b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
 index f828dfd..e9a0186 100644
--- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
                
+++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java
 @@ -24,6 +24,7 @@ import java.util.List;
 import org.apache.commons.lang.NotImplementedException;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
+import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxACL.MailboxACLCommand;
 import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
@@ -84,6 +85,11 @@ public class TransactionalMailboxMapper implements MailboxMapper {
     }
 
     @Override
+    public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws \
MailboxException { +        wrapped.resetACL(mailbox, mailboxACL);
+    }
+
+    @Override
     public List<Mailbox> list() throws MailboxException {
         return wrapped.list();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
                
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java \
b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
 index e24e4c7..164369a 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
                
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
 @@ -339,4 +339,11 @@ public class MaildirMailboxMapper extends \
NonTransactionalMapper implements Mail  folder.setACL(session, newACL);
         mailbox.setACL(newACL);
     }
+
+    @Override
+    public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws \
MailboxException { +        MaildirFolder folder = \
maildirStore.createMaildirFolder(mailbox); +        folder.setACL(session, \
mailboxACL); +        mailbox.setACL(mailboxACL);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
                
----------------------------------------------------------------------
diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java \
b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
 index 5d57d6c..918be78 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
                
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
 @@ -158,4 +158,9 @@ public class InMemoryMailboxMapper implements MailboxMapper {
     public void updateACL(Mailbox mailbox, MailboxACL.MailboxACLCommand \
                mailboxACLCommand) throws MailboxException{
         mailboxesByPath.get(mailbox.generateAssociatedPath()).setACL(mailbox.getACL().apply(mailboxACLCommand));
  }
+
+    @Override
+    public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws \
MailboxException { +        \
mailboxesByPath.get(mailbox.generateAssociatedPath()).setACL(mailboxACL); +    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
                
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java \
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java \
                index a9398df..16391f9 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
                
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java
 @@ -822,6 +822,13 @@ public class StoreMailboxManager implements MailboxManager {
         final Mailbox mailbox = mapper.findMailboxByPath(mailboxPath);
         mapper.execute(Mapper.toTransaction(() -> mapper.updateACL(mailbox, \
mailboxACLCommand)));  }
+    
+    @Override
+    public void resetRights(MailboxPath mailboxPath, MailboxACL mailboxACLCommand, \
MailboxSession session) throws MailboxException { +        final MailboxMapper mapper \
= mailboxSessionMapperFactory.getMailboxMapper(session); +        final Mailbox \
mailbox = mapper.findMailboxByPath(mailboxPath); +        \
mapper.execute(Mapper.toTransaction(() -> mapper.resetACL(mailbox, \
mailboxACLCommand))); +    }
 
     @Override
     public List<MailboxAnnotation> getAllAnnotations(MailboxPath mailboxPath, \
MailboxSession session) throws MailboxException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java
                
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java \
b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java \
                index f737328..bebf176 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java
                
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java
 @@ -105,6 +105,14 @@ public interface MailboxMapper extends Mapper {
     void updateACL(Mailbox mailbox, MailboxACL.MailboxACLCommand mailboxACLCommand) \
throws MailboxException;  
     /**
+     * Reset the ACL of the stored mailbox.
+     *
+     * @param mailbox Mailbox for whom we want to update ACL
+     * @param mailboxACL New value of the ACL for this mailbox
+     */
+    void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws MailboxException;
+
+    /**
      * Return a unmodifable {@link List} of all {@link Mailbox} 
      * 
      * @return mailboxList

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java
                
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java \
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java
 index e187de0..63dd590 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java
                
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/TestMailboxSessionMapperFactory.java
 @@ -144,6 +144,11 @@ public class TestMailboxSessionMapperFactory extends \
MailboxSessionMapperFactory  }
 
             @Override
+            public void resetACL(Mailbox mailbox, MailboxACL mailboxACL) throws \
MailboxException { +                throw new NotImplementedException();
+            }
+
+            @Override
             public List<Mailbox> list() throws MailboxException {
                 throw new NotImplementedException();
             }

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
                
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java \
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
 index fe5b593..8ba8e8c 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
                
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperACLTest.java
 @@ -247,6 +247,41 @@ public abstract class MailboxMapperACLTest {
             .containsEntry(key, finalRights);
     }
 
+    @Test
+    public void resetAclShouldReplaceStoredAcl() throws MailboxException {
+        SimpleMailboxACL.SimpleMailboxACLEntryKey key = new \
SimpleMailboxACL.SimpleMailboxACLEntryKey("user", MailboxACL.NameType.user, \
NEGATIVE); +        SimpleMailboxACL.Rfc4314Rights rights = new \
SimpleMailboxACL.Rfc4314Rights("asew"); +        SimpleMailboxACL.Rfc4314Rights \
newRights = new SimpleMailboxACL.Rfc4314Rights("skate"); +        \
mailboxMapper.updateACL(benwaInboxMailbox, +            new \
SimpleMailboxACL.SimpleMailboxACLCommand(key, +                \
MailboxACL.EditMode.REPLACE, +                rights));
+        mailboxMapper.resetACL(benwaInboxMailbox,
+            new SimpleMailboxACL(ImmutableMap.of(key, newRights)));
+
+        assertThat(
+            mailboxMapper.findMailboxById(benwaInboxMailbox.getMailboxId())
+                .getACL()
+                .getEntries())
+            .hasSize(1)
+            .containsEntry(key, newRights);
+    }
+    
+    @Test
+    public void resetAclShouldInitializeStoredAcl() throws MailboxException {
+        SimpleMailboxACL.SimpleMailboxACLEntryKey key = new \
SimpleMailboxACL.SimpleMailboxACLEntryKey("user", MailboxACL.NameType.user, \
NEGATIVE); +        SimpleMailboxACL.Rfc4314Rights rights = new \
SimpleMailboxACL.Rfc4314Rights("skate"); +        \
mailboxMapper.resetACL(benwaInboxMailbox, +            new \
SimpleMailboxACL(ImmutableMap.of(key, rights))); +
+        assertThat(
+            mailboxMapper.findMailboxById(benwaInboxMailbox.getMailboxId())
+                .getACL()
+                .getEntries())
+            .hasSize(1)
+            .containsEntry(key, rights);
+    }
+
     private SimpleMailbox createMailbox(MailboxPath mailboxPath) {
         SimpleMailbox mailbox = new SimpleMailbox(mailboxPath, UID_VALIDITY);
         mailbox.setMailboxId(mapperProvider.generateId());

http://git-wip-us.apache.org/repos/asf/james-project/blob/5accac0a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
                
----------------------------------------------------------------------
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java \
b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
 index ae63f9f..1894ce4 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
                
+++ b/protocols/imap/src/test/java/org/apache/james/imap/processor/base/MailboxEventAnalyserTest.java
 @@ -23,6 +23,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Collection;
@@ -33,8 +34,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.Set;
+
 import javax.mail.Flags;
 
+import org.apache.commons.lang.NotImplementedException;
 import org.apache.james.imap.api.ImapSessionState;
 import org.apache.james.imap.api.ImapSessionUtils;
 import org.apache.james.imap.api.process.ImapLineHandler;
@@ -50,6 +53,7 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.ComposedMessageId;
 import org.apache.james.mailbox.model.Content;
 import org.apache.james.mailbox.model.Headers;
+import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxACL.MailboxACLCommand;
 import org.apache.james.mailbox.model.MailboxACL.MailboxACLEntryKey;
 import org.apache.james.mailbox.model.MailboxACL.MailboxACLRight;
@@ -74,7 +78,6 @@ import org.apache.james.mailbox.model.TestId;
 import org.apache.james.mailbox.model.UpdatedFlags;
 import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
 import org.junit.Test;
-import org.apache.commons.lang.NotImplementedException;
 
 import com.google.common.collect.ImmutableList;
 
@@ -379,6 +382,11 @@ public class MailboxEventAnalyserTest {
         }
 
         @Override
+        public void resetRights(MailboxPath mailboxPath, MailboxACL mailboxACL, \
MailboxSession session) throws MailboxException { +            throw new \
NotImplementedException("Not implemented"); +        }
+
+        @Override
         public List<MailboxAnnotation> getAllAnnotations(MailboxPath mailboxPath, \
MailboxSession session)  throws MailboxException {
             return null;


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic