Esempio n. 1
0
  @Override
  public boolean accept(String from, String recipient) {
    if (autoAccept) {
      return true;
    }

    StringResult result = new StringResult();
    marshaller.marshal(createAcceptRequest(from, recipient), result);
    Message response = getEndpointAdapter().handleMessage(new DefaultMessage(result.toString()));

    if (response == null || response.getPayload() == null) {
      throw new CitrusRuntimeException(
          "Did not receive accept response. Missing accept response because autoAccept is disabled.");
    }

    AcceptResponse acceptResponse = null;
    if (response.getPayload() instanceof AcceptResponse) {
      acceptResponse = (AcceptResponse) response.getPayload();
    } else if (response.getPayload() instanceof String) {
      acceptResponse = (AcceptResponse) marshaller.unmarshal(response.getPayload(Source.class));
    }

    if (acceptResponse == null) {
      throw new CitrusRuntimeException("Unable to read accept response from payload: " + response);
    }

    return acceptResponse.isAccept();
  }
Esempio n. 2
0
  @Override
  public void deliver(String from, String recipient, InputStream data) {
    try {
      MimeMailMessage mimeMailMessage = new MimeMailMessage(new MimeMessage(getSession(), data));
      Message request =
          messageConverter.convertInbound(mimeMailMessage, getEndpointConfiguration());
      Message response = invokeEndpointAdapter(request);

      if (response != null && response.getPayload() != null) {
        MailResponse mailResponse = null;
        if (response.getPayload() instanceof MailResponse) {
          mailResponse = (MailResponse) response.getPayload();
        } else if (response.getPayload() instanceof String) {
          mailResponse = (MailResponse) marshaller.unmarshal(response.getPayload(Source.class));
        }

        if (mailResponse != null && mailResponse.getCode() != MailResponse.OK_CODE) {
          throw new RejectException(mailResponse.getCode(), mailResponse.getMessage());
        }
      }
    } catch (MessagingException e) {
      throw new CitrusRuntimeException(e);
    }
  }