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 2010/03/29 13:21:13 UTC

svn commit: r928720 - in /incubator/chemistry/trunk/opencmis/opencmis-client: opencmis-client-api/src/main/java/org/apache/opencmis/client/api/ opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/ opencmis-client-impl/src/main/j...

Author: fmui
Date: Mon Mar 29 11:21:13 2010
New Revision: 928720

URL: http://svn.apache.org/viewvc?rev=928720&view=rev
Log:
repository info cleanup

Added:
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionImpl.java
Removed:
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AclPermissionImpl.java
Modified:
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Ace.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Acl.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/package.html
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryAclCapabilities.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryCapabilities.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryInfo.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AceImpl.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AclImpl.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionMappingImpl.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryAclCapabilitiesImpl.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryCapabilitiesImpl.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryInfoImpl.java

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Ace.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Ace.java?rev=928720&r1=928719&r2=928720&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Ace.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Ace.java Mon Mar 29 11:21:13 2010
@@ -50,6 +50,6 @@ public interface Ace {
    * @return {@code true} if the ACE is directly assigned to the object is has been retrieved from,
    *         {@code false} if it was inherited somehow
    */
-  boolean isDirect();
+  Boolean isDirect();
 
 }

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Acl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Acl.java?rev=928720&r1=928719&r2=928720&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Acl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Acl.java Mon Mar 29 11:21:13 2010
@@ -44,6 +44,6 @@ public interface Acl {
    * @return {@code true} if the ACL describes the permissions for the object it has been retrieved
    *         for completely, {@code false} if other security constraints might be effective as well
    */
-  boolean isExact();
+  Boolean isExact();
 
 }

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/package.html
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/package.html?rev=928720&r1=928719&r2=928720&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/package.html (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/package.html Mon Mar 29 11:21:13 2010
@@ -49,30 +49,7 @@ causing the client to be blocked during 
 
 <h2>Usage of the API</h2>
 <p>
-The following example code illustrates how the session is obtained, used and finally released.
-<pre>
-  SessionFactory factory;
-  Session session;
-  try {
-    // acquire the session factory  
-    factory = (SessionFactory) new InitialContext().lookup(JNDI_LOOKUP_KEY);
-    // provide some basic configuration
-    HashMap parameters = new HashMap();
-    parameters.put(SessionParameter.USER, "user");
-    parameters.put(SessionParamter.PASSWORD, encode("password"));
-    parameters.put(SessionParameter.URL, "http://server:port/path");
-    // get the session
-    session = factory.getSession(parameters);
-    // sample: get the root folder and create a new top-level folder
-    Folder rootFolder = session.getRootFolder();
-    Document document = session.getObjectFactory().createDocument(rootFolder, "test");
-    document.setProperty("myProperty", "stringpropertyvalue");
-    document.save(); // create document with property
-  } // end try
-  finally {
-    //cleanup
-  }    
-</pre>
+See <a href="http://cwiki.apache.org/CMIS/opencmis-client-api.html">OpenCMIS Wiki</a>.
 </p>
 <p>
 @see org.opencmis.client.api.SessionFactory

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryAclCapabilities.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryAclCapabilities.java?rev=928720&r1=928719&r2=928720&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryAclCapabilities.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryAclCapabilities.java Mon Mar 29 11:21:13 2010
@@ -23,6 +23,7 @@ import java.util.Map;
 
 import org.apache.opencmis.client.api.AclPermission;
 import org.apache.opencmis.commons.enums.AclPropagation;
+import org.apache.opencmis.commons.enums.SupportedPermissions;
 
 /**
  * Information about a repositories ACL capabilities, as provided by RepositoryInfo.
@@ -33,6 +34,8 @@ import org.apache.opencmis.commons.enums
  */
 public interface RepositoryAclCapabilities {
 
+  SupportedPermissions getSupportedPermissions();
+  
   AclPropagation getAclPropagation();
 
   List<AclPermission> getPermissions();

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryCapabilities.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryCapabilities.java?rev=928720&r1=928719&r2=928720&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryCapabilities.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryCapabilities.java Mon Mar 29 11:21:13 2010
@@ -44,25 +44,25 @@ public interface RepositoryCapabilities 
 
   // Navigation
 
-  boolean isGetDescendantsSupported();
+  Boolean isGetDescendantsSupported();
 
-  boolean isGetFolderTreeSupported();
+  Boolean isGetFolderTreeSupported();
 
   // Filing
 
-  boolean isMultifilingSupported();
+  Boolean isMultifilingSupported();
 
-  boolean isUnfilingSupported();
+  Boolean isUnfilingSupported();
 
-  boolean isVersionSpecificFilingSupported();
+  Boolean isVersionSpecificFilingSupported();
 
   // Versioning
 
-  boolean isPwcUpdatableSupported();
+  Boolean isPwcUpdatableSupported();
 
-  boolean isPwcSearchableSupported();
+  Boolean isPwcSearchableSupported();
 
-  boolean isAllVersionsSearchableSupported();
+  Boolean isAllVersionsSearchableSupported();
 
   // Query
 

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryInfo.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryInfo.java?rev=928720&r1=928719&r2=928720&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryInfo.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/repository/RepositoryInfo.java Mon Mar 29 11:21:13 2010
@@ -47,7 +47,7 @@ public interface RepositoryInfo {
 
   String getThinClientUri();
 
-  boolean changesIncomplete();
+  Boolean changesIncomplete();
 
   List<BaseObjectTypeIds> getChangesOnType();
 

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AceImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AceImpl.java?rev=928720&r1=928719&r2=928720&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AceImpl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AceImpl.java Mon Mar 29 11:21:13 2010
@@ -32,9 +32,9 @@ public class AceImpl implements Ace, Ser
 
   private String principalId;
   private List<String> permissions;
-  private boolean isDirect;
+  private Boolean isDirect;
 
-  public AceImpl(String principalId, List<String> permissions, boolean isDirect) {
+  public AceImpl(String principalId, List<String> permissions, Boolean isDirect) {
     this.principalId = principalId;
     this.permissions = permissions;
     this.isDirect = isDirect;
@@ -48,7 +48,7 @@ public class AceImpl implements Ace, Ser
     return this.permissions;
   }
 
-  public boolean isDirect() {
+  public Boolean isDirect() {
     return this.isDirect;
   }
 }

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AclImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AclImpl.java?rev=928720&r1=928719&r2=928720&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AclImpl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AclImpl.java Mon Mar 29 11:21:13 2010
@@ -29,9 +29,9 @@ import org.apache.opencmis.client.api.Ac
 public class AclImpl implements Acl {
 
   private List<Ace> aces;
-  private boolean isExact;
+  private Boolean isExact;
 
-  public AclImpl(List<Ace> aces, boolean isExact) {
+  public AclImpl(List<Ace> aces, Boolean isExact) {
     this.aces = aces;
     this.isExact = isExact;
   }
@@ -40,7 +40,7 @@ public class AclImpl implements Acl {
     return this.aces;
   }
 
-  public boolean isExact() {
+  public Boolean isExact() {
     return this.isExact;
   }
 

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java?rev=928720&r1=928719&r2=928720&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentSessionImpl.java Mon Mar 29 11:21:13 2010
@@ -73,14 +73,6 @@ import org.apache.opencmis.commons.provi
 /**
  * Persistent model session.
  */
-/**
- * @author florianm
- *
- */
-/**
- * @author florianm
- * 
- */
 public class PersistentSessionImpl implements PersistentSession, Serializable {
 
   private static final OperationContext DEFAULT_CONTEXT = new OperationContextImpl(null, false,

Added: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionImpl.java?rev=928720&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionImpl.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionImpl.java Mon Mar 29 11:21:13 2010
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.opencmis.client.runtime.repository;
+
+import java.io.Serializable;
+
+import org.apache.opencmis.client.api.AclPermission;
+
+public class AclPermissionImpl implements AclPermission, Serializable {
+
+  /**
+   * serialization
+   */
+  private static final long serialVersionUID = -3820947135577677874L;
+
+  private String name;
+  private String description;
+
+  /**
+   * Constructor.
+   */
+  public AclPermissionImpl(String name, String description) {
+    this.name = name;
+    this.description = description;
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.AclPermission#getName()
+   */
+  public String getName() {
+    return this.name;
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.AclPermission#getDescription()
+   */
+  public String getDescription() {
+    return this.description;
+  }
+}

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionMappingImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionMappingImpl.java?rev=928720&r1=928719&r2=928720&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionMappingImpl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/AclPermissionMappingImpl.java Mon Mar 29 11:21:13 2010
@@ -21,48 +21,61 @@ package org.apache.opencmis.client.runti
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.opencmis.client.api.AclPermission;
 import org.apache.opencmis.client.api.repository.AclPermissionMapping;
-import org.apache.opencmis.client.runtime.AclPermissionImpl;
 import org.apache.opencmis.commons.provider.PermissionMappingData;
 
-public class AclPermissionMappingImpl implements AclPermissionMapping,
-		Serializable {
-
-	/**
-	 * serialization
-	 */
-	private static final long serialVersionUID = -8682418497088386853L;
-
-	/*
-	 * permission mapping data (serializable)
-	 */
-	private PermissionMappingData pmd = null;
-
-	/*
-	 * permission list (serializable)
-	 */
-	private List<AclPermission> permissionList = null;
-
-	public AclPermissionMappingImpl(PermissionMappingData pmd) {
-		this.pmd = pmd;
-	}
-
-	public String getKey() {
-		return this.pmd.getKey();
-	}
-
-	public List<AclPermission> getPermissions() {
-		if (this.permissionList == null) {
-			this.permissionList = new ArrayList<AclPermission>();
-
-			for (String descr : this.pmd.getPermissions()) {
-				AclPermission acl = new AclPermissionImpl(descr);
-				this.permissionList.add(acl);
-			}
-		}
-		return permissionList;
-	}
+public class AclPermissionMappingImpl implements AclPermissionMapping, Serializable {
 
+  /**
+   * serialization
+   */
+  private static final long serialVersionUID = -8682418497088386853L;
+
+  /*
+   * permission mapping key (serializable)
+   */
+  private String key;
+
+  /*
+   * permission list (serializable)
+   */
+  private List<AclPermission> permissionList;
+
+  /**
+   * Constructor.
+   */
+  public AclPermissionMappingImpl(PermissionMappingData pmd, Map<String, AclPermission> permissions) {
+    this.key = pmd.getKey();
+    this.permissionList = new ArrayList<AclPermission>();
+
+    for (String permission : pmd.getPermissions()) {
+      AclPermission aclPermission = permissions.get(permission);
+      if (aclPermission == null) {
+        aclPermission = new AclPermissionImpl(permission, permission);
+      }
+
+      this.permissionList.add(aclPermission);
+    }
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.repository.AclPermissionMapping#getKey()
+   */
+  public String getKey() {
+    return this.key;
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.repository.AclPermissionMapping#getPermissions()
+   */
+  public List<AclPermission> getPermissions() {
+    return permissionList;
+  }
 }

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryAclCapabilitiesImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryAclCapabilitiesImpl.java?rev=928720&r1=928719&r2=928720&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryAclCapabilitiesImpl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryAclCapabilitiesImpl.java Mon Mar 29 11:21:13 2010
@@ -20,7 +20,8 @@ package org.apache.opencmis.client.runti
 
 import java.io.Serializable;
 import java.util.ArrayList;
-import java.util.Hashtable;
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -28,210 +29,224 @@ import org.apache.opencmis.client.api.Ac
 import org.apache.opencmis.client.api.repository.AclPermissionMapping;
 import org.apache.opencmis.client.api.repository.RepositoryAclCapabilities;
 import org.apache.opencmis.commons.enums.AclPropagation;
-import org.apache.opencmis.commons.exceptions.CmisRuntimeException;
+import org.apache.opencmis.commons.enums.SupportedPermissions;
 import org.apache.opencmis.commons.provider.AclCapabilitiesData;
+import org.apache.opencmis.commons.provider.PermissionDefinitionData;
 import org.apache.opencmis.commons.provider.PermissionMappingData;
 
-public class RepositoryAclCapabilitiesImpl implements
-		RepositoryAclCapabilities, Serializable {
+public class RepositoryAclCapabilitiesImpl implements RepositoryAclCapabilities, Serializable {
 
-	/*
-	 * serialization
-	 */
-	private static final long serialVersionUID = 2824818352611088504L;
-
-	/*
-	 * provider data (serializable)
-	 */
-	private AclCapabilitiesData aclCapabilities;
-
-	/*
-	 * permission mapping (serializable)
-	 */
-	private Map<String, AclPermissionMapping> aclPermissionMapping = null;
-
-	/*
-	 * permissions (serializable)
-	 */
-	List<AclPermission> aclPermissions = null;
-
-	public RepositoryAclCapabilitiesImpl(AclCapabilitiesData aclCapabilities) {
-		this.aclCapabilities = aclCapabilities;
-	}
-
-	public AclPropagation getAclPropagation() {
-		return this.aclCapabilities.getAclPropagation();
-	}
-
-	public AclPermissionMapping getAddPolicyObjectPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getAddPolicyPolicyPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getAddToFolderFolderPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getAddToFolderObjectPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getApplyAclObjectPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getCancelCheckoutDocumentPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getCheckinDocumentPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getCheckoutDocumentPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getCreateDocumentFolderPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getCreateDocumentTypePermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getCreateFolderFolderPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getCreateFolderTypePermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getCreatePolicyTypePermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getCreateRelationshipSourcePermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getCreateRelationshipTargetPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getCreateRelationshipTypePermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getDeleteContentDocumentPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getDeleteObjectPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getDeleteTreeFolderPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getGetAclObjectPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getGetAllVersionsVersionSeriesPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getGetAppliedPoliciesObjectPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getGetChildrenFolderPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getGetDescendentsFolderPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getGetFolderParentObjectPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getGetObjectRelationshipsObjectPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getGetParentsFolderPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getGetPropertiesObjectPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getMoveObjectPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getMoveSourcePermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getMoveTargetPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public Map<String, AclPermissionMapping> getPermissionMapping() {
-		if (this.aclPermissionMapping == null) {
-			this.aclPermissionMapping = new Hashtable<String, AclPermissionMapping>();
-			AclPermissionMapping apm = null;
-			for (PermissionMappingData pmd : this.aclCapabilities
-					.getPermissionMappingData()) {
-				apm = new AclPermissionMappingImpl(pmd);
-				this.aclPermissionMapping.put(pmd.getKey(), apm);
-			}
-		}
-		return this.aclPermissionMapping;
-	}
-
-	public List<AclPermission> getPermissions() {
-		if (this.aclPermissions == null) {
-			this.aclPermissions = new ArrayList<AclPermission>();
-		}
-		return this.aclPermissions;
-	}
-
-	public AclPermissionMapping getRemoveFromFolderFolderPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getRemoveFromFolderObjectPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getRemovePolicyObjectPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getRemovePolicyPolicyPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getSetContentDocumentPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getUpdatePropertiesObjectPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
-
-	public AclPermissionMapping getViewContentObjectPermissions() {
-		throw new CmisRuntimeException("not implemented");
-	}
+  /*
+   * serialization
+   */
+  private static final long serialVersionUID = 2824818352611088504L;
+
+  /*
+   * provider data (serializable)
+   */
+  private AclCapabilitiesData aclCapabilities;
+
+  /*
+   * permission mapping (serializable)
+   */
+  private Map<String, AclPermissionMapping> aclPermissionMapping = null;
+
+  /*
+   * permissions (serializable)
+   */
+  private List<AclPermission> aclPermissions = null;
+
+  /**
+   * Constructor.
+   */
+  public RepositoryAclCapabilitiesImpl(AclCapabilitiesData aclCapabilities) {
+    this.aclCapabilities = aclCapabilities;
+    this.aclPermissions = new ArrayList<AclPermission>();
+    this.aclPermissionMapping = new HashMap<String, AclPermissionMapping>();
+
+    if (this.aclCapabilities != null) {
+      // copy permissions
+      Map<String, AclPermission> permissionMap = new HashMap<String, AclPermission>();
+      for (PermissionDefinitionData permission : this.aclCapabilities.getPermissionDefinitionData()) {
+        AclPermission ap = new AclPermissionImpl(permission.getPermission(), permission
+            .getDescription());
+        aclPermissions.add(ap);
+        permissionMap.put(ap.getName(), ap);
+      }
+
+      // copy mappings
+      for (PermissionMappingData pmd : this.aclCapabilities.getPermissionMappingData()) {
+        AclPermissionMapping apm = new AclPermissionMappingImpl(pmd, permissionMap);
+        this.aclPermissionMapping.put(pmd.getKey(), apm);
+      }
+    }
+  }
+
+  public SupportedPermissions getSupportedPermissions() {
+    return this.aclCapabilities.getSupportedPermissions();
+  }
+
+  public AclPropagation getAclPropagation() {
+    return this.aclCapabilities.getAclPropagation();
+  }
+
+  public Map<String, AclPermissionMapping> getPermissionMapping() {
+    return Collections.unmodifiableMap(this.aclPermissionMapping);
+  }
+
+  public List<AclPermission> getPermissions() {
+    return Collections.unmodifiableList(this.aclPermissions);
+  }
+
+  public AclPermissionMapping getAddPolicyObjectPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_ADD_POLICY_OBJECT);
+  }
+
+  public AclPermissionMapping getAddPolicyPolicyPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_ADD_POLICY_POLICY);
+  }
+
+  public AclPermissionMapping getAddToFolderFolderPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_ADD_TO_FOLDER_FOLDER);
+  }
+
+  public AclPermissionMapping getAddToFolderObjectPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_ADD_TO_FOLDER_OBJECT);
+  }
+
+  public AclPermissionMapping getApplyAclObjectPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_APPLY_ACL_OBJECT);
+  }
+
+  public AclPermissionMapping getCancelCheckoutDocumentPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_CANCEL_CHECKOUT_DOCUMENT);
+  }
+
+  public AclPermissionMapping getCheckinDocumentPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_CHECKIN_DOCUMENT);
+  }
+
+  public AclPermissionMapping getCheckoutDocumentPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_CHECKOUT_DOCUMENT);
+  }
+
+  public AclPermissionMapping getCreateDocumentFolderPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_CREATE_DOCUMENT_FOLDER);
+  }
+
+  public AclPermissionMapping getCreateDocumentTypePermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_CREATE_DOCUMENT_TYPE);
+  }
+
+  public AclPermissionMapping getCreateFolderFolderPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_CREATE_FOLDER_FOLDER);
+  }
+
+  public AclPermissionMapping getCreateFolderTypePermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_CREATE_FOLDER_TYPE);
+  }
+
+  public AclPermissionMapping getCreatePolicyTypePermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_CREATE_POLICY_TYPE);
+  }
+
+  public AclPermissionMapping getCreateRelationshipSourcePermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_CREATE_RELATIONSHIP_SOURCE);
+  }
+
+  public AclPermissionMapping getCreateRelationshipTargetPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_CREATE_RELATIONSHIP_TARGET);
+  }
+
+  public AclPermissionMapping getCreateRelationshipTypePermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_CREATE_RELATIONSHIP_TYPE);
+  }
+
+  public AclPermissionMapping getDeleteContentDocumentPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_DELETE_CONTENT_DOCUMENT);
+  }
+
+  public AclPermissionMapping getDeleteObjectPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_DELETE_OBJECT);
+  }
+
+  public AclPermissionMapping getDeleteTreeFolderPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_DELETE_TREE_FOLDER);
+  }
+
+  public AclPermissionMapping getGetAclObjectPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_GET_ACL_OBJECT);
+  }
+
+  public AclPermissionMapping getGetAllVersionsVersionSeriesPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_GET_ALL_VERSIONS_VERSION_SERIES);
+  }
+
+  public AclPermissionMapping getGetAppliedPoliciesObjectPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_GET_APPLIED_POLICIES_OBJECT);
+  }
+
+  public AclPermissionMapping getGetChildrenFolderPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_GET_CHILDREN_FOLDER);
+  }
+
+  public AclPermissionMapping getGetDescendentsFolderPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_GET_DESCENDENTS_FOLDER);
+  }
+
+  public AclPermissionMapping getGetFolderParentObjectPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_GET_FOLDER_PARENT_OBJECT);
+  }
+
+  public AclPermissionMapping getGetObjectRelationshipsObjectPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_GET_OBJECT_RELATIONSHIPS_OBJECT);
+  }
+
+  public AclPermissionMapping getGetParentsFolderPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_GET_PARENTS_FOLDER);
+  }
+
+  public AclPermissionMapping getGetPropertiesObjectPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_GET_PROPERTIES_OBJECT);
+  }
+
+  public AclPermissionMapping getMoveObjectPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_MOVE_OBJECT);
+  }
+
+  public AclPermissionMapping getMoveSourcePermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_MOVE_SOURCE);
+  }
+
+  public AclPermissionMapping getMoveTargetPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_MOVE_TARGET);
+  }
+
+  public AclPermissionMapping getRemoveFromFolderFolderPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_REMOVE_FROM_FOLDER_FOLDER);
+  }
+
+  public AclPermissionMapping getRemoveFromFolderObjectPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_REMOVE_FROM_FOLDER_OBJECT);
+  }
+
+  public AclPermissionMapping getRemovePolicyObjectPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_REMOVE_POLICY_OBJECT);
+  }
+
+  public AclPermissionMapping getRemovePolicyPolicyPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_REMOVE_POLICY_POLICY);
+  }
+
+  public AclPermissionMapping getSetContentDocumentPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_SET_CONTENT_DOCUMENT);
+  }
+
+  public AclPermissionMapping getUpdatePropertiesObjectPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_UPDATE_PROPERTIES_OBJECT);
+  }
+
+  public AclPermissionMapping getViewContentObjectPermissions() {
+    return this.aclPermissionMapping.get(AclPermissionMapping.CAN_VIEW_CONTENT_OBJECT);
+  }
 }

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryCapabilitiesImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryCapabilitiesImpl.java?rev=928720&r1=928719&r2=928720&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryCapabilitiesImpl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryCapabilitiesImpl.java Mon Mar 29 11:21:13 2010
@@ -35,6 +35,9 @@ public class RepositoryCapabilitiesImpl 
 
   private RepositoryCapabilitiesData capabilities = null;
 
