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 bt...@apache.org on 2017/08/24 03:46:38 UTC

[13/38] james-project git commit: JAMES-2114 Add MDC logging context for CLI

JAMES-2114 Add MDC logging context for CLI


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

Branch: refs/heads/master
Commit: 7600a6d5a432ddc195d5b47b9fd6399627c4200b
Parents: 036fa84
Author: benwa <bt...@linagora.com>
Authored: Mon Aug 14 15:06:16 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:43 2017 +0700

----------------------------------------------------------------------
 .../james/cli/probe/impl/JmxDataProbe.java      | 136 ++++++++++++++++---
 server/container/mailbox-adapter/pom.xml        |   4 +
 .../mailbox/MailboxManagerManagement.java       |  53 ++++++--
 .../james/adapter/mailbox/QuotaManagement.java  | 116 ++++++++++++++--
 .../adapter/mailbox/ReIndexerManagement.java    |  26 +++-
 5 files changed, 295 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/7600a6d5/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java b/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
index 1256f0c..3c70b24 100644
--- a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
+++ b/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxDataProbe.java
@@ -19,6 +19,7 @@
 
 package org.apache.james.cli.probe.impl;
 
+import java.io.Closeable;
 import java.io.IOException;
 import java.util.List;
 import java.util.Map;
@@ -30,17 +31,18 @@ import org.apache.james.probe.DataProbe;
 import org.apache.james.rrt.api.RecipientRewriteTableManagementMBean;
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.user.api.UsersRepositoryManagementMBean;
+import org.apache.james.util.MDCBuilder;
 
 public class JmxDataProbe implements DataProbe, JmxProbe {
-    
+
     private final static String DOMAINLIST_OBJECT_NAME = "org.apache.james:type=component,name=domainlist";
     private final static String VIRTUALUSERTABLE_OBJECT_NAME = "org.apache.james:type=component,name=recipientrewritetable";
     private final static String USERSREPOSITORY_OBJECT_NAME = "org.apache.james:type=component,name=usersrepository";
-    
+
     private DomainListManagementMBean domainListProxy;
     private RecipientRewriteTableManagementMBean virtualUserTableProxy;
     private UsersRepositoryManagementMBean usersRepositoryProxy;
-    
+
     public JmxDataProbe connect(JmxConnection jmxc) throws IOException {
         try {
             domainListProxy = jmxc.retrieveBean(DomainListManagementMBean.class, DOMAINLIST_OBJECT_NAME);
@@ -51,80 +53,176 @@ public class JmxDataProbe implements DataProbe, JmxProbe {
         }
         return this;
     }
-    
+
     @Override
     public void addUser(String userName, String password) throws Exception {
-        usersRepositoryProxy.addUser(userName, password);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "addUser")
+                     .addContext("parameter", userName)
+                     .build()) {
+            usersRepositoryProxy.addUser(userName, password);
+        }
     }
 
     @Override
     public void removeUser(String username) throws Exception {
-        usersRepositoryProxy.deleteUser(username);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "removeUser")
+                     .addContext("parameter", username)
+                     .build()) {
+            usersRepositoryProxy.deleteUser(username);
+        }
     }
 
     @Override
     public String[] listUsers() throws Exception {
-        return usersRepositoryProxy.listAllUsers();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "listUsers")
+                     .build()) {
+            return usersRepositoryProxy.listAllUsers();
+        }
     }
 
     @Override
     public void setPassword(String userName, String password) throws Exception {
-        usersRepositoryProxy.setPassword(userName, password);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "setPassword")
+                     .addContext("parameter", userName)
+                     .build()) {
+            usersRepositoryProxy.setPassword(userName, password);
+        }
     }
 
     @Override
     public boolean containsDomain(String domain) throws Exception {
-        return domainListProxy.containsDomain(domain);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "containsDomain")
+                     .addContext("parameter", domain)
+                     .build()) {
+            return domainListProxy.containsDomain(domain);
+        }
     }
 
     @Override
     public String getDefaultDomain() throws Exception {
-        return domainListProxy.getDefaultDomain();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getDefaultDomain")
+                     .build()) {
+            return domainListProxy.getDefaultDomain();
+        }
     }
 
     @Override
     public void addDomain(String domain) throws Exception {
-        domainListProxy.addDomain(domain);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "addDomain")
+                     .addContext("parameter", domain)
+                     .build()) {
+            domainListProxy.addDomain(domain);
+        }
     }
 
     @Override
     public void removeDomain(String domain) throws Exception {
-        domainListProxy.removeDomain(domain);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "removeDomain")
+                     .addContext("parameter", domain)
+                     .build()) {
+            domainListProxy.removeDomain(domain);
+        }
     }
 
     @Override
     public List<String> listDomains() throws Exception {
-        return domainListProxy.getDomains();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "listDomains")
+                     .build()) {
+            return domainListProxy.getDomains();
+        }
     }
 
     @Override
     public Map<String, Mappings> listMappings() throws Exception {
-        return virtualUserTableProxy.getAllMappings();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "listMappings")
+                     .build()) {
+            return virtualUserTableProxy.getAllMappings();
+        }
     }
 
     @Override
     public void addAddressMapping(String user, String domain, String toAddress) throws Exception {
-        virtualUserTableProxy.addAddressMapping(user, domain, toAddress);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "addAddressMapping")
+                     .build()) {
+            virtualUserTableProxy.addAddressMapping(user, domain, toAddress);
+        }
     }
 
     @Override
     public void removeAddressMapping(String user, String domain, String fromAddress) throws Exception {
-        virtualUserTableProxy.removeAddressMapping(user, domain, fromAddress);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "removeAddressMapping")
+                     .build()) {
+            virtualUserTableProxy.removeAddressMapping(user, domain, fromAddress);
+        }
     }
 
     @Override
     public Mappings listUserDomainMappings(String user, String domain) throws Exception {
-        return virtualUserTableProxy.getUserDomainMappings(user, domain);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "listUserDomainMappings")
+                     .build()) {
+            return virtualUserTableProxy.getUserDomainMappings(user, domain);
+        }
     }
 
     @Override
     public void addRegexMapping(String user, String domain, String regex) throws Exception {
-        virtualUserTableProxy.addRegexMapping(user, domain, regex);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "addRegexMapping")
+                     .build()) {
+            virtualUserTableProxy.addRegexMapping(user, domain, regex);
+        }
     }
 
     @Override
     public void removeRegexMapping(String user, String domain, String regex) throws Exception {
-        virtualUserTableProxy.removeRegexMapping(user, domain, regex);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "removeRegexMapping")
+                     .build()) {
+            virtualUserTableProxy.removeRegexMapping(user, domain, regex);
+        }
     }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/james-project/blob/7600a6d5/server/container/mailbox-adapter/pom.xml
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/pom.xml b/server/container/mailbox-adapter/pom.xml
index 4a1ee3e..74b37d2 100644
--- a/server/container/mailbox-adapter/pom.xml
+++ b/server/container/mailbox-adapter/pom.xml
@@ -47,6 +47,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.james</groupId>
+            <artifactId>james-server-util-java8</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
             <artifactId>apache-james-mailbox-api</artifactId>
         </dependency>
         <dependency>

