@Override protected ImapMessage decode(ImapCommand command, ImapRequestLineReader request, String tag, ImapSession session) throws DecodingException { List<String> caps = new ArrayList<>(); String cap = request.astring(); caps.add(cap.toUpperCase(Locale.US)); while (request.nextChar() == ' ') { request.consume(); cap = request.astring(); caps.add(cap.toUpperCase(Locale.US)); } request.eol(); return new EnableRequest(tag, command, caps); }
@Override protected Closeable addContextToMDC(EnableRequest message) { return MDCBuilder.create() .addContext(MDCBuilder.ACTION, "ENABLE") .addContext("capabilities", ImmutableList.copyOf(message.getCapabilities())) .build(); } }
@Override protected void doProcess(EnableRequest request, ImapSession session, String tag, ImapCommand command, Responder responder) { try { List<String> caps = request.getCapabilities(); Set<String> enabledCaps = enable(request, responder, session, caps.iterator()); responder.respond(new EnableResponse(enabledCaps)); unsolicitedResponses(session, responder, false); okComplete(command, tag, responder); } catch (EnableException e) { LOGGER.info("Unable to enable extension", e); taggedBad(command, tag, responder, HumanReadableText.FAILED); } }
@Override protected ImapMessage decode(ImapCommand command, ImapRequestLineReader request, String tag, ImapSession session) throws DecodingException { List<String> caps = new ArrayList<String>(); String cap = request.astring(); caps.add(cap.toUpperCase(Locale.UK)); while (request.nextChar() == ' ') { request.consume(); cap = request.astring(); caps.add(cap.toUpperCase(Locale.UK)); } request.eol(); return new EnableRequest(tag, command, caps); }
/** * @see org.apache.james.imap.processor.AbstractMailboxProcessor * #doProcess(org.apache.james.imap.api.message.request.ImapRequest, * org.apache.james.imap.api.process.ImapSession, java.lang.String, * org.apache.james.imap.api.ImapCommand, org.apache.james.imap.api.process.ImapProcessor.Responder) */ protected void doProcess(EnableRequest request, ImapSession session, String tag, ImapCommand command, Responder responder) { try { List<String> caps = request.getCapabilities(); Set<String> enabledCaps = enable(request, responder, session, caps.iterator()); responder.respond(new EnableResponse(enabledCaps)); unsolicitedResponses(session, responder, false); okComplete(command, tag, responder); } catch (EnableException e) { if (session.getLog().isInfoEnabled()) { session.getLog().info("Unable to enable extension", e); } taggedBad(command, tag, responder, HumanReadableText.FAILED); } }