Affects Version/s: OpenCMIS 0.7.0
Fix Version/s: None
There exists a method Document.checkIn(boolean major, Map<String, ?> properties, ContentStream contentStream, String checkinComment); which is used to simultaneously update both the properties and content for the private working copy. Very handy.
However, if one is not modifying a private working copy, then they must perform two separate method calls: CmisObject.updateProperties(Map<String, ?> properties, boolean refresh); and Document.setContentStream(ContentStream contentStream, boolean overwrite, boolean refresh);
If a CMS implementation performs automatic version incrementing upon modifications, this will then result in two version increments, instead of only one when using a private working copy. That is less than ideal.
It would be nice if the CMIS protocol had an atomic operation for this, and if anyone from the Chemistry project is in contact with the CMIS working group, it would make a nice feature for CMIS 1.1 (I can't file this enhancement request in the OASIS JIRA, as it isn't really public)
With the hope that such a protocol feature might be added in the future, or even without such support, it could still be a nice feature for the OpenCMIS client API to provide programmers an easy way to combine those two method calls into one, perhaps by adding a method like:
ObjectId Document.update(Map<String, ?> properties, ContentStream contentStream, boolean overwrite, boolean refresh);