The decompose method of the class org.switchyard.component.soap.composer.SOAPMessageComposer does not make use of the _mtomEnabled && _xopExpand flags.
This results to the behaviour that a client calling an switchyard endpoint with MTOM/xop gets a result with inlined base64 encoded attachments with is no symmetrical behaviour. I would expect that the decompose method converts the attachments back to MTOM.
To clarify the case:
- Switchyard offers a SOAP Webservice with mtom enabled.
- The client sends a request with correct mtom/xop attachments.
(To process the attachments in our switchyard project we now have to set xopExpand=true due to https://issues.jboss.org/browse/ENTESB-5161)
- The client expects mtom/xop in the response, but receives attachments as base64 inline. (which, as a side effect, also means that the server has to include the base64 attachment for the calculation of the signature/encryption...)
To be symmetrical the decompose method should have a counterpart to the call of 'bodyNode = SOAPUtil.expandXop((Element)bodyNode, attachments)' in the compose method: