[ 
https://issues.apache.org/jira/browse/CAMEL-9868?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen resolved CAMEL-9868.
--------------------------------
       Resolution: Fixed
         Assignee: Stephan Siano
    Fix Version/s: 2.18.0

> Rework Attachment Support in Camel Message and related Interfaces
> -----------------------------------------------------------------
>
>                 Key: CAMEL-9868
>                 URL: https://issues.apache.org/jira/browse/CAMEL-9868
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>    Affects Versions: 3.0.0
>            Reporter: Stephan Siano
>            Assignee: Stephan Siano
>             Fix For: 2.18.0
>
>
> The attachment support in the current (2.x) Camel Message interface is not 
> optimal for two reasons:
> 1. having attachments in the plain Message interface implies that each 
> component supports attachments (which is not the case as only few selected 
> components like camel-mail and camel-cxf support attachments)
> 2. the current interface is essentuially a Map<String,DataHandler>. However 
> real live attachments have headers in addition to the message body (which is 
> essentially represented by the DataHandler) Remark: the DataHandler has 
> support for the Content-Type (which is one of the headers) but has no way to 
> contain the others.
> An (incompatible) better aproach (for Camel 3.0) could look as described 
> below:
> 1. the attachment support is removed from the Message interface and from the 
> default Message implementation.
> 2. A new Interface (e.g. AttachmentCapable) is provided in the API for 
> attachment support (plus another Interface representing the Attachment itself 
> that contains the DataHandler and the headers)
> 3. There should probably be a default message implementation supporting 
> attachments (like DefaultAttachmentMessageImple) which extends 
> DefaultMessageImpl and implements AttachmentCapable
> 4. Components that support attachments like camel-mail (or camel-cxf) can 
> either use that default implementation (as camel-cxf does) or provide their 
> own message implementation that implements AttachmentCapable. This message 
> needs to be instantiated by consumer endpoints (and attachment capable 
> producer endpoints that provide an InOut communication pattern (e.g. 
> camel-cxf for request reply web services that return an attachment). 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to