Example usage for org.springframework.core.io InputStreamSource InputStreamSource

List of usage examples for org.springframework.core.io InputStreamSource InputStreamSource

Introduction

In this page you can find the example usage for org.springframework.core.io InputStreamSource InputStreamSource.

Prototype

InputStreamSource

Source Link

Usage

From source file:com.consol.citrus.samples.bookstore.endpoint.interceptor.BookAbstractAttachmentEndpointInterceptor.java

@Override
public boolean handleResponse(MessageContext messageContext, Object endpoint) throws Exception {
    SoapMessage response = (SoapMessage) messageContext.getResponse();

    if (endpoint.equals(bookAbstractInboundGateway)) {
        response.addAttachment("book-abstract", new InputStreamSource() {
            public InputStream getInputStream() throws IOException {
                return bookAbstractResource.getInputStream();
            }/* w ww.  j a v  a2s.com*/
        }, "text/plain");
    }

    return true;
}

From source file:org.openvpms.web.component.error.ErrorReporter.java

/**
 * Reports an error./*from   www  . ja  v a2 s  .  c o  m*/
 *
 * @param report  the error report
 * @param replyTo the reply-to email address. May be {@code null}
 */
public void report(final ErrorReport report, String replyTo) {
    try {
        JavaMailSender sender = ServiceHelper.getMailSender();
        MimeMessage message = sender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        String subject = report.getVersion() + ": " + report.getMessage();
        helper.setSubject(subject);
        helper.setFrom(from);
        helper.setTo(to);
        if (!StringUtils.isEmpty(replyTo)) {
            helper.setReplyTo(replyTo);
        }
        String text = getText(report);
        if (text != null) {
            helper.setText(text);
        }
        InputStreamSource source = new InputStreamSource() {
            public InputStream getInputStream() {
                return new ByteArrayInputStream(report.toXML().getBytes());
            }
        };
        helper.addAttachment("error-report.xml", source, DocFormats.XML_TYPE);
        sender.send(message);
    } catch (Throwable exception) {
        log.error(exception, exception);
        ErrorDialog.show(Messages.get("errorreportdialog.senderror"));
    }
}

From source file:org.openvpms.web.component.mail.AbstractMailer.java

/**
 * Helper to add an attachment.//w ww .j a v  a2s.  c om
 *
 * @param helper   the mime message helper
 * @param document the document to attach
 * @throws MessagingException for any error
 */
protected void addAttachment(MimeMessageHelper helper, final Document document) throws MessagingException {
    final DocumentHandler handler = handlers.get(document.getName(), document.getArchetypeId().getShortName(),
            document.getMimeType());
    helper.addAttachment(document.getName(), new InputStreamSource() {
        public InputStream getInputStream() {
            return handler.getContent(document);
        }
    });
}

From source file:org.openvpms.web.workspace.reporting.reminder.ReminderEmailProcessor.java

/**
 * Processes a list of reminder events.//from ww w  .  j ava2 s  .c  o  m
 *
 * @param events           the events
 * @param shortName        the report archetype short name, used to select the document template if none specified
 * @param documentTemplate the document template to use. May be {@code null}
 */
protected void process(List<ReminderEvent> events, String shortName, DocumentTemplate documentTemplate) {
    ReminderEvent event = events.get(0);
    Contact contact = event.getContact();
    DocumentTemplateLocator locator = new ContextDocumentTemplateLocator(documentTemplate, shortName,
            getContext());
    documentTemplate = locator.getTemplate();
    if (documentTemplate == null) {
        throw new ReportingException(ReminderMissingDocTemplate);
    }

    try {
        EmailAddress from = addresses.getAddress(event.getCustomer());
        IMObjectBean bean = new IMObjectBean(contact);
        String to = bean.getString("emailAddress");

        MimeMessage message = sender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setValidateAddresses(true);
        helper.setFrom(from.getAddress(), from.getName());
        helper.setTo(to);

        String subject = documentTemplate.getEmailSubject();
        if (StringUtils.isEmpty(subject)) {
            subject = documentTemplate.getName();
        }
        String body = documentTemplate.getEmailText();
        if (StringUtils.isEmpty(body)) {
            throw new ReportingException(TemplateMissingEmailText, documentTemplate.getName());
        }
        helper.setText(body);

        final Document reminder = createReport(events, documentTemplate);
        final DocumentHandler handler = handlers.get(reminder.getName(),
                reminder.getArchetypeId().getShortName(), reminder.getMimeType());

        helper.setSubject(subject);
        helper.addAttachment(reminder.getName(), new InputStreamSource() {
            public InputStream getInputStream() {
                return handler.getContent(reminder);
            }
        });
        sender.send(message);
    } catch (ArchetypeServiceException exception) {
        throw exception;
    } catch (ReminderProcessorException exception) {
        throw exception;
    } catch (ReportingException exception) {
        throw exception;
    } catch (Throwable exception) {
        throw new ReportingException(FailedToProcessReminder, exception, exception.getMessage());
    }
}

From source file:org.openvpms.web.workspace.reporting.statement.StatementEmailProcessor.java

/**
 * Processes a statement.//from w ww . j  a v  a  2s . c  o  m
 *
 * @param statement the event to process
 * @throws OpenVPMSException for any error
 */
public void process(Statement statement) {
    try {
        MimeMessage message = sender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        List<Contact> contacts = statement.getContacts();
        if (contacts.isEmpty()) {
            throw new StatementProcessorException(NoContact, statement.getCustomer());
        }
        Contact contact = contacts.get(0);
        IMObjectBean bean = new IMObjectBean(contact);
        if (!bean.isA(ContactArchetypes.EMAIL)) {
            throw new StatementProcessorException(NoContact, statement.getCustomer());
        }
        String to = bean.getString("emailAddress");
        EmailAddress email = addresses.getAddress(statement.getCustomer());
        helper.setFrom(email.getAddress(), email.getName());
        helper.setTo(to);
        helper.setSubject(emailSubject);
        helper.setText(emailText);
        Iterable<IMObject> objects = getActs(statement);
        Reporter reporter = ReporterFactory.create(objects, template, TemplatedReporter.class);
        reporter.setParameters(getParameters(statement));
        reporter.setFields(fields);
        final Document doc = reporter.getDocument(DocFormats.PDF_TYPE, true);

        final DocumentHandler handler = handlers.get(doc.getName(), doc.getArchetypeId().getShortName(),
                doc.getMimeType());

        helper.addAttachment(doc.getName(), new InputStreamSource() {
            public InputStream getInputStream() {
                return handler.getContent(doc);
            }
        });
        sender.send(message);
        if (!statement.isPreview() && !statement.isPrinted()) {
            setPrinted(statement);
        }
    } catch (ArchetypeServiceException exception) {
        throw exception;
    } catch (StatementProcessorException exception) {
        throw exception;
    } catch (Throwable exception) {
        throw new StatementProcessorException(exception, FailedToProcessStatement, exception.getMessage());
    }
}