You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2012/11/08 16:34:57 UTC

svn commit: r1407134 - in /chemistry/opencmis/trunk: chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/...

Author: fmui
Date: Thu Nov  8 15:34:54 2012
New Revision: 1407134

URL: http://svn.apache.org/viewvc?rev=1407134&view=rev
Log:
Added first batch of CMIS 1.1 low-level interfaces

Added:
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/BulkUpdateObjectIdAndChangeToken.java   (with props)
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/ExtensionFeature.java   (with props)
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/CapabilityOrderBy.java   (with props)
Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/RepositoryServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/RepositoryServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/RepositoryServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ObjectServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/RepositoryServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/local/ObjectServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/local/RepositoryServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/ObjectServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/PropertyIds.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryCapabilities.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryInfo.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/Action.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/BaseTypeId.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/ObjectService.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/RepositoryService.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryCapabilitiesImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryInfoImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/server/AbstractCmisService.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/CmisServiceWrapper.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java Thu Nov  8 15:34:54 2012
@@ -36,6 +36,7 @@ import org.apache.chemistry.opencmis.cli
 import org.apache.chemistry.opencmis.commons.PropertyIds;
 import org.apache.chemistry.opencmis.commons.data.Acl;
 import org.apache.chemistry.opencmis.commons.data.AllowableActions;
+import org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken;
 import org.apache.chemistry.opencmis.commons.data.ContentStream;
 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
 import org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
@@ -363,6 +364,12 @@ public class ObjectServiceImpl extends A
         }
     }
 
+    public List<BulkUpdateObjectIdAndChangeToken> bulkUpdateProperties(String repositoryId,
+            List<BulkUpdateObjectIdAndChangeToken> objectIdAndChangeToken, Properties properties,
+            List<String> addSecondaryTypeIds, List<String> removeSecondaryTypeIds, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
     public void deleteObject(String repositoryId, String objectId, Boolean allVersions, ExtensionsData extension) {
 
         // find the link
@@ -505,6 +512,11 @@ public class ObjectServiceImpl extends A
         return result;
     }
 
+    public void appendContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
+            ContentStream contentStream, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }    
+    
     public ObjectData getObject(String repositoryId, String objectId, String filter, Boolean includeAllowableActions,
             IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
             Boolean includeACL, ExtensionsData extension) {

Modified: chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/RepositoryServiceImpl.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/RepositoryServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/RepositoryServiceImpl.java Thu Nov  8 15:34:54 2012
@@ -33,6 +33,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
 import org.apache.chemistry.opencmis.commons.impl.Constants;
 import org.apache.chemistry.opencmis.commons.impl.UrlBuilder;
@@ -210,4 +211,16 @@ public class RepositoryServiceImpl exten
             }
         }
     }
+    
+    public TypeDefinition createType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
+    public TypeDefinition updateType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
+    public void deleteType(String repositoryId, String typeId, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/RepositoryServiceImpl.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/RepositoryServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/impl/RepositoryServiceImpl.java Thu Nov  8 15:34:54 2012
@@ -23,8 +23,8 @@ import java.io.Serializable;
 import java.math.BigInteger;
 import java.util.List;
 
-import org.apache.chemistry.opencmis.client.bindings.spi.CmisSpi;
 import org.apache.chemistry.opencmis.client.bindings.spi.BindingSession;
+import org.apache.chemistry.opencmis.client.bindings.spi.CmisSpi;
 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
 import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
@@ -174,4 +174,39 @@ public class RepositoryServiceImpl imple
             addToTypeCache(cache, repositoryId, container.getChildren());
         }
     }
+
+    public TypeDefinition createType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        // get the SPI and create the type definitions
+        CmisSpi spi = CmisBindingsHelper.getSPI(session);
+        TypeDefinition result = spi.getRepositoryService().createType(repositoryId, type, extension);
+
+        // add the type to cache
+        TypeDefinitionCache cache = CmisBindingsHelper.getTypeDefinitionCache(session);
+        cache.put(repositoryId, result);
+
+        return result;
+    }
+
+    public TypeDefinition updateType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        // get the SPI and update the type definitions
+        CmisSpi spi = CmisBindingsHelper.getSPI(session);
+        TypeDefinition result = spi.getRepositoryService().updateType(repositoryId, type, extension);
+
+        // update the type in cache
+        TypeDefinitionCache cache = CmisBindingsHelper.getTypeDefinitionCache(session);
+        cache.put(repositoryId, result);
+
+        return result;
+    }
+
+    public void deleteType(String repositoryId, String typeId, ExtensionsData extension) {
+        // get the SPI and delete the type definitions
+        CmisSpi spi = CmisBindingsHelper.getSPI(session);
+        spi.getRepositoryService().deleteType(repositoryId, typeId, extension);
+
+        // remove the type from cache
+        TypeDefinitionCache cache = CmisBindingsHelper.getTypeDefinitionCache(session);
+        cache.remove(repositoryId, typeId);
+    }
+
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/ObjectServiceImpl.java Thu Nov  8 15:34:54 2012
@@ -39,6 +39,7 @@ import org.apache.chemistry.opencmis.cli
 import org.apache.chemistry.opencmis.commons.PropertyIds;
 import org.apache.chemistry.opencmis.commons.data.Acl;
 import org.apache.chemistry.opencmis.commons.data.AllowableActions;
