You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by Peter Monks <pm...@alfresco.com> on 2012/10/31 10:29:31 UTC

"find or create" service

G'day everyone,

Having worked on a couple of CMIS clients now I've noticed a recurring pattern that isn't directly supported by CMIS, but which might be worth consideration for a future version of the spec.  Basically I often find myself writing "find or create" logic (e.g. for creating a shared folder or configuration document of some kind), but because there's no way to do this atomically in CMIS the client side logic ends up being "find, if not found attempt to create, if duplicate error find again".

Any thoughts on adding an atomic "find or create" service as a requirement for a future version of the spec?

In the short term, I also wondered whether it'd be worth adding this client side logic ("find, create, find again on error") to the CMIS client libraries, so that at least this boilerplate logic isn't repeated across numerous clients.  Any thoughts on that as a stop-gap?

Cheers,
Peter


Re: "find or create" service

Posted by Florian Müller <fm...@apache.org>.
 Hi Peter,

 Thanks for your feedback.

 Suggestions for the CMIS specification should go to the CMIS Comments 
 mailing list [1]. They are tracked there and are evaluated for the next 
 spec release.

 We have a client utility package 
 (org.apache.chemistry.opencmis.client.util), which at the moment hosts a 
 few convenience methods (class FileUtils). Would the pattern that you 
 described fit into this context (maybe in a different class)?


 Cheers,

 Florian


 [1] 
 https://www.oasis-open.org/committees/comments/index.php?wg_abbrev=cmis



> G'day everyone,
>
> Having worked on a couple of CMIS clients now I've noticed a
> recurring pattern that isn't directly supported by CMIS, but which
> might be worth consideration for a future version of the spec.
> Basically I often find myself writing "find or create" logic (e.g. 
> for
> creating a shared folder or configuration document of some kind), but
> because there's no way to do this atomically in CMIS the client side
> logic ends up being "find, if not found attempt to create, if
> duplicate error find again".
>
> Any thoughts on adding an atomic "find or create" service as a
> requirement for a future version of the spec?
>
> In the short term, I also wondered whether it'd be worth adding this
> client side logic ("find, create, find again on error") to the CMIS
> client libraries, so that at least this boilerplate logic isn't
> repeated across numerous clients.  Any thoughts on that as a 
> stop-gap?
>
> Cheers,
> Peter