Hi Uwe,

The abilities to stream, buffer in memory, buffer on disk, encrypt, and dealing with attachments in general are implementation details of the JAX-WS framework and not covered by the JAX-WS specification.

OpenCMIS supports streaming if the Sun JAX-WS RI is used. The WSConverter checks for each stream if "read once" is available and use it, if it is available. But it is really easy to break. For example, putting a SOAP Handler in front of the service can force the JAX-WS implementation to read the whole content into memory.

OpenCMIS does not use mimepull directly. It's a dependency of the Sun JAX-WS RI. We can't influence how the Sun JAX-WS RI uses it and when it uses the feature you have mentioned.

The only way to get full control is to develop our own Web Services stack and I doubt that we will do that.


- Florian


Hi,

With Webservice-binding uploaded content gets loaded completely on
the server (either in memory or on disk, depending on the size, as
specified in the StreamingAttachment's memoryThreshold).
This issue has been discussed before in regards to encryption and
configurability of the threshold.
But I wonder why content must be buffered at all.

According to https://mimepull.java.net, streaming should be possible if - "The parts are accessed in the same order as they appear in the stream"
- "The parts are accessed only once."
I believe the read-once condition is complied with by OpenCMIS
(org.apache.chemistry.opencmis.commons.impl.WSConverter).

So why is streaming not possible with OpenCMIS?

Thanks for a short explanation (or even a solution ;-)
Uwe

Reply via email to