Here are some changes I made to Attachments implementation. (diffs attached)
***************************************************************** AttachmentsImpl.java: removed reference to Message object. When Message gets SOAPPart it sets itself as a parent. added orderedAttachments list that keeps local copy of attachments. attachments HashMap now holds CID & Content-Location -> Part mappings removed MultiPartRelatedInputStream local var, attachment references are copied from there to local list So that searches and serialization does not have to worry about 2 lists. Added removeAttachmentPart(String reference) method. Added addAttachmentPart(Part newPart) method. fixed getAttachmentByReference to find new attachments Added setRootPart(Part rootPart) used by Message class ***************************************************************** Attachments.java: Added addAttachmentPart, removeAttachmentPart, setRootPart method definitions ***************************************************************** AttachmentPart.java: removed reference to Message object made getActiviationDataHandler a public method. This does not mean that Attachment support is required to build. But it is highly convenient for clients to use. ***************************************************************** SOAPPart.java: moved reference to Message from parent Part class here, as private Message msgObject; Added get/setMessage() methods. When String <--> byte[] conversion is done, made it use UTF-8 character set, since this is what content type is hard coded to. Just a temp fix, until proper character set support is added. ***************************************************************** Part.java: removed reference to Message object. Added method to setContentId() of the Part. While this may not the optimal way to manage attachments, it still should be present, since there are some applications that require this. ***************************************************************** MimeUtils.java: changed createMP(...) method to take Collection of parts rather than a map. ***************************************************************** Message.java: Added ability to define alternate Attachments Implementation. changed serialization to register self with SOAPPart, and add *new* SOAPParts to Attachments for proper serialization. ***************************************************************** -Taras
AttachmentsImpl.diff
Description: Binary data
AttachmentPart.diff
Description: Binary data
Attachments.diff
Description: Binary data
Message.diff
Description: Binary data
MimeUtils.diff
Description: Binary data
Part.diff
Description: Binary data
SOAPPart.diff
Description: Binary data