List of usage examples for org.springframework.core.io InputStreamSource InputStreamSource
InputStreamSource
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()); } }