default void runPublishingTimerMetric(String name, Runnable runnable) { runPublishingTimerMetric(name, () -> { runnable.run(); return null; }); }
default void runPublishingTimerMetric(String name, Runnable runnable) { runPublishingTimerMetric(name, () -> { runnable.run(); return null; }); } }
@Override public CompletableFuture<BlobId> save(InputStream data) { return metricFactory .runPublishingTimerMetric(SAVE_INPUT_STREAM_TIMER_NAME, blobStoreImpl.save(data)); }
@Override public CompletableFuture<BlobId> save(byte[] data) { return metricFactory .runPublishingTimerMetric(SAVE_BYTES_TIMER_NAME, blobStoreImpl.save(data)); }
@Override public SetMessagesResponse process(SetMessagesRequest request, MailboxSession mailboxSession) { return metricFactory.runPublishingTimerMetric(JMAP_PREFIX + "SendMDN", () -> handleMDNCreation(request, mailboxSession)); }
@Override public InputStream read(BlobId blobId) { return metricFactory .runPublishingTimerMetric(READ_TIMER_NAME, () -> blobStoreImpl.read(blobId)); } }
@Override public CompletableFuture<byte[]> readBytes(BlobId blobId) { return metricFactory .runPublishingTimerMetric(READ_BYTES_TIMER_NAME, blobStoreImpl.readBytes(blobId)); }
@Override public Stream<JmapResponse> process(JmapRequest request, ClientId clientId, MailboxSession mailboxSession) { Preconditions.checkNotNull(request); Preconditions.checkNotNull(clientId); Preconditions.checkNotNull(mailboxSession); Preconditions.checkArgument(request instanceof GetFilterRequest); GetFilterRequest filterRequest = (GetFilterRequest) request; return metricFactory.runPublishingTimerMetric(JMAP_PREFIX + METHOD_NAME.getName(), MDCBuilder.create() .addContext(MDCBuilder.ACTION, "GET_FILTER") .wrapArround(() -> process(clientId, mailboxSession, filterRequest))); }
public SpamAssassinResult scanMail(MimeMessage message) throws MessagingException { return metricFactory.runPublishingTimerMetric( "spamAssassin-check", Throwing.supplier( () -> scanMailWithoutAdditionalHeaders(message)) .sneakyThrow()); }
@Override public ParsedContent extractContent(InputStream inputStream, String contentType) throws Exception { return metricFactory.runPublishingTimerMetric("tikaTextExtraction", Throwing.supplier( () -> performContentExtraction(inputStream, contentType)) .sneakyThrow()); }
@Override public SetMessagesResponse process(SetMessagesRequest request, MailboxSession mailboxSession) { return metricFactory.runPublishingTimerMetric(JMAP_PREFIX + "SetMessageDestructionProcessor", () -> delete(request.getDestroy(), mailboxSession) .reduce(SetMessagesResponse.builder(), SetMessagesResponse.Builder::accumulator, SetMessagesResponse.Builder::combiner) .build()); }
@Override public Stream<JmapResponse> process(JmapRequest request, ClientId clientId, MailboxSession mailboxSession) { Preconditions.checkNotNull(request); Preconditions.checkNotNull(clientId); Preconditions.checkNotNull(mailboxSession); Preconditions.checkArgument(request instanceof SetVacationRequest); SetVacationRequest setVacationRequest = (SetVacationRequest) request; return metricFactory.runPublishingTimerMetric(JMAP_PREFIX + METHOD_NAME.getName(), MDCBuilder.create() .addContext(MDCBuilder.ACTION, "SET_VACATION") .addContext("update", setVacationRequest.getUpdate()) .wrapArround( () -> process(clientId, mailboxSession, setVacationRequest))); }
/** * Tell spamd that the given MimeMessage is a ham. * * @param message * The MimeMessage to tell * @throws MessagingException * if an error occured during learning. */ public boolean learnAsHam(InputStream message, String user) throws MessagingException { return metricFactory.runPublishingTimerMetric( "spamAssassin-ham-report", Throwing.supplier( () -> reportMessageAs(message, user, MessageClass.HAM)) .sneakyThrow()); }
@Override public Stream<JmapResponse> process(JmapRequest request, ClientId clientId, MailboxSession mailboxSession) { Preconditions.checkNotNull(request); Preconditions.checkNotNull(clientId); Preconditions.checkNotNull(mailboxSession); Preconditions.checkArgument(request instanceof SetFilterRequest); SetFilterRequest setFilterRequest = (SetFilterRequest) request; return metricFactory.runPublishingTimerMetric(JMAP_PREFIX + METHOD_NAME.getName(), MDCBuilder.create() .addContext(MDCBuilder.ACTION, "SET_FILTER") .addContext("update", setFilterRequest.getSingleton()) .wrapArround( () -> process(clientId, mailboxSession, setFilterRequest))); }
/** * Tell spamd that the given MimeMessage is a spam. * * @param message * The MimeMessage to tell * @throws MessagingException * if an error occured during learning. */ public boolean learnAsSpam(InputStream message, String user) throws MessagingException { return metricFactory.runPublishingTimerMetric( "spamAssassin-spam-report", Throwing.supplier( () -> reportMessageAs(message, user, MessageClass.SPAM)) .sneakyThrow()); }
/** * Scan a MimeMessage for spam by passing it to spamd. * * @param message * The MimeMessage to scan * @return true if spam otherwise false * @throws MessagingException * if an error on scanning is detected */ public SpamAssassinResult scanMail(MimeMessage message, String user) throws MessagingException { return metricFactory.runPublishingTimerMetric( "spamAssassin-check", Throwing.supplier( () -> scanMailWithAdditionalHeaders(message, "User: " + user)) .sneakyThrow()); }
@Override public Stream<JmapResponse> process(JmapRequest request, ClientId clientId, MailboxSession mailboxSession) { Preconditions.checkNotNull(request); Preconditions.checkNotNull(clientId); Preconditions.checkNotNull(mailboxSession); Preconditions.checkArgument(request instanceof GetVacationRequest); return metricFactory.runPublishingTimerMetric(JMAP_PREFIX + METHOD_NAME.getName(), MDCBuilder.create() .addContext(MDCBuilder.ACTION, "VACATION") .wrapArround( () -> Stream.of(JmapResponse.builder() .clientId(clientId) .responseName(RESPONSE_NAME) .response(process(mailboxSession)) .build()))); }
@Override public Stream<JmapResponse> process(JmapRequest request, ClientId clientId, MailboxSession mailboxSession) { Preconditions.checkNotNull(request); Preconditions.checkNotNull(clientId); Preconditions.checkNotNull(mailboxSession); Preconditions.checkArgument(request instanceof SetMailboxesRequest); SetMailboxesRequest setMailboxesRequest = (SetMailboxesRequest) request; return metricFactory.runPublishingTimerMetric(JMAP_PREFIX + METHOD_NAME.getName(), MDCBuilder.create() .addContext(MDCBuilder.ACTION, "SET_MAILBOXES") .addContext("create", setMailboxesRequest.getCreate()) .addContext("update", setMailboxesRequest.getUpdate()) .addContext("destroy", setMailboxesRequest.getDestroy()) .wrapArround( () -> Stream.of( JmapResponse.builder().clientId(clientId) .response(setMailboxesResponse(setMailboxesRequest, mailboxSession)) .responseName(RESPONSE_NAME) .build()))); }
@Override public Stream<JmapResponse> process(JmapRequest request, ClientId clientId, MailboxSession mailboxSession) { Preconditions.checkArgument(request instanceof GetMailboxesRequest); GetMailboxesRequest mailboxesRequest = (GetMailboxesRequest) request; return metricFactory.runPublishingTimerMetric(JMAP_PREFIX + METHOD_NAME.getName(), MDCBuilder.create() .addContext(MDCBuilder.ACTION, "GET_MAILBOXES") .addContext("accountId", mailboxesRequest.getAccountId()) .addContext("mailboxIds", mailboxesRequest.getIds()) .addContext("properties", mailboxesRequest.getProperties()) .wrapArround(() -> process(clientId, mailboxSession, mailboxesRequest))); }
@Override public Stream<JmapResponse> process(JmapRequest request, ClientId clientId, MailboxSession mailboxSession) { Preconditions.checkArgument(request instanceof SetMessagesRequest); SetMessagesRequest setMessagesRequest = (SetMessagesRequest) request; return metricFactory.runPublishingTimerMetric(JMAP_PREFIX + METHOD_NAME.getName(), MDCBuilder.create() .addContext(MDCBuilder.ACTION, "SET_MESSAGES") .addContext("accountId", setMessagesRequest.getAccountId()) .addContext("create", setMessagesRequest.getCreate()) .addContext("destroy", setMessagesRequest.getDestroy()) .addContext("ifInState", setMessagesRequest.getIfInState()) .wrapArround( () -> Stream.of( JmapResponse.builder().clientId(clientId) .response(setMessagesResponse(setMessagesRequest, mailboxSession)) .responseName(RESPONSE_NAME) .build()))); }