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:36 UTC
[11/38] james-project git commit: JAMES-2114 MDC logging context for
IMAP
JAMES-2114 MDC logging context for IMAP
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/56974b95
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/56974b95
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/56974b95
Branch: refs/heads/master
Commit: 56974b959d619823ccf377d4fa19bbd210b737c9
Parents: d0cad4d
Author: benwa <bt...@linagora.com>
Authored: Mon Aug 14 11:28:52 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Thu Aug 24 10:34:42 2017 +0700
----------------------------------------------------------------------
protocols/imap/pom.xml | 4 +
.../imap/api/message/BodyFetchElement.java | 14 ++
.../james/imap/api/message/FetchData.java | 21 ++
.../apache/james/imap/api/message/IdRange.java | 9 +
.../james/imap/api/message/StatusDataItems.java | 15 +-
.../apache/james/imap/api/message/UidRange.java | 7 +
.../imap/api/message/request/SearchKey.java | 19 ++
.../api/message/request/SearchOperation.java | 11 +-
.../AbstractMailboxSelectionRequest.java | 2 +
.../imap/message/request/SetQuotaRequest.java | 13 +-
.../james/imap/processor/AppendProcessor.java | 9 +
.../imap/processor/AuthenticateProcessor.java | 9 +
.../imap/processor/CapabilityProcessor.java | 9 +
.../james/imap/processor/CheckProcessor.java | 10 +
.../james/imap/processor/CloseProcessor.java | 10 +
.../james/imap/processor/CompressProcessor.java | 11 +
.../james/imap/processor/CopyProcessor.java | 13 ++
.../james/imap/processor/CreateProcessor.java | 11 +
.../imap/processor/DeleteACLProcessor.java | 11 +
.../james/imap/processor/DeleteProcessor.java | 11 +
.../james/imap/processor/EnableProcessor.java | 11 +
.../james/imap/processor/ExamineProcessor.java | 18 ++
.../james/imap/processor/ExpungeProcessor.java | 10 +
.../james/imap/processor/GetACLProcessor.java | 9 +
.../imap/processor/GetAnnotationProcessor.java | 12 ++
.../james/imap/processor/GetQuotaProcessor.java | 9 +
.../imap/processor/GetQuotaRootProcessor.java | 10 +
.../james/imap/processor/IdleProcessor.java | 9 +
.../james/imap/processor/LSubProcessor.java | 11 +
.../james/imap/processor/ListProcessor.java | 11 +
.../imap/processor/ListRightsProcessor.java | 10 +
.../james/imap/processor/LoginProcessor.java | 10 +
.../james/imap/processor/LogoutProcessor.java | 10 +
.../james/imap/processor/MoveProcessor.java | 13 ++
.../james/imap/processor/MyRightsProcessor.java | 9 +
.../imap/processor/NamespaceProcessor.java | 8 +
.../james/imap/processor/NoopProcessor.java | 10 +
.../james/imap/processor/RenameProcessor.java | 12 ++
.../james/imap/processor/SearchProcessor.java | 11 +
.../james/imap/processor/SelectProcessor.java | 19 ++
.../james/imap/processor/SetACLProcessor.java | 11 +
.../imap/processor/SetAnnotationProcessor.java | 11 +
.../james/imap/processor/SetQuotaProcessor.java | 11 +
.../james/imap/processor/StartTLSProcessor.java | 8 +
.../james/imap/processor/StatusProcessor.java | 12 ++
.../james/imap/processor/StoreProcessor.java | 13 ++
.../imap/processor/SubscribeProcessor.java | 10 +
.../imap/processor/SystemMessageProcessor.java | 10 +
.../james/imap/processor/UnselectProcessor.java | 8 +
.../imap/processor/UnsubscribeProcessor.java | 10 +
.../base/AbstractChainedProcessor.java | 17 +-
.../base/ImapResponseMessageProcessor.java | 10 +
.../imap/processor/fetch/FetchProcessor.java | 11 +
server/protocols/protocols-imap4/pom.xml | 4 +
.../james/imapserver/netty/IMAPMDCContext.java | 78 +++++++
.../netty/ImapChannelUpstreamHandler.java | 204 +++++++++----------
56 files changed, 757 insertions(+), 112 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/pom.xml
----------------------------------------------------------------------
diff --git a/protocols/imap/pom.xml b/protocols/imap/pom.xml
index fe69297..1a2de8c 100644
--- a/protocols/imap/pom.xml
+++ b/protocols/imap/pom.xml
@@ -65,6 +65,10 @@
</dependency>
<dependency>
<groupId>org.apache.james</groupId>
+ <artifactId>james-server-util-java8</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
<artifactId>metrics-api</artifactId>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/api/message/BodyFetchElement.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/BodyFetchElement.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/BodyFetchElement.java
index 93b88c8..ea173de 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/BodyFetchElement.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/BodyFetchElement.java
@@ -20,9 +20,13 @@ package org.apache.james.imap.api.message;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Optional;
import org.apache.james.imap.api.ImapConstants;
+import com.google.common.base.MoreObjects;
+import com.google.common.collect.ImmutableList;
+
public class BodyFetchElement {
public static final int TEXT = 0;
@@ -174,4 +178,14 @@ public class BodyFetchElement {
return true;
}
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("firstOctet", firstOctet)
+ .add("numberOfOctets", numberOfOctets)
+ .add("name", name)
+ .add("sectionType", sectionType)
+ .add("fieldNames", Optional.ofNullable(fieldNames).map(ImmutableList::copyOf))
+ .toString();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/api/message/FetchData.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/FetchData.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/FetchData.java
index 5b91c2f..d25f576 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/FetchData.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/FetchData.java
@@ -22,6 +22,9 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
+import com.google.common.base.MoreObjects;
+import com.google.common.collect.ImmutableSet;
+
public class FetchData {
private boolean flags;
@@ -207,4 +210,22 @@ public class FetchData {
}
return true;
}
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("flags", flags)
+ .add("uid", uid)
+ .add("internalDate", internalDate)
+ .add("size", size)
+ .add("envelope", envelope)
+ .add("body", body)
+ .add("bodyStructure", bodyStructure)
+ .add("setSeen", setSeen)
+ .add("bodyElements", ImmutableSet.copyOf(bodyElements))
+ .add("modSeq", modSeq)
+ .add("changedSince", changedSince)
+ .add("vanished", vanished)
+ .toString();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/api/message/IdRange.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/IdRange.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/IdRange.java
index 347b05d..23aee17 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/IdRange.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/IdRange.java
@@ -24,12 +24,21 @@ import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
+import java.util.Optional;
+
+import com.google.common.collect.ImmutableList;
/**
* Represents a range of UID or MSN values.
*/
public final class IdRange implements Iterable<Long>, Comparable<IdRange>{
+ public static String toString(IdRange[] ranges) {
+ return Optional.ofNullable(ranges)
+ .map(ImmutableList::copyOf)
+ .toString();
+ }
+
private long _lowVal;
private long _highVal;
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/api/message/StatusDataItems.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/StatusDataItems.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/StatusDataItems.java
index 44602bb..5458e1a 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/StatusDataItems.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/StatusDataItems.java
@@ -18,6 +18,8 @@
****************************************************************/
package org.apache.james.imap.api.message;
+import com.google.common.base.MoreObjects;
+
public class StatusDataItems {
private boolean messages;
@@ -78,5 +80,16 @@ public class StatusDataItems {
public boolean isHighestModSeq() {
return highestModSeq;
}
-
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("messages", messages)
+ .add("recent", recent)
+ .add("uidNext", uidNext)
+ .add("uidValidity", uidValidity)
+ .add("unseen", unseen)
+ .add("highestModSeq", highestModSeq)
+ .toString();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java
index e499cda..c2b1445 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/UidRange.java
@@ -22,17 +22,24 @@ package org.apache.james.imap.api.message;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
+import java.util.Optional;
import java.util.stream.Collectors;
import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.model.MessageRange;
import com.google.common.base.Objects;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.Range;
import com.google.common.collect.RangeSet;
import com.google.common.collect.TreeRangeSet;
public final class UidRange implements Iterable<MessageUid> {
+ public static String toString(UidRange[] ranges) {
+ return Optional.ofNullable(ranges)
+ .map(ImmutableList::copyOf)
+ .toString();
+ }
public static List<UidRange> mergeRanges(List<UidRange> ranges) {
if (ranges.isEmpty()) {
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchKey.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchKey.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchKey.java
index 232c500..374efba 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchKey.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchKey.java
@@ -22,10 +22,14 @@ package org.apache.james.imap.api.message.request;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.Optional;
import org.apache.james.imap.api.message.IdRange;
import org.apache.james.imap.api.message.UidRange;
+import com.google.common.base.MoreObjects;
+import com.google.common.collect.ImmutableList;
+
/**
* Atom key used by a search. Build instances by factory methods.
*/
@@ -508,4 +512,19 @@ public final class SearchKey {
return false;
return true;
}
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("type", type)
+ .add("date", date)
+ .add("size", size)
+ .add("value", value)
+ .add("seconds", seconds)
+ .add("modSeq", modSeq)
+ .add("uids", Arrays.toString(uids))
+ .add("sequences", Arrays.toString(sequence))
+ .add("keys", Optional.ofNullable(keys).map(ImmutableList::copyOf))
+ .toString();
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchOperation.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchOperation.java b/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchOperation.java
index 6068ef9..6da3f8a 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchOperation.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/message/request/SearchOperation.java
@@ -21,6 +21,8 @@ package org.apache.james.imap.api.message.request;
import java.util.List;
+import com.google.common.base.MoreObjects;
+
public final class SearchOperation {
private final SearchKey key;
@@ -37,7 +39,14 @@ public final class SearchOperation {
public List<SearchResultOption> getResultOptions() {
return options;
}
-
+
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("key", key)
+ .toString();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/message/request/AbstractMailboxSelectionRequest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/message/request/AbstractMailboxSelectionRequest.java b/protocols/imap/src/main/java/org/apache/james/imap/message/request/AbstractMailboxSelectionRequest.java
index cddfd1f..34202fa 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/message/request/AbstractMailboxSelectionRequest.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/message/request/AbstractMailboxSelectionRequest.java
@@ -30,6 +30,8 @@ import org.apache.james.imap.api.message.request.ImapRequest;
* This supports also the <code>CONDSTORE</code> and the <code>QRESYNC</code> extension
*/
public abstract class AbstractMailboxSelectionRequest extends AbstractImapRequest {
+
+
private final String mailboxName;
private final boolean condstore;
private final Long lastKnownUidValidity;
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/message/request/SetQuotaRequest.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/message/request/SetQuotaRequest.java b/protocols/imap/src/main/java/org/apache/james/imap/message/request/SetQuotaRequest.java
index 1af01a9..33ed681 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/message/request/SetQuotaRequest.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/message/request/SetQuotaRequest.java
@@ -24,6 +24,9 @@ import java.util.List;
import org.apache.james.imap.api.ImapCommand;
+import com.google.common.base.MoreObjects;
+import com.google.common.collect.ImmutableList;
+
/**
* SETQUOTA request
*/
@@ -45,6 +48,14 @@ public class SetQuotaRequest extends AbstractImapRequest {
public long getLimit() {
return limit;
}
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("resource", resource)
+ .add("limit", limit)
+ .toString();
+ }
}
private final String quotaRoot;
@@ -61,7 +72,7 @@ public class SetQuotaRequest extends AbstractImapRequest {
}
public List<ResourceLimit> getResourceLimits() {
- return new ArrayList<>(resourceLimits);
+ return ImmutableList.copyOf(resourceLimits);
}
public String getQuotaRoot() {
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java
index d57adf5..f693296 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AppendProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
@@ -46,6 +47,7 @@ import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.model.ComposedMessageId;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class AppendProcessor extends AbstractMailboxProcessor<AppendRequest> {
@@ -154,4 +156,11 @@ public class AppendProcessor extends AbstractMailboxProcessor<AppendRequest> {
}
}
+ @Override
+ protected Closeable addContextToMDC(AppendRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "APPEND")
+ .addContext("mailbox", message.getMailboxName())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
index 11a27f8..b10961c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/AuthenticateProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
@@ -35,6 +36,7 @@ import org.apache.james.imap.message.request.IRAuthenticateRequest;
import org.apache.james.imap.message.response.AuthenticateResponse;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -160,4 +162,11 @@ public class AuthenticateProcessor extends AbstractAuthProcessor<AuthenticateReq
return ImmutableList.copyOf(caps);
}
+ @Override
+ protected Closeable addContextToMDC(AuthenticateRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "AUTHENTICATE")
+ .addContext("authType", message.getAuthType())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
index 7c921b4..cb6a61c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CapabilityProcessor.java
@@ -26,6 +26,7 @@ import static org.apache.james.imap.api.ImapConstants.SUPPORTS_RFC3348;
import static org.apache.james.imap.api.ImapConstants.UTF8;
import static org.apache.james.imap.api.ImapConstants.VERSION;
+import java.io.Closeable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
@@ -41,6 +42,7 @@ import org.apache.james.imap.message.request.CapabilityRequest;
import org.apache.james.imap.message.response.CapabilityResponse;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -140,6 +142,13 @@ public class CapabilityProcessor extends AbstractMailboxProcessor<CapabilityRequ
caps.removeAll(disabledCaps);
return caps;
}
+
+ @Override
+ protected Closeable addContextToMDC(CapabilityRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "CAPABILITY")
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/CheckProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CheckProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CheckProcessor.java
index 8a03f34..4f9e092 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CheckProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CheckProcessor.java
@@ -19,6 +19,8 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
+
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.message.response.StatusResponseFactory;
import org.apache.james.imap.api.process.ImapProcessor;
@@ -26,6 +28,7 @@ import org.apache.james.imap.api.process.ImapSession;
import org.apache.james.imap.message.request.CheckRequest;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class CheckProcessor extends AbstractMailboxProcessor<CheckRequest> {
@@ -38,4 +41,11 @@ public class CheckProcessor extends AbstractMailboxProcessor<CheckRequest> {
unsolicitedResponses(session, responder, false);
okComplete(command, tag, responder);
}
+
+ @Override
+ protected Closeable addContextToMDC(CheckRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "CHECK")
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
index 195086b..1dd8f6a 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
@@ -19,6 +19,8 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
+
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.display.HumanReadableText;
@@ -33,6 +35,7 @@ import org.apache.james.mailbox.MessageManager.MetaData.FetchGroup;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.MessageRange;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class CloseProcessor extends AbstractMailboxProcessor<CloseRequest> {
@@ -61,4 +64,11 @@ public class CloseProcessor extends AbstractMailboxProcessor<CloseRequest> {
no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
}
}
+
+ @Override
+ protected Closeable addContextToMDC(CloseRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "CLOSE")
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/CompressProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CompressProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CompressProcessor.java
index 69d64c0..ac033a9 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CompressProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CompressProcessor.java
@@ -18,6 +18,9 @@
****************************************************************/
package org.apache.james.imap.processor;
+
+import java.io.Closeable;
+
import java.util.Collections;
import java.util.List;
@@ -28,6 +31,7 @@ import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.api.process.ImapSession;
import org.apache.james.imap.message.request.CompressRequest;
import org.apache.james.imap.processor.base.AbstractChainedProcessor;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -81,4 +85,11 @@ public class CompressProcessor extends AbstractChainedProcessor<CompressRequest>
return Collections.EMPTY_LIST;
}
+ @Override
+ protected Closeable addContextToMDC(CompressRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "COMPRESS")
+ .addContext("algorithm", message.getAlgorithm())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/CopyProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CopyProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CopyProcessor.java
index 2b7e242..be6f59f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CopyProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CopyProcessor.java
@@ -19,8 +19,10 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.List;
+import org.apache.james.imap.api.message.IdRange;
import org.apache.james.imap.api.message.response.StatusResponseFactory;
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.api.process.SelectedMailbox;
@@ -31,6 +33,7 @@ import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.MessageRange;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class CopyProcessor extends AbstractMessageRangeProcessor<CopyRequest> {
@@ -51,4 +54,14 @@ public class CopyProcessor extends AbstractMessageRangeProcessor<CopyRequest> {
MailboxManager mailboxManager, MessageRange messageSet) throws MailboxException {
return mailboxManager.copyMessages(messageSet, currentMailbox.getPath(), targetMailbox, mailboxSession);
}
+
+ @Override
+ protected Closeable addContextToMDC(CopyRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "COPY")
+ .addContext("targetMailbox", message.getMailboxName())
+ .addContext("uidEnabled", message.isUseUids())
+ .addContext("idSet", IdRange.toString(message.getIdSet()))
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java
index 66ad8ed..295b178 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/CreateProcessor.java
@@ -19,6 +19,8 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
+
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.display.HumanReadableText;
@@ -33,6 +35,7 @@ import org.apache.james.mailbox.exception.MailboxExistsException;
import org.apache.james.mailbox.exception.TooLongMailboxNameException;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class CreateProcessor extends AbstractMailboxProcessor<CreateRequest> {
@@ -70,4 +73,12 @@ public class CreateProcessor extends AbstractMailboxProcessor<CreateRequest> {
no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
}
}
+
+ @Override
+ protected Closeable addContextToMDC(CreateRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "CREATE")
+ .addContext("mailbox", message.getMailboxName())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
index f3a7005..8fed11c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteACLProcessor.java
@@ -19,6 +19,8 @@
package org.apache.james.imap.processor;
+
+import java.io.Closeable;
import java.util.List;
import org.apache.james.imap.api.ImapCommand;
@@ -42,6 +44,7 @@ import org.apache.james.mailbox.model.SimpleMailboxACL;
import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
import org.apache.james.mailbox.model.SimpleMailboxACL.SimpleMailboxACLEntryKey;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -144,4 +147,12 @@ public class DeleteACLProcessor extends AbstractMailboxProcessor<DeleteACLReques
return CAPABILITIES;
}
+ @Override
+ protected Closeable addContextToMDC(DeleteACLRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "DELETE_ACL")
+ .addContext("mailbox", message.getMailboxName())
+ .addContext("identifier", message.getIdentifier())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java
index 20b2be7..08b0b2f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/DeleteProcessor.java
@@ -19,6 +19,8 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
+
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.display.HumanReadableText;
@@ -34,6 +36,7 @@ import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.exception.TooLongMailboxNameException;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class DeleteProcessor extends AbstractMailboxProcessor<DeleteRequest> {
@@ -75,4 +78,12 @@ public class DeleteProcessor extends AbstractMailboxProcessor<DeleteRequest> {
no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
}
}
+
+ @Override
+ protected Closeable addContextToMDC(DeleteRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "DELETE")
+ .addContext("mailbox", message.getMailboxName())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java
index 516ae7c..2611d7e 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/EnableProcessor.java
@@ -21,6 +21,7 @@ package org.apache.james.imap.processor;
import static org.apache.james.imap.api.ImapConstants.SUPPORTS_ENABLE;
+import java.io.Closeable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
@@ -38,6 +39,9 @@ import org.apache.james.imap.message.response.EnableResponse;
import org.apache.james.imap.processor.PermitEnableCapabilityProcessor.EnableException;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
+
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableList;
@@ -137,4 +141,11 @@ public class EnableProcessor extends AbstractMailboxProcessor<EnableRequest> imp
return CAPS;
}
+ @Override
+ protected Closeable addContextToMDC(EnableRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "ENABLE")
+ .addContext("capabilities", ImmutableList.copyOf(message.getCapabilities()))
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/ExamineProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/ExamineProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/ExamineProcessor.java
index f5428e0..69e7644 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/ExamineProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/ExamineProcessor.java
@@ -19,11 +19,16 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
+
+import org.apache.james.imap.api.message.IdRange;
+import org.apache.james.imap.api.message.UidRange;
import org.apache.james.imap.api.message.response.StatusResponseFactory;
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.message.request.ExamineRequest;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class ExamineProcessor extends AbstractSelectionProcessor<ExamineRequest> {
@@ -32,4 +37,17 @@ public class ExamineProcessor extends AbstractSelectionProcessor<ExamineRequest>
super(ExamineRequest.class, next, mailboxManager, statusResponseFactory, true, metricFactory);
}
+ @Override
+ protected Closeable addContextToMDC(ExamineRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "EXAMINE")
+ .addContext("mailbox", message.getMailboxName())
+ .addContext("condstore", Boolean.toString(message.getCondstore()))
+ .addContext("knownModseq", message.getKnownModSeq())
+ .addContext("knownUids", UidRange.toString(message.getKnownUidSet()))
+ .addContext("knownIdRange", IdRange.toString(message.getKnownSequenceSet()))
+ .addContext("lastKnownUidValidity", message.getLastKnownUidValidity())
+ .addContext("uidSet", UidRange.toString(message.getUidSet()))
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
index 0c3a30d..05d199e 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.Iterator;
import java.util.List;
@@ -43,6 +44,7 @@ import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MessageRangeException;
import org.apache.james.mailbox.model.MessageRange;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -125,4 +127,12 @@ public class ExpungeProcessor extends AbstractMailboxProcessor<ExpungeRequest> i
public List<String> getImplementedCapabilities(ImapSession session) {
return UIDPLUS;
}
+
+ @Override
+ protected Closeable addContextToMDC(ExpungeRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "EXPUNGE")
+ .addContext("uidSet", IdRange.toString(message.getUidSet()))
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
index 3fe1fc4..5adf6cf 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetACLProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.List;
import org.apache.james.imap.api.ImapCommand;
@@ -41,6 +42,7 @@ import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -118,4 +120,11 @@ public class GetACLProcessor extends AbstractMailboxProcessor<GetACLRequest> imp
return CAPABILITIES;
}
+ @Override
+ protected Closeable addContextToMDC(GetACLRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "GET_ACL")
+ .addContext("mailbox", message.getMailboxName())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java
index de0146f..e38e08f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetAnnotationProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
@@ -43,6 +44,7 @@ import org.apache.james.mailbox.model.MailboxAnnotation;
import org.apache.james.mailbox.model.MailboxAnnotationKey;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.base.Optional;
import com.google.common.base.Predicate;
@@ -146,4 +148,14 @@ public class GetAnnotationProcessor extends AbstractMailboxProcessor<GetAnnotati
return Optional.of(overLimitSizes.first());
}
+ @Override
+ protected Closeable addContextToMDC(GetAnnotationRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "GET_ANNOTATION")
+ .addContext("mailbox", message.getMailboxName())
+ .addContext("depth", message.getDepth())
+ .addContext("maxSize", message.getMaxsize())
+ .addContext("keys", message.getKeys())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java
index 6637ecf..00c1d6b 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.List;
import org.apache.james.imap.api.ImapCommand;
@@ -40,6 +41,7 @@ import org.apache.james.mailbox.model.SimpleMailboxACL;
import org.apache.james.mailbox.quota.QuotaManager;
import org.apache.james.mailbox.quota.QuotaRootResolver;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -106,4 +108,11 @@ public class GetQuotaProcessor extends AbstractMailboxProcessor<GetQuotaRequest>
return false;
}
+ @Override
+ protected Closeable addContextToMDC(GetQuotaRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "GET_QUOTA")
+ .addContext("quotaRoot", message.getQuotaRoot())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java
index 3864bf6..fd45b64 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/GetQuotaRootProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.List;
import org.apache.james.imap.api.ImapCommand;
@@ -42,6 +43,7 @@ import org.apache.james.mailbox.model.SimpleMailboxACL;
import org.apache.james.mailbox.quota.QuotaManager;
import org.apache.james.mailbox.quota.QuotaRootResolver;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -97,4 +99,12 @@ public class GetQuotaRootProcessor extends AbstractMailboxProcessor<GetQuotaRoot
}
}
+
+ @Override
+ protected Closeable addContextToMDC(GetQuotaRootRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "GET_QUOTA_ROOT")
+ .addContext("mailbox", message.getMailboxName())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
index bdc2688..2b1c81c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/IdleProcessor.java
@@ -21,6 +21,7 @@ package org.apache.james.imap.processor;
import static org.apache.james.imap.api.ImapConstants.SUPPORTS_IDLE;
+import java.io.Closeable;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.Executors;
@@ -46,6 +47,7 @@ import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -199,4 +201,11 @@ public class IdleProcessor extends AbstractMailboxProcessor<IdleRequest> impleme
return ExecutionMode.ASYNCHRONOUS;
}
}
+
+ @Override
+ protected Closeable addContextToMDC(IdleRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "IDLE")
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
index 1de8e9a..040c94f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/LSubProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.ArrayList;
import java.util.Collection;
@@ -41,6 +42,7 @@ import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.MailboxQuery;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class LSubProcessor extends AbstractSubscriptionProcessor<LsubRequest> {
@@ -131,4 +133,13 @@ public class LSubProcessor extends AbstractSubscriptionProcessor<LsubRequest> {
no(command, tag, responder, displayTextKey);
}
}
+
+ @Override
+ protected Closeable addContextToMDC(LsubRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "LSUB")
+ .addContext("base", message.getBaseReferenceName())
+ .addContext("pattern", message.getMailboxPattern())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
index 71c1361..7f882e6 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.ArrayList;
import java.util.List;
@@ -46,6 +47,7 @@ import org.apache.james.mailbox.model.MailboxMetaData.Children;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.MailboxQuery;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class ListProcessor extends AbstractMailboxProcessor<ListRequest> {
@@ -230,4 +232,13 @@ public class ListProcessor extends AbstractMailboxProcessor<ListRequest> {
protected boolean isAcceptable(ImapMessage message) {
return ListRequest.class.equals(message.getClass());
}
+
+ @Override
+ protected Closeable addContextToMDC(ListRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "LIST")
+ .addContext("base", message.getBaseReferenceName())
+ .addContext("pattern", message.getMailboxPattern())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
index c68e559..c648e1a 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/ListRightsProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.List;
import org.apache.james.imap.api.ImapCommand;
@@ -41,6 +42,7 @@ import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
import org.apache.james.mailbox.model.SimpleMailboxACL.SimpleMailboxACLEntryKey;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -134,4 +136,12 @@ public class ListRightsProcessor extends AbstractMailboxProcessor<ListRightsRequ
return CAPABILITIES;
}
+ @Override
+ protected Closeable addContextToMDC(ListRightsRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "LIST_RIGHTS")
+ .addContext("mailbox", message.getMailboxName())
+ .addContext("identifier", message.getIdentifier())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/LoginProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/LoginProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/LoginProcessor.java
index cf49b11..3011bda 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/LoginProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/LoginProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.Collections;
import java.util.List;
@@ -30,6 +31,7 @@ import org.apache.james.imap.api.process.ImapSession;
import org.apache.james.imap.message.request.LoginRequest;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -72,4 +74,12 @@ public class LoginProcessor extends AbstractAuthProcessor<LoginRequest> implemen
}
return Collections.emptyList();
}
+
+ @Override
+ protected Closeable addContextToMDC(LoginRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "LOGIN")
+ .addContext(MDCBuilder.USER, message.getUserid())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
index acec17c..3e9fc00 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/LogoutProcessor.java
@@ -19,6 +19,8 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
+
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.display.HumanReadableText;
@@ -30,6 +32,7 @@ import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class LogoutProcessor extends AbstractMailboxProcessor<LogoutRequest> {
@@ -50,4 +53,11 @@ public class LogoutProcessor extends AbstractMailboxProcessor<LogoutRequest> {
no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
}
}
+
+ @Override
+ protected Closeable addContextToMDC(LogoutRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "LOGOUT")
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/MoveProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/MoveProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/MoveProcessor.java
index 834b552..1f72217 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/MoveProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/MoveProcessor.java
@@ -19,9 +19,11 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.List;
import org.apache.james.imap.api.ImapConstants;
+import org.apache.james.imap.api.message.IdRange;
import org.apache.james.imap.api.message.response.StatusResponseFactory;
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.api.process.ImapSession;
@@ -33,6 +35,7 @@ import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.MessageRange;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -67,4 +70,14 @@ public class MoveProcessor extends AbstractMessageRangeProcessor<MoveRequest> im
}
}
+ @Override
+ protected Closeable addContextToMDC(MoveRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "MOVE")
+ .addContext("targetMailbox", message.getMailboxName())
+ .addContext("uidEnabled", message.isUseUids())
+ .addContext("idSet", IdRange.toString(message.getIdSet()))
+ .build();
+ }
+
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
index 2f1c89a..c4dc6c8 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/MyRightsProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.Collections;
import java.util.List;
@@ -40,6 +41,7 @@ import org.apache.james.mailbox.model.MailboxACL.MailboxACLRights;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
/**
* MYRIGHTS Processor.
@@ -112,4 +114,11 @@ public class MyRightsProcessor extends AbstractMailboxProcessor<MyRightsRequest>
return CAPABILITIES;
}
+ @Override
+ protected Closeable addContextToMDC(MyRightsRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "MYRIGHTS")
+ .addContext("mailbox", message.getMailboxName())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java
index 724b238..fecabd3 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/NamespaceProcessor.java
@@ -20,6 +20,7 @@ package org.apache.james.imap.processor;
import static org.apache.james.imap.api.ImapConstants.SUPPORTS_NAMESPACES;
+import java.io.Closeable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -36,6 +37,7 @@ import org.apache.james.imap.message.response.NamespaceResponse;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
/**
* Processes a NAMESPACE command into a suitable set of responses.
@@ -110,4 +112,10 @@ public class NamespaceProcessor extends AbstractMailboxProcessor<NamespaceReques
return CAPS;
}
+ @Override
+ protected Closeable addContextToMDC(NamespaceRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "NAMESPACE")
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/NoopProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/NoopProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/NoopProcessor.java
index c903564..4d88c2b 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/NoopProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/NoopProcessor.java
@@ -19,6 +19,8 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
+
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.message.response.StatusResponseFactory;
import org.apache.james.imap.api.process.ImapProcessor;
@@ -26,6 +28,7 @@ import org.apache.james.imap.api.process.ImapSession;
import org.apache.james.imap.message.request.NoopRequest;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class NoopProcessor extends AbstractMailboxProcessor<NoopRequest> {
@@ -39,4 +42,11 @@ public class NoopProcessor extends AbstractMailboxProcessor<NoopRequest> {
unsolicitedResponses(session, responder, false);
okComplete(command, tag, responder);
}
+
+ @Override
+ protected Closeable addContextToMDC(NoopRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "NOOP")
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
index 2ce9187..42ec3cf 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/RenameProcessor.java
@@ -19,6 +19,8 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
+
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapConstants;
import org.apache.james.imap.api.ImapSessionUtils;
@@ -36,6 +38,7 @@ import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.exception.TooLongMailboxNameException;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class RenameProcessor extends AbstractMailboxProcessor<RenameRequest> {
@@ -86,4 +89,13 @@ public class RenameProcessor extends AbstractMailboxProcessor<RenameRequest> {
no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
}
}
+
+ @Override
+ protected Closeable addContextToMDC(RenameRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "RENAME")
+ .addContext("existingName", message.getExistingName())
+ .addContext("newName", message.getNewName())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
index 065b2eb..8822e4d 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SearchProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
@@ -62,6 +63,7 @@ import org.apache.james.mailbox.model.SearchQuery.AddressType;
import org.apache.james.mailbox.model.SearchQuery.Criterion;
import org.apache.james.mailbox.model.SearchQuery.DateResolution;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.base.Optional;
import com.google.common.collect.ImmutableList;
@@ -497,4 +499,13 @@ public class SearchProcessor extends AbstractMailboxProcessor<SearchRequest> imp
public List<String> getImplementedCapabilities(ImapSession session) {
return CAPS;
}
+
+ @Override
+ protected Closeable addContextToMDC(SearchRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "SEARCH")
+ .addContext("useUid", message.isUseUids())
+ .addContext("searchOperation", message.getSearchOperation())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/SelectProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SelectProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SelectProcessor.java
index 6414487..fc200d7 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SelectProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SelectProcessor.java
@@ -19,11 +19,16 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
+
+import org.apache.james.imap.api.message.IdRange;
+import org.apache.james.imap.api.message.UidRange;
import org.apache.james.imap.api.message.response.StatusResponseFactory;
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.message.request.SelectRequest;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class SelectProcessor extends AbstractSelectionProcessor<SelectRequest> {
@@ -32,4 +37,18 @@ public class SelectProcessor extends AbstractSelectionProcessor<SelectRequest> {
super(SelectRequest.class, next, mailboxManager, statusResponseFactory, false, metricFactory);
}
+ @Override
+ protected Closeable addContextToMDC(SelectRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "SELECT")
+ .addContext("mailbox", message.getMailboxName())
+ .addContext("condstore", message.getCondstore())
+ .addContext("knownModseq", message.getKnownModSeq())
+ .addContext("knownUids", UidRange.toString(message.getKnownUidSet()))
+ .addContext("knownIdRange", IdRange.toString(message.getKnownSequenceSet()))
+ .addContext("lastKnownUidValidity", message.getLastKnownUidValidity())
+ .addContext("uidSet", UidRange.toString(message.getUidSet()))
+ .build();
+ }
+
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
index 8d26d3e..4f63d57 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetACLProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.Collections;
import java.util.List;
@@ -45,6 +46,7 @@ import org.apache.james.mailbox.model.SimpleMailboxACL;
import org.apache.james.mailbox.model.SimpleMailboxACL.Rfc4314Rights;
import org.apache.james.mailbox.model.SimpleMailboxACL.SimpleMailboxACLEntryKey;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
/**
* SETACL Processor.
@@ -163,4 +165,13 @@ public class SetACLProcessor extends AbstractMailboxProcessor<SetACLRequest> imp
return CAPABILITIES;
}
+ @Override
+ protected Closeable addContextToMDC(SetACLRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "SET_ACL")
+ .addContext("mailbox", message.getMailboxName())
+ .addContext("identifier", message.getIdentifier())
+ .addContext("rights", message.getRights())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
index 774b74d..adfe274 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetAnnotationProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.List;
import org.apache.james.imap.api.ImapCommand;
@@ -38,6 +39,7 @@ import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.exception.MailboxNotFoundException;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -74,4 +76,13 @@ public class SetAnnotationProcessor extends AbstractMailboxProcessor<SetAnnotati
no(command, tag, responder, HumanReadableText.GENERIC_FAILURE_DURING_PROCESSING);
}
}
+
+ @Override
+ protected Closeable addContextToMDC(SetAnnotationRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "SET_ANNOTATION")
+ .addContext("mailbox", message.getMailboxName())
+ .addContext("annotations", message.getMailboxAnnotations())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/SetQuotaProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetQuotaProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetQuotaProcessor.java
index 8238f0a..1e7c68c 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SetQuotaProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SetQuotaProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.Collections;
import java.util.List;
@@ -31,6 +32,7 @@ import org.apache.james.imap.api.process.ImapSession;
import org.apache.james.imap.message.request.SetQuotaRequest;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
/**
* SETQUOTA processor
@@ -57,4 +59,13 @@ public class SetQuotaProcessor extends AbstractMailboxProcessor<SetQuotaRequest>
HumanReadableText humanReadableText = new HumanReadableText(HumanReadableText.UNSUFFICIENT_RIGHTS_KEY, HumanReadableText.UNSUFFICIENT_RIGHTS_DEFAULT_VALUE, params);
no(command, tag, responder, humanReadableText);
}
+
+ @Override
+ protected Closeable addContextToMDC(SetQuotaRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "SET_QUOTA")
+ .addContext("quotaRoot", message.getQuotaRoot())
+ .addContext("limits", message.getResourceLimits())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java
index 30c7ff8..a89b665 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/StartTLSProcessor.java
@@ -18,6 +18,7 @@
****************************************************************/
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.Collections;
import java.util.List;
@@ -28,6 +29,7 @@ import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.api.process.ImapSession;
import org.apache.james.imap.message.request.StartTLSRequest;
import org.apache.james.imap.processor.base.AbstractChainedProcessor;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -73,4 +75,10 @@ public class StartTLSProcessor extends AbstractChainedProcessor<StartTLSRequest>
}
}
+ @Override
+ protected Closeable addContextToMDC(StartTLSRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "START_TLS")
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
index 8b10e8c..b4bc96b 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/StatusProcessor.java
@@ -19,6 +19,8 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
+
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.display.HumanReadableText;
@@ -36,6 +38,7 @@ import org.apache.james.mailbox.MessageUid;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import org.slf4j.Logger;
public class StatusProcessor extends AbstractMailboxProcessor<StatusRequest> {
@@ -157,4 +160,13 @@ public class StatusProcessor extends AbstractMailboxProcessor<StatusRequest> {
}
return messages;
}
+
+ @Override
+ protected Closeable addContextToMDC(StatusRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "STATUS")
+ .addContext("mailbox", message.getMailboxName())
+ .addContext("parameters", message.getStatusDataItems())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
index a281c8d..44aecce 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -56,6 +57,7 @@ import org.apache.james.mailbox.model.MessageRange.Type;
import org.apache.james.mailbox.model.MessageResult;
import org.apache.james.mailbox.model.MessageResultIterator;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -344,4 +346,15 @@ public class StoreProcessor extends AbstractMailboxProcessor<StoreRequest> {
}
}
+
+ @Override
+ protected Closeable addContextToMDC(StoreRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "STORE")
+ .addContext("ranges", IdRange.toString(message.getIdSet()))
+ .addContext("useUids", message.isUseUids())
+ .addContext("unchangedSince", message.getUnchangedSince())
+ .addContext("isSilent", message.isSilent())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
index 78cd530..732a584 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SubscribeProcessor.java
@@ -19,6 +19,8 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
+
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.display.HumanReadableText;
@@ -31,6 +33,7 @@ import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.SubscriptionManager;
import org.apache.james.mailbox.exception.SubscriptionException;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class SubscribeProcessor extends AbstractSubscriptionProcessor<SubscribeRequest> {
@@ -64,4 +67,11 @@ public class SubscribeProcessor extends AbstractSubscriptionProcessor<SubscribeR
}
}
+ @Override
+ protected Closeable addContextToMDC(SubscribeRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "SUBSCRIBE")
+ .addContext("mailbox", message.getMailboxName())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java
index 2e1c28e..2054368 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/SystemMessageProcessor.java
@@ -19,6 +19,8 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
+
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.api.process.ImapSession;
@@ -27,6 +29,7 @@ import org.apache.james.imap.processor.base.AbstractChainedProcessor;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.util.MDCBuilder;
/**
* Processes system messages unrelated to IMAP.
@@ -76,4 +79,11 @@ public class SystemMessageProcessor extends AbstractChainedProcessor<SystemMessa
}
}
+ @Override
+ protected Closeable addContextToMDC(SystemMessage message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "SYSTEM_MESSAGE")
+ .addContext("message", message)
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java
index f046a5d..f392ea5 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/UnselectProcessor.java
@@ -18,6 +18,7 @@
****************************************************************/
package org.apache.james.imap.processor;
+import java.io.Closeable;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -30,6 +31,7 @@ import org.apache.james.imap.api.process.ImapSession;
import org.apache.james.imap.message.request.UnselectRequest;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
/**
* Processor which implements the UNSELECT extension.
@@ -71,4 +73,10 @@ public class UnselectProcessor extends AbstractMailboxProcessor<UnselectRequest>
return UNSELECT;
}
+ @Override
+ protected Closeable addContextToMDC(UnselectRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "UNSELECT")
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
index 59f210d..b40bc6d 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/UnsubscribeProcessor.java
@@ -19,6 +19,8 @@
package org.apache.james.imap.processor;
+import java.io.Closeable;
+
import org.apache.james.imap.api.ImapCommand;
import org.apache.james.imap.api.ImapSessionUtils;
import org.apache.james.imap.api.display.HumanReadableText;
@@ -31,6 +33,7 @@ import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.SubscriptionManager;
import org.apache.james.mailbox.exception.SubscriptionException;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
public class UnsubscribeProcessor extends AbstractSubscriptionProcessor<UnsubscribeRequest> {
@@ -65,4 +68,11 @@ public class UnsubscribeProcessor extends AbstractSubscriptionProcessor<Unsubscr
}
}
+ @Override
+ protected Closeable addContextToMDC(UnsubscribeRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "UNSUBSCRIBE")
+ .addContext("mailbox", message.getMailboxName())
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java
index e6649e6..f7ee515 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/AbstractChainedProcessor.java
@@ -19,11 +19,16 @@
package org.apache.james.imap.processor.base;
+import java.io.Closeable;
+import java.io.IOException;
+
import org.apache.james.imap.api.ImapConfiguration;
import org.apache.james.imap.api.ImapMessage;
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.api.process.ImapSession;
+import com.google.common.base.Throwables;
+
abstract public class AbstractChainedProcessor<M extends ImapMessage> implements ImapProcessor {
private final ImapProcessor next;
@@ -51,7 +56,12 @@ abstract public class AbstractChainedProcessor<M extends ImapMessage> implements
public void process(ImapMessage message, Responder responder, ImapSession session) {
final boolean isAcceptable = isAcceptable(message);
if (isAcceptable) {
- doProcess((M) message, responder, session);
+ M acceptableMessage = (M) message;
+ try (Closeable closeable = addContextToMDC(acceptableMessage)) {
+ doProcess(acceptableMessage, responder, session);
+ } catch (IOException e) {
+ throw Throwables.propagate(e);
+ }
} else {
next.process(message, responder, session);
}
@@ -85,4 +95,9 @@ abstract public class AbstractChainedProcessor<M extends ImapMessage> implements
* <code>ImapSession</code>, not null
*/
abstract protected void doProcess(M acceptableMessage, Responder responder, ImapSession session);
+
+ /**
+ * Add request specific information to the MDC, for contextual logging
+ */
+ abstract protected Closeable addContextToMDC(M message);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/base/ImapResponseMessageProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/ImapResponseMessageProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/ImapResponseMessageProcessor.java
index f47085f..720dfa6 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/base/ImapResponseMessageProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/base/ImapResponseMessageProcessor.java
@@ -19,9 +19,12 @@
package org.apache.james.imap.processor.base;
+import java.io.Closeable;
+
import org.apache.james.imap.api.message.response.ImapResponseMessage;
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.api.process.ImapSession;
+import org.apache.james.util.MDCBuilder;
public class ImapResponseMessageProcessor extends AbstractChainedProcessor<ImapResponseMessage> {
@@ -32,4 +35,11 @@ public class ImapResponseMessageProcessor extends AbstractChainedProcessor<ImapR
protected void doProcess(ImapResponseMessage acceptableMessage, Responder responder, ImapSession session) {
responder.respond(acceptableMessage);
}
+
+ @Override
+ protected Closeable addContextToMDC(ImapResponseMessage message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "RESPOND")
+ .build();
+ }
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/56974b95/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
----------------------------------------------------------------------
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
index ec7f3e7..5c3ed47 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
@@ -19,6 +19,7 @@
package org.apache.james.imap.processor.fetch;
+import java.io.Closeable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -50,6 +51,7 @@ import org.apache.james.mailbox.model.MessageResult.FetchGroup;
import org.apache.james.mailbox.model.MessageResult.MimePath;
import org.apache.james.mailbox.model.MessageResultIterator;
import org.apache.james.metrics.api.MetricFactory;
+import org.apache.james.util.MDCBuilder;
import com.google.common.collect.ImmutableList;
@@ -246,4 +248,13 @@ public class FetchProcessor extends AbstractMailboxProcessor<FetchRequest> {
}
}
+ @Override
+ protected Closeable addContextToMDC(FetchRequest message) {
+ return MDCBuilder.create()
+ .addContext(MDCBuilder.ACTION, "FETCH")
+ .addContext("useUid", message.isUseUids())
+ .addContext("idSet", IdRange.toString(message.getIdSet()))
+ .addContext("fetchedData", message.getFetch())
+ .build();
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org