Details
Description
camel-cxf producer does not support attachments, for example:
Where:
<route>
<from uri="direct://http"/>
<to uri="cxfrs://http://localhost:9002"/>
</route>
a send like the following should be supported.
Exchange exchange = template.send("direct://http", new Processor() {
public void process(Exchange exchange) throws Exception
{ exchange.setPattern(ExchangePattern.InOut); Message inMessage = exchange.getIn(); inMessage.setHeader(CxfConstants.CAMEL_CXF_RS_USING_HTTP_API, Boolean.TRUE); inMessage.setHeader(Exchange.HTTP_METHOD, "PUT"); inMessage.setHeader(Exchange.CONTENT_TYPE, "multipart/related"); inMessage.setHeader(Exchange.HTTP_PATH, "/customerservice/multicustomers"); inMessage.setBody(null); inMessage.addAttachment("p1", new DataHandler(new ByteArrayDataSource("p1 content".getBytes(), "text/plain")) ); inMessage.addAttachment("p2", new DataHandler(new ByteArrayDataSource("p2 content".getBytes(), "text/plain")) ); }});
I am enclosing a suggested change to org.apache.camel.component.cxf.jaxrs.DefaultCxfRsBinding that supports attachments for the cxfrs producer.
Note support for attachments by the cxfrs consumer component may require a separate defect.