use of javax.mail.util.ByteArrayDataSource in project nhin-d by DirectProject.
the class DirectDocuments method toProvideAndRegisterDocumentSetRequestType.
public ProvideAndRegisterDocumentSetRequestType toProvideAndRegisterDocumentSetRequestType() throws IOException {
ProvideAndRegisterDocumentSetRequestType request = new ProvideAndRegisterDocumentSetRequestType();
request.setSubmitObjectsRequest(this.getSubmitObjectsRequest());
for (DirectDocument2 document : documents) {
if (document.getData() != null) {
DataSource source = new ByteArrayDataSource(document.getData(), document.getMetadata().getMimeType());
DataHandler dhnew = new DataHandler(source);
Document pdoc = new Document();
pdoc.setValue(dhnew);
String id = document.getMetadata().getId();
pdoc.setId(id);
request.getDocument().add(pdoc);
}
}
return request;
}
use of javax.mail.util.ByteArrayDataSource in project nhin-d by DirectProject.
the class DefaultXdmXdsTransformer method transform.
/*
* (non-Javadoc)
*
* @see org.nhindirect.transform.XdmXdsTransformer#transform(java.io.File)
*/
@Override
public ProvideAndRegisterDocumentSetRequestType transform(File file) throws TransformationException {
LOGGER.trace("Begin transformation of XDM to XDS (file)");
String docId = null;
ZipFile zipFile = null;
String docName = getDocName(file);
if (docName != null) {
XDM_FILENAME_DATA = docName;
}
ProvideAndRegisterDocumentSetRequestType prsr = new ProvideAndRegisterDocumentSetRequestType();
try {
zipFile = new ZipFile(file, ZipFile.OPEN_READ);
Enumeration<? extends ZipEntry> zipEntries = zipFile.entries();
ZipEntry zipEntry = null;
// load the ZIP archive into memory
while (zipEntries.hasMoreElements()) {
zipEntry = zipEntries.nextElement();
String zname = zipEntry.getName();
LOGGER.trace("Processing a ZipEntry " + zname);
if (!zipEntry.isDirectory()) {
String subsetDirspec = getSubmissionSetDirspec(zipEntry.getName());
// Read metadata
if (matchName(zname, subsetDirspec, XDM_FILENAME_METADATA)) {
ByteArrayOutputStream byteArrayOutputStream = readData(zipFile, zipEntry);
SubmitObjectsRequest submitObjectRequest = (SubmitObjectsRequest) XmlUtils.unmarshal(byteArrayOutputStream.toString(), oasis.names.tc.ebxml_regrep.xsd.lcm._3.ObjectFactory.class);
prsr.setSubmitObjectsRequest(submitObjectRequest);
docId = getDocId(submitObjectRequest);
} else // Read data
if (matchName(zname, subsetDirspec, XDM_FILENAME_DATA)) {
ByteArrayOutputStream byteArrayOutputStream = readData(zipFile, zipEntry);
DataSource source = new ByteArrayDataSource(byteArrayOutputStream.toByteArray(), MimeType.APPLICATION_XML + "; charset=UTF-8");
DataHandler dhnew = new DataHandler(source);
Document pdoc = new Document();
pdoc.setValue(dhnew);
pdoc.setId(docId);
List<Document> docs = prsr.getDocument();
docs.add(pdoc);
}
}
if (!prsr.getDocument().isEmpty()) {
((Document) prsr.getDocument().get(0)).setId(zname);
}
}
zipFile.close();
} catch (Exception e) {
if (LOGGER.isErrorEnabled()) {
LOGGER.error("Unable to complete transformation.", e);
}
throw new TransformationException("Unable to complete transformation.", e);
}
return prsr;
}
use of javax.mail.util.ByteArrayDataSource in project zm-mailbox by Zimbra.
the class JavaMailMimeBodyPart method setContent.
@Override
public void setContent(Object o, String type) throws MessagingException {
if (ZPARSER) {
com.zimbra.common.mime.ContentType ctype = new com.zimbra.common.mime.ContentType(type);
if (o instanceof JavaMailMimeMultipart) {
setContent((Multipart) o);
setHeader("Content-Type", type);
} else if (o instanceof JavaMailMimeMessage) {
replaceInParent(((JavaMailMimeMessage) o).getZimbraMimeMessage());
setHeader("Content-Type", type);
this.jmcontent = o;
} else if (o instanceof String) {
if (ctype.getPrimaryType().equals("text")) {
setText((String) o, ctype.getParameter("charset"), ctype.getSubType());
setHeader("Content-Type", type);
} else {
try {
setDataSource(new ByteArrayDataSource((String) o, type));
} catch (IOException ioe) {
throw new MessagingException("error setting string content", ioe);
}
}
} else {
setDataHandler(new DataHandler(o, type));
}
} else {
super.setContent(o, type);
}
}
use of javax.mail.util.ByteArrayDataSource in project zm-mailbox by Zimbra.
the class JavaMailMimeMessage method setContent.
@Override
public void setContent(Object o, String type) throws MessagingException {
if (ZPARSER) {
com.zimbra.common.mime.ContentType ctype = new com.zimbra.common.mime.ContentType(type);
if (o instanceof JavaMailMimeMultipart) {
setContent((Multipart) o);
setHeader("Content-Type", type);
} else if (o instanceof JavaMailMimeMessage) {
zmessage.setBodyPart(((JavaMailMimeMessage) o).getZimbraMimeMessage());
setHeader("Content-Type", type);
jmcontent = o;
} else if (o instanceof String) {
if (ctype.getPrimaryType().equals("text")) {
setText((String) o, ctype.getParameter("charset"), ctype.getSubType());
setHeader("Content-Type", type);
} else {
try {
setDataSource(new ByteArrayDataSource((String) o, type));
} catch (IOException ioe) {
throw new MessagingException("error setting string content", ioe);
}
}
} else {
setDataHandler(new DataHandler(o, type));
}
} else {
super.setContent(o, type);
}
}
use of javax.mail.util.ByteArrayDataSource in project zm-mailbox by Zimbra.
the class MailboxTestUtil method generateMessageWithAttachment.
public static ParsedMessage generateMessageWithAttachment(String subject) throws Exception {
MimeMessage mm = new Mime.FixedMimeMessage(JMSession.getSession());
mm.setHeader("From", "Vera Oliphant <oli@example.com>");
mm.setHeader("To", "Jimmy Dean <jdean@example.com>");
mm.setHeader("Subject", subject);
mm.setText("Good as gold");
MimeMultipart multi = new ZMimeMultipart("mixed");
ContentDisposition cdisp = new ContentDisposition(Part.ATTACHMENT);
cdisp.setParameter("filename", "fun.txt");
ZMimeBodyPart bp = new ZMimeBodyPart();
// it gets called before setting Content-Type and CTE headers.
try {
bp.setDataHandler(new DataHandler(new ByteArrayDataSource("Feeling attached.", "text/plain")));
} catch (IOException e) {
throw new MessagingException("could not generate mime part content", e);
}
bp.addHeader("Content-Disposition", cdisp.toString());
bp.addHeader("Content-Type", "text/plain");
bp.addHeader("Content-Transfer-Encoding", MimeConstants.ET_8BIT);
multi.addBodyPart(bp);
mm.setContent(multi);
mm.saveChanges();
return new ParsedMessage(mm, false);
}
Aggregations