Author: fmui
Date: Wed Aug 29 07:50:41 2012
New Revision: 1378467
URL: http://svn.apache.org/viewvc?rev=1378467&view=rev
Log:
AtomPub: more robust deleteTree behavoir
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/AtomDocumentBase.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/CmisAtomPubServlet.java
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java
URL:
http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java?rev=1378467&r1=1378466&r2=1378467&view=diff
==============================================================================
---
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java
(original)
+++
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java
Wed Aug 29 07:50:41 2012
@@ -371,14 +371,28 @@ public class ObjectServiceImpl extends A
public FailedToDeleteData deleteTree(String repositoryId, String folderId,
Boolean allVersions,
UnfileObject unfileObjects, Boolean continueOnFailure,
ExtensionsData extension) {
- // find the link
- String link = loadLink(repositoryId, folderId, Constants.REL_DOWN,
Constants.MEDIATYPE_DESCENDANTS);
+ // find the down links
+ String link = loadLink(repositoryId, folderId, Constants.REL_DOWN,
null);
+
+ if (link != null) {
+ // found only a children link, but no descendants link
+ // -> try folder tree link
+ link = null;
+ } else {
+ // found no or two down links
+ // -> get only the descendants link
+ link = loadLink(repositoryId, folderId, Constants.REL_DOWN,
Constants.MEDIATYPE_DESCENDANTS);
+ }
if (link == null) {
link = loadLink(repositoryId, folderId, Constants.REL_FOLDERTREE,
Constants.MEDIATYPE_DESCENDANTS);
}
if (link == null) {
+ link = loadLink(repositoryId, folderId, Constants.REL_FOLDERTREE,
Constants.MEDIATYPE_FEED);
+ }
+
+ if (link == null) {
throwLinkException(repositoryId, folderId, Constants.REL_DOWN,
Constants.MEDIATYPE_DESCENDANTS);
}
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/AtomDocumentBase.java
URL:
http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/AtomDocumentBase.java?rev=1378467&r1=1378466&r2=1378467&view=diff
==============================================================================
---
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/AtomDocumentBase.java
(original)
+++
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/AtomDocumentBase.java
Wed Aug 29 07:50:41 2012
@@ -344,7 +344,7 @@ public abstract class AtomDocumentBase e
public void writeFolderTreeLink(String href) throws XMLStreamException {
writeLink(Constants.REL_FOLDERTREE, href,
- Constants.MEDIATYPE_DESCENDANTS, null);
+ Constants.MEDIATYPE_FEED, null);
}
public void writeTypeUpLink(String href, String type)
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/CmisAtomPubServlet.java
URL:
http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/CmisAtomPubServlet.java?rev=1378467&r1=1378466&r2=1378467&view=diff
==============================================================================
---
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/CmisAtomPubServlet.java
(original)
+++
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/atompub/CmisAtomPubServlet.java
Wed Aug 29 07:50:41 2012
@@ -146,7 +146,9 @@ public class CmisAtomPubServlet extends
dispatcher.addResource(RESOURCE_RELATIONSHIPS, METHOD_POST,
ObjectService.class, "createRelationship");
dispatcher.addResource(RESOURCE_ENTRY, METHOD_PUT,
ObjectService.class, "updateProperties");
dispatcher.addResource(RESOURCE_ENTRY, METHOD_DELETE,
ObjectService.class, "deleteObject");
+ dispatcher.addResource(RESOURCE_CHILDREN, METHOD_DELETE,
NavigationService.class, "deleteTree"); // 1.1
dispatcher.addResource(RESOURCE_DESCENDANTS, METHOD_DELETE,
ObjectService.class, "deleteTree");
+ dispatcher.addResource(RESOURCE_FOLDERTREE, METHOD_DELETE,
ObjectService.class, "deleteTree");
dispatcher.addResource(RESOURCE_CHECKEDOUT, METHOD_POST,
VersioningService.class, "checkOut");
dispatcher.addResource(RESOURCE_VERSIONS, METHOD_GET,
VersioningService.class, "getAllVersions");
dispatcher.addResource(RESOURCE_VERSIONS, METHOD_DELETE,
VersioningService.class, "deleteAllVersions");