You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@chemistry.apache.org by Alexander Chow <al...@liferay.com> on 2011/03/31 01:28:00 UTC

Sharepoint and canDeleteTreeSpecified

Hi all, 

So, we are trying to use OpenCMIS 0.2.0 to access a Sharepoint 2010 repository and noticed that we can't call Folder.deleteTree(). We get the following stacktrace snippet:

Caused by: org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException: Method Not Allowed
at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:405)
at org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.deleteTree(ObjectServiceImpl.java:370)
at org.apache.chemistry.opencmis.client.runtime.FolderImpl.deleteTree(FolderImpl.java:176)
...

Upon further investigation, it turns out that indeed the allowableActions entry "canDeleteTree" is FALSE. But there seems to be another entry that I am not familiar with and can't seem to find in the CMIS 1.0 spec... "canDeleteTreeSpecified", which is TRUE.

<allowableActions xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">
<anyAttr i:nil="true" xmlns:a="http://schemas.datacontract.org/2004/07/System.Xml" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/"></anyAttr>
<any i:nil="true" xmlns:a="http://schemas.datacontract.org/2004/07/System.Xml" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/"></any>
...
<canDeleteObject xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">true</canDeleteObject>
<canDeleteObjectSpecified xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">true</canDeleteObjectSpecified>
<canDeleteTreeSpecified xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">true</canDeleteTreeSpecified>
...
<canDeleteContentStream xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">false</canDeleteContentStream>
<canDeleteTree xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">false</canDeleteTree>
...
</allowableActions>


Incidentally, I have also noticed that the canDeleteTreeSpecified seems to be in the DotCMIS code:

http://svn.apache.org/repos/asf/chemistry/dotcmis/trunk/DotCMIS/binding/converter.cs

Can somebody give some light as to what Sharepoint (and DotCMIS) is doing here? Are we unable to delete the trees of a folder? Or is there some part of the spec which I am not familiar with? Incidentally, it seems as though the CMIS workbench does not work either with Sharepoint.

Thanks,

Alex 

Re: Sharepoint and canDeleteTreeSpecified

Posted by Alexander Chow <al...@liferay.com>.
Hi Florian,

Thanks for the clarification. The canDeleteTreeSpecified IS being passed back in the XML (and using the CMIS namespace!) but, as you say, OpenCMIS ignores it.

So what that means then is that Sharepoint really doesn't allow deleteTree? That is really weird. That means I need to actually walk the tree to delete the entries, I suppose. That's going to be expensive.

Thanks,
Alex
On Thursday, March 31, 2011 at 10:20 AM, Florian Müller wrote: 
> Hi Alex,
> 
> canDeleteTreeSpecified is a class member generated by the .NET XML serialization framework. It indicates if the tag exists in the XML document or not. It has nothing to do with the CMIS specification. 
> It shouldn't show up IN the XML, thought. Only Microsoft can answer why it is there. OpenCMIS ignores it.
> 
> The CMIS Workbench does work with SharePoint. There are a few issues that are caused by Microsofts CMIS implementation. The CMIS Workbench works best with the AtomPub binding. If you can, turn off NTLM and turn on basic authentication on the SharePoint end. 
> 
> 
> Cheers,
> 
> Florian
> 
> 
> On 31/03/2011 00:28, Alexander Chow wrote:
> > Hi all,
> > 
> > So, we are trying to use OpenCMIS 0.2.0 to access a Sharepoint 2010 repository and noticed that we can't call Folder.deleteTree(). We get the following stacktrace snippet:
> > 
> > Caused by: org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException: Method Not Allowed
> > at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:405)
> > at org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.deleteTree(ObjectServiceImpl.java:370)
> > at org.apache.chemistry.opencmis.client.runtime.FolderImpl.deleteTree(FolderImpl.java:176)
> > ...
> > 
> > Upon further investigation, it turns out that indeed the allowableActions entry "canDeleteTree" is FALSE. But there seems to be another entry that I am not familiar with and can't seem to find in the CMIS 1.0 spec... "canDeleteTreeSpecified", which is TRUE.
> > 
> > <allowableActions xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">
> > <anyAttr i:nil="true" xmlns:a="http://schemas.datacontract.org/2004/07/System.Xml" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/"></anyAttr>
> > <any i:nil="true" xmlns:a="http://schemas.datacontract.org/2004/07/System.Xml" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/"></any>
> > ...
> > <canDeleteObject xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">true</canDeleteObject>
> > <canDeleteObjectSpecified xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">true</canDeleteObjectSpecified>
> > <canDeleteTreeSpecified xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">true</canDeleteTreeSpecified>
> > ...
> > <canDeleteContentStream xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">false</canDeleteContentStream>
> > <canDeleteTree xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">false</canDeleteTree>
> > ...
> > </allowableActions>
> > 
> > 
> > Incidentally, I have also noticed that the canDeleteTreeSpecified seems to be in the DotCMIS code:
> > 
> > http://svn.apache.org/repos/asf/chemistry/dotcmis/trunk/DotCMIS/binding/converter.cs
> > 
> > Can somebody give some light as to what Sharepoint (and DotCMIS) is doing here? Are we unable to delete the trees of a folder? Or is there some part of the spec which I am not familiar with? Incidentally, it seems as though the CMIS workbench does not work either with Sharepoint.
> > 
> > Thanks,
> > 
> > Alex
> 

