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/03 11:22:15 UTC

svn commit: r918382 - in /incubator/chemistry/trunk/opencmis: opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/ opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/util/ opencmis-client/openc...

Author: fmui
Date: Wed Mar  3 10:22:14 2010
New Revision: 918382

URL: http://svn.apache.org/viewvc?rev=918382&view=rev
Log:
cleaned up context handling
improved PagingList
disabled caching for now

Added:
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/OperationContext.java   (with props)
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/OperationContextImpl.java   (with props)
Removed:
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/SessionContext.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/SessionContextImpl.java
Modified:
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Document.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Folder.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Relationship.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/util/PagingList.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentCmisObject.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentFilableCmisObject.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentDocumentImpl.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentRelationshipImpl.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/util/AbstractPagingList.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlySessionTest.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/mock/MockSessionFactory.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/otx/OtxInMemoryCmisTestSuite.java
    incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/util/PagingListTest.java
    incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/enums/BindingType.java

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/CmisObject.java Wed Mar  3 10:22:14 2010
@@ -95,16 +95,6 @@
   BaseObjectTypeIds getBaseTypeId();
 
   /**
-   * Set the object's type id. {@code Property<ObjectType> 'cmis:objectTypeId'}
-   */
-  void setTypeId(String typeId);
-
-  /**
-   * Set the object's type. Shortcut for {@code setTypeId(type.getId())}.
-   */
-  void setType(ObjectType type);
-
-  /**
    * Get the change token for this object (maintained by the repository). {@code Property<String>
    * 'cmis:changeToken'}
    */
@@ -135,8 +125,8 @@
   // relationship service
 
   PagingList<Relationship> getRelationships(boolean includeSubRelationshipTypes,
-      RelationshipDirection relationshipDirection, ObjectType type, String filter, 
-      Boolean includeAllowableActions, int itemsPerPage);
+      RelationshipDirection relationshipDirection, ObjectType type, OperationContext context,
+      int itemsPerPage);
 
   // policy service
 
@@ -179,4 +169,8 @@
    */
   boolean isChanged();
 
+  /**
+   * Reloads the data from the repository.
+   */
+  void refresh(OperationContext context);
 }

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Document.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Document.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Document.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Document.java Wed Mar  3 10:22:14 2010
@@ -26,8 +26,8 @@
  * Domain Model 2.4
  */
 public interface Document extends FileableCmisObject {
-	
-	List<Rendition> getRenditions();
+
+  List<Rendition> getRenditions();
 
   // object service
 
@@ -48,12 +48,12 @@
 
   Document getObjectOfLatestVersion(boolean major);
 
-  List<Property<?>> getPropertiesOfLatestVersion(boolean major);
-
-  List<Property<?>> getPropertiesOfLatestVersion(boolean major, String filter);
+  Document getObjectOfLatestVersion(boolean major, OperationContext context);
 
   List<Document> getAllVersions();
 
+  List<Document> getAllVersions(OperationContext context);
+
   // document specific properties
 
   Boolean isImmutable(); // cmis:isImmutable
@@ -75,7 +75,7 @@
   String getVersionSeriesCheckedOutId(); // cmis:versionSeriesCheckedOutId
 
   void deleteAllVersions();
-  
+
   String getCheckinComment(); // cmis:checkinComment
 
   /**
@@ -88,7 +88,7 @@
    * @param removeACEs
    * @return
    */
-  Document copy(List<Property<?>> properties, VersioningState versioningState, List<Policy> policies,
-      List<Ace> addACEs, List<Ace> removeACEs);
+  Document copy(List<Property<?>> properties, VersioningState versioningState,
+      List<Policy> policies, List<Ace> addACEs, List<Ace> removeACEs);
 
 }

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Folder.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Folder.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Folder.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Folder.java Wed Mar  3 10:22:14 2010
@@ -32,9 +32,6 @@
 public interface Folder extends FileableCmisObject {
 
   // object service
-
-  Document createDocument(String name);
-
   Document createDocument(String name, String typeId);
 
   Document createDocument(List<Property<?>> properties, ContentStream contentstream,
@@ -60,18 +57,28 @@
 
   List<Container<FileableCmisObject>> getFolderTree(int depth);
 
+  List<Container<FileableCmisObject>> getFolderTree(int depth, OperationContext context);
+
   List<Container<FileableCmisObject>> getDescendants(int depth);
 
-  PagingList<CmisObject> getChildren(String orderBy, int itemsPerPage);
+  List<Container<FileableCmisObject>> getDescendants(int depth, OperationContext context);
+
+  PagingList<CmisObject> getChildren(int itemsPerPage);
+
+  PagingList<CmisObject> getChildren(OperationContext context, int itemsPerPage);
 
   Folder getFolderParent();
 
   String getPath();
 
-  PagingList<Document> getCheckedOutDocs(String orderby, int itemsPerPage);
+  /**
+   * Returns all checked out documents of this folder.
+   */
+  PagingList<Document> getCheckedOutDocs(int itemsPerPage);
+
+  PagingList<Document> getCheckedOutDocs(OperationContext context, int itemsPerPage);
 
   // folder specific properties
 
   List<ObjectType> getAllowedChildObjectTypes(); // cmis:allowedChildObjectTypeIds
-
 }

Added: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/OperationContext.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/OperationContext.java?rev=918382&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/OperationContext.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/OperationContext.java Wed Mar  3 10:22:14 2010
@@ -0,0 +1,62 @@
+/*
+ * 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.api;
+
+import org.apache.opencmis.commons.enums.IncludeRelationships;
+
+public interface OperationContext {
+
+  String getFilter();
+
+  void setFilter(String filter);
+
+  /**
+   * Returns the filter extended by cmis:objectId, cmis:objectTypeId and cmis:baseTypeId.
+   */
+  String getFullFilter();
+
+  boolean getIncludeAllowableActions();
+
+  void setIncludeAllowableActions(boolean include);
+
+  boolean getIncludeAcls();
+
+  void setIncludeAcls(boolean include);
+
+  IncludeRelationships getIncludeRelationships();
+
+  void setIncludeRelationships(IncludeRelationships include);
+
+  boolean getIncludePolicies();
+
+  void setIncludePolicies(boolean include);
+
+  String getRenditionFilter();
+
+  void setRenditionFilter(String filter);
+
+  boolean getIncludePathSegments();
+
+  void setIncludePathSegments(boolean include);
+
+  String getOrderBy();
+
+  void setOrderBy(String orderBy);
+
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/OperationContext.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Relationship.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Relationship.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Relationship.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Relationship.java Wed Mar  3 10:22:14 2010
@@ -27,6 +27,9 @@
 
   CmisObject getSource(); // cmis:sourceId
 
+  CmisObject getSource(OperationContext context);
+
   CmisObject getTarget(); // cmis:targetId
 
+  CmisObject getTarget(OperationContext context);
 }

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/Session.java Wed Mar  3 10:22:14 2010
@@ -27,6 +27,7 @@
 import org.apache.opencmis.client.api.repository.RepositoryInfo;
 import org.apache.opencmis.client.api.util.Container;
 import org.apache.opencmis.client.api.util.PagingList;