+import org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken;
 import org.apache.chemistry.opencmis.commons.data.ContentStream;
 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
 import org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
@@ -353,6 +354,12 @@ public class ObjectServiceImpl extends A
         }
     }
 
+    public List<BulkUpdateObjectIdAndChangeToken> bulkUpdateProperties(String repositoryId,
+            List<BulkUpdateObjectIdAndChangeToken> objectIdAndChangeToken, Properties properties,
+            List<String> addSecondaryTypeIds, List<String> removeSecondaryTypeIds, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
     public void deleteObject(String repositoryId, String objectId, Boolean allVersions, ExtensionsData extension) {
 
         // find the link
@@ -670,6 +677,11 @@ public class ObjectServiceImpl extends A
         }
     }
 
+    public void appendContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
+            ContentStream contentStream, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
     // ---- internal ----
 
     private static void checkCreateProperties(Properties properties) {

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/RepositoryServiceImpl.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/RepositoryServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/atompub/RepositoryServiceImpl.java Thu Nov  8 15:34:54 2012
@@ -35,6 +35,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
 import org.apache.chemistry.opencmis.commons.impl.Constants;
 import org.apache.chemistry.opencmis.commons.impl.UrlBuilder;
@@ -220,4 +221,16 @@ public class RepositoryServiceImpl exten
             }
         }
     }
+    
+    public TypeDefinition createType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
+    public TypeDefinition updateType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
+    public void deleteType(String repositoryId, String typeId, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ObjectServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ObjectServiceImpl.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ObjectServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ObjectServiceImpl.java Thu Nov  8 15:34:54 2012
@@ -28,6 +28,7 @@ import org.apache.chemistry.opencmis.cli
 import org.apache.chemistry.opencmis.commons.PropertyIds;
 import org.apache.chemistry.opencmis.commons.data.Acl;
 import org.apache.chemistry.opencmis.commons.data.AllowableActions;
+import org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken;
 import org.apache.chemistry.opencmis.commons.data.ContentStream;
 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
 import org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
@@ -38,6 +39,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.enums.UnfileObject;
 import org.apache.chemistry.opencmis.commons.enums.VersioningState;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
 import org.apache.chemistry.opencmis.commons.impl.Constants;
 import org.apache.chemistry.opencmis.commons.impl.JSONConverter;
 import org.apache.chemistry.opencmis.commons.impl.TypeCache;
@@ -358,6 +360,12 @@ public class ObjectServiceImpl extends A
         }
     }
 
+    public List<BulkUpdateObjectIdAndChangeToken> bulkUpdateProperties(String repositoryId,
+            List<BulkUpdateObjectIdAndChangeToken> objectIdAndChangeToken, Properties properties,
+            List<String> addSecondaryTypeIds, List<String> removeSecondaryTypeIds, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+    
     public void moveObject(String repositoryId, Holder<String> objectId, String targetFolderId, String sourceFolderId,
             ExtensionsData extension) {
         // we need an object id
@@ -504,4 +512,9 @@ public class ObjectServiceImpl extends A
             changeToken.setValue(ct == null ? null : ct.toString());
         }
     }
+
+    public void appendContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
+            ContentStream contentStream, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/RepositoryServiceImpl.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/RepositoryServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/RepositoryServiceImpl.java Thu Nov  8 15:34:54 2012
@@ -29,6 +29,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
 import org.apache.chemistry.opencmis.commons.impl.Constants;
 import org.apache.chemistry.opencmis.commons.impl.JSONConverter;
@@ -110,4 +111,16 @@ public class RepositoryServiceImpl exten
 
         return JSONConverter.convertTypeDescendants(json);
     }