Re: Sharepoint and canDeleteTreeSpecified

Posted by Florian Müller <fl...@alfresco.com>.
Hi Alex,

canDeleteTreeSpecified is a class member generated by the .NET XML serialization framework. It indicates if the tag exists in the XML document or not. It has nothing to do with the CMIS specification. 
It shouldn't show up IN the XML, thought. Only Microsoft can answer why it is there. OpenCMIS ignores it.

The CMIS Workbench does work with SharePoint. There are a few issues that are caused by Microsofts CMIS implementation. The CMIS Workbench works best with the AtomPub binding. If you can, turn off NTLM and turn on basic authentication on the SharePoint end. 


Cheers,

Florian


On 31/03/2011 00:28, Alexander Chow wrote:
> Hi all,
> 
> So, we are trying to use OpenCMIS 0.2.0 to access a Sharepoint 2010 repository and noticed that we can't call Folder.deleteTree(). We get the following stacktrace snippet:
> 
> Caused by: org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException: Method Not Allowed
> at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:405)
> at org.apache.chemistry.opencmis.client.bindings.spi.atompub.ObjectServiceImpl.deleteTree(ObjectServiceImpl.java:370)
> at org.apache.chemistry.opencmis.client.runtime.FolderImpl.deleteTree(FolderImpl.java:176)
> ...
> 
> Upon further investigation, it turns out that indeed the allowableActions entry "canDeleteTree" is FALSE. But there seems to be another entry that I am not familiar with and can't seem to find in the CMIS 1.0 spec... "canDeleteTreeSpecified", which is TRUE.
> 
> <allowableActions xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">
> <anyAttr i:nil="true" xmlns:a="http://schemas.datacontract.org/2004/07/System.Xml" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/"></anyAttr>
> <any i:nil="true" xmlns:a="http://schemas.datacontract.org/2004/07/System.Xml" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/"></any>
> ...
> <canDeleteObject xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">true</canDeleteObject>
> <canDeleteObjectSpecified xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">true</canDeleteObjectSpecified>
> <canDeleteTreeSpecified xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">true</canDeleteTreeSpecified>
> ...
> <canDeleteContentStream xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">false</canDeleteContentStream>
> <canDeleteTree xmlns="http://docs.oasis-open.org/ns/cmis/core/200908/">false</canDeleteTree>
> ...
> </allowableActions>
> 
> 
> Incidentally, I have also noticed that the canDeleteTreeSpecified seems to be in the DotCMIS code:
> 
> http://svn.apache.org/repos/asf/chemistry/dotcmis/trunk/DotCMIS/binding/converter.cs
> 
> Can somebody give some light as to what Sharepoint (and DotCMIS) is doing here? Are we unable to delete the trees of a folder? Or is there some part of the spec which I am not familiar with? Incidentally, it seems as though the CMIS workbench does not work either with Sharepoint.
> 
> Thanks,
> 
> Alex