http://git-wip-us.apache.org/repos/asf/james-project/blob/7600a6d5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
index 29415cf..515f5b0 100644
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
+++ b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
@@ -18,7 +18,9 @@
  ****************************************************************/
 package org.apache.james.adapter.mailbox;
 
+import java.io.Closeable;
 import java.io.FileInputStream;
+import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Date;
@@ -39,10 +41,12 @@ import org.apache.james.mailbox.model.MailboxConstants;
 import org.apache.james.mailbox.model.MailboxMetaData;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MailboxQuery;
+import org.apache.james.util.MDCBuilder;
 import org.slf4j.Logger;
 
 import com.github.steveash.guavate.Guavate;
 import com.google.common.base.Preconditions;
+import com.google.common.base.Throwables;
 
 /**
  * JMX managmenent for Mailboxes
@@ -69,7 +73,12 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
     public boolean deleteMailboxes(String username) {
         checkString(username, "Username");
         MailboxSession session = null;
-        try {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "deleteMailboxes")
+                     .addContext("concernedUser", username)
+                     .build()) {
             session = mailboxManager.createSystemSession(username, log);
             mailboxManager.startProcessingRequest(session);
             List<MailboxMetaData> mList = retrieveAllUserMailboxes(username, session);
@@ -79,6 +88,8 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
             return true;
         } catch (MailboxException e) {
             log.error("Error while remove mailboxes for user " + username, e);
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
         } finally {
             closeSession(session);
         }
@@ -103,7 +114,12 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
         checkString(username, "Username");
         List<String> boxes = new ArrayList<>();
         MailboxSession session = null;
-        try {
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "listMailboxes")
+                     .addContext("concernedUser", username)
+                     .build()) {
             session = mailboxManager.createSystemSession(username, log);
             mailboxManager.startProcessingRequest(session);
             List<MailboxMetaData> mList = retrieveAllUserMailboxes(username, session);
@@ -113,6 +129,8 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
                 .collect(Guavate.toImmutableList());
         } catch (MailboxException e) {
             log.error("Error list mailboxes for user " + username, e);
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
         } finally {
             closeSession(session);
         }
@@ -123,10 +141,16 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
     public void createMailbox(String namespace, String user, String name) {
         checkMailboxArguments(namespace, user, name);
         MailboxSession session = null;
-        try {
+        MailboxPath mailboxPath = new MailboxPath(namespace, user, name);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "createMailbox")
+                     .addContext("mailboxPath", mailboxPath.asString())
+                     .build()) {
             session = mailboxManager.createSystemSession(user, log);
             mailboxManager.startProcessingRequest(session);
-            mailboxManager.createMailbox(new MailboxPath(namespace, user, name), session);
+            mailboxManager.createMailbox(mailboxPath, session);
         } catch (Exception e) {
             log.error("Unable to create mailbox", e);
         } finally {
@@ -138,10 +162,16 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
     public void deleteMailbox(String namespace, String user, String name) {
         checkMailboxArguments(namespace, user, name);
         MailboxSession session = null;
-        try {
+        MailboxPath mailboxPath = new MailboxPath(namespace, user, name);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "deleteMailbox")
+                     .addContext("mailboxPath", mailboxPath.asString())
+                     .build()) {
             session = mailboxManager.createSystemSession(user, log);
             mailboxManager.startProcessingRequest(session);
-            mailboxManager.deleteMailbox(new MailboxPath(namespace, user, name), session);
+            mailboxManager.deleteMailbox(mailboxPath, session);
         } catch (Exception e) {
             log.error("Unable to create mailbox", e);
         } finally {
@@ -155,10 +185,17 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
         checkString(emlPath, "email file path name");
 
         MailboxSession session = null;
-        try {
+        MailboxPath mailboxPath = new MailboxPath(namespace, user, name);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "importEmlFileToMailbox")
+                     .addContext("mailboxPath", mailboxPath.asString())
+                     .addContext("emlPath", emlPath)
+                     .build()) {
             session = mailboxManager.createSystemSession(user, log);
             mailboxManager.startProcessingRequest(session);
-            MessageManager messageManager = mailboxManager.getMailbox(new MailboxPath(namespace, user, name), session);
+            MessageManager messageManager = mailboxManager.getMailbox(mailboxPath, session);
             InputStream emlFileAsStream = new FileInputStream(emlPath);
             messageManager.appendMessage(emlFileAsStream, new Date(),
                     session, RECENT, new Flags());

http://git-wip-us.apache.org/repos/asf/james-project/blob/7600a6d5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
index 9083ab4..7a05c3d 100644
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
+++ b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/QuotaManagement.java
@@ -19,6 +19,9 @@
 
 package org.apache.james.adapter.mailbox;
 
+import java.io.Closeable;
+import java.io.IOException;
+
 import javax.inject.Inject;
 
 import org.apache.james.mailbox.exception.MailboxException;
@@ -27,6 +30,9 @@ import org.apache.james.mailbox.quota.MaxQuotaManager;
 import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
 import org.apache.james.mailbox.store.mail.model.SerializableQuota;
+import org.apache.james.util.MDCBuilder;
+
+import com.google.common.base.Throwables;
 
 public class QuotaManagement implements QuotaManagementMBean {
 
@@ -43,56 +49,144 @@ public class QuotaManagement implements QuotaManagementMBean {
 
     @Override
     public String getQuotaRoot(String namespace, String user, String name) throws MailboxException {
-        return quotaRootResolver.getQuotaRoot(new MailboxPath(namespace, user, name)).getValue();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getQuotaRoot")
+                     .build()) {
+            return quotaRootResolver.getQuotaRoot(new MailboxPath(namespace, user, name)).getValue();
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public long getMaxMessageCount(String quotaRoot) throws MailboxException {
-        return maxQuotaManager.getMaxMessage(quotaRootResolver.createQuotaRoot(quotaRoot));
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getMaxMessageCount")
+                     .build()) {
+            return maxQuotaManager.getMaxMessage(quotaRootResolver.createQuotaRoot(quotaRoot));
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public long getMaxStorage(String quotaRoot) throws MailboxException {
-        return maxQuotaManager.getMaxStorage(quotaRootResolver.createQuotaRoot(quotaRoot));
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getMaxStorage")
+                     .build()) {
+            return maxQuotaManager.getMaxStorage(quotaRootResolver.createQuotaRoot(quotaRoot));
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public long getDefaultMaxMessageCount() throws MailboxException {
-        return maxQuotaManager.getDefaultMaxMessage();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getDefaultMaxMessageCount")
+                     .build()) {
+            return maxQuotaManager.getDefaultMaxMessage();
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public long getDefaultMaxStorage() throws MailboxException {
-        return maxQuotaManager.getDefaultMaxStorage();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getDefaultMaxStorage")
+                     .build()) {
+            return maxQuotaManager.getDefaultMaxStorage();
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public void setMaxMessageCount(String quotaRoot, long maxMessageCount) throws MailboxException {
-        maxQuotaManager.setMaxMessage(quotaRootResolver.createQuotaRoot(quotaRoot), maxMessageCount);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "setMaxMessageCount")
+                     .build()) {
+            maxQuotaManager.setMaxMessage(quotaRootResolver.createQuotaRoot(quotaRoot), maxMessageCount);
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public void setMaxStorage(String quotaRoot, long maxSize) throws MailboxException {
-        maxQuotaManager.setMaxStorage(quotaRootResolver.createQuotaRoot(quotaRoot), maxSize);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "setMaxStorage")
+                     .build()) {
+            maxQuotaManager.setMaxStorage(quotaRootResolver.createQuotaRoot(quotaRoot), maxSize);
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public void setDefaultMaxMessageCount(long maxDefaultMessageCount) throws MailboxException {
-        maxQuotaManager.setDefaultMaxMessage(maxDefaultMessageCount);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "setDefaultMaxMessageCount")
+                     .build()) {
+            maxQuotaManager.setDefaultMaxMessage(maxDefaultMessageCount);
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public void setDefaultMaxStorage(long maxDefaultSize) throws MailboxException {
-        maxQuotaManager.setDefaultMaxStorage(maxDefaultSize);
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "setDefaultMaxStorage")
+                     .build()) {
+            maxQuotaManager.setDefaultMaxStorage(maxDefaultSize);
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public SerializableQuota getMessageCountQuota(String quotaRoot) throws MailboxException {
-        return new SerializableQuota(quotaManager.getMessageQuota(quotaRootResolver.createQuotaRoot(quotaRoot)));
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getMessageCountQuota")
+                     .build()) {
+            return new SerializableQuota(quotaManager.getMessageQuota(quotaRootResolver.createQuotaRoot(quotaRoot)));
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public SerializableQuota getStorageQuota(String quotaRoot) throws MailboxException {
-        return new SerializableQuota(quotaManager.getStorageQuota(quotaRootResolver.createQuotaRoot(quotaRoot)));
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "getStorageQuota")
+                     .build()) {
+            return new SerializableQuota(quotaManager.getStorageQuota(quotaRootResolver.createQuotaRoot(quotaRoot)));
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/7600a6d5/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
index 6ca3e0a..468cf19 100644
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
+++ b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/ReIndexerManagement.java
@@ -19,12 +19,18 @@
 
 package org.apache.james.adapter.mailbox;
 
+import java.io.Closeable;
+import java.io.IOException;
+
 import javax.inject.Inject;
 import javax.inject.Named;
 
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.indexer.ReIndexer;
 import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.util.MDCBuilder;
+
+import com.google.common.base.Throwables;
 
 public class ReIndexerManagement implements ReIndexerManagementMBean {
 
@@ -37,11 +43,27 @@ public class ReIndexerManagement implements ReIndexerManagementMBean {
 
     @Override
     public void reIndex(String namespace, String user, String name) throws MailboxException {
-        reIndexer.reIndex(new MailboxPath(namespace, user, name));
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "reIndex")
+                     .build()) {
+            reIndexer.reIndex(new MailboxPath(namespace, user, name));
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 
     @Override
     public void reIndex() throws MailboxException {
-        reIndexer.reIndex();
+        try (Closeable closeable =
+                 MDCBuilder.create()
+                     .addContext(MDCBuilder.PROTOCOL, "CLI")
+                     .addContext(MDCBuilder.ACTION, "reIndex")
+                     .build()) {
+            reIndexer.reIndex();
+        } catch (IOException e) {
+            throw Throwables.propagate(e);
+        }
     }
 }


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