+
+    public TypeDefinition createType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
+    public TypeDefinition updateType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
+    public void deleteType(String repositoryId, String typeId, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/local/ObjectServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/local/ObjectServiceImpl.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/local/ObjectServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/local/ObjectServiceImpl.java Thu Nov  8 15:34:54 2012
@@ -26,6 +26,7 @@ import java.util.List;
 import org.apache.chemistry.opencmis.client.bindings.spi.BindingSession;
 import org.apache.chemistry.opencmis.commons.data.Acl;
 import org.apache.chemistry.opencmis.commons.data.AllowableActions;
+import org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken;
 import org.apache.chemistry.opencmis.commons.data.ContentStream;
 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
 import org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
@@ -231,6 +232,17 @@ public class ObjectServiceImpl extends A
         }
     }
 
+    public void appendContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
+            ContentStream contentStream, ExtensionsData extension) {
+        CmisService service = getService(repositoryId);
+
+        try {
+            service.appendContentStream(repositoryId, objectId, changeToken, contentStream, extension);
+        } finally {
+            service.close();
+        }
+    }
+
     public void updateProperties(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
             Properties properties, ExtensionsData extension) {
         CmisService service = getService(repositoryId);
@@ -241,4 +253,18 @@ public class ObjectServiceImpl extends A
             service.close();
         }
     }
+
+    public List<BulkUpdateObjectIdAndChangeToken> bulkUpdateProperties(String repositoryId,
+            List<BulkUpdateObjectIdAndChangeToken> objectIdAndChangeToken, Properties properties,
+            List<String> addSecondaryTypeIds, List<String> removeSecondaryTypeIds, ExtensionsData extension) {
+        CmisService service = getService(repositoryId);
+
+        try {
+            return service.bulkUpdateProperties(repositoryId, objectIdAndChangeToken, properties, addSecondaryTypeIds,
+                    removeSecondaryTypeIds, extension);
+        } finally {
+            service.close();
+        }
+    }
+
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/local/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/local/RepositoryServiceImpl.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/local/RepositoryServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/local/RepositoryServiceImpl.java Thu Nov  8 15:34:54 2012
@@ -99,4 +99,34 @@ public class RepositoryServiceImpl exten
         }
     }
 
+    public TypeDefinition createType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        CmisService service = getService(repositoryId);
+
+        try {
+            return service.createType(repositoryId, type, extension);
+        } finally {
+            service.close();
+        }
+    }
+
+    public TypeDefinition updateType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        CmisService service = getService(repositoryId);
+
+        try {
+            return service.updateType(repositoryId, type, extension);
+        } finally {
+            service.close();
+        }
+    }
+
+    public void deleteType(String repositoryId, String typeId, ExtensionsData extension) {
+        CmisService service = getService(repositoryId);
+
+        try {
+            service.deleteType(repositoryId, typeId, extension);
+        } finally {
+            service.close();
+        }
+    }
+
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/ObjectServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/ObjectServiceImpl.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/ObjectServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/ObjectServiceImpl.java Thu Nov  8 15:34:54 2012
@@ -31,6 +31,7 @@ import java.util.List;
 import org.apache.chemistry.opencmis.client.bindings.spi.BindingSession;
 import org.apache.chemistry.opencmis.commons.data.Acl;
 import org.apache.chemistry.opencmis.commons.data.AllowableActions;
+import org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken;
 import org.apache.chemistry.opencmis.commons.data.ContentStream;
 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
 import org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
@@ -40,6 +41,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
 import org.apache.chemistry.opencmis.commons.enums.UnfileObject;
 import org.apache.chemistry.opencmis.commons.enums.VersioningState;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisException;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisExtensionType;
@@ -207,6 +209,12 @@ public class ObjectServiceImpl extends A
             portProvider.endCall(port);
         }
     }
+    
+    public List<BulkUpdateObjectIdAndChangeToken> bulkUpdateProperties(String repositoryId,
+            List<BulkUpdateObjectIdAndChangeToken> objectIdAndChangeToken, Properties properties,
+            List<String> addSecondaryTypeIds, List<String> removeSecondaryTypeIds, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
 
     public void deleteObject(String repositoryId, String objectId, Boolean allVersions, ExtensionsData extension) {
         ObjectServicePort port = portProvider.getObjectServicePort();
@@ -417,4 +425,9 @@ public class ObjectServiceImpl extends A
             portProvider.endCall(port);
         }
     }
+
+    public void appendContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
+            ContentStream contentStream, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/webservices/RepositoryServiceImpl.java Thu Nov  8 15:34:54 2012
@@ -31,6 +31,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
 import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
 import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisException;
 import org.apache.chemistry.opencmis.commons.impl.jaxb.CmisRepositoryEntryType;
@@ -140,4 +141,16 @@ public class RepositoryServiceImpl exten
             portProvider.endCall(port);
         }
     }
