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 < 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;