Before version 1.2.13, Axiom always loaded the root (SOAP) part of a MIME message into memory. Axiom 1.2.13 introduced support for streaming of the root part. If that feature is used, the root part will not be loaded into memory unless an attempt is made to access another part of the MIME message (in which case Axiom buffers the remaining - i.e. unconsumed - content of the root part).
However, this feature is only supported by the OMXMLBuilderFactory#createSOAPModelBuilder(Attachments) and OMXMLBuilderFactory#createSOAPModelBuilder(OMMetaFactory, Attachments) APIs. These methods are not used by Axis2, and cannot be used because Axis2 relies its own API (org.apache.axis2.builder.Builder) to process the root part, in particular to support SwA (while OMXMLBuilderFactory only supports MTOM). To allow Axis2 to take advantage of the feature, it is necessary to introduce a new method in the Attachments class.
The proposal is to add a method with the following signature:
InputStream getRootPartInputStream(boolean preserve)
If preserve == true, the method will behave in the same way as the existing getRootPartInputStream() method. If preserve == false, then streaming will be enabled.