+  /**
+   * Constructor.
+   */
   public RepositoryCapabilitiesImpl(RepositoryCapabilitiesData rcd) {
     this.capabilities = rcd;
   }
@@ -63,36 +66,35 @@ public class RepositoryCapabilitiesImpl 
     return this.capabilities.getCapabilityRenditions();
   }
 
-  public boolean isAllVersionsSearchableSupported() {
+  public Boolean isAllVersionsSearchableSupported() {
     return this.capabilities.allVersionsSearchable();
   }
 
-  public boolean isGetDescendantsSupported() {
+  public Boolean isGetDescendantsSupported() {
     return this.capabilities.supportsGetDescendants();
   }
 
-  public boolean isGetFolderTreeSupported() {
+  public Boolean isGetFolderTreeSupported() {
     return this.capabilities.supportsGetFolderTree();
   }
 
-  public boolean isMultifilingSupported() {
+  public Boolean isMultifilingSupported() {
     return this.capabilities.supportsMultifiling();
   }
 
-  public boolean isPwcSearchableSupported() {
+  public Boolean isPwcSearchableSupported() {
     return this.capabilities.isPwcSearchable();
   }
 
-  public boolean isPwcUpdatableSupported() {
+  public Boolean isPwcUpdatableSupported() {
     return this.capabilities.isPwcUpdatable();
   }
 
-  public boolean isUnfilingSupported() {
+  public Boolean isUnfilingSupported() {
     return this.capabilities.supportsUnfiling();
   }
 
-  public boolean isVersionSpecificFilingSupported() {
+  public Boolean isVersionSpecificFilingSupported() {
     return this.capabilities.supportsVersionSpecificFiling();
   }
-
 }

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryInfoImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryInfoImpl.java?rev=928720&r1=928719&r2=928720&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryInfoImpl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/repository/RepositoryInfoImpl.java Mon Mar 29 11:21:13 2010
@@ -60,25 +60,30 @@ public class RepositoryInfoImpl implemen
    * Sets the data object.
    */
   protected void setRepositoryInfoData(RepositoryInfoData data) {
+    if (data == null) {
+      throw new IllegalArgumentException("Repository info data must be set!");
+    }
+
     this.riData = data;
+
+    if (this.riData.getRepositoryCapabilities() != null) {
+      this.capabilites = new RepositoryCapabilitiesImpl(this.riData.getRepositoryCapabilities());
+    }
+
+    if (this.riData.getAclCapabilities() != null) {
+      this.aclCapabilites = new RepositoryAclCapabilitiesImpl(this.riData.getAclCapabilities());
+    }
   }
 
-  public boolean changesIncomplete() {
+  public Boolean changesIncomplete() {
     return this.riData.changesIncomplete();
   }
 
   public RepositoryAclCapabilities getAclCapabilities() {
-    if (this.aclCapabilites == null) {
-      this.aclCapabilites = new RepositoryAclCapabilitiesImpl(this.riData.getAclCapabilities());
-    }
     return this.aclCapabilites;
   }
 
   public RepositoryCapabilities getCapabilities() {
-    if (this.capabilites == null) {
-      capabilites = new RepositoryCapabilitiesImpl(this.riData.getRepositoryCapabilities());
-    }
-
     return this.capabilites;
   }