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 08d9053aae42e6d4367a01810d90e25f3c4bb86b
Author: Benoit Tellier <btell...@linagora.com>
AuthorDate: Tue Sep 10 10:21:59 2019 +0700

    JAMES-2703 Remove AbstractStorageQuota
---
 .../transport/matchers/AbstractStorageQuota.java   | 155 ---------------------
 1 file changed, 155 deletions(-)

diff --git 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java
 
b/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java
deleted file mode 100755
index 7674706..0000000
--- 
a/server/mailet/mailets/src/main/java/org/apache/james/transport/matchers/AbstractStorageQuota.java
+++ /dev/null
@@ -1,155 +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.transport.matchers;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Locale;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.mail.MessagingException;
-
-import org.apache.james.core.MailAddress;
-import org.apache.james.mailbox.MailboxManager;
-import org.apache.james.mailbox.MailboxSession;
-import org.apache.james.mailbox.MessageManager;
-import org.apache.james.mailbox.exception.BadCredentialsException;
-import org.apache.james.mailbox.exception.MailboxException;
-import org.apache.james.mailbox.model.FetchGroupImpl;
-import org.apache.james.mailbox.model.MailboxMetaData;
-import org.apache.james.mailbox.model.MessageRange;
-import org.apache.james.mailbox.model.MessageResult;
-import org.apache.james.mailbox.model.search.MailboxQuery;
-import org.apache.james.mailbox.model.search.Wildcard;
-import org.apache.james.user.api.UsersRepository;
-import org.apache.james.user.api.UsersRepositoryException;
-import org.apache.mailet.Experimental;
-import org.apache.mailet.Mail;
-import org.apache.mailet.MailetContext;
-
-/**
- * <p>
- * Experimental: Abstract matcher checking whether a recipient has exceeded a
- * maximum allowed <I>storage</I> quota for messages standing in his inbox.
- * </p>
- * <p>
- * "Storage quota" at this level is still an abstraction whose specific
- * interpretation will be done by subclasses (e.g. could be specific for each
- * user or common to all of them).
- * </p>
- * <p>
- * This matcher need to calculate the mailbox size every time it is called. 
This
- * can slow down things if there are many mails in the mailbox. Some users also
- * report big problems with the matcher if a JDBC based mailrepository is used.
- * </p>
- * 
- * @since 2.2.0
- *
- * @deprecated JAMES-2703 This class is deprecated and will be removed 
straight after upcoming James 3.4.0 release
- *
- * Please use IsOverQuota which relies on mailbox quota apis and avoids 
scanning
- */
-@Experimental
-@Deprecated
-public abstract class AbstractStorageQuota extends AbstractQuotaMatcher {
-
-    private MailboxManager manager;
-
-    @Inject
-    public void setMailboxManager(@Named("mailboxmanager") MailboxManager 
manager) {
-        this.manager = manager;
-    }
-
-    @Inject
-    public void setUsersRepository(UsersRepository localUsers) {
-        this.localUsers = localUsers;
-    }
-
-    /**
-     * The user repository for this mail server. Contains all the users with
-     * inboxes on this server.
-     */
-    private UsersRepository localUsers;
-
-    /**
-     * Checks the recipient.<br>
-     * Does a <code>super.isRecipientChecked</code> and checks that the
-     * recipient is a known user in the local server.<br>
-     * If a subclass overrides this method it should "and"
-     * <code>super.isRecipientChecked</code> to its check.
-     * 
-     * @param recipient
-     *            the recipient to check
-     */
-    @Override
-    protected boolean isRecipientChecked(MailAddress recipient) throws 
MessagingException {
-        MailetContext mailetContext = getMailetContext();
-        return super.isRecipientChecked(recipient) && 
(mailetContext.isLocalEmail(recipient));
-    }
-
-    /**
-     * Gets the storage used in the recipient's inbox.
-     * 
-     * @param recipient
-     *            the recipient to check
-     */
-    @Override
-    protected long getUsed(MailAddress recipient, Mail ignored) throws 
MessagingException {
-        long size = 0;
-        MailboxSession session;
-        try {
-            String username;
-            try {
-                // see if we need use the full email address as username or 
not.
-                // See JAMES-1197
-                username = 
localUsers.getUser(recipient).toLowerCase(Locale.US);
-            } catch (UsersRepositoryException e) {
-                throw new MessagingException("Unable to access 
UsersRepository", e);
-            }
-            session = manager.createSystemSession(username);
-            manager.startProcessingRequest(session);
-
-            // get all mailboxes for the user to calculate the size
-            // TODO: See JAMES-1198
-            List<MailboxMetaData> mList = manager.search(
-                    MailboxQuery.privateMailboxesBuilder(session)
-                        .expression(Wildcard.INSTANCE)
-                        .build(),
-                    session);
-            for (MailboxMetaData aMList : mList) {
-                MessageManager mailbox = manager.getMailbox(aMList.getPath(), 
session);
-                Iterator<MessageResult> results = 
mailbox.getMessages(MessageRange.all(), FetchGroupImpl.MINIMAL,
-                        session);
-                while (results.hasNext()) {
-                    size += results.next().getSize();
-                }
-            }
-            manager.endProcessingRequest(session);
-            manager.logout(session, true);
-        } catch (BadCredentialsException e) {
-            throw new MessagingException("Unable to authenticate to mailbox", 
e);
-        } catch (MailboxException e) {
-            throw new MessagingException("Unable to get used space from 
mailbox", e);
-        }
-
-        return size;
-    }
-}


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

Reply via email to