+    
+    public TypeDefinition createType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
+    public TypeDefinition updateType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
+    public void deleteType(String repositoryId, String typeId, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/PropertyIds.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/PropertyIds.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/PropertyIds.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/PropertyIds.java Thu Nov  8 15:34:54 2012
@@ -37,6 +37,10 @@ public final class PropertyIds {
     public static final String LAST_MODIFICATION_DATE = "cmis:lastModificationDate";
     public static final String CHANGE_TOKEN = "cmis:changeToken";
 
+    // CMIS 1.1
+    public static final String DESCRIPTION = "cmis:description";
+    public static final String SECONDARY_OBJECT_TYPE_IDS = "cmis:secondaryObjectTypeIds";
+
     // ---- document ----
     public static final String IS_IMMUTABLE = "cmis:isImmutable";
     public static final String IS_LATEST_VERSION = "cmis:isLatestVersion";
@@ -53,6 +57,9 @@ public final class PropertyIds {
     public static final String CONTENT_STREAM_FILE_NAME = "cmis:contentStreamFileName";
     public static final String CONTENT_STREAM_ID = "cmis:contentStreamId";
 
+    // CMIS 1.1
+    public static final String IS_PRIVATE_WORKING_COPY = "cmis:isPrivateWorkingCopy";
+
     // ---- folder ----
     public static final String PARENT_ID = "cmis:parentId";
     public static final String ALLOWED_CHILD_OBJECT_TYPE_IDS = "cmis:allowedChildObjectTypeIds";

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/BulkUpdateObjectIdAndChangeToken.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/BulkUpdateObjectIdAndChangeToken.java?rev=1407134&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/BulkUpdateObjectIdAndChangeToken.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/BulkUpdateObjectIdAndChangeToken.java Thu Nov  8 15:34:54 2012
@@ -0,0 +1,28 @@
+/*
+ * 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.chemistry.opencmis.commons.data;
+
+public interface BulkUpdateObjectIdAndChangeToken extends ExtensionsData {
+
+    String getId();
+
+    String getNewId();
+
+    String getChangeToken();
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/BulkUpdateObjectIdAndChangeToken.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/ExtensionFeature.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/ExtensionFeature.java?rev=1407134&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/ExtensionFeature.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/ExtensionFeature.java Thu Nov  8 15:34:54 2012
@@ -0,0 +1,38 @@
+/*
+ * 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.chemistry.opencmis.commons.data;
+
+import java.io.Serializable;
+import java.util.Map;
+
+public interface ExtensionFeature extends Serializable, ExtensionsData {
+
+    String getId();
+
+    String getUrl();
+
+    String getCommonName();
+
+    String getVersionLabel();
+
+    String getDescription();
+
+    Map<String, String> getFeatureData();
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/ExtensionFeature.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryCapabilities.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryCapabilities.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryCapabilities.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryCapabilities.java Thu Nov  8 15:34:54 2012
@@ -24,6 +24,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.enums.CapabilityChanges;
 import org.apache.chemistry.opencmis.commons.enums.CapabilityContentStreamUpdates;
 import org.apache.chemistry.opencmis.commons.enums.CapabilityJoin;
+import org.apache.chemistry.opencmis.commons.enums.CapabilityOrderBy;
 import org.apache.chemistry.opencmis.commons.enums.CapabilityQuery;
 import org.apache.chemistry.opencmis.commons.enums.CapabilityRenditions;
 
@@ -43,6 +44,8 @@ public interface RepositoryCapabilities 
 
     Boolean isGetFolderTreeSupported();
 
+    CapabilityOrderBy getOrderByCapability();
+
     // Filing
 
     Boolean isMultifilingSupported();

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryInfo.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryInfo.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryInfo.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/data/RepositoryInfo.java Thu Nov  8 15:34:54 2012
@@ -56,4 +56,6 @@ public interface RepositoryInfo extends 
     String getPrincipalIdAnonymous();
 
     String getPrincipalIdAnyone();
+
+    List<ExtensionFeature> getExtensionFeatures();
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/Action.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/Action.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/Action.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/Action.java Thu Nov  8 15:34:54 2012
@@ -45,6 +45,7 @@ public enum Action {
     CAN_CREATE_DOCUMENT("canCreateDocument"), //
     CAN_CREATE_FOLDER("canCreateFolder"), //
     CAN_CREATE_RELATIONSHIP("canCreateRelationship"), //
+    CAN_CREATE_ITEM("canCreateItem"), //
     CAN_DELETE_TREE("canDeleteTree"), //
     CAN_GET_RENDITIONS("canGetRenditions"), //
     CAN_GET_ACL("canGetACL"), //

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/BaseTypeId.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/BaseTypeId.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/BaseTypeId.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/BaseTypeId.java Thu Nov  8 15:34:54 2012
@@ -20,16 +20,15 @@ package org.apache.chemistry.opencmis.co
 
 /**
  * Base Object Type Ids Enum.
- * 
- * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
- * 
  */
 public enum BaseTypeId {
 
     CMIS_DOCUMENT("cmis:document"), //
     CMIS_FOLDER("cmis:folder"), //
     CMIS_RELATIONSHIP("cmis:relationship"), //
-    CMIS_POLICY("cmis:policy");
+    CMIS_POLICY("cmis:policy"), //
+    CMIS_ITEM("cmis:item"), // CMIS 1.1
+    CMIS_SECONDARY("cmis:secondary"); // CMIS 1.1
 
     private final String value;
 

Added: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/CapabilityOrderBy.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/CapabilityOrderBy.java?rev=1407134&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/CapabilityOrderBy.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/CapabilityOrderBy.java Thu Nov  8 15:34:54 2012
@@ -0,0 +1,43 @@
+/*
+ * 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.chemistry.opencmis.commons.enums;
+
+public enum CapabilityOrderBy {
+
+    NONE("none"), COMMON("common"), CUSTOM("custom");
+    private final String value;
+
+    CapabilityOrderBy(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static CapabilityOrderBy fromValue(String v) {
+        for (CapabilityOrderBy c : CapabilityOrderBy.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/enums/CapabilityOrderBy.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/ObjectService.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/ObjectService.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/ObjectService.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/ObjectService.java Thu Nov  8 15:34:54 2012
@@ -23,6 +23,7 @@ import java.util.List;
 
 import org.apache.chemistry.opencmis.commons.data.Acl;
 import org.apache.chemistry.opencmis.commons.data.AllowableActions;
+import org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken;
 import org.apache.chemistry.opencmis.commons.data.ContentStream;
 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
 import org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
@@ -358,6 +359,24 @@ public interface ObjectService {
             Properties properties, ExtensionsData extension);
 
     /**
+     * Updates properties and secondary types of one or more objects.
+     * 
+     * @param repositoryId
+     *            the identifier for the repository
+     * @param objectIdAndChangeToken
+     *            the ids and change tokens of the objects to update
+     * @param properties
+     *            the properties to set
+     * @param addSecondaryTypeIds
+     *            the secondary types to apply
+     * @param removeSecondaryTypeIds
+     *            the secondary types to remove
+     */
+    List<BulkUpdateObjectIdAndChangeToken> bulkUpdateProperties(String repositoryId,
+            List<BulkUpdateObjectIdAndChangeToken> objectIdAndChangeToken, Properties properties,
+            List<String> addSecondaryTypeIds, List<String> removeSecondaryTypeIds, ExtensionsData extension);
+
+    /**
      * Moves the specified file-able object from one folder to another.
      * 
      * @param repositoryId
@@ -455,4 +474,22 @@ public interface ObjectService {
      */
     void deleteContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
             ExtensionsData extension);
+
+    /**
+     * Appends the content stream to the content of the document.
+     * 
+     * @param repositoryId
+     *            the identifier for the repository
+     * @param objectId
+     *            the identifier for the object. The repository might return a
+     *            different/new object id
+     * @param changeToken
+     *            <em>(optional)</em> the last change token of this object that
+     *            the client received. The repository might return a new change
+     *            token (default is <code>null</code>)
+     * @param contentStream
+     *            the content stream to append
+     */
+    void appendContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
+            ContentStream contentStream, ExtensionsData extension);
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/RepositoryService.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/RepositoryService.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/RepositoryService.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/spi/RepositoryService.java Thu Nov  8 15:34:54 2012
@@ -113,4 +113,36 @@ public interface RepositoryService {
      *            typeId of an object type specified in the repository
      */
     TypeDefinition getTypeDefinition(String repositoryId, String typeId, ExtensionsData extension);
+
+    /**
+     * Creates a new type.
+     * 
+     * @param repositoryId
+     *            the identifier for the repository
+     * @param type
+     *            the type definition
+     * @return the newly created type
+     */
+    TypeDefinition createType(String repositoryId, TypeDefinition type, ExtensionsData extension);
+
+    /**
+     * Updates a type.
+     * 
+     * @param repositoryId
+     *            the identifier for the repository
+     * @param type
+     *            the type definition
+     * @return the updated type
+     */
+    TypeDefinition updateType(String repositoryId, TypeDefinition type, ExtensionsData extension);
+
+    /**
+     * Deletes a type.
+     * 
+     * @param repositoryId
+     *            the identifier for the repository
+     * @param typeId
+     *            typeId of an object type specified in the repository
+     */
+    void deleteType(String repositoryId, String typeId, ExtensionsData extension);
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryCapabilitiesImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryCapabilitiesImpl.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryCapabilitiesImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryCapabilitiesImpl.java Thu Nov  8 15:34:54 2012
@@ -23,6 +23,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.enums.CapabilityChanges;
 import org.apache.chemistry.opencmis.commons.enums.CapabilityContentStreamUpdates;
 import org.apache.chemistry.opencmis.commons.enums.CapabilityJoin;
+import org.apache.chemistry.opencmis.commons.enums.CapabilityOrderBy;
 import org.apache.chemistry.opencmis.commons.enums.CapabilityQuery;
 import org.apache.chemistry.opencmis.commons.enums.CapabilityRenditions;
 
@@ -44,6 +45,7 @@ public class RepositoryCapabilitiesImpl 
     private Boolean isPwcUpdatable;
     private Boolean supportsGetDescendants;
     private Boolean supportsGetFolderTree;
+    private CapabilityOrderBy capabilityOrderBy;
     private Boolean supportsMultifiling;
     private Boolean supportsUnfiling;
     private Boolean supportsVersionSpecificFiling;
@@ -142,6 +144,14 @@ public class RepositoryCapabilitiesImpl 
         this.supportsGetFolderTree = supportsGetFolderTree;
     }
 
+    public CapabilityOrderBy getOrderByCapability() {
+        return capabilityOrderBy;
+    }
+
+    public void setOrderByCapability(CapabilityOrderBy capabilityOrderBy) {
+        this.capabilityOrderBy = capabilityOrderBy;
+    }
+
     public Boolean isMultifilingSupported() {
         return supportsMultifiling;
     }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryInfoImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryInfoImpl.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryInfoImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/dataobjects/RepositoryInfoImpl.java Thu Nov  8 15:34:54 2012
@@ -21,6 +21,7 @@ package org.apache.chemistry.opencmis.co
 import java.util.List;
 
 import org.apache.chemistry.opencmis.commons.data.AclCapabilities;
+import org.apache.chemistry.opencmis.commons.data.ExtensionFeature;
 import org.apache.chemistry.opencmis.commons.data.RepositoryCapabilities;
 import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
 import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
@@ -48,6 +49,7 @@ public class RepositoryInfoImpl extends 
     private String vendorName;
     private String productName;
     private String productVersion;
+    private List<ExtensionFeature> extensionFeatures;
 
     /**
      * Constructor.
@@ -203,6 +205,14 @@ public class RepositoryInfoImpl extends 
         this.productVersion = productVersion;
     }
 
+    public List<ExtensionFeature> getExtensionFeatures() {
+        return extensionFeatures;
+    }
+
+    public void setExtensionFeature(List<ExtensionFeature> extensionFeatures) {
+        this.extensionFeatures = extensionFeatures;
+    }
+
     @Override
     public String toString() {
         return "Repository Info [id=" + id + ", name=" + name + ", description=" + description + ", capabilities="
@@ -211,7 +221,8 @@ public class RepositoryInfoImpl extends 
                 + ", principal anonymous=" + principalAnonymous + ", principal anyone=" + principalAnyone
                 + ", vendor name=" + vendorName + ", product name=" + productName + ", product version="
                 + productVersion + ", root folder id=" + rootFolderId + ", thin client URI=" + thinClientUri
-                + ", version supported=" + versionSupported + "]" + super.toString();
+                + ", version supported=" + versionSupported + ", extension features=" + extensionFeatures + "]"
+                + super.toString();
     }
 
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/server/AbstractCmisService.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/server/AbstractCmisService.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/server/AbstractCmisService.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/server/AbstractCmisService.java Thu Nov  8 15:34:54 2012
@@ -28,6 +28,7 @@ import java.util.Map;
 import org.apache.chemistry.opencmis.commons.PropertyIds;
 import org.apache.chemistry.opencmis.commons.data.Acl;
 import org.apache.chemistry.opencmis.commons.data.AllowableActions;
+import org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken;
 import org.apache.chemistry.opencmis.commons.data.ContentStream;
 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
 import org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
@@ -79,7 +80,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is required. Convenience implementation is present.</li>
      * </ul>
      */
@@ -109,7 +110,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is required.</li>
      * </ul>
      */
@@ -121,7 +122,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is required.</li>
      * </ul>
      */
@@ -134,7 +135,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -149,12 +150,57 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is required.</li>
      * </ul>
      */
     public abstract TypeDefinition getTypeDefinition(String repositoryId, String typeId, ExtensionsData extension);
 
+    /**
+     * {@inheritDoc}
+     * 
+     * <p>
+     * <b>Implementation Hints:</b>
+     * <ul>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
+     * <li>Implementation is optional.</li>
+     * <li>Introduced in CMIS 1.1</li>
+     * </ul>
+     */
+    public TypeDefinition createType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * <p>
+     * <b>Implementation Hints:</b>
+     * <ul>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
+     * <li>Implementation is optional.</li>
+     * <li>Introduced in CMIS 1.1</li>
+     * </ul>
+     */
+    public TypeDefinition updateType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * <p>
+     * <b>Implementation Hints:</b>
+     * <ul>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
+     * <li>Implementation is optional.</li>
+     * <li>Introduced in CMIS 1.1</li>
+     * </ul>
+     */
+    public void deleteType(String repositoryId, String typeId, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
     // --- navigation service ---
 
     /**
@@ -163,7 +209,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is required.</li>
      * <li>Object infos should contain the folder and all returned children.</li>
      * </ul>
@@ -178,7 +224,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the folder and all returned descendants.</li>
      * </ul>
@@ -195,7 +241,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the folder and all returned descendants.</li>
      * </ul>
@@ -212,7 +258,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is required.</li>
      * <li>Object infos should contain the object and all returned parents.</li>
      * </ul>
@@ -227,7 +273,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the returned parent folder.</li>
      * </ul>
@@ -242,7 +288,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the folder and the returned objects.</li>
      * </ul>
@@ -313,7 +359,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: Web Services, Local</li>
+     * <li>Bindings: Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -329,7 +375,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: Web Services, Local</li>
+     * <li>Bindings: Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -345,7 +391,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: Web Services, Local</li>
+     * <li>Bindings: Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -360,7 +406,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the newly created object.</li>
      * </ul>
@@ -376,7 +422,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: Web Services, Local</li>
+     * <li>Bindings: Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -391,7 +437,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -405,7 +451,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is required.</li>
      * <li>Object infos should contain the returned object.</li>
      * </ul>
@@ -420,7 +466,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: Web Services, Local</li>
+     * <li>Bindings: Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -434,7 +480,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: Web Services, Local</li>
+     * <li>Bindings: Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -449,7 +495,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the returned object.</li>
      * </ul>
@@ -466,7 +512,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -481,7 +527,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the updated object.</li>
      * </ul>
@@ -497,7 +543,24 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
+     * <li>Implementation is optional.</li>
+     * <li>Introduced in CMIS 1.1</li>
+     * </ul>
+     */
+    public List<BulkUpdateObjectIdAndChangeToken> bulkUpdateProperties(String repositoryId,
+            List<BulkUpdateObjectIdAndChangeToken> objectIdAndChangeToken, Properties properties,
+            List<String> addSecondaryTypeIds, List<String> removeSecondaryTypeIds, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * <p>
+     * <b>Implementation Hints:</b>
+     * <ul>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the moved object.</li>
      * </ul>
@@ -513,7 +576,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: Web Services, Local</li>
+     * <li>Bindings: Web Services, Browser, Local</li>
      * <li>Implementation is optional. Convenience implementation is present.</li>
      * </ul>
      */
@@ -542,7 +605,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -557,7 +620,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -572,7 +635,23 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
+     * <li>Implementation is optional.</li>
+     * <li>Introduced in CMIS 1.1</li>
+     * </ul>
+     */
+    public void appendContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
+            ContentStream contentStream, ExtensionsData extension) {
+        throw new CmisNotSupportedException("Not supported!");
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * <p>
+     * <b>Implementation Hints:</b>
+     * <ul>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -589,7 +668,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the checked out object.</li>
      * </ul>
@@ -605,7 +684,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -619,7 +698,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the checked in object.</li>
      * </ul>
@@ -636,7 +715,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the returned object.</li>
      * </ul>
@@ -668,7 +747,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the returned objects.</li>
      * </ul>
@@ -686,7 +765,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the returned objects.</li>
      * </ul>
@@ -702,7 +781,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -720,7 +799,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the added object.</li>
      * </ul>
@@ -736,7 +815,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the removed object.</li>
      * </ul>
@@ -753,7 +832,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the object and the returned relationship
      * objects.</li>
@@ -773,7 +852,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: Web Services, Local</li>
+     * <li>Bindings: Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -802,7 +881,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */
@@ -818,7 +897,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the applied policy object.</li>
      * </ul>
@@ -833,7 +912,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * <li>Object infos should contain the returned policy objects.</li>
      * </ul>
@@ -849,7 +928,7 @@ public abstract class AbstractCmisServic
      * <p>
      * <b>Implementation Hints:</b>
      * <ul>
-     * <li>Bindings: AtomPub, Web Services, Local</li>
+     * <li>Bindings: AtomPub, Web Services, Browser, Local</li>
      * <li>Implementation is optional.</li>
      * </ul>
      */

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/CmisServiceWrapper.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/CmisServiceWrapper.java?rev=1407134&r1=1407133&r2=1407134&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/CmisServiceWrapper.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-support/src/main/java/org/apache/chemistry/opencmis/server/support/CmisServiceWrapper.java Thu Nov  8 15:34:54 2012
@@ -27,6 +27,7 @@ import java.util.List;
 import org.apache.chemistry.opencmis.commons.PropertyIds;
 import org.apache.chemistry.opencmis.commons.data.Acl;
 import org.apache.chemistry.opencmis.commons.data.AllowableActions;
+import org.apache.chemistry.opencmis.commons.data.BulkUpdateObjectIdAndChangeToken;
 import org.apache.chemistry.opencmis.commons.data.ContentStream;
 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
 import org.apache.chemistry.opencmis.commons.data.FailedToDeleteData;
@@ -258,6 +259,28 @@ public class CmisServiceWrapper<T extend
     }
 
     /**
+     * Throws an exception if the given type definition is <code>null</code>.
+     */
+    protected void checkTypeDefinition(TypeDefinition typeDef) {
+        if (typeDef == null) {
+            throw new CmisInvalidArgumentException("Type definition must be set!");
+        }
+    }
+
+    /**
+     * Throws an exception if the given list is <code>null</code> or empty.
+     */
+    protected void checkList(String name, List<?> list) {
+        if (list == null) {
+            throw new CmisInvalidArgumentException(name + " must be set!");
+        }
+
+        if (list.isEmpty()) {
+            throw new CmisInvalidArgumentException(name + " must not be empty!");
+        }
+    }
+
+    /**
      * Returns <code>true</code> if <code>value</code> is <code>null</code>.
      */
     protected Boolean getDefaultTrue(Boolean value) {
@@ -528,6 +551,39 @@ public class CmisServiceWrapper<T extend
         }
     }
 
+    public TypeDefinition createType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        checkRepositoryId(repositoryId);
+        checkTypeDefinition(type);
+
+        try {
+            return service.createType(repositoryId, type, extension);
+        } catch (Exception e) {
+            throw createCmisException(e);
+        }
+    }
+
+    public TypeDefinition updateType(String repositoryId, TypeDefinition type, ExtensionsData extension) {
+        checkRepositoryId(repositoryId);
+        checkTypeDefinition(type);
+
+        try {
+            return service.updateType(repositoryId, type, extension);
+        } catch (Exception e) {
+            throw createCmisException(e);
+        }
+    }
+
+    public void deleteType(String repositoryId, String typeId, ExtensionsData extension) {
+        checkRepositoryId(repositoryId);
+        checkId("Type Id", typeId);
+
+        try {
+            service.deleteType(repositoryId, typeId, extension);
+        } catch (Exception e) {
+            throw createCmisException(e);
+        }
+    }
+
     // --- navigation service ---
 
     public ObjectList getCheckedOutDocs(String repositoryId, String folderId, String filter, String orderBy,
@@ -893,6 +949,19 @@ public class CmisServiceWrapper<T extend
         }
     }
 
