use of com.sun.xml.ws.message.MimeAttachmentSet in project metro-jax-ws by eclipse-ee4j.
the class SwACodec method decode.
@Override
protected void decode(MimeMultipartParser mpp, Packet packet) throws IOException {
// TODO: handle attachments correctly
Attachment root = mpp.getRootPart();
Codec rootCodec = getMimeRootCodec(packet);
if (rootCodec instanceof RootOnlyCodec) {
((RootOnlyCodec) rootCodec).decode(root.asInputStream(), root.getContentType(), packet, new MimeAttachmentSet(mpp));
} else {
rootCodec.decode(root.asInputStream(), root.getContentType(), packet);
Map<String, Attachment> atts = mpp.getAttachmentParts();
for (Map.Entry<String, Attachment> att : atts.entrySet()) {
packet.getMessage().getAttachments().add(att.getValue());
}
}
}
use of com.sun.xml.ws.message.MimeAttachmentSet in project metro-jax-ws by eclipse-ee4j.
the class MtomCodec method decode.
@Override
protected void decode(MimeMultipartParser mpp, Packet packet) throws IOException {
// TODO shouldn't we check for SOAP1.1/SOAP1.2 and throw
// TODO UnsupportedMediaException like StreamSOAPCodec
String charset = null;
String ct = mpp.getRootPart().getContentType();
if (ct != null) {
charset = new ContentTypeImpl(ct).getCharSet();
}
if (charset != null && !Charset.isSupported(charset)) {
throw new UnsupportedMediaException(charset);
}
if (charset != null) {
packet.invocationProperties.put(DECODED_MESSAGE_CHARSET, charset);
} else {
packet.invocationProperties.remove(DECODED_MESSAGE_CHARSET);
}
// we'd like to reuse those reader objects but unfortunately decoder may be reused
// before the decoded message is completely used.
XMLStreamReader mtomReader = new MtomXMLStreamReaderEx(mpp, XMLStreamReaderFactory.create(null, mpp.getRootPart().asInputStream(), charset, true));
packet.setMessage(codec.decode(mtomReader, new MimeAttachmentSet(mpp)));
packet.setMtomFeature(mtomFeature);
packet.setContentType(mpp.getContentType());
}
Aggregations