+import org.apache.opencmis.commons.enums.IncludeRelationships;
 import org.apache.opencmis.commons.provider.CmisProvider;
 
 /**
@@ -47,20 +48,28 @@
    * Gets the underlying provider object.
    */
   CmisProvider getProvider();
-  
+
   /**
-   * Get the current session parameters for filtering and paging.
+   * Get the current default operation parameters for filtering and paging.
    */
-  SessionContext getContext();
+  OperationContext getDefaultContext();
 
   /**
    * Set the current session parameters for filtering and paging.
    * 
    * @param context
-   *          the <code>SessionContext</code> to be used for the session; if <code>null</code>, a
+   *          the <code>OperationContext</code> to be used for the session; if <code>null</code>, a
    *          default context is used
    */
-  void setContext(SessionContext context);
+  void setDefaultContext(OperationContext context);
+
+  /**
+   * Creates an operation context object.
+   */
+  OperationContext createOperationContext(String filter, boolean includeAcls,
+      boolean includeAllowableActions, boolean includePolicies,
+      IncludeRelationships includeRelationships, String renditionFilter,
+      boolean includePathSegments, String orderBy);
 
   // localization
 
@@ -83,49 +92,61 @@
   ObjectFactory getObjectFactory();
 
   /**
-   * Get the factory for <code>Property</code> objects.
+   * Gets the factory for <code>Property</code> objects.
    */
   PropertyFactory getPropertyFactory();
 
+  // types
+
+  /**
+   * Returns the type definition of the given type id.
+   */
   ObjectType getTypeDefinition(String typeId);
 
+  /**
+   * Returns the type children of the given type id.
+   */
   PagingList<ObjectType> getTypeChildren(String typeId, boolean includePropertyDefinitions,
       int itemsPerPage);
 
-  List<Container<ObjectType>> getTypeDescendants(String typeId, int depth, boolean includePropertyDefinitions);
+  /**
+   * Returns the type descendants of the given type id.
+   */
+  List<Container<ObjectType>> getTypeDescendants(String typeId, int depth,
+      boolean includePropertyDefinitions);
 
   // navigation
 
   /**
-   * Get the root folder for the repository.
+   * Gets the root folder for the repository.
    */
   Folder getRootFolder();
 
+  Folder getRootFolder(OperationContext context);
+
   /**
-   * Navigation service <code>getCheckedOutDocs</code>.
+   * Returns all checked out documents.
    * 
-   * @param folder
-   * @param orderby
-   * @return @
+   * @see Folder#getCheckedOutDocs(int)
    */
-  PagingList<Document> getCheckedOutDocs(Folder folder, String orderby, int itemsPerPage);
+  PagingList<Document> getCheckedOutDocs(int itemsPerPage);
+
+  PagingList<Document> getCheckedOutDocs(OperationContext context, int itemsPerPage);
 
   /**
    * Object service <code>getObject</code>.
-   * 
-   * @param objectid
-   * @return @
    */
-  CmisObject getObject(String objectid);
+  CmisObject getObject(String objectId);
+
+  CmisObject getObject(String objectId, OperationContext context);
 
   /**
    * Object service <code>getObjectByPath</code>.
-   * 
-   * @param path
-   * @return @
    */
   CmisObject getObjectByPath(String path);
 
+  CmisObject getObjectByPath(String path, OperationContext context);
+
   // discovery
 
   /**
@@ -135,8 +156,6 @@
 
   /**
    * Discovery service <code>getContentChanges</code>.
-   * 
-   * @return
    */
   PagingList<ChangeEvent> getContentChanges(String changeLogToken, int itemsPerPage);
 

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/util/PagingList.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/util/PagingList.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/util/PagingList.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-api/src/main/java/org/apache/opencmis/client/api/util/PagingList.java Wed Mar  3 10:22:14 2010
@@ -30,24 +30,24 @@
 public interface PagingList<T> extends Iterable<List<T>> {
 
   /**
-   * If the repository knows the total number of items in a result set, the repository SHOULD
-   * include the number here. If the repository does not know the number of items in a result set,
-   * this parameter SHOULD not be set. The value in the parameter MAY NOT be accurate the next time
-   * the client retrieves the result set or the next page in the result set.
+   * Returns the total number of items. If the repository knows the total number of items in a
+   * result set, the repository SHOULD include the number here. If the repository does not know the
+   * number of items in a result set, this parameter SHOULD not be set. The value in the parameter
+   * MAY NOT be accurate the next time the client retrieves the result set or the next page in the
+   * result set.
    * 
    * @return total number of items or (-1)
    */
   int getNumItems();
 
   /**
-   * This is the maximum number of items to return in one page. The repository MUST NOT exceed this
-   * maximum.
+   * Returns the maximum number of items in one page. The repository MUST NOT exceed this maximum.
    */
   int getMaxItemsPerPage();
 
   /**
-   * This is the maximum number of pages calculated from number of <code>totalItems</code> and
-   * <code>maxItems</code>. If the number of <code>totalItems</code> is not known then -1 is
+   * Returns the maximum number of pages calculated from number of <code>numItems</code> and
+   * <code>maxItemsPerPage</code>. If the number of <code>numItems</code> is not known then -1 is
    * returned.
    * 
    * @return Number of pages or (-1)
@@ -62,4 +62,21 @@
    * @return a page of items
    */
   List<T> get(int pageNumber);
+
+  /**
+   * Returns if the list contains items. This method might fetch the first page to determine the
+   * return value!
+   * 
+   * @return <code>true</code> if the list does not contain items, <code>false</code>otherwise
+   */
+  boolean isEmpty();
+
+  /**
+   * Sets the size of the page LRU cache. A size &lt; 1 de-activates the cache. Default cache size
+   * is 0. Re-setting the cache size clears the cache.
+   * 
+   * @param cacheSize
+   *          size of the cache in pages
+   */
+  void setCacheSize(int cacheSize);
 }

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentCmisObject.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentCmisObject.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentCmisObject.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentCmisObject.java Wed Mar  3 10:22:14 2010
@@ -30,6 +30,7 @@
 import org.apache.opencmis.client.api.Acl;
 import org.apache.opencmis.client.api.AllowableActions;
 import org.apache.opencmis.client.api.CmisObject;
+import org.apache.opencmis.client.api.OperationContext;
 import org.apache.opencmis.client.api.Policy;
 import org.apache.opencmis.client.api.Property;
 import org.apache.opencmis.client.api.Relationship;
@@ -419,28 +420,6 @@
   /*
    * (non-Javadoc)
    * 
-   * @see
-   * org.apache.opencmis.client.api.CmisObject#setType(org.apache.opencmis.client.api.objecttype
-   * .ObjectType)
-   */
-  public void setType(ObjectType type) {
-    // TODO Auto-generated method stub
-    throw new CmisRuntimeException("not implemented");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
-   * @see org.apache.opencmis.client.api.CmisObject#setTypeId(java.lang.String)
-   */
-  public void setTypeId(String typeId) {
-    // TODO Auto-generated method stub
-    throw new CmisRuntimeException("not implemented");
-  }
-
-  /*
-   * (non-Javadoc)
-   * 
    * @see org.apache.opencmis.client.api.CmisObject#getType()
    */
   public ObjectType getType() {
@@ -596,11 +575,12 @@
    * 
    * @see org.apache.opencmis.client.api.CmisObject#getRelationships(boolean,
    * org.apache.opencmis.commons.enums.RelationshipDirection,
-   * org.apache.opencmis.client.api.objecttype.ObjectType, java.lang.String, java.lang.Boolean, int)
+   * org.apache.opencmis.client.api.objecttype.ObjectType,
+   * org.apache.opencmis.client.api.OperationContext, int)
    */
   public PagingList<Relationship> getRelationships(final boolean includeSubRelationshipTypes,
-      final RelationshipDirection relationshipDirection, ObjectType type, final String filter,
-      final Boolean includeAllowableActions, final int itemsPerPage) {
+      final RelationshipDirection relationshipDirection, ObjectType type, OperationContext context,
+      final int itemsPerPage) {
     if (itemsPerPage < 1) {
       throw new IllegalArgumentException("itemsPerPage must be > 0!");
     }
@@ -608,6 +588,8 @@
     final String objectId = getObjectId();
     final String typeId = (type == null ? null : type.getId());
     final RelationshipService relationshipService = getProvider().getRelationshipService();
+    final OperationContext ctxt = (context != null ? context : new OperationContextImpl(
+        getSession().getDefaultContext()));
 
     return new AbstractPagingList<Relationship>() {
 
@@ -617,9 +599,9 @@
 
         // fetch the relationships
         ObjectList relList = relationshipService.getObjectRelationships(getRepositoryId(),
-            objectId, includeSubRelationshipTypes, relationshipDirection, typeId, filter,
-            includeAllowableActions, BigInteger.valueOf(getMaxItemsPerPage()), BigInteger
-                .valueOf(skipCount), null);
+            objectId, includeSubRelationshipTypes, relationshipDirection, typeId, ctxt
+                .getFullFilter(), ctxt.getIncludeAllowableActions(), BigInteger
+                .valueOf(getMaxItemsPerPage()), BigInteger.valueOf(skipCount), null);
 
         // convert relationship objects
         List<Relationship> page = new ArrayList<Relationship>();
@@ -657,4 +639,17 @@
   protected void setChanged() {
     isChanged = true;
   }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.apache.opencmis.client.api.CmisObject#refresh(org.apache.opencmis.client.api.OperationContext
+   * )
+   */
+  public void refresh(OperationContext context) {
+    // TODO Auto-generated method stub
+    throw new CmisRuntimeException("not implemented");
+  }
+
 }

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentFilableCmisObject.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentFilableCmisObject.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentFilableCmisObject.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/AbstractPersistentFilableCmisObject.java Wed Mar  3 10:22:14 2010
@@ -33,30 +33,25 @@
 import org.apache.opencmis.commons.provider.PropertyIdData;
 import org.apache.opencmis.commons.provider.PropertyStringData;
 
+/**
+ * Base class for all filable persistent session object impl classes.
+ */
 public abstract class AbstractPersistentFilableCmisObject extends AbstractPersistentCmisObject
     implements FileableCmisObject {
 
-  private List<Folder> parents;
-  private List<String> paths;
-
   /*
    * (non-Javadoc)
    * 
    * @see org.apache.opencmis.client.api.FileableCmisObject#getParents()
    */
   public List<Folder> getParents() {
-    if (this.parents != null) {
-      return this.parents;
-    }
-
-    // get object ids and paths of the parent folders
+    // get object ids of the parent folders
     String objectId = getObjectId();
     List<ObjectParentData> providerParents = getProvider().getNavigationService().getObjectParents(
-        getRepositoryId(), objectId, PropertyIds.CMIS_OBJECT_ID + "," + PropertyIds.CMIS_PATH,
-        false, IncludeRelationships.NONE, null, true, null);
+        getRepositoryId(), objectId, PropertyIds.CMIS_OBJECT_ID, false, IncludeRelationships.NONE,
+        null, false, null);
 
-    this.parents = new ArrayList<Folder>();
-    this.paths = new ArrayList<String>();
+    List<Folder> parents = new ArrayList<Folder>();
 
     for (ObjectParentData p : providerParents) {
       if ((p == null) || (p.getObject() == null) || (p.getObject().getProperties() == null)) {
@@ -72,19 +67,6 @@
         throw new CmisRuntimeException("Repository sent invalid data! No object id!");
       }
 
-      // get path property
-      PropertyData<?> pathProperty = p.getObject().getProperties().getProperties().get(
-          PropertyIds.CMIS_PATH);
-      if (!(pathProperty instanceof PropertyStringData)) {
-        // the repository sent a folder without a valid path...
-        throw new CmisRuntimeException("Repository sent invalid data! No path property!");
-      }
-
-      if (p.getRelativePathSegment() == null) {
-        // the repository didn't send a relative path segment
-        throw new CmisRuntimeException("Repository sent invalid data! No relative path segement!");
-      }
-
       // fetch the object and make sure it is a folder
       CmisObject parentFolder = getSession().getObject((String) idProperty.getFirstValue());
       if (!(parentFolder instanceof Folder)) {
@@ -92,14 +74,10 @@
         throw new CmisRuntimeException("Repository sent invalid data! Object is not a folder!");
       }
 
-      this.parents.add((Folder) parentFolder);
-
-      String folderPath = ((String) pathProperty.getFirstValue());
-      this.paths.add(folderPath + (folderPath.endsWith("/") ? "" : "/")
-          + p.getRelativePathSegment());
+      parents.add((Folder) parentFolder);
     }
 
-    return this.parents;
+    return parents;
   }
 
   /*
@@ -108,13 +86,38 @@
    * @see org.apache.opencmis.client.api.FileableCmisObject#getPaths()
    */
   public List<String> getPaths() {
-    if (this.paths != null) {
-      return this.paths;
-    }
+    // get object paths of the parent folders
+    String objectId = getObjectId();
+    List<ObjectParentData> providerParents = getProvider().getNavigationService().getObjectParents(
+        getRepositoryId(), objectId, PropertyIds.CMIS_PATH, false, IncludeRelationships.NONE, null,
+        true, null);
+
+    List<String> paths = new ArrayList<String>();
 
-    getParents(); // fills the paths list too
+    for (ObjectParentData p : providerParents) {
+      if ((p == null) || (p.getObject() == null) || (p.getObject().getProperties() == null)) {
+        // should not happen...
+        throw new CmisRuntimeException("Repository sent invalid data!");
+      }
+
+      // get path property
+      PropertyData<?> pathProperty = p.getObject().getProperties().getProperties().get(
+          PropertyIds.CMIS_PATH);
+      if (!(pathProperty instanceof PropertyStringData)) {
+        // the repository sent a folder without a valid path...
+        throw new CmisRuntimeException("Repository sent invalid data! No path property!");
+      }
+
+      if (p.getRelativePathSegment() == null) {
+        // the repository didn't send a relative path segment
+        throw new CmisRuntimeException("Repository sent invalid data! No relative path segement!");
+      }
+
+      String folderPath = ((String) pathProperty.getFirstValue());
+      paths.add(folderPath + (folderPath.endsWith("/") ? "" : "/") + p.getRelativePathSegment());
+    }
 
-    return this.paths;
+    return paths;
   }
 
   /*

Added: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/OperationContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/OperationContextImpl.java?rev=918382&view=auto
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/OperationContextImpl.java (added)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/OperationContextImpl.java Wed Mar  3 10:22:14 2010
@@ -0,0 +1,160 @@
+/*
+ * 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;
+
+import java.io.Serializable;
+
+import org.apache.opencmis.client.api.OperationContext;
+import org.apache.opencmis.commons.PropertyIds;
+import org.apache.opencmis.commons.enums.IncludeRelationships;
+
+/**
+ * {@link OperationContext} implementation.
+ */
+public class OperationContextImpl implements OperationContext, Serializable {
+
+  private static final long serialVersionUID = 1L;
+
+  private String filter;
+  private boolean includeAcls;
+  private boolean includeAllowableActions;
+  private boolean includePolicies;
+  private IncludeRelationships includeRelationships;
+  private String renditionFilter;
+  private boolean includePathSegments;
+  private String orderBy;
+
+  public OperationContextImpl() {
+    this.filter = null;
+    this.includeAcls = false;
+    this.includeAllowableActions = true;
+    this.includePolicies = true;
+    this.includeRelationships = IncludeRelationships.NONE;
+    this.renditionFilter = null;
+    this.includePathSegments = true;
+    this.orderBy = null;
+  }
+
+  public OperationContextImpl(OperationContext source) {
+    this.filter = source.getFilter();
+    this.includeAcls = source.getIncludeAcls();
+    this.includeAllowableActions = source.getIncludeAllowableActions();
+    this.includePolicies = source.getIncludePolicies();
+    this.includeRelationships = source.getIncludeRelationships();
+    this.renditionFilter = source.getRenditionFilter();
+    this.includePathSegments = source.getIncludePathSegments();
+    this.orderBy = source.getOrderBy();
+  }
+
+  public OperationContextImpl(String filter, boolean includeAcls, boolean includeAllowableActions,
+      boolean includePolicies, IncludeRelationships includeRelationships, String renditionFilter,
+      boolean includePathSegments, String orderBy) {
+    this.filter = filter;
+    this.includeAcls = includeAcls;
+    this.includeAllowableActions = includeAllowableActions;
+    this.includePolicies = includePolicies;
+    this.includeRelationships = includeRelationships;
+    this.renditionFilter = renditionFilter;
+    this.includePathSegments = includePathSegments;
+    this.orderBy = orderBy;
+  }
+
+  public String getFilter() {
+    return this.filter;
+  }
+
+  public void setFilter(String filter) {
+    this.filter = filter;
+  }
+
+  public String getFullFilter() {
+    String fullFilter = filter;
+
+    if ((fullFilter != null) && (fullFilter.indexOf('*') == -1)) {
+      if (fullFilter.indexOf(PropertyIds.CMIS_OBJECT_ID) == -1) {
+        fullFilter = PropertyIds.CMIS_OBJECT_ID + "," + fullFilter;
+      }
+      if (fullFilter.indexOf(PropertyIds.CMIS_BASE_TYPE_ID) == -1) {
+        fullFilter = PropertyIds.CMIS_BASE_TYPE_ID + "," + fullFilter;
+      }
+      if (fullFilter.indexOf(PropertyIds.CMIS_OBJECT_TYPE_ID) == -1) {
+        fullFilter = PropertyIds.CMIS_OBJECT_TYPE_ID + "," + fullFilter;
+      }
+    }
+
+    return fullFilter;
+  }
+
+  public boolean getIncludeAcls() {
+    return includeAcls;
+  }
+
+  public void setIncludeAcls(boolean include) {
+    this.includeAcls = include;
+  }
+
+  public boolean getIncludeAllowableActions() {
+    return this.includeAllowableActions;
+  }
+
+  public void setIncludeAllowableActions(boolean include) {
+    this.includeAllowableActions = include;
+  }
+
+  public boolean getIncludePolicies() {
+    return this.includePolicies;
+  }
+
+  public void setIncludePolicies(boolean include) {
+    this.includePolicies = include;
+  }
+
+  public IncludeRelationships getIncludeRelationships() {
+    return this.includeRelationships;
+  }
+
+  public void setIncludeRelationships(IncludeRelationships include) {
+    this.includeRelationships = include;
+  }
+
+  public String getRenditionFilter() {
+    return this.renditionFilter;
+  }
+
+  public void setRenditionFilter(String filter) {
+    this.renditionFilter = filter;
+  }
+
+  public boolean getIncludePathSegments() {
+    return includePathSegments;
+  }
+
+  public void setIncludePathSegments(boolean include) {
+    this.includePathSegments = include;
+  }
+
+  public String getOrderBy() {
+    return this.orderBy;
+  }
+
+  public void setOrderBy(String orderBy) {
+    this.orderBy = orderBy;
+  }
+
+}

Propchange: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/OperationContextImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentDocumentImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentDocumentImpl.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentDocumentImpl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentDocumentImpl.java Wed Mar  3 10:22:14 2010
@@ -23,6 +23,7 @@
 import org.apache.opencmis.client.api.Ace;
 import org.apache.opencmis.client.api.ContentStream;
 import org.apache.opencmis.client.api.Document;
+import org.apache.opencmis.client.api.OperationContext;
 import org.apache.opencmis.client.api.Policy;
 import org.apache.opencmis.client.api.Property;
 import org.apache.opencmis.client.api.Rendition;
@@ -108,22 +109,33 @@
   public void checkIn(boolean major, List<Property<?>> properties, ContentStream contentStream,
       String checkinComment, List<Policy> policies, List<Ace> addACEs, List<Ace> removeACEs) {
     throw new CmisRuntimeException("not implemented");
-
   }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Document#getAllVersions()
+   */
   public List<Document> getAllVersions() {
-    throw new CmisRuntimeException("not implemented");
+    return getAllVersions(null);
   }
 
-  public Document getObjectOfLatestVersion(boolean major) {
+  public List<Document> getAllVersions(OperationContext context) {
+    // TODO Auto-generated method stub
     throw new CmisRuntimeException("not implemented");
   }
 
-  public List<Property<?>> getPropertiesOfLatestVersion(boolean major) {
-    throw new CmisRuntimeException("not implemented");
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Document#getObjectOfLatestVersion(boolean)
+   */
+  public Document getObjectOfLatestVersion(boolean major) {
+    return getObjectOfLatestVersion(major, null);
   }
 
-  public List<Property<?>> getPropertiesOfLatestVersion(boolean major, String filter) {
+  public Document getObjectOfLatestVersion(boolean major, OperationContext context) {
+    // TODO Auto-generated method stub
     throw new CmisRuntimeException("not implemented");
   }
 

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentFolderImpl.java Wed Mar  3 10:22:14 2010
@@ -30,9 +30,9 @@
 import org.apache.opencmis.client.api.Document;
 import org.apache.opencmis.client.api.FileableCmisObject;
 import org.apache.opencmis.client.api.Folder;
+import org.apache.opencmis.client.api.OperationContext;
 import org.apache.opencmis.client.api.Policy;
 import org.apache.opencmis.client.api.Property;
-import org.apache.opencmis.client.api.SessionContext;
 import org.apache.opencmis.client.api.objecttype.ObjectType;
 import org.apache.opencmis.client.api.repository.ObjectFactory;
 import org.apache.opencmis.client.api.util.Container;
@@ -67,10 +67,6 @@
     initialize(session, null, null);
   }
 
-  public Document createDocument(String name) {
-    throw new CmisRuntimeException("not implemented");
-  }
-
   public Document createDocument(String name, String typeId) {
     throw new CmisRuntimeException("not implemented");
   }
@@ -100,6 +96,12 @@
     throw new CmisRuntimeException("not implemented");
   }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Folder#deleteTree(boolean,
+   * org.apache.opencmis.commons.enums.UnfileObjects, boolean)
+   */
   public List<String> deleteTree(boolean allVersions, UnfileObjects unfile,
       boolean continueOnFailure) {
     String repositoryId = getRepositoryId();
@@ -111,26 +113,62 @@
     return failed.getIds();
   }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Folder#getAllowedChildObjectTypes()
+   */
   public List<ObjectType> getAllowedChildObjectTypes() {
-    throw new CmisRuntimeException("not implemented");
+    List<ObjectType> result = new ArrayList<ObjectType>();
+
+    List<String> otids = getPropertyMultivalue(PropertyIds.CMIS_ALLOWED_CHILD_OBJECT_TYPE_IDS);
+    if (otids == null) {
+      return result;
+    }
+
+    for (String otid : otids) {
+      result.add(getSession().getTypeDefinition(otid));
+    }
+
+    return result;
   }
 
-  public PagingList<Document> getCheckedOutDocs(String orderby, int itemsPerPage) {
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Folder#getCheckedOutDocs(int)
+   */
+  public PagingList<Document> getCheckedOutDocs(int itemsPerPage) {
+    return getCheckedOutDocs(getSession().getDefaultContext(), itemsPerPage);
+  }
+
+  public PagingList<Document> getCheckedOutDocs(OperationContext context, int itemsPerPage) {
+    // TODO Auto-generated method stub
     throw new CmisRuntimeException("not implemented");
   }
 
   /*
    * (non-Javadoc)
    * 
-   * @see org.apache.opencmis.client.api.Folder#getChildren(java.lang.String, int)
+   * @see org.apache.opencmis.client.api.Folder#getChildren(int)
+   */
+  public PagingList<CmisObject> getChildren(int itemsPerPage) {
+    return getChildren(getSession().getDefaultContext(), itemsPerPage);
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see
+   * org.apache.opencmis.client.api.Folder#getChildren(org.apache.opencmis.client.api.OperationContext
+   * , int)
    */
-  public PagingList<CmisObject> getChildren(final String orderBy, final int itemsPerPage) {
+  public PagingList<CmisObject> getChildren(final OperationContext context, final int itemsPerPage) {
     if (itemsPerPage < 1) {
       throw new IllegalArgumentException("itemsPerPage must be > 0!");
     }
 
     final String objectId = getObjectId();
-    final SessionContext context = getSession().getContext();
     final NavigationService navigationService = getProvider().getNavigationService();
     final ObjectFactory objectFactory = getSession().getObjectFactory();
 
@@ -142,8 +180,8 @@
 
         // get the children
         ObjectInFolderList children = navigationService.getChildren(getRepositoryId(), objectId,
-            context.getIncludeProperties(), orderBy, context.getIncludeAllowableActions(), context
-                .getIncludeRelationships(), context.getIncludeRenditions(), context
+            context.getFullFilter(), context.getOrderBy(), context.getIncludeAllowableActions(),
+            context.getIncludeRelationships(), context.getRenditionFilter(), context
                 .getIncludePathSegments(), BigInteger.valueOf(getMaxItemsPerPage()), BigInteger
                 .valueOf(skipCount), null);
 
@@ -165,14 +203,39 @@
     };
   }
 
-  public List<Container<FileableCmisObject>> getFolderTree(int depth) {
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Folder#getDescendants(int)
+   */
+  public List<Container<FileableCmisObject>> getDescendants(int depth) {
+    return getDescendants(depth, getSession().getDefaultContext());
+  }
+
+  public List<Container<FileableCmisObject>> getDescendants(int depth, OperationContext context) {
+    // TODO Auto-generated method stub
     throw new CmisRuntimeException("not implemented");
   }
 
-  public List<Container<FileableCmisObject>> getDescendants(int depth) {
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Folder#getFolderTree(int)
+   */
+  public List<Container<FileableCmisObject>> getFolderTree(int depth) {
+    return getFolderTree(depth, getSession().getDefaultContext());
+  }
+
+  public List<Container<FileableCmisObject>> getFolderTree(int depth, OperationContext context) {
+    // TODO Auto-generated method stub
     throw new CmisRuntimeException("not implemented");
   }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Folder#getFolderParent()
+   */
   public Folder getFolderParent() {
     List<Folder> parents = getParents();
 
@@ -183,6 +246,11 @@
     return parents.get(0);
   }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Folder#getPath()
+   */
   public String getPath() {
     List<String> paths = getPaths();
     if ((paths == null) || (paths.isEmpty())) {
@@ -286,5 +354,4 @@
 
     return pd;
   }
-
 }

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentRelationshipImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentRelationshipImpl.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentRelationshipImpl.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/PersistentRelationshipImpl.java Wed Mar  3 10:22:14 2010
@@ -19,6 +19,7 @@
 package org.apache.opencmis.client.runtime;
 
 import org.apache.opencmis.client.api.CmisObject;
+import org.apache.opencmis.client.api.OperationContext;
 import org.apache.opencmis.client.api.Relationship;
 import org.apache.opencmis.client.api.objecttype.ObjectType;
 import org.apache.opencmis.commons.PropertyIds;
@@ -27,9 +28,6 @@
 public class PersistentRelationshipImpl extends AbstractPersistentCmisObject implements
     Relationship {
 
-  private CmisObject source;
-  private CmisObject target;
-
   /**
    * Constructor.
    */
@@ -38,22 +36,27 @@
     initialize(session, objectType, objectData);
   }
 
-  /* (non-Javadoc)
+  /*
+   * (non-Javadoc)
+   * 
    * @see org.apache.opencmis.client.api.Relationship#getSource()
    */
   public CmisObject getSource() {
-    if (this.source != null) {
-      return this.source;
-    }
+    return getSource(getSession().getDefaultContext());
+  }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Relationship#getSource()
+   */
+  public CmisObject getSource(OperationContext context) {
     String sourceId = getPropertyValue(PropertyIds.CMIS_SOURCE_ID);
     if (sourceId == null) {
       return null;
     }
 
-    this.source = getSession().getObject(sourceId);
-
-    return this.source;
+    return getSession().getObject(sourceId, context);
   }
 
   /*
@@ -62,17 +65,21 @@
    * @see org.apache.opencmis.client.api.Relationship#getTarget()
    */
   public CmisObject getTarget() {
-    if (this.target != null) {
-      return this.target;
-    }
+    return getTarget(getSession().getDefaultContext());
+  }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Relationship#getTarget()
+   */
+  public CmisObject getTarget(OperationContext context) {
     String targetId = getPropertyValue(PropertyIds.CMIS_TARGET_ID);
     if (targetId == null) {
       return null;
     }
 
-    this.target = getSession().getObject(targetId);
-
-    return this.target;
+    return getSession().getObject(targetId, context);
   }
+
 }

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=918382&r1=918381&r2=918382&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 Wed Mar  3 10:22:14 2010
@@ -33,10 +33,10 @@
 import org.apache.opencmis.client.api.Document;
 import org.apache.opencmis.client.api.ExtensionHandler;
 import org.apache.opencmis.client.api.Folder;
+import org.apache.opencmis.client.api.OperationContext;
 import org.apache.opencmis.client.api.PersistentSession;
 import org.apache.opencmis.client.api.Property;
 import org.apache.opencmis.client.api.Session;
-import org.apache.opencmis.client.api.SessionContext;
 import org.apache.opencmis.client.api.objecttype.ObjectType;
 import org.apache.opencmis.client.api.repository.ObjectFactory;
 import org.apache.opencmis.client.api.repository.PropertyFactory;
@@ -46,14 +46,11 @@
 import org.apache.opencmis.client.api.util.Testable;
 import org.apache.opencmis.client.provider.factory.CmisProviderFactory;
 import org.apache.opencmis.client.runtime.cache.Cache;
-import org.apache.opencmis.client.runtime.cache.CacheImpl;
 import org.apache.opencmis.client.runtime.repository.PersistentObjectFactoryImpl;
 import org.apache.opencmis.client.runtime.repository.PersistentPropertyFactoryImpl;
 import org.apache.opencmis.client.runtime.util.AbstractPagingList;
 import org.apache.opencmis.client.runtime.util.ContainerImpl;
-import org.apache.opencmis.commons.PropertyIds;
 import org.apache.opencmis.commons.SessionParameter;
-import org.apache.opencmis.commons.api.ExtensionsData;
 import org.apache.opencmis.commons.api.TypeDefinition;
 import org.apache.opencmis.commons.api.TypeDefinitionContainer;
 import org.apache.opencmis.commons.api.TypeDefinitionList;
@@ -72,12 +69,15 @@
 
 public class PersistentSessionImpl implements PersistentSession, Testable, Serializable {
 
+  private static final OperationContext DEFAULT_CONTEXT = new OperationContextImpl(null, false,
+      true, false, IncludeRelationships.NONE, null, true, null);
+
   private static Log log = LogFactory.getLog(PersistentSessionImpl.class);
 
   /*
    * default session context (serializable)
    */
-  private SessionContextImpl context = new SessionContextImpl();
+  private OperationContext context = DEFAULT_CONTEXT;
 
   /*
    * root folder containing generated test data (not serializable)
@@ -108,7 +108,7 @@
   /*
    * Object cache (serializable)
    */
-  private Cache cache = null;
+  // private Cache cache = null;
 
   /*
    * Lazy loaded repository info. Will be invalid after clear(). Access by getter always.
@@ -133,15 +133,15 @@
     this.locale = this.determineLocale(parameters);
     PersistentSessionImpl.log.info("Session Locale: " + this.locale.toString());
 
-    int cacheSize = this.determineCacheSize(parameters);
-
-    if (cacheSize == -1) {
-      this.cache = CacheImpl.newInstance();
-    }
-    else {
-      this.cache = CacheImpl.newInstance(cacheSize);
-    }
-    PersistentSessionImpl.log.info("Session Cache Size: " + this.cache.size());
+    // int cacheSize = this.determineCacheSize(parameters);
+    //
+    // if (cacheSize == -1) {
+    // this.cache = CacheImpl.newInstance();
+    // }
+    // else {
+    // this.cache = CacheImpl.newInstance(cacheSize);
+    // }
+    // PersistentSessionImpl.log.info("Session Cache Size: " + this.cache.size());
   }
 
   private int determineCacheSize(Map<String, String> parameters) {
@@ -186,86 +186,152 @@
     return locale;
   }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Session#clear()
+   */
   public void clear() {
     /*
      * clear cache
      */
 
-    int cacheSize = this.determineCacheSize(this.parameters);
-    if (cacheSize == -1) {
-      this.cache = CacheImpl.newInstance();
-    }
-    else {
-      this.cache = CacheImpl.newInstance(cacheSize);
-    }
-    PersistentSessionImpl.log.info("Session Cache Size: " + this.cache.size());
+    // int cacheSize = this.determineCacheSize(this.parameters);
+    // if (cacheSize == -1) {
+    // this.cache = CacheImpl.newInstance();
+    // }
+    // else {
+    // this.cache = CacheImpl.newInstance(cacheSize);
+    // }
+    // PersistentSessionImpl.log.info("Session Cache Size: " + this.cache.size());
 
     /*
      * clear repository info
      */
 
-    this.repositoryInfo.clear();
+    getProvider().clearAllCaches();
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Session#getCheckedOutDocs(int)
+   */
+  public PagingList<Document> getCheckedOutDocs(int itemsPerPage) {
+    return getCheckedOutDocs(getDefaultContext(), itemsPerPage);
   }
 
-  public PagingList<Document> getCheckedOutDocs(Folder folder, String orderby, int itemsPerPage) {
+  /*
+   * (non-Javadoc)
+   * 
+   * @seeorg.apache.opencmis.client.api.Session#getCheckedOutDocs(org.apache.opencmis.client.api.
+   * OperationContext, int)
+   */
+  public PagingList<Document> getCheckedOutDocs(OperationContext context, int itemsPerPage) {
     throw new CmisRuntimeException("not implemented");
   }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Session#getContentChanges(java.lang.String, int)
+   */
   public PagingList<ChangeEvent> getContentChanges(String changeLogToken, int itemsPerPage) {
     throw new CmisRuntimeException("not implemented");
   }
 
-  public SessionContext getContext() {
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Session#getDefaultContext()
+   */
+  public OperationContext getDefaultContext() {
     return this.context;
   }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @seeorg.apache.opencmis.client.api.Session#setDefaultContext(org.apache.opencmis.client.api.
+   * OperationContext)
+   */
+  public void setDefaultContext(OperationContext context) {
+    this.context = (context == null ? DEFAULT_CONTEXT : context);
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Session#createOperationContext(java.lang.String, boolean,
+   * boolean, boolean, org.apache.opencmis.commons.enums.IncludeRelationships, java.lang.String,
+   * boolean, java.lang.String)
+   */
+  public OperationContext createOperationContext(String filter, boolean includeAcls,
+      boolean includeAllowableActions, boolean includePolicies,
+      IncludeRelationships includeRelationships, String renditionFilter,
+      boolean includePathSegments, String orderBy) {
+    return new OperationContextImpl(filter, includeAcls, includeAllowableActions, includePolicies,
+        includeRelationships, renditionFilter, includePathSegments, orderBy);
+  }
+
   public Locale getLocale() {
     return this.locale;
   }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Session#getObject(java.lang.String)
+   */
   public CmisObject getObject(String objectId) {
-    CmisObject obj = null;
-    if (this.cache.containsId(objectId)) {
-      obj = this.cache.get(objectId);
-    }
-    else {
-      /* query context */
-      String filter = this.context.getIncludeProperties();
-      boolean includeAllowableActions = this.context.getIncludeAllowableActions();
-      IncludeRelationships includeRelationships = this.context.getIncludeRelationships();
-      String renditionFilter = this.context.getIncludeRenditions();
-      boolean includePolicyIds = this.context.getIncludePolicies();
-      boolean includeAcl = this.context.getIncludeAcls();
-      ExtensionsData extension = null;
-
-      // add object id, base type id and type id to filter
-      if ((filter != null) && (filter.indexOf('*') == -1)) {
-        if (filter.indexOf(PropertyIds.CMIS_OBJECT_ID) == -1) {
-          filter = PropertyIds.CMIS_OBJECT_ID + "," + filter;
-        }
-        if (filter.indexOf(PropertyIds.CMIS_BASE_TYPE_ID) == -1) {
-          filter = PropertyIds.CMIS_BASE_TYPE_ID + "," + filter;
-        }
-        if (filter.indexOf(PropertyIds.CMIS_OBJECT_TYPE_ID) == -1) {
-          filter = PropertyIds.CMIS_OBJECT_TYPE_ID + "," + filter;
-        }
-      }
+    return getObject(objectId, getDefaultContext());
+  }
 
-      /* ask backend */
-      String repositoryId = this.getRepositoryId();
-      ObjectData od = this.provider.getObjectService().getObject(repositoryId, objectId, filter,
-          includeAllowableActions, includeRelationships, renditionFilter, includePolicyIds,
-          includeAcl, extension);
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Session#getObject(java.lang.String,
+   * org.apache.opencmis.client.api.OperationContext)
+   */
+  public CmisObject getObject(String objectId, OperationContext context) {
+    if (objectId == null) {
+      throw new IllegalArgumentException("Object Id must be set!");
+    }
 
-      obj = getObjectFactory().convertObject(od);
+    ObjectData objectData = this.provider.getObjectService().getObject(getRepositoryId(), objectId,
+        context.getFullFilter(), context.getIncludeAllowableActions(),
+        context.getIncludeRelationships(), context.getRenditionFilter(),
+        context.getIncludePolicies(), context.getIncludeAcls(), null);
 
-      this.cache.put(obj);
-    }
-    return obj;
+    return getObjectFactory().convertObject(objectData);
   }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Session#getObjectByPath(java.lang.String)
+   */
   public CmisObject getObjectByPath(String path) {
-    throw new CmisRuntimeException("not implemented");
+    return getObjectByPath(path, getDefaultContext());
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Session#getObjectByPath(java.lang.String,
+   * org.apache.opencmis.client.api.OperationContext)
+   */
+  public CmisObject getObjectByPath(String path, OperationContext context) {
+    if (path == null) {
+      throw new IllegalArgumentException("Path must be set!");
+    }
+
+    ObjectData objectData = this.provider.getObjectService().getObjectByPath(getRepositoryId(),
+        path, context.getFullFilter(), context.getIncludeAllowableActions(),
+        context.getIncludeRelationships(), context.getRenditionFilter(),
+        context.getIncludePolicies(), context.getIncludeAcls(), null);
+
+    return getObjectFactory().convertObject(objectData);
   }
 
   public ObjectFactory getObjectFactory() {
@@ -276,6 +342,11 @@
     return this.propertyFactory;
   }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Session#getRepositoryInfo()
+   */
   public RepositoryInfo getRepositoryInfo() {
     if (this.repositoryInfo == null) {
       /* get initial repository id from session parameter */
@@ -286,24 +357,30 @@
     return this.repositoryInfo;
   }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Session#getRootFolder()
+   */
   public Folder getRootFolder() {
-    Folder rootFolder = null;
+    return getRootFolder(getDefaultContext());
+  }
 
-    if (this.cache.containsPath("/")) {
-      rootFolder = (Folder) this.cache.getByPath("/");
-    }
-    else {
-      String rootFolderId = this.getRepositoryInfo().getRootFolderId();
-      String repositoryId = this.getRepositoryId();
-      ObjectData od = this.provider.getObjectService().getObject(repositoryId, rootFolderId, null,
-          false, IncludeRelationships.NONE, null, false, false, null);
+  /*
+   * (non-Javadoc)
+   * 
+   * @seeorg.apache.opencmis.client.api.Session#getRootFolder(org.apache.opencmis.client.api.
+   * OperationContext)
+   */
+  public Folder getRootFolder(OperationContext context) {
+    String rootFolderId = getRepositoryInfo().getRootFolderId();
 
-      ObjectType type = SessionUtil.getTypeFromObjectData(this, od);
-      rootFolder = new PersistentFolderImpl(this, type, od);
-      this.cache.put(rootFolder);
+    CmisObject rootFolder = getObject(rootFolderId, context);
+    if (!(rootFolder instanceof Folder)) {
+      throw new CmisRuntimeException("Root folder object is not a folder!");
     }
 
-    return rootFolder;
+    return (Folder) rootFolder;
   }
 
   /*
@@ -321,6 +398,7 @@
     final String repositoryId = getRepositoryId();
     final RepositoryService repositoryService = getProvider().getRepositoryService();
 
+    // set up PagingList object
     return new AbstractPagingList<ObjectType>() {
 
       @Override
@@ -391,14 +469,15 @@
     return result;
   }
 
+  /*
+   * (non-Javadoc)
+   * 
+   * @see org.apache.opencmis.client.api.Session#query(java.lang.String, boolean, int)
+   */
   public PagingList<CmisObject> query(String statement, boolean searchAllVersions, int itemsPerPage) {
     throw new CmisRuntimeException("not implemented");
   }
 
-  public void setContext(SessionContext context) {
-    this.context = (SessionContextImpl) context;
-  }
-
   public String setExtensionContext(String context) {
     throw new CmisRuntimeException("not implemented");
   }
@@ -489,6 +568,10 @@
       throw new CmisRuntimeException("Session parameter not set!");
     }
 
+    if (!this.parameters.containsKey(SessionParameter.BINDING_TYPE)) {
+      this.parameters.put(SessionParameter.BINDING_TYPE, BindingType.CUSTOM.value());
+    }
+
     BindingType bt = BindingType.fromValue(this.parameters.get(SessionParameter.BINDING_TYPE));
 
     switch (bt) {
@@ -498,21 +581,27 @@
     case WEBSERVICES:
       this.provider = this.createWebServiceProvider(this.parameters);
       break;
-    case UNSPECIFIC:
-      this.provider = this.createUnspecificProvider(this.parameters);
+    case CUSTOM:
+      this.provider = this.createCustomProvider(this.parameters);
       break;
     default:
       throw new CmisRuntimeException("Ambiguous session parameter: " + this.parameters);
     }
   }
 
-  private CmisProvider createUnspecificProvider(Map<String, String> parameters) {
+  /**
+   * Creates a provider with custom parameters.
+   */
+  private CmisProvider createCustomProvider(Map<String, String> parameters) {
     CmisProviderFactory factory = CmisProviderFactory.newInstance();
     CmisProvider provider = factory.createCmisProvider(parameters);
 
     return provider;
   }
 
+  /**
+   * Creates a Web Services provider.
+   */
   private CmisProvider createWebServiceProvider(Map<String, String> parameters) {
     CmisProviderFactory factory = CmisProviderFactory.newInstance();
     CmisProvider provider = factory.createCmisWebServicesProvider(parameters);
@@ -520,6 +609,9 @@
     return provider;
   }
 
+  /**
+   * Creates an AtomPub provider.
+   */
   private CmisProvider createAtomPubProvider(Map<String, String> parameters) {
     CmisProviderFactory factory = CmisProviderFactory.newInstance();
     CmisProvider provider = factory.createCmisAtomPubProvider(parameters);
@@ -532,9 +624,12 @@
   }
 
   public Cache getCache() {
-    return this.cache;
+    return null; // this.cache;
   }
 
+  /**
+   * Returns the repository id.
+   */
   public String getRepositoryId() {
     return this.getRepositoryInfo().getId();
   }

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/util/AbstractPagingList.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/util/AbstractPagingList.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/util/AbstractPagingList.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/main/java/org/apache/opencmis/client/runtime/util/AbstractPagingList.java Wed Mar  3 10:22:14 2010
@@ -38,17 +38,16 @@
   private int cacheSize = 0;
   private LinkedHashMap<Integer, FetchResult> cache = null;
 
-  /**
-   * Initializes the cache.
+  /*
+   * (non-Javadoc)
    * 
-   * @param cacheSize
-   *          size of the cache in pages. cacheSize < 1 disables the cache.
+   * @see org.apache.opencmis.client.api.util.PagingList#setCacheSize(int)
    */
-  protected void initializeCache(final int cacheSize) {
+  public void setCacheSize(final int cacheSize) {
     this.cacheSize = cacheSize;
 
     if (cacheSize > 0) {
-      cache = new LinkedHashMap<Integer, FetchResult>(cacheSize + 1, 0.70f, true) {
+      this.cache = new LinkedHashMap<Integer, FetchResult>(cacheSize + 1, 0.70f, true) {
         private static final long serialVersionUID = 1L;
 
         @Override
@@ -57,6 +56,9 @@
         }
       };
     }
+    else {
+      this.cache = null;
+    }
   }
 
   /*
@@ -139,6 +141,28 @@
   /*
    * (non-Javadoc)
    * 
+   * @see org.apache.opencmis.client.api.util.PagingList#isEmpty()
+   */
+  public boolean isEmpty() {
+    if (getNumItems() > 0) {
+      return false;
+    }
+
+    if (getNumItems() == 0) {
+      return true;
+    }
+
+    List<T> page = get(0);
+    if (page == null) {
+      return true;
+    }
+
+    return page.isEmpty();
+  }
+
+  /*
+   * (non-Javadoc)
+   * 
    * @see java.lang.Iterable#iterator()
    */
   public Iterator<List<T>> iterator() {

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlySessionTest.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlySessionTest.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlySessionTest.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/ReadOnlySessionTest.java Wed Mar  3 10:22:14 2010
@@ -30,7 +30,7 @@
 
   @Test
   public void testSession() {
-    Assert.assertNotNull(this.session.getContext());
+    Assert.assertNotNull(this.session.getDefaultContext());
     Assert.assertNotNull(this.session.getLocale());
     Assert.assertNotNull(this.session.getObjectFactory());
     Assert.assertNotNull(this.session.getRepositoryInfo());

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/mock/MockSessionFactory.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/mock/MockSessionFactory.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/mock/MockSessionFactory.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/mock/MockSessionFactory.java Wed Mar  3 10:22:14 2010
@@ -42,9 +42,9 @@
 import org.apache.opencmis.client.api.Document;
 import org.apache.opencmis.client.api.FileableCmisObject;
 import org.apache.opencmis.client.api.Folder;
+import org.apache.opencmis.client.api.OperationContext;
 import org.apache.opencmis.client.api.Property;
 import org.apache.opencmis.client.api.Session;
-import org.apache.opencmis.client.api.SessionContext;
 import org.apache.opencmis.client.api.SessionFactory;
 import org.apache.opencmis.client.api.objecttype.DocumentType;
 import org.apache.opencmis.client.api.objecttype.FolderType;
@@ -129,7 +129,7 @@
 				this.createMockRepositoryInfo()).anyTimes();
 		expect(session.getRootFolder()).andReturn(rootFolder).anyTimes();
 
-		expect(session.getContext()).andReturn(this.createMockSessionContext())
+		expect(session.getDefaultContext()).andReturn(this.createMockOperationContext())
 				.anyTimes();
 		expect(session.getLocale()).andReturn(new Locale("EN")).anyTimes();
 		expect(session.getObjectFactory()).andReturn(
@@ -236,12 +236,12 @@
 		return of;
 	}
 
-	private SessionContext createMockSessionContext() {
-		SessionContext sc = createNiceMock(SessionContext.class);
+	private OperationContext createMockOperationContext() {
+	  OperationContext oc = createNiceMock(OperationContext.class);
 
-		replay(sc);
+		replay(oc);
 
-		return sc;
+		return oc;
 	}
 
 	private Folder createMockTestRootFolder(String parentPath, Folder parent) {

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/otx/OtxInMemoryCmisTestSuite.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/otx/OtxInMemoryCmisTestSuite.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/otx/OtxInMemoryCmisTestSuite.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/suite/otx/OtxInMemoryCmisTestSuite.java Wed Mar  3 10:22:14 2010
@@ -64,7 +64,7 @@
 				.getISO3Country());
 		parameter.put(SessionParameter.LOCALE_ISO639_LANGUAGE, Locale.GERMANY
 				.getISO3Language());
-		parameter.put(SessionParameter.BINDING_TYPE, BindingType.UNSPECIFIC
+		parameter.put(SessionParameter.BINDING_TYPE, BindingType.CUSTOM
 				.value());
 		parameter.put(SessionParameter.REPOSITORY_ID, "InMemory");
 		parameter.put(SessionParameter.BINDING_SPI_CLASS,

Modified: incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/util/PagingListTest.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/util/PagingListTest.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/util/PagingListTest.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-client/opencmis-client-impl/src/test/java/org/apache/opencmis/client/runtime/util/PagingListTest.java Wed Mar  3 10:22:14 2010
@@ -176,7 +176,7 @@
   class TestPagingList extends AbstractPagingList<String> {
 
     public TestPagingList(int cacheSize) {
-      initializeCache(cacheSize);
+      setCacheSize(cacheSize);
     }
 
     @Override

Modified: incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/enums/BindingType.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/enums/BindingType.java?rev=918382&r1=918381&r2=918382&view=diff
==============================================================================
--- incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/enums/BindingType.java (original)
+++ incubator/chemistry/trunk/opencmis/opencmis-commons/opencmis-commons-api/src/main/java/org/apache/opencmis/commons/enums/BindingType.java Wed Mar  3 10:22:14 2010
@@ -23,7 +23,7 @@
  */
 public enum BindingType {
 
-	WEBSERVICES("webservices"), ATOMPUB("atompub"), UNSPECIFIC("unspecific");
+	WEBSERVICES("webservices"), ATOMPUB("atompub"), CUSTOM("custom");
 
 	private final String value;