+    public void appendContentStream(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
+            ContentStream contentStream, ExtensionsData extension) {
+        checkRepositoryId(repositoryId);
+        checkHolderId("Object Id", objectId);
+        checkContentStream(contentStream);
+
+        try {
+            service.appendContentStream(repositoryId, objectId, changeToken, contentStream, extension);
+        } catch (Exception e) {
+            throw createCmisException(e);
+        }
+    }
+
     public void updateProperties(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
             Properties properties, ExtensionsData extension) {
         checkRepositoryId(repositoryId);
@@ -906,6 +975,21 @@ public class CmisServiceWrapper<T extend
         }
     }
 
+    public List<BulkUpdateObjectIdAndChangeToken> bulkUpdateProperties(String repositoryId,
+            List<BulkUpdateObjectIdAndChangeToken> objectIdAndChangeToken, Properties properties,
+            List<String> addSecondaryTypeIds, List<String> removeSecondaryTypeIds, ExtensionsData extension) {
+        checkRepositoryId(repositoryId);
+        checkList("Object Id list", objectIdAndChangeToken);
+        checkProperties(properties);
+
+        try {
+            return service.bulkUpdateProperties(repositoryId, objectIdAndChangeToken, properties, addSecondaryTypeIds,
+                    removeSecondaryTypeIds, extension);
+        } catch (Exception e) {
+            throw createCmisException(e);
+        }
+    }
+
     // --- versioning service ---
 
     public void cancelCheckOut(String repositoryId, String objectId, ExtensionsData extension) {