Uploaded image for project: 'Axiom'
  1. Axiom
  2. AXIOM-416

Enable streaming of the root part of a MIME message using the Attachments API

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.2.13
    • Fix Version/s: 1.2.14
    • Component/s: API
    • Labels:
      None

      Description

      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.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                veithen Andreas Veithen
                Reporter:
                veithen Andreas Veithen
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: