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