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 2012/04/24 17:24:12 UTC
svn commit: r1329783 -
/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/
Author: fmui
Date: Tue Apr 24 15:24:12 2012
New Revision: 1329783
URL: http://svn.apache.org/viewvc?rev=1329783&view=rev
Log:
AtomPub client: fixes an issue with adding and removing ACEs during create
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/AbstractAtomPubService.java
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/AclServiceImpl.java
chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java
Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/AbstractAtomPubService.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/AbstractAtomPubService.java?rev=1329783&r1=1329782&r2=1329783&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/AbstractAtomPubService.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/AbstractAtomPubService.java Tue Apr 24 15:24:12 2012
@@ -848,6 +848,29 @@ public abstract class AbstractAtomPubSer
}
/**
+ * Retrieves the ACL of an object.
+ */
+ public Acl getAclInternal(String repositoryId, String objectId, Boolean onlyBasicPermissions,
+ ExtensionsData extension) {
+
+ // find the link
+ String link = loadLink(repositoryId, objectId, Constants.REL_ACL, Constants.MEDIATYPE_ACL);
+
+ if (link == null) {
+ throwLinkException(repositoryId, objectId, Constants.REL_ACL, Constants.MEDIATYPE_ACL);
+ }
+
+ UrlBuilder url = new UrlBuilder(link);
+ url.addParameter(Constants.PARAM_ONLY_BASIC_PERMISSIONS, onlyBasicPermissions);
+
+ // read and parse
+ HttpUtils.Response resp = read(url);
+ AtomAcl acl = parse(resp.getStream(), AtomAcl.class);
+
+ return convert(acl.getACL(), null);
+ }
+
+ /**
* Updates the ACL of an object.
*/
protected AtomAcl updateAcl(String repositoryId, String objectId, Acl acl, AclPropagation aclPropagation) {
Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/AclServiceImpl.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/AclServiceImpl.java?rev=1329783&r1=1329782&r2=1329783&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/AclServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/AclServiceImpl.java Tue Apr 24 15:24:12 2012
@@ -22,19 +22,16 @@ import static org.apache.chemistry.openc
import org.apache.chemistry.opencmis.client.bindings.spi.BindingSession;
import org.apache.chemistry.opencmis.client.bindings.spi.atompub.objects.AtomAcl;
-import org.apache.chemistry.opencmis.client.bindings.spi.http.HttpUtils;
import org.apache.chemistry.opencmis.commons.data.Acl;
import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
import org.apache.chemistry.opencmis.commons.enums.AclPropagation;
-import org.apache.chemistry.opencmis.commons.impl.Constants;
-import org.apache.chemistry.opencmis.commons.impl.UrlBuilder;
import org.apache.chemistry.opencmis.commons.spi.AclService;
/**
* ACL Service AtomPub client.
*/
public class AclServiceImpl extends AbstractAtomPubService implements AclService {
-
+
/**
* Constructor.
*/
@@ -63,24 +60,8 @@ public class AclServiceImpl extends Abst
return result;
}
- public Acl getAcl(String repositoryId, String objectId,
- Boolean onlyBasicPermissions, ExtensionsData extension) {
-
- // find the link
- String link = loadLink(repositoryId, objectId, Constants.REL_ACL, Constants.MEDIATYPE_ACL);
-
- if (link == null) {
- throwLinkException(repositoryId, objectId, Constants.REL_ACL, Constants.MEDIATYPE_ACL);
- }
-
- UrlBuilder url = new UrlBuilder(link);
- url.addParameter(Constants.PARAM_ONLY_BASIC_PERMISSIONS, onlyBasicPermissions);
-
- // read and parse
- HttpUtils.Response resp = read(url);
- AtomAcl acl = parse(resp.getStream(), AtomAcl.class);
-
- return convert(acl.getACL(), null);
+ public Acl getAcl(String repositoryId, String objectId, Boolean onlyBasicPermissions, ExtensionsData extension) {
+ return getAclInternal(repositoryId, objectId, onlyBasicPermissions, extension);
}
}
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=1329783&r1=1329782&r2=1329783&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 Apr 24 15:24:12 2012
@@ -690,18 +690,7 @@ public class ObjectServiceImpl extends A
return;
}
- Acl originalAces = null;
-
- // walk through the entry and find the current ACL
- for (AtomElement element : entry.getElements()) {
- if (element.getObject() instanceof CmisObjectType) {
- // extract current ACL
- CmisObjectType object = (CmisObjectType) element.getObject();
- originalAces = convert(object.getAcl(), object.isExactACL());
-
- break;
- }
- }
+ Acl originalAces = getAclInternal(repositoryId, entry.getId(), Boolean.FALSE, null);
if (originalAces != null) {
// merge and update ACL