@Override protected Closeable addContextToMDC(StartTLSRequest message) { return MDCBuilder.create() .addContext(MDCBuilder.ACTION, "START_TLS") .build(); } }
@Override protected Closeable addContextToMDC(NamespaceRequest message) { return MDCBuilder.create() .addContext(MDCBuilder.ACTION, "NAMESPACE") .build(); } }
@Override protected Closeable addContextToMDC(NoopRequest message) { return MDCBuilder.create() .addContext(MDCBuilder.ACTION, "NOOP") .build(); } }
private static MDCBuilder from(Object o) { return Optional.ofNullable(o) .filter(object -> object instanceof IMAPSession) .map(object -> (IMAPSession) object) .map(imapSession -> MDCBuilder.create() .addContext(MDCBuilder.SESSION_ID, imapSession.getSessionID()) .addContext(MDCBuilder.USER, imapSession.getUser()) .addContext(from(Optional.ofNullable(imapSession.getSelected())))) .orElse(MDCBuilder.create()); }
@Override protected Closeable addContextToMDC(GetQuotaRootRequest message) { return MDCBuilder.create() .addContext(MDCBuilder.ACTION, "GET_QUOTA_ROOT") .addContext("mailbox", message.getMailboxName()) .build(); } }
@Override protected Closeable addContextToMDC(MyRightsRequest message) { return MDCBuilder.create() .addContext(MDCBuilder.ACTION, "MYRIGHTS") .addContext("mailbox", message.getMailboxName()) .build(); } }
@Override protected Closeable addContextToMDC(AuthenticateRequest message) { return MDCBuilder.create() .addContext(MDCBuilder.ACTION, "AUTHENTICATE") .addContext("authType", message.getAuthType()) .build(); } }
@Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { try (Closeable closeable = MDCBuilder.create() .addContext(MDCBuilder.PROTOCOL, "JMAP") .addContext(MDCBuilder.IP, request.getRemoteAddr()) .addContext(MDCBuilder.HOST, request.getRemoteHost()) .build()) { chain.doFilter(request, response); } }
@Test public void buildContextMapShouldReturnEmptyWhenNoContext() { assertThat(MDCBuilder.create().buildContextMap()) .isEmpty(); }
@Override protected Closeable addContextToMDC(SetQuotaRequest message) { return MDCBuilder.create() .addContext(MDCBuilder.ACTION, "SET_QUOTA") .addContext("quotaRoot", message.getQuotaRoot()) .addContext("limits", message.getResourceLimits()) .build(); } }
@Test public void addContextShouldFilterOutNullValues() { assertThat( MDCBuilder.create() .addContext(KEY_1, null) .buildContextMap()) .isEmpty(); }
@Test public void addContextShouldThrowOnNullKey() { expectedException.expect(NullPointerException.class); MDCBuilder.create() .addContext(null, "any"); }
private void runWithMdc(TaskExecutionDetails executionDetails, Task task, Consumer<TaskId> callback) { MDCBuilder.withMdc( MDCBuilder.create() .addContext(Task.TASK_ID, executionDetails.getTaskId()) .addContext(Task.TASK_TYPE, executionDetails.getType()) .addContext(Task.TASK_DETAILS, executionDetails.getAdditionalInformation()), () -> run(executionDetails, task, callback)); }
@Test void addContextShouldThrowOnNullKey() { assertThatNullPointerException() .isThrownBy(() -> MDCBuilder.create() .addContext(null, "any")); }
public static Closeable from(Protocol protocol, ChannelHandlerContext ctx) { return MDCBuilder.create() .addContext(from(ctx.getAttachment())) .addContext(MDCBuilder.PROTOCOL, protocol.getName()) .addContext(MDCBuilder.IP, retrieveIp(ctx)) .addContext(MDCBuilder.HOST, retrieveHost(ctx)) .build(); }
public static Closeable from(Protocol protocol, ChannelHandlerContext ctx) { return MDCBuilder.create() .addContext(from(ctx.getAttachment())) .addContext(MDCBuilder.PROTOCOL, protocol.getName()) .addContext(MDCBuilder.IP, retrieveIp(ctx)) .addContext(MDCBuilder.HOST, retrieveHost(ctx)) .build(); }
@Test void buildContextMapShouldReturnContext() { assertThat( MDCBuilder.create() .addContext(KEY_1, VALUE_1) .addContext(KEY_2, VALUE_2) .buildContextMap()) .containsOnlyKeys(KEY_1, KEY_2) .containsEntry(KEY_1, VALUE_1) .containsEntry(KEY_2, VALUE_2); }
@Test public void buildContextMapShouldReturnContext() { assertThat( MDCBuilder.create() .addContext(KEY_1, VALUE_1) .addContext(KEY_2, VALUE_2) .buildContextMap()) .containsOnlyKeys(KEY_1, KEY_2) .containsEntry(KEY_1, VALUE_1) .containsEntry(KEY_2, VALUE_2); }