You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2014/08/26 18:31:50 UTC
svn commit: r1620653 - in /chemistry/opencmis/trunk:
chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/
chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/mai...
Author: fmui
Date: Tue Aug 26 16:31:49 2014
New Revision: 1620653
URL: http://svn.apache.org/r1620653
Log:
CMIS-839: moveObject() workaround for SharePoint 2010
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-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/SessionParameter.java
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/resources/configs/sharepoint-2010-atompub.properties
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=1620653&r1=1620652&r2=1620653&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 Tue Aug 26 16:31:49 2014
@@ -310,7 +310,7 @@ public class ObjectServiceImpl extends A
Properties properties, ExtensionsData extension) {
// we need an object id
if ((objectId == null) || (objectId.getValue() == null) || (objectId.getValue().length() == 0)) {
- throw new CmisInvalidArgumentException("Object id must be set!");
+ throw new CmisInvalidArgumentException("Object ID must be set!");
}
// find the link
@@ -658,12 +658,12 @@ public class ObjectServiceImpl extends A
public void moveObject(String repositoryId, Holder<String> objectId, String targetFolderId, String sourceFolderId,
ExtensionsData extension) {
- if ((objectId == null) || (objectId.getValue() == null) || (objectId.getValue().length() == 0)) {
- throw new CmisInvalidArgumentException("Object id must be set!");
+ if (objectId == null || objectId.getValue() == null || objectId.getValue().length() == 0) {
+ throw new CmisInvalidArgumentException("Object ID must be set!");
}
- if ((targetFolderId == null) || (targetFolderId.length() == 0) || (sourceFolderId == null)
- || (sourceFolderId.length() == 0)) {
+ if (targetFolderId == null || targetFolderId.length() == 0 || sourceFolderId == null
+ || sourceFolderId.length() == 0) {
throw new CmisInvalidArgumentException("Source and target folder must be set!");
}
@@ -677,6 +677,13 @@ public class ObjectServiceImpl extends A
UrlBuilder url = new UrlBuilder(link);
url.addParameter(Constants.PARAM_SOURCE_FOLDER_ID, sourceFolderId);
+ // workaround for SharePoint 2010 - see CMIS-839
+ boolean objectIdOnMove = getSession().get(SessionParameter.INCLUDE_OBJECTID_URL_PARAM_ON_MOVE, false);
+ if (objectIdOnMove) {
+ url.addParameter("objectId", objectId.getValue());
+ url.addParameter("targetFolderId", targetFolderId);
+ }
+
// set up object and writer
final AtomEntryWriter entryWriter = new AtomEntryWriter(createIdObject(objectId.getValue()),
getCmisVersion(repositoryId));
@@ -688,6 +695,13 @@ public class ObjectServiceImpl extends A
}
});
+ // workaround for SharePoint 2010 - see CMIS-839
+ if (objectIdOnMove) {
+ // SharePoint doesn't return a new object ID
+ // we assume that the object ID hasn't changed
+ return;
+ }
+
// parse the response
AtomEntry entry = parse(resp.getStream(), AtomEntry.class);
Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/SessionParameter.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/SessionParameter.java?rev=1620653&r1=1620652&r2=1620653&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/SessionParameter.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/SessionParameter.java Tue Aug 26 16:31:49 2014
@@ -519,6 +519,15 @@ package org.apache.chemistry.opencmis.co
* <td>"false"</td>
* </tr>
* <tr>
+ * <td>{@link #INCLUDE_OBJECTID_URL_PARAM_ON_MOVE}</td>
+ * <td>Defines if the object ID should be added to the move URL<br>
+ * (Workaround for SharePoint 2010)</td>
+ * <td>AtomPub</td>
+ * <td>"true", "false"</td>
+ * <td>no</td>
+ * <td>"false"</td>
+ * </tr>
+ * <tr>
* <td>{@link #OMIT_CHANGE_TOKENS}</td>
* <td>Defines if the change token should be omitted for updating calls<br>
* (Workaround for SharePoint 2010 and SharePoint 2013)</td>
@@ -672,5 +681,6 @@ public final class SessionParameter {
// --- workarounds ---
public static final String INCLUDE_OBJECTID_URL_PARAM_ON_CHECKOUT = "org.apache.chemistry.opencmis.workaround.includeObjectIdOnCheckout";
+ public static final String INCLUDE_OBJECTID_URL_PARAM_ON_MOVE = "org.apache.chemistry.opencmis.workaround.includeObjectIdOnMove";
public static final String OMIT_CHANGE_TOKENS = "org.apache.chemistry.opencmis.workaround.omitChangeTokens";
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/resources/configs/sharepoint-2010-atompub.properties
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/resources/configs/sharepoint-2010-atompub.properties?rev=1620653&r1=1620652&r2=1620653&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/resources/configs/sharepoint-2010-atompub.properties (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/resources/configs/sharepoint-2010-atompub.properties Tue Aug 26 16:31:49 2014
@@ -28,6 +28,7 @@ org.apache.chemistry.opencmis.user=<doma
org.apache.chemistry.opencmis.password=<password>
org.apache.chemistry.opencmis.workaround.includeObjectIdOnCheckout=true
+org.apache.chemistry.opencmis.workaround.includeObjectIdOnMove=true
org.apache.chemistry.opencmis.workaround.omitChangeTokens=true
cmis.workbench.folder.filter=*
\ No newline at end of file