chemistry-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gavincornw...@apache.org
Subject svn commit: r1596563 [3/4] - in /chemistry/objectivecmis/trunk: ./ ObjectiveCMIS.xcodeproj/ ObjectiveCMIS.xcodeproj/xcshareddata/xcschemes/ ObjectiveCMIS/Bindings/ ObjectiveCMIS/Bindings/AtomPub/ ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/ ObjectiveC...
Date Wed, 21 May 2014 12:51:01 GMT
Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS.xcodeproj/xcshareddata/xcschemes/ObjectiveCMIS.xcscheme
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS.xcodeproj/xcshareddata/xcschemes/ObjectiveCMIS.xcscheme?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS.xcodeproj/xcshareddata/xcschemes/ObjectiveCMIS.xcscheme (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS.xcodeproj/xcshareddata/xcschemes/ObjectiveCMIS.xcscheme Wed May 21 12:50:59 2014
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "0500"
+   LastUpgradeVersion = "0510"
    version = "1.3">
    <BuildAction
       parallelizeBuildables = "YES"

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISAtomEntryParser.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISAtomEntryParser.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISAtomEntryParser.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISAtomEntryParser.h Wed May 21 12:50:59 2014
@@ -23,14 +23,14 @@
 #import "CMISObjectData.h"
 #import "CMISPropertyData.h"
 #import "CMISProperties.h"
-#import "CMISAllowableActionsParser.h"
+#import "CMISAtomPubAllowableActionsParser.h"
 #import "CMISAtomPubExtensionElementParser.h"
 #import "CMISAtomPubExtensionDataParserBase.h"
-#import "CMISAclParser.h"
+#import "CMISAtomPubAclParser.h"
 
 @protocol CMISAtomEntryParserDelegate;
 
-@interface CMISAtomEntryParser : CMISAtomPubExtensionDataParserBase <NSXMLParserDelegate, CMISAllowableActionsParserDelegate, CMISAclParserDelegate>
+@interface CMISAtomEntryParser : CMISAtomPubExtensionDataParserBase <NSXMLParserDelegate, CMISAtomPubAllowableActionsParserDelegate, CMISAtomPubAclParserDelegate>
 
 @property (nonatomic, strong, readonly) CMISObjectData *objectData;
 

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISAtomEntryParser.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISAtomEntryParser.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISAtomEntryParser.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISAtomEntryParser.m Wed May 21 12:50:59 2014
@@ -20,7 +20,7 @@
 #import "CMISAtomEntryParser.h"
 #import "CMISAtomLink.h"
 #import "CMISRenditionData.h"
-#import "CMISAtomParserUtil.h"
+#import "CMISAtomPubParserUtil.h"
 
 @interface CMISAtomEntryParser ()
 
@@ -150,10 +150,10 @@
             self.currentRendition = [[CMISRenditionData alloc] init];
         } else if ([elementName isEqualToString:kCMISAtomEntryAllowableActions]) {
             // Delegate parsing to child parser for allowableActions element
-            self.childParserDelegate = [CMISAllowableActionsParser allowableActionsParserWithParentDelegate:self parser:parser];
+            self.childParserDelegate = [CMISAtomPubAllowableActionsParser allowableActionsParserWithParentDelegate:self parser:parser];
         } else if ([elementName isEqualToString:kCMISAtomEntryAcl]) {
             // Delegate parsing to child parser for acl element
-            self.childParserDelegate = [CMISAclParser aclParserWithParentDelegate:self parser:parser];
+            self.childParserDelegate = [CMISAtomPubAclParser aclParserWithParentDelegate:self parser:parser];
         } else if ([elementName isEqualToString:kCMISCoreRelationship]) {
             // NOTE: we're currently ignoring the relationship element so set a flag to check
             self.parsingRelationship = YES;
@@ -196,7 +196,7 @@
 {
    
     if ([elementName isEqualToString:kCMISAtomEntryValue]) {
-        [CMISAtomParserUtil parsePropertyValue:self.string propertyType:self.currentPropertyType addToArray:self.propertyValues];
+        [CMISAtomPubParserUtil parsePropertyValue:self.string propertyType:self.currentPropertyType addToArray:self.propertyValues];
     } else if (self.currentRendition != nil) {
         if ([elementName isEqualToString:kCMISCoreStreamId]) {
             self.currentRendition.streamId = self.string;
@@ -309,13 +309,13 @@
 #pragma mark -
 #pragma mark CMISAllowableActionsParserDelegate Methods
 
-- (void)allowableActionsParser:(CMISAllowableActionsParser *)parser didFinishParsingAllowableActions:(CMISAllowableActions *)allowableActions
+- (void)allowableActionsParser:(CMISAtomPubAllowableActionsParser *)parser didFinishParsingAllowableActions:(CMISAllowableActions *)allowableActions
 {
     self.objectData.allowableActions = allowableActions;
 }
 
 #pragma mark - CMISAclParserDelegate Methods
--(void)aclParser:(CMISAclParser *)aclParser didFinishParsingAcl:(CMISAcl *)acl{
+-(void)aclParser:(CMISAtomPubAclParser *)aclParser didFinishParsingAcl:(CMISAcl *)acl{
     self.objectData.acl = acl;
     [self.objectData.acl setIsExact:self.isExcatAcl];
 }

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISTypeDefinitionAtomEntryParser.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISTypeDefinitionAtomEntryParser.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISTypeDefinitionAtomEntryParser.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISTypeDefinitionAtomEntryParser.h Wed May 21 12:50:59 2014
@@ -18,12 +18,12 @@
  */
 
 #import <Foundation/Foundation.h>
-#import "CMISPropertyDefinitionParser.h"
+#import "CMISAtomPubPropertyDefinitionParser.h"
 
 @class CMISTypeDefinition;
 
 // TODO: should we merge this parser with the generic AtomEntry parser?
-@interface CMISTypeDefinitionAtomEntryParser : NSObject <NSXMLParserDelegate, CMISPropertyDefinitionDelegate>
+@interface CMISTypeDefinitionAtomEntryParser : NSObject <NSXMLParserDelegate, CMISAtomPubPropertyDefinitionDelegate>
 
 /**
 * Available after a successful parse.

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISTypeDefinitionAtomEntryParser.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISTypeDefinitionAtomEntryParser.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISTypeDefinitionAtomEntryParser.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/AtomPubParser/CMISTypeDefinitionAtomEntryParser.m Wed May 21 12:50:59 2014
@@ -90,7 +90,7 @@
              || [elementName isEqualToString:kCMISCorePropertyIntegerDefinition]
              || [elementName isEqualToString:kCMISCorePropertyDateTimeDefinition]
              || [elementName isEqualToString:kCMISCorePropertyDecimalDefinition]) {
-        self.childParserDelegate = [CMISPropertyDefinitionParser parserForPropertyDefinition:elementName withParentDelegate:self parser:parser];
+        self.childParserDelegate = [CMISAtomPubPropertyDefinitionParser parserForPropertyDefinition:elementName withParentDelegate:self parser:parser];
     }
 }
 
@@ -111,7 +111,7 @@
         self.isParsingTypeDefinition = NO;
     } else if ([elementName isEqualToString:kCMISCoreId]) {
         if (self.isParsingTypeDefinition){
-            self.typeDefinition.id = self.currentString;
+            self.typeDefinition.identifier = self.currentString;
         }
     } else if ([elementName isEqualToString:kCMISCoreLocalName]) {
         if (self.isParsingTypeDefinition) {
@@ -131,7 +131,7 @@
         }
     } else if ([elementName isEqualToString:kCMISCoreDescription]) {
         if (self.isParsingTypeDefinition) {
-            self.typeDefinition.description = self.currentString;
+            self.typeDefinition.summary = self.currentString;
         }
     } else if ([elementName isEqualToString:kCMISCoreBaseId]) {
         if (self.isParsingTypeDefinition) {

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubBaseService+Protected.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubBaseService%2BProtected.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubBaseService+Protected.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubBaseService+Protected.h Wed May 21 12:50:59 2014
@@ -19,7 +19,7 @@
 
 #import <Foundation/Foundation.h>
 #import "CMISAtomPubBaseService.h"
-#import "CMISObjectByIdUriBuilder.h"
+#import "CMISAtomPubObjectByIdUriBuilder.h"
 
 @class CMISObjectData;
 

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubBaseService.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubBaseService.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubBaseService.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubBaseService.m Wed May 21 12:50:59 2014
@@ -20,13 +20,13 @@
 #import "CMISAtomPubBaseService.h"
 #import "CMISAtomPubBaseService+Protected.h"
 #import "CMISHttpResponse.h"
-#import "CMISServiceDocumentParser.h"
+#import "CMISAtomPubServiceDocumentParser.h"
 #import "CMISConstants.h"
 #import "CMISAtomEntryParser.h"
-#import "CMISWorkspace.h"
+#import "CMISAtomWorkspace.h"
 #import "CMISErrors.h"
-#import "CMISObjectByPathUriBuilder.h"
-#import "CMISTypeByIdUriBuilder.h"
+#import "CMISAtomPubObjectByPathUriBuilder.h"
+#import "CMISAtomPubTypeByIdUriBuilder.h"
 #import "CMISLinkCache.h"
 #import "CMISLog.h"
 #import "CMISAtomEntryWriter.h"
@@ -46,7 +46,7 @@
     self = [super init];
     if (self) {
         self.bindingSession = session;
-        self.atomPubUrl = [session objectForKey:kCMISBindingSessionKeyAtomPubUrl];
+        self.atomPubUrl = [session objectForKey:kCMISBindingSessionKeyUrl];
     }
     return self;
 }
@@ -84,27 +84,27 @@
     [self retrieveCMISWorkspacesWithCMISRequest:cmisRequest completionBlock:^(NSArray *cmisWorkSpaces, NSError *error) {
         if (!error) {
             BOOL repositoryFound = NO;
-            for (CMISWorkspace *workspace in cmisWorkSpaces) {
+            for (CMISAtomWorkspace *workspace in cmisWorkSpaces) {
                 if ([workspace.repositoryInfo.identifier isEqualToString:self.bindingSession.repositoryId])
                 {
                     repositoryFound = YES;
                     
                     // Cache collections
-                    [self.bindingSession setObject:[workspace collectionHrefForCollectionType:kCMISAtomCollectionQuery] forKey:kCMISBindingSessionKeyQueryCollection];
-                    [self.bindingSession setObject:[workspace collectionHrefForCollectionType:kCMISAtomCollectionCheckedout] forKey:kCMISBindingSessionKeyCheckedoutCollection];
+                    [self.bindingSession setObject:[workspace collectionHrefForCollectionType:kCMISAtomCollectionQuery] forKey:kCMISAtomBindingSessionKeyQueryCollection];
+                    [self.bindingSession setObject:[workspace collectionHrefForCollectionType:kCMISAtomCollectionCheckedout] forKey:kCMISAtomBindingSessionKeyCheckedoutCollection];
                     
                     
                     // Cache uri's and uri templates
-                    CMISObjectByIdUriBuilder *objectByIdUriBuilder = [[CMISObjectByIdUriBuilder alloc] initWithTemplateUrl:workspace.objectByIdUriTemplate];
-                    [self.bindingSession setObject:objectByIdUriBuilder forKey:kCMISBindingSessionKeyObjectByIdUriBuilder];
+                    CMISAtomPubObjectByIdUriBuilder *objectByIdUriBuilder = [[CMISAtomPubObjectByIdUriBuilder alloc] initWithTemplateUrl:workspace.objectByIdUriTemplate];
+                    [self.bindingSession setObject:objectByIdUriBuilder forKey:kCMISAtomBindingSessionKeyObjectByIdUriBuilder];
                     
-                    CMISObjectByPathUriBuilder *objectByPathUriBuilder = [[CMISObjectByPathUriBuilder alloc] initWithTemplateUrl:workspace.objectByPathUriTemplate];
-                    [self.bindingSession setObject:objectByPathUriBuilder forKey:kCMISBindingSessionKeyObjectByPathUriBuilder];
+                    CMISAtomPubObjectByPathUriBuilder *objectByPathUriBuilder = [[CMISAtomPubObjectByPathUriBuilder alloc] initWithTemplateUrl:workspace.objectByPathUriTemplate];
+                    [self.bindingSession setObject:objectByPathUriBuilder forKey:kCMISAtomBindingSessionKeyObjectByPathUriBuilder];
                     
-                    CMISTypeByIdUriBuilder *typeByIdUriBuilder = [[CMISTypeByIdUriBuilder alloc] initWithTemplateUrl:workspace.typeByIdUriTemplate];
-                    [self.bindingSession setObject:typeByIdUriBuilder forKey:kCMISBindingSessionKeyTypeByIdUriBuilder];
+                    CMISAtomPubTypeByIdUriBuilder *typeByIdUriBuilder = [[CMISAtomPubTypeByIdUriBuilder alloc] initWithTemplateUrl:workspace.typeByIdUriTemplate];
+                    [self.bindingSession setObject:typeByIdUriBuilder forKey:kCMISAtomBindingSessionKeyTypeByIdUriBuilder];
                     
-                    [self.bindingSession setObject:workspace.queryUriTemplate forKey:kCMISBindingSessionKeyQueryUri];
+                    [self.bindingSession setObject:workspace.queryUriTemplate forKey:kCMISAtomBindingSessionKeyQueryUri];
                     
                     break;
                 }
@@ -139,7 +139,7 @@
                                                
                                                // Parse the cmis service document
                                                if (data) {
-                                                   CMISServiceDocumentParser *parser = [[CMISServiceDocumentParser alloc] initWithData:data];
+                                                   CMISAtomPubServiceDocumentParser *parser = [[CMISAtomPubServiceDocumentParser alloc] initWithData:data];
                                                    NSError *error = nil;
                                                    if ([parser parseAndReturnError:&error]) {
                                                        [self.bindingSession setObject:parser.workspaces forKey:kCMISSessionKeyWorkspaces];
@@ -183,10 +183,10 @@
                    cmisRequest:(CMISRequest *)cmisRequest
                completionBlock:(void (^)(CMISObjectData *objectData, NSError *error))completionBlock
 {
-    [self retrieveFromCache:kCMISBindingSessionKeyObjectByIdUriBuilder
+    [self retrieveFromCache:kCMISAtomBindingSessionKeyObjectByIdUriBuilder
                 cmisRequest:cmisRequest
             completionBlock:^(id object, NSError *error) {
-        CMISObjectByIdUriBuilder *objectByIdUriBuilder = object;
+        CMISAtomPubObjectByIdUriBuilder *objectByIdUriBuilder = object;
         objectByIdUriBuilder.objectId = objectId;
         objectByIdUriBuilder.filter = filter;
         objectByIdUriBuilder.includeACL = includeACL;
@@ -233,10 +233,10 @@
                          cmisRequest:(CMISRequest *)cmisRequest
                      completionBlock:(void (^)(CMISObjectData *objectData, NSError *error))completionBlock
 {
-    [self retrieveFromCache:kCMISBindingSessionKeyObjectByPathUriBuilder
+    [self retrieveFromCache:kCMISAtomBindingSessionKeyObjectByPathUriBuilder
                 cmisRequest:cmisRequest
             completionBlock:^(id object, NSError *error) {
-        CMISObjectByPathUriBuilder *objectByPathUriBuilder = object;
+        CMISAtomPubObjectByPathUriBuilder *objectByPathUriBuilder = object;
         objectByPathUriBuilder.path = path;
         objectByPathUriBuilder.filter = filter;
         objectByPathUriBuilder.includeACL = includeACL;
@@ -273,17 +273,17 @@
 
 - (CMISLinkCache *)linkCache
 {
-    CMISLinkCache *linkCache = [self.bindingSession objectForKey:kCMISBindingSessionKeyLinkCache];
+    CMISLinkCache *linkCache = [self.bindingSession objectForKey:kCMISAtomBindingSessionKeyLinkCache];
     if (linkCache == nil) {
         linkCache = [[CMISLinkCache alloc] initWithBindingSession:self.bindingSession];
-        [self.bindingSession setObject:linkCache forKey:kCMISBindingSessionKeyLinkCache];
+        [self.bindingSession setObject:linkCache forKey:kCMISAtomBindingSessionKeyLinkCache];
     }
     return linkCache;
 }
 
 - (void)clearCacheFromService
 {
-    CMISLinkCache *linkCache = [self.bindingSession objectForKey:kCMISBindingSessionKeyLinkCache];
+    CMISLinkCache *linkCache = [self.bindingSession objectForKey:kCMISAtomBindingSessionKeyLinkCache];
     if (linkCache != nil) {
         [linkCache removeAllLinks];
     }    
@@ -408,6 +408,21 @@
         return;
     }
     
+    // generate start and end XML
+    CMISAtomEntryWriter *writer = [[CMISAtomEntryWriter alloc] init];
+    writer.cmisProperties = properties;
+    writer.mimeType = contentMimeType;
+    
+    NSString *xmlStart = [writer xmlStartElement];
+    NSString *xmlContentStart = [writer xmlContentStartElement];
+    NSString *start = [NSString stringWithFormat:@"%@%@", xmlStart, xmlContentStart];
+    NSData *startData = [NSMutableData dataWithData:[start dataUsingEncoding:NSUTF8StringEncoding]];
+    
+    NSString *xmlContentEnd = [writer xmlContentEndElement];
+    NSString *xmlProperties = [writer xmlPropertiesElements];
+    NSString *end = [NSString stringWithFormat:@"%@%@", xmlContentEnd, xmlProperties];
+    NSData *endData = [end dataUsingEncoding:NSUTF8StringEncoding];
+    
     // The underlying CMISHttpUploadRequest object generates the atom entry. The base64 encoded content is generated on
     // the fly to support very large files.
     [self.bindingSession.networkProvider invoke:[NSURL URLWithString:link]
@@ -417,8 +432,9 @@
                                         headers:[NSDictionary dictionaryWithObject:kCMISMediaTypeEntry forKey:@"Content-type"]
                                   bytesExpected:bytesExpected
                                     cmisRequest:request
-                                 cmisProperties:properties
-                                       mimeType:contentMimeType
+                                      startData:startData
+                                        endData:endData
+                              useBase64Encoding:YES
                                 completionBlock:^(CMISHttpResponse *response, NSError *error) {
                                     if (error) {
                                         CMISLogError(@"HTTP error when sending atom entry: %@", error);

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubDiscoveryService.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubDiscoveryService.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubDiscoveryService.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubDiscoveryService.m Wed May 21 12:50:59 2014
@@ -45,7 +45,7 @@ includeAllowableActions:(BOOL)includeAll
     }
     
     // Validate query uri
-    NSString *queryUrlString = [self.bindingSession objectForKey:kCMISBindingSessionKeyQueryCollection];
+    NSString *queryUrlString = [self.bindingSession objectForKey:kCMISAtomBindingSessionKeyQueryCollection];
     if (queryUrlString == nil) {
         CMISLogDebug(@"Unknown repository or query not supported!");
         completionBlock(nil, [CMISErrors createCMISErrorWithCode:kCMISErrorCodeObjectNotFound detailedDescription:nil]);

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubRepositoryService.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubRepositoryService.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubRepositoryService.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubRepositoryService.m Wed May 21 12:50:59 2014
@@ -19,9 +19,10 @@
 
 #import "CMISAtomPubRepositoryService.h"
 #import "CMISAtomPubBaseService+Protected.h"
-#import "CMISWorkspace.h"
+#import "CMISAtomPubConstants.h"
+#import "CMISAtomWorkspace.h"
 #import "CMISErrors.h"
-#import "CMISTypeByIdUriBuilder.h"
+#import "CMISAtomPubTypeByIdUriBuilder.h"
 #import "CMISHttpResponse.h"
 #import "CMISTypeDefinitionAtomEntryParser.h"
 #import "CMISLog.h"
@@ -67,7 +68,7 @@
     CMISRequest *request = [[CMISRequest alloc] init];
     [self retrieveCMISWorkspacesWithCMISRequest:request completionBlock:^(NSArray *cmisWorkSpaces, NSError *error) {
         if (cmisWorkSpaces != nil) {
-            for (CMISWorkspace *workspace in cmisWorkSpaces) {
+            for (CMISAtomWorkspace *workspace in cmisWorkSpaces) {
                 [self.repositories setObject:workspace.repositoryInfo forKey:workspace.repositoryInfo.identifier];
             }
         }
@@ -85,11 +86,11 @@
         return nil;
     }
     CMISRequest *request = [[CMISRequest alloc] init];
-    [self retrieveFromCache:kCMISBindingSessionKeyTypeByIdUriBuilder
+    [self retrieveFromCache:kCMISAtomBindingSessionKeyTypeByIdUriBuilder
                 cmisRequest:request
             completionBlock:^(id object, NSError *error) {
-        CMISTypeByIdUriBuilder *typeByIdUriBuilder = object;
-        typeByIdUriBuilder.id = typeId;
+        CMISAtomPubTypeByIdUriBuilder *typeByIdUriBuilder = object;
+        typeByIdUriBuilder.identifier = typeId;
         
         [self.bindingSession.networkProvider invokeGET:[typeByIdUriBuilder buildUrl]
                                                session:self.bindingSession

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubVersioningService.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubVersioningService.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubVersioningService.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/AtomPub/CMISAtomPubVersioningService.m Wed May 21 12:50:59 2014
@@ -118,7 +118,7 @@
         return nil;
     }
     
-    NSString *checkedoutUrlString = [self.bindingSession objectForKey:kCMISBindingSessionKeyCheckedoutCollection];
+    NSString *checkedoutUrlString = [self.bindingSession objectForKey:kCMISAtomBindingSessionKeyCheckedoutCollection];
     if (checkedoutUrlString == nil) {
         CMISLogDebug(@"Checkedout not supported!");
         completionBlock(nil, [CMISErrors createCMISErrorWithCode:kCMISErrorCodeNotSupported detailedDescription:nil]);

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISBindingFactory.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISBindingFactory.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISBindingFactory.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISBindingFactory.m Wed May 21 12:50:59 2014
@@ -19,6 +19,7 @@
 
 #import "CMISBindingFactory.h"
 #import "CMISAtomPubBinding.h"
+#import "CMISBrowserBinding.h"
 
 @implementation CMISBindingFactory
 
@@ -32,6 +33,9 @@
     if (sessionParameters.bindingType == CMISBindingTypeAtomPub) {
         binding = [[CMISAtomPubBinding alloc] initWithSessionParameters:sessionParameters];
     }
+    else if (sessionParameters.bindingType == CMISBindingTypeBrowser) {
+        binding = [[CMISBrowserBinding alloc] initWithSessionParameters:sessionParameters];
+    }
 
     return binding;
 }

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISBindingSession.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISBindingSession.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISBindingSession.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISBindingSession.h Wed May 21 12:50:59 2014
@@ -21,17 +21,10 @@
 #import "CMISSessionParameters.h"
 #import "CMISAuthenticationProvider.h"
 #import "CMISNetworkProvider.h"
+#import "CMISTypeDefinitionCache.h"
 
-extern NSString * const kCMISBindingSessionKeyAtomPubUrl;
-extern NSString * const kCMISBindingSessionKeyObjectByIdUriBuilder;
-extern NSString * const kCMISBindingSessionKeyObjectByPathUriBuilder;
-extern NSString * const kCMISBindingSessionKeyTypeByIdUriBuilder;
-extern NSString * const kCMISBindingSessionKeyQueryUri;
-
-extern NSString * const kCMISBindingSessionKeyQueryCollection;
-extern NSString * const kCMISBindingSessionKeyCheckedoutCollection;
-
-extern NSString * const kCMISBindingSessionKeyLinkCache;
+// session key constants
+extern NSString * const kCMISBindingSessionKeyUrl;
 
 @interface CMISBindingSession : NSObject
 
@@ -39,6 +32,7 @@ extern NSString * const kCMISBindingSess
 @property (nonatomic, strong, readonly) NSString *repositoryId;
 @property (nonatomic, strong, readonly) id<CMISAuthenticationProvider> authenticationProvider;
 @property (nonatomic, strong, readonly) id<CMISNetworkProvider> networkProvider;
+@property (nonatomic, strong, readonly) CMISTypeDefinitionCache *typeDefinitionCache;
 
 - (id)initWithSessionParameters:(CMISSessionParameters *)sessionParameters;
 

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISBindingSession.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISBindingSession.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISBindingSession.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISBindingSession.m Wed May 21 12:50:59 2014
@@ -19,22 +19,14 @@
 
 #import "CMISBindingSession.h"
 
-NSString * const kCMISBindingSessionKeyAtomPubUrl = @"cmis_session_key_atompub_url";
-NSString * const kCMISBindingSessionKeyObjectByIdUriBuilder = @"cmis_session_key_objectbyid_uri_builder";
-NSString * const kCMISBindingSessionKeyObjectByPathUriBuilder = @"cmis_session_key_objectbypath_uri_builder";
-NSString * const kCMISBindingSessionKeyTypeByIdUriBuilder = @"cmis_session_key_type_by_id_uri_builder";
-NSString * const kCMISBindingSessionKeyQueryUri = @"cmis_session_key_query_uri";
-
-NSString * const kCMISBindingSessionKeyQueryCollection = @"cmis_session_key_query_collection";
-NSString * const kCMISBindingSessionKeyCheckedoutCollection = @"cmis_session_key_checkedout_collection";
-
-NSString * const kCMISBindingSessionKeyLinkCache = @"cmis_session_key_link_cache";
+NSString * const kCMISBindingSessionKeyUrl = @"cmis_session_key_url";
 
 @interface CMISBindingSession ()
 @property (nonatomic, strong, readwrite) NSString *username;
 @property (nonatomic, strong, readwrite) NSString *repositoryId;
 @property (nonatomic, strong, readwrite) id<CMISAuthenticationProvider> authenticationProvider;
 @property (nonatomic, strong, readwrite) id<CMISNetworkProvider> networkProvider;
+@property (nonatomic, strong, readwrite) CMISTypeDefinitionCache *typeDefinitionCache;
 @property (nonatomic, strong, readwrite) NSMutableDictionary *sessionData;
 @end
 
@@ -53,12 +45,24 @@ NSString * const kCMISBindingSessionKeyL
         self.authenticationProvider = sessionParameters.authenticationProvider;
         self.networkProvider = sessionParameters.networkProvider;
         
-        // store all other data in the dictionary
-        [self.sessionData setObject:sessionParameters.atomPubUrl forKey:kCMISBindingSessionKeyAtomPubUrl];
+        if (sessionParameters.bindingType == CMISBindingTypeAtomPub) {
+            [self.sessionData setObject:sessionParameters.atomPubUrl forKey:kCMISBindingSessionKeyUrl];
+        }
+        else {
+            [self.sessionData setObject:sessionParameters.browserUrl forKey:kCMISBindingSessionKeyUrl];
+        }
         
+        // store all other data in the dictionary
         for (id key in sessionParameters.allKeys) {
             [self.sessionData setObject:[sessionParameters objectForKey:key] forKey:key];
         }
+        
+        //set type definition cache after other data stored in the dictionary as the cache size is retrieved from the sessionData in the init method of the CMISTypeDefinitionCache
+        if(sessionParameters.typeDefinitionCache == nil) {
+            self.typeDefinitionCache = [[CMISTypeDefinitionCache alloc] initWithBindingSession:self];
+        } else {
+            self.typeDefinitionCache = sessionParameters.typeDefinitionCache;
+        }
     }
     
     return self;

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISObjectList.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISObjectList.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISObjectList.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISObjectList.h Wed May 21 12:50:59 2014
@@ -19,6 +19,7 @@
  
 #import <Foundation/Foundation.h>
 #import "CMISEnums.h"
+#import "CMISExtensionData.h"
 
 @protocol CMISBinding;
 
@@ -26,7 +27,7 @@
 /**
   * Class to hold the result of executing a query
   */
-@interface CMISObjectList : NSObject
+@interface CMISObjectList : CMISExtensionData
 
 /**
  * Array of CMISObjectData, representing a result of some query

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISObjectService.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISObjectService.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISObjectService.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISObjectService.h Wed May 21 12:50:59 2014
@@ -215,7 +215,7 @@
 /**
  * Deletes the given folder and all of its subfolder and files
  *
- * Returns a list of objects which failed to be deleted.
+ * Returns a list of object ids which failed to be deleted.
  * completionBlock returns array of failed objects if any. NSError will be nil if successful
  */
 - (CMISRequest*)deleteTree:(NSString *)folderObjectId

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISPropertyDefinition.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISPropertyDefinition.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISPropertyDefinition.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISPropertyDefinition.h Wed May 21 12:50:59 2014
@@ -19,18 +19,19 @@
 
 #import <Foundation/Foundation.h>
 #import "CMISEnums.h"
+#import "CMISExtensionData.h"
 
 
 // TODO: type specific properties, see cmis spec line 527
-@interface CMISPropertyDefinition : NSObject
+@interface CMISPropertyDefinition : CMISExtensionData
 
 
-@property (nonatomic, strong) NSString *id;
+@property (nonatomic, strong) NSString *identifier;
 @property (nonatomic, strong) NSString *localName;
 @property (nonatomic, strong) NSString *localNamespace;
 @property (nonatomic, strong) NSString *displayName;
 @property (nonatomic, strong) NSString *queryName;
-@property (nonatomic, strong) NSString *description;
+@property (nonatomic, strong) NSString *summary;
 @property (nonatomic, assign) CMISPropertyType propertyType;
 @property (nonatomic, assign) CMISCardinality cardinality;
 @property (nonatomic, assign) CMISUpdatability updatability;

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISRenditionData.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISRenditionData.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISRenditionData.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISRenditionData.h Wed May 21 12:50:59 2014
@@ -18,9 +18,9 @@
  */
  
 #import <Foundation/Foundation.h>
+#import "CMISExtensionData.h"
 
-
-@interface CMISRenditionData : NSObject
+@interface CMISRenditionData : CMISExtensionData
 
 /**  Identifies the rendition stream. */
 @property (nonatomic, strong) NSString *streamId;

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISTypeDefinition.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISTypeDefinition.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISTypeDefinition.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISTypeDefinition.h Wed May 21 12:50:59 2014
@@ -19,19 +19,21 @@
 
 #import <Foundation/Foundation.h>
 #import "CMISEnums.h"
+#import "CMISExtensionData.h"
 
 @class CMISPropertyDefinition;
 
 
-@interface CMISTypeDefinition : NSObject
+@interface CMISTypeDefinition : CMISExtensionData
 
-@property (nonatomic, strong) NSString *id;
+@property (nonatomic, strong) NSString *identifier;
 @property (nonatomic, strong) NSString *localName;
 @property (nonatomic, strong) NSString *localNameSpace;
 @property (nonatomic, strong) NSString *displayName;
 @property (nonatomic, strong) NSString *queryName;
-@property (nonatomic, strong) NSString *description;
+@property (nonatomic, strong) NSString *summary;
 @property (nonatomic, assign) CMISBaseType baseTypeId;
+@property (nonatomic, strong) NSString *parentTypeId;
 
 @property (nonatomic, assign, getter = isCreatable) BOOL creatable;
 @property (nonatomic, assign, getter = isFileable) BOOL fileable;

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISTypeDefinition.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISTypeDefinition.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISTypeDefinition.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Bindings/CMISTypeDefinition.m Wed May 21 12:50:59 2014
@@ -39,7 +39,7 @@
     if (self.internalPropertyDefinitions == nil) {
         self.internalPropertyDefinitions = [[NSMutableDictionary alloc] init];
     }
-    [self.internalPropertyDefinitions setObject:propertyDefinition forKey:propertyDefinition.id];
+    [self.internalPropertyDefinitions setObject:propertyDefinition forKey:propertyDefinition.identifier];
 }
 
 - (CMISPropertyDefinition *)propertyDefinitionForId:(NSString *)propertyId
@@ -47,4 +47,13 @@
     return [self.internalPropertyDefinitions objectForKey:propertyId];
 }
 
+-(void)setParentTypeId:(NSString *)parentTypeId
+{
+    if (!parentTypeId || parentTypeId.length == 0) {
+        _parentTypeId = nil;
+    } else {
+        _parentTypeId = parentTypeId;
+    }
+}
+
 @end
\ No newline at end of file

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Client/CMISSession.m Wed May 21 12:50:59 2014
@@ -116,7 +116,7 @@
             self.objectConverter = [[CMISObjectConverter alloc] initWithSession:self];
         }
         
-        self.typeCache = [[NSMutableDictionary alloc] init];
+        self.typeCache = [[NSMutableDictionary alloc] init]; //TODO this typeCache should be replaced by a binding specific type definition cache
     
         // TODO: setup locale
         // TODO: setup default session parameters

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISAllowableActions.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISAllowableActions.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISAllowableActions.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISAllowableActions.m Wed May 21 12:50:59 2014
@@ -72,9 +72,13 @@
 
 - (void)setAllowableActionsWithDictionary:(NSDictionary *)allowableActionsDict
 {
-    NSSet *filteredSet = [allowableActionsDict keysOfEntriesPassingTest:^BOOL(id key, id obj, BOOL *aMethod) 
+    NSSet *filteredSet = [allowableActionsDict keysOfEntriesPassingTest:^BOOL(id key, id obj, BOOL *aMethod)
                           {
-                              return [obj isEqualToString:@"true"];
+                              if([obj isKindOfClass:NSString.class]) {
+                                  return [obj isEqualToString:@"true"];
+                              } else {
+                                  return [obj boolValue];
+                              }
                           }];
     [self setAllowableActionsSet:filteredSet];
 }

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.h Wed May 21 12:50:59 2014
@@ -19,6 +19,8 @@
 
 #import <Foundation/Foundation.h>
 
+@interface CMISConstants : NSObject
+
 // Properties
 extern NSString * const kCMISPropertyObjectId;
 extern NSString * const kCMISPropertyName;
@@ -46,11 +48,15 @@ extern NSString * const kCMISPropertyDes
 // Property values
 extern NSString * const kCMISPropertyObjectTypeIdValueDocument;
 extern NSString * const kCMISPropertyObjectTypeIdValueFolder;
+extern NSString * const kCMISPropertyObjectTypeIdValueRelationship;
+extern NSString * const kCMISPropertyObjectTypeIdValuePolicy;
+extern NSString * const kCMISPropertyObjectTypeIdValueItem;
+extern NSString * const kCMISPropertyObjectTypeIdValueSecondary;
 
 // Session cache keys
 extern NSString * const kCMISSessionKeyWorkspaces;
 
-// Capability Keys
+// Repository capability keys
 extern NSString * const kCMISRepositoryCapabilityACL;
 extern NSString * const kCMISRepositoryAllVersionsSearchable;
 extern NSString * const kCMISRepositoryCapabilityChanges;
@@ -67,4 +73,73 @@ extern NSString * const kCMISRepositoryC
 extern NSString * const kCMISRepositoryCapabilityUnfiling;
 extern NSString * const kCMISRepositoryCapabilityVersionSpecificFiling;
 extern NSString * const kCMISRepositoryCapabilityPropertyTypes;
-extern NSString * const kCMISRepositoryCapabilityTypeSettableAttributes;
\ No newline at end of file
+extern NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributes;
+
+// Repository capability new type settable attributes keys
+extern NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesId;
+extern NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesLocalName;
+extern NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesLocalNamespace;
+extern NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesDisplayName;
+extern NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesQueryName;
+extern NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesDescription;
+extern NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesCreateable;
+extern NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesFileable;
+extern NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesQueryable;
+extern NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesFullTextIndexed;
+extern NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesIncludedInSuperTypeQuery;
+extern NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesControllablePolicy;
+extern NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesControllableAcl;
+
+// Repository capability createable property types key
+extern NSString * const kCMISRepositoryCapabilityCreateablePropertyTypesCanCreate;
+
+// URL parameters
+extern NSString * const kCMISParameterChangeToken;
+extern NSString * const kCMISParameterOverwriteFlag;
+extern NSString * const kCMISParameterIncludeAllowableActions;
+extern NSString * const kCMISParameterFilter;
+extern NSString * const kCMISParameterMaxItems;
+extern NSString * const kCMISParameterObjectId;
+extern NSString * const kCMISParameterOrderBy;
+extern NSString * const kCMISParameterIncludePathSegment;
+extern NSString * const kCMISParameterIncludeRelationships;
+extern NSString * const kCMISParameterIncludePolicyIds;
+extern NSString * const kCMISParameterIncludeAcl;
+extern NSString * const kCMISParameterRenditionFilter;
+extern NSString * const kCMISParameterSkipCount;
+extern NSString * const kCMISParameterStreamId;
+extern NSString * const kCMISParameterAllVersions;
+extern NSString * const kCMISParameterContinueOnFailure;
+extern NSString * const kCMISParameterUnfileObjects;
+extern NSString * const kCMISParameterVersioningState;
+extern NSString * const kCMISParameterRelativePathSegment;
+extern NSString * const kCMISParameterMajor;
+extern NSString * const kCMISParameterCheckin;
+extern NSString * const kCMISParameterCheckinComment;
+extern NSString * const kCMISParameterSourceFolderId;
+extern NSString * const kCMISParameterTargetFolderId;
+extern NSString * const kCMISParameterReturnVersion;
+extern NSString * const kCMISParameterTypeId;
+extern NSString * const kCMISParameterStatement;
+extern NSString * const kCMISParameterSearchAllVersions;
+
+// Parameter Values
+extern NSString * const kCMISParameterValueTrue;
+extern NSString * const kCMISParameterValueFalse;
+extern NSString * const kCMISParameterValueReturnValueThis;
+extern NSString * const kCMISParameterValueReturnValueLatest;
+extern NSString * const kCMISParameterValueReturnValueLatestMajor;
+
+// Common Media Types
+extern NSString * const kCMISMediaTypeOctetStream;
+
+//ContentStreamAllowed enum values
+extern NSString * const kCMISContentStreamAllowedValueRequired;
+extern NSString * const kCMISContentStreamAllowedValueAllowed;
+extern NSString * const kCMISContentStreamAllowedValueNotAllowed;
+
++ (NSSet *)repositoryCapabilityKeys;
++ (NSSet *)repositoryCapabilityNewTypeSettableAttributesKeys;
++ (NSSet *)repositoryCapabilityCreateablePropertyTypesKeys;
+
+@end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISConstants.m Wed May 21 12:50:59 2014
@@ -19,6 +19,12 @@
 
 #import "CMISConstants.h"
 
+static NSSet *_repositoryCapabilityKeys;
+static NSSet *_repositoryCapabilityNewTypeSettableAttributesKeys;
+static NSSet *_repositoryCapabilityCreateablePropertyTypesKeys;
+
+@implementation CMISConstants
+
 // Properties
 
 NSString * const kCMISPropertyObjectId = @"cmis:objectId";
@@ -49,26 +55,153 @@ NSString * const kCMISPropertyDescriptio
 
 NSString * const kCMISPropertyObjectTypeIdValueDocument = @"cmis:document";
 NSString * const kCMISPropertyObjectTypeIdValueFolder = @"cmis:folder";
+NSString * const kCMISPropertyObjectTypeIdValueRelationship = @"cmis:relationship";
+NSString * const kCMISPropertyObjectTypeIdValuePolicy = @"cmis:policy";
+NSString * const kCMISPropertyObjectTypeIdValueItem = @"cmis:item";
+NSString * const kCMISPropertyObjectTypeIdValueSecondary = @"cmis:secondary";
 
 // Session cache keys
 
 NSString * const kCMISSessionKeyWorkspaces = @"cmis_session_key_workspaces";
 
-// Capability Keys
-NSString * const kCMISRepositoryCapabilityACL                       = @"capabilityACL";
-NSString * const kCMISRepositoryAllVersionsSearchable               = @"capabilityAllVersionsSearchable";
-NSString * const kCMISRepositoryCapabilityChanges                   = @"capabilityChanges";
+// Repository capability keys
+NSString * const kCMISRepositoryCapabilityACL = @"capabilityACL";
+NSString * const kCMISRepositoryAllVersionsSearchable = @"capabilityAllVersionsSearchable";
+NSString * const kCMISRepositoryCapabilityChanges = @"capabilityChanges";
 NSString * const kCMISRepositoryCapabilityContentStreamUpdatability = @"capabilityContentStreamUpdatability";
-NSString * const kCMISRepositoryCapabilityJoin                      = @"capabilityJoin";
-NSString * const kCMISRepositoryCapabilityQuery                     = @"capabilityQuery";
-NSString * const kCMISRepositoryCapabilityRenditions                = @"capabilityRenditions";
-NSString * const kCMISRepositoryCapabilityPWCSearchable             = @"capabilityPWCSearchable";
-NSString * const kCMISRepositoryCapabilityPWCUpdatable              = @"capabilityPWCUpdatable";
-NSString * const kCMISRepositoryCapabilityGetDescendants            = @"capabilityGetDescendants";
-NSString * const kCMISRepositoryCapabilityGetFolderTree             = @"capabilityGetFolderTree";
-NSString * const kCMISRepositoryCapabilityOrderBy                   = @"capabilityOrderBy";
-NSString * const kCMISRepositoryCapabilityMultifiling               = @"capabilityMultifiling";
-NSString * const kCMISRepositoryCapabilityUnfiling                  = @"capabilityUnfiling";
-NSString * const kCMISRepositoryCapabilityVersionSpecificFiling     = @"capabilityVersionSpecificFiling";
-NSString * const kCMISRepositoryCapabilityPropertyTypes             = @"capabilityCreatablePropertyTypes";
-NSString * const kCMISRepositoryCapabilityTypeSettableAttributes    = @"capabilityTypeSettableAttributes";
\ No newline at end of file
+NSString * const kCMISRepositoryCapabilityJoin = @"capabilityJoin";
+NSString * const kCMISRepositoryCapabilityQuery = @"capabilityQuery";
+NSString * const kCMISRepositoryCapabilityRenditions = @"capabilityRenditions";
+NSString * const kCMISRepositoryCapabilityPWCSearchable = @"capabilityPWCSearchable";
+NSString * const kCMISRepositoryCapabilityPWCUpdatable = @"capabilityPWCUpdatable";
+NSString * const kCMISRepositoryCapabilityGetDescendants = @"capabilityGetDescendants";
+NSString * const kCMISRepositoryCapabilityGetFolderTree = @"capabilityGetFolderTree";
+NSString * const kCMISRepositoryCapabilityOrderBy = @"capabilityOrderBy";
+NSString * const kCMISRepositoryCapabilityMultifiling = @"capabilityMultifiling";
+NSString * const kCMISRepositoryCapabilityUnfiling = @"capabilityUnfiling";
+NSString * const kCMISRepositoryCapabilityVersionSpecificFiling = @"capabilityVersionSpecificFiling";
+NSString * const kCMISRepositoryCapabilityPropertyTypes = @"capabilityCreatablePropertyTypes";
+NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributes = @"capabilityNewTypeSettableAttributes";
+
+// Repository capability new type settable attributes keys
+NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesId = @"id";
+NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesLocalName = @"localName";
+NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesLocalNamespace = @"localNamespace";
+NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesDisplayName = @"displayName";
+NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesQueryName = @"queryName";
+NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesDescription = @"description";
+NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesCreateable = @"creatable";
+NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesFileable = @"fileable";
+NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesQueryable = @"queryable";
+NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesFullTextIndexed = @"fulltextIndexed";
+NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesIncludedInSuperTypeQuery = @"includedInSupertypeQuery";
+NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesControllablePolicy = @"controllablePolicy";
+NSString * const kCMISRepositoryCapabilityNewTypeSettableAttributesControllableAcl = @"controllableACL";
+
+// Repository capability createable property types key
+NSString * const kCMISRepositoryCapabilityCreateablePropertyTypesCanCreate = @"canCreate";
+
+// Parameters
+NSString * const kCMISParameterChangeToken = @"changeToken";
+NSString * const kCMISParameterOverwriteFlag = @"overwriteFlag";
+NSString * const kCMISParameterIncludeAllowableActions = @"includeAllowableActions";
+NSString * const kCMISParameterFilter = @"filter";
+NSString * const kCMISParameterMaxItems = @"maxItems";
+NSString * const kCMISParameterObjectId = @"objectId";
+NSString * const kCMISParameterOrderBy = @"orderBy";
+NSString * const kCMISParameterIncludePathSegment = @"includePathSegment";
+NSString * const kCMISParameterIncludeRelationships = @"includeRelationships";
+NSString * const kCMISParameterIncludePolicyIds = @"includePolicyIds";
+NSString * const kCMISParameterIncludeAcl = @"includeACL";
+NSString * const kCMISParameterRenditionFilter = @"renditionFilter";
+NSString * const kCMISParameterSkipCount = @"skipCount";
+NSString * const kCMISParameterStreamId = @"streamId";
+NSString * const kCMISParameterAllVersions = @"allVersions";
+NSString * const kCMISParameterContinueOnFailure= @"continueOnFailure";
+NSString * const kCMISParameterUnfileObjects = @"unfileObjects";
+NSString * const kCMISParameterVersioningState = @"versioningState";
+NSString * const kCMISParameterRelativePathSegment = @"includeRelativePathSegment";
+NSString * const kCMISParameterMajor = @"major";
+NSString * const kCMISParameterCheckin = @"checkin";
+NSString * const kCMISParameterCheckinComment = @"checkinComment";
+NSString * const kCMISParameterSourceFolderId = @"sourceFolderId";
+NSString * const kCMISParameterTargetFolderId = @"targetFolderId";
+NSString * const kCMISParameterReturnVersion = @"returnVersion";
+NSString * const kCMISParameterTypeId = @"typeId";
+NSString * const kCMISParameterStatement = @"statement";
+NSString * const kCMISParameterSearchAllVersions = @"searchAllVersions";
+
+// Parameter Values
+NSString * const kCMISParameterValueTrue = @"true";
+NSString * const kCMISParameterValueFalse = @"false";
+NSString * const kCMISParameterValueReturnValueThis = @"this";
+NSString * const kCMISParameterValueReturnValueLatest = @"latest";
+NSString * const kCMISParameterValueReturnValueLatestMajor = @"latestmajor";
+
+// Common Media Types
+NSString * const kCMISMediaTypeOctetStream = @"application/octet-stream";
+
+//ContentStreamAllowed enum values
+NSString * const kCMISContentStreamAllowedValueRequired = @"required";
+NSString * const kCMISContentStreamAllowedValueAllowed = @"allowed";
+NSString * const kCMISContentStreamAllowedValueNotAllowed = @"notallowed";
+
++ (NSSet *)repositoryCapabilityKeys
+{
+    if(!_repositoryCapabilityKeys) {
+        _repositoryCapabilityKeys = [NSSet setWithObjects:
+                                     kCMISRepositoryCapabilityContentStreamUpdatability,
+                                     kCMISRepositoryCapabilityChanges,
+                                     kCMISRepositoryCapabilityRenditions,
+                                     kCMISRepositoryCapabilityGetDescendants,
+                                     kCMISRepositoryCapabilityGetFolderTree,
+                                     kCMISRepositoryCapabilityMultifiling,
+                                     kCMISRepositoryCapabilityUnfiling,
+                                     kCMISRepositoryCapabilityVersionSpecificFiling,
+                                     kCMISRepositoryCapabilityPWCSearchable,
+                                     kCMISRepositoryCapabilityPWCUpdatable,
+                                     kCMISRepositoryAllVersionsSearchable,
+                                     kCMISRepositoryCapabilityOrderBy,
+                                     kCMISRepositoryCapabilityQuery,
+                                     kCMISRepositoryCapabilityJoin,
+                                     kCMISRepositoryCapabilityACL,
+                                     kCMISRepositoryCapabilityPropertyTypes,
+                                     kCMISRepositoryCapabilityNewTypeSettableAttributes,
+                                     nil];
+    }
+    return _repositoryCapabilityKeys;
+}
+
++ (NSSet *)repositoryCapabilityNewTypeSettableAttributesKeys
+{
+    if(!_repositoryCapabilityNewTypeSettableAttributesKeys) {
+        _repositoryCapabilityNewTypeSettableAttributesKeys = [NSSet setWithObjects:
+                                                              kCMISRepositoryCapabilityNewTypeSettableAttributesId,
+                                                              kCMISRepositoryCapabilityNewTypeSettableAttributesLocalName,
+                                                              kCMISRepositoryCapabilityNewTypeSettableAttributesLocalNamespace,
+                                                              kCMISRepositoryCapabilityNewTypeSettableAttributesDisplayName,
+                                                              kCMISRepositoryCapabilityNewTypeSettableAttributesQueryName,
+                                                              kCMISRepositoryCapabilityNewTypeSettableAttributesDescription,
+                                                              kCMISRepositoryCapabilityNewTypeSettableAttributesCreateable,
+                                                              kCMISRepositoryCapabilityNewTypeSettableAttributesFileable,
+                                                              kCMISRepositoryCapabilityNewTypeSettableAttributesQueryable,
+                                                              kCMISRepositoryCapabilityNewTypeSettableAttributesFullTextIndexed,
+                                                              kCMISRepositoryCapabilityNewTypeSettableAttributesIncludedInSuperTypeQuery,
+                                                              kCMISRepositoryCapabilityNewTypeSettableAttributesControllablePolicy,
+                                                              kCMISRepositoryCapabilityNewTypeSettableAttributesControllableAcl,
+                                                              nil];
+    }
+    return _repositoryCapabilityNewTypeSettableAttributesKeys;
+}
+
++ (NSSet *)repositoryCapabilityCreateablePropertyTypesKeys
+{
+    if(!_repositoryCapabilityCreateablePropertyTypesKeys) {
+        _repositoryCapabilityCreateablePropertyTypesKeys = [NSSet setWithObjects:
+                                                              kCMISRepositoryCapabilityCreateablePropertyTypesCanCreate,
+                                                              nil];
+    }
+    return _repositoryCapabilityCreateablePropertyTypesKeys;
+}
+
+@end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.h Wed May 21 12:50:59 2014
@@ -36,4 +36,6 @@
  */
 @property(nonatomic, strong) NSSet *canCreate;
 
+- (void)setCreateablePropertyTypeFromDictionary:(NSDictionary *)dictionary;
+
 @end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISCreatablePropertyTypes.m Wed May 21 12:50:59 2014
@@ -18,7 +18,38 @@
  */
 
 #import "CMISCreatablePropertyTypes.h"
+#import "CMISLog.h"
+#import "CMISObjectConverter.h"
+#import "CMISConstants.h"
+#import "CMISNSDictionary+CMISUtil.h"
 
 @implementation CMISCreatablePropertyTypes
 
+- (void)setCreateablePropertyTypeFromDictionary:(NSDictionary *)dictionary
+{
+    if([dictionary isKindOfClass:NSDictionary.class]){
+        
+        NSArray *canCreateJson = [dictionary cmis_objectForKeyNotNull:kCMISRepositoryCapabilityCreateablePropertyTypesCanCreate];
+        if(canCreateJson){
+            if([canCreateJson isKindOfClass:NSArray.class]){
+                NSMutableSet *canCreate = [[NSMutableSet alloc] init];
+                
+                for (id o in canCreateJson) {
+                    if(o){
+                        [canCreate addObject:o];
+                    }
+                }
+                
+                self.canCreate = canCreate;
+            } else {
+                CMISLogWarning(@"expected an array but was %@", canCreateJson.class);
+            }
+        }
+
+        self.extensions = [CMISObjectConverter convertExtensions:dictionary cmisKeys:[CMISConstants repositoryCapabilityCreateablePropertyTypesKeys]];
+    } else {
+        CMISLogWarning(@"expected a dictionary but was %@", dictionary.class);
+    }
+}
+
 @end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISEnums.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISEnums.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISEnums.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISEnums.h Wed May 21 12:50:59 2014
@@ -23,16 +23,20 @@
 typedef NS_ENUM(NSInteger, CMISBindingType)
 {
     CMISBindingTypeAtomPub,
+    CMISBindingTypeBrowser,
     CMISBindingTypeCustom
 };
 
 // Base type
 typedef NS_ENUM(NSInteger, CMISBaseType)
 {
+    CMISBaseTypeUnknown,
     CMISBaseTypeDocument,
     CMISBaseTypeFolder,
     CMISBaseTypeRelationship,
-    CMISBaseTypePolicy
+    CMISBaseTypePolicy,
+    CMISBaseTypeItem,
+    CMISBaseTypeSecondary
 };
 
 typedef NS_ENUM(NSInteger, CMISIncludeRelationship)
@@ -53,7 +57,8 @@ typedef NS_ENUM(NSInteger, CMISPropertyT
     CMISPropertyTypeDecimal,
     CMISPropertyTypeHtml,
     CMISPropertyTypeString,
-    CMISPropertyTypeUri
+    CMISPropertyTypeUri,
+    CMISPropertyTypeUnknown
 };
 
 // Property cardinality options
@@ -140,7 +145,8 @@ typedef NS_ENUM(NSInteger, CMISContentSt
 {
     CMISContentStreamNotAllowed,
     CMISContentStreamAllowed,
-    CMISContentStreamRequired
+    CMISContentStreamRequired,
+    CMISContentStreamUnknown
 };
 
 // Repository Capability ACL
@@ -201,9 +207,22 @@ typedef NS_ENUM(NSInteger, CMISCapabilit
     CMISCapabilityOrderByCustom
 };
 
+// ReturnVersion
+typedef NS_ENUM(NSInteger, CMISReturnVersion)
+{
+    NOT_PROVIDED,
+    THIS,
+    LATEST,
+    LATEST_MAJOR
+};
+
 @interface CMISEnums : NSObject 
 
 + (NSString *)stringForIncludeRelationShip:(CMISIncludeRelationship)includeRelationship;
 + (NSString *)stringForUnfileObject:(CMISUnfileObject)unfileObject;
++ (NSString *)stringForReturnVersion:(BOOL)major;
++ (CMISBaseType)enumForBaseId:(NSString *)baseId;
++ (CMISContentStreamAllowedType)enumForContentStreamAllowed:(NSString *)contentStreamAllowed;
++ (CMISPropertyType)enumForPropertyType:(NSString *)typeString;
 
-@end
\ No newline at end of file
+@end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISEnums.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISEnums.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISEnums.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISEnums.m Wed May 21 12:50:59 2014
@@ -19,6 +19,8 @@
 
 #import "CMISEnums.h"
 #import "CMISLog.h"
+#import "CMISConstants.h"
+#import "CMISBrowserConstants.h"
 
 @implementation CMISEnums
 
@@ -65,4 +67,66 @@
     return unfileObjectString;
 }
 
++ (NSString *)stringForReturnVersion:(BOOL)major
+{
+    return major == NO ? kCMISParameterValueReturnValueLatest : kCMISParameterValueReturnValueLatestMajor;
+}
+
++ (CMISBaseType)enumForBaseId:(NSString *)baseId
+{
+    if([kCMISPropertyObjectTypeIdValueDocument isEqualToString:baseId]) {
+        return CMISBaseTypeDocument;
+    } else if([kCMISPropertyObjectTypeIdValueFolder isEqualToString:baseId]) {
+        return CMISBaseTypeFolder;
+    } else if([kCMISPropertyObjectTypeIdValueRelationship isEqualToString:baseId]) {
+        return CMISBaseTypeRelationship;
+    } else if([kCMISPropertyObjectTypeIdValuePolicy isEqualToString:baseId]) {
+        return CMISBaseTypePolicy;
+    } else if([kCMISPropertyObjectTypeIdValueItem isEqualToString:baseId]) {
+        return CMISBaseTypeItem;
+    } else if([kCMISPropertyObjectTypeIdValueSecondary isEqualToString:baseId]) {
+        return CMISBaseTypeSecondary;
+    } else {
+        return CMISBaseTypeUnknown;
+    }
+}
+
++ (CMISContentStreamAllowedType)enumForContentStreamAllowed:(NSString *)contentStreamAllowed
+{
+    if([kCMISContentStreamAllowedValueAllowed isEqualToString:contentStreamAllowed]) {
+        return CMISContentStreamAllowed;
+    } else if([kCMISContentStreamAllowedValueNotAllowed isEqualToString:contentStreamAllowed]) {
+        return CMISContentStreamNotAllowed;
+    } else if([kCMISContentStreamAllowedValueRequired isEqualToString:contentStreamAllowed]) {
+        return CMISContentStreamRequired;
+    } else {
+        return CMISContentStreamUnknown;
+    }
+}
+
++ (CMISPropertyType)enumForPropertyType:(NSString *)typeString
+{
+    CMISPropertyType propertyType;
+    if ([typeString isEqualToString:kCMISBrowserJSONPropertyTypeValueString]) {
+        propertyType = CMISPropertyTypeString;
+    } else if ([typeString isEqualToString:kCMISBrowserJSONPropertyTypeValueId]) {
+        propertyType = CMISPropertyTypeId;
+    } else if ([typeString isEqualToString:kCMISBrowserJSONPropertyTypeValueInteger]) {
+        propertyType = CMISPropertyTypeInteger;
+    } else if ([typeString isEqualToString:kCMISBrowserJSONPropertyTypeValueDecimal]) {
+        propertyType = CMISPropertyTypeDecimal;
+    } else if ([typeString isEqualToString:kCMISBrowserJSONPropertyTypeValueBoolean]) {
+        propertyType = CMISPropertyTypeBoolean;
+    } else if ([typeString isEqualToString:kCMISBrowserJSONPropertyTypeValueDateTime]) {
+        propertyType = CMISPropertyTypeDateTime;
+    } else if ([typeString isEqualToString:kCMISBrowserJSONPropertyTypeValueHtml]) {
+        propertyType = CMISPropertyTypeHtml;
+    } else if ([typeString isEqualToString:kCMISBrowserJSONPropertyTypeValueUri]) {
+        propertyType = CMISPropertyTypeUri;
+    } else {
+        propertyType = CMISPropertyTypeUnknown;
+    }
+    return propertyType;
+}
+
 @end
\ No newline at end of file

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISErrors.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISErrors.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISErrors.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISErrors.h Wed May 21 12:50:59 2014
@@ -40,6 +40,7 @@ typedef NS_ENUM(NSInteger, CMISErrorCode
     kCMISErrorCodeNoRootFolderFound = 4,
     kCMISErrorCodeNoRepositoryFound = 5,
     kCMISErrorCodeCancelled = 6,
+    kCMISErrorCodeParsingFailed = 7,
     
     //error ranges for General errors
     kCMISErrorCodeGeneralMinimum = 256,
@@ -80,6 +81,7 @@ extern NSString * const kCMISErrorDescri
 extern NSString * const kCMISErrorDescriptionNoRootFolderFound;
 extern NSString * const kCMISErrorDescriptionRepositoryNotFound;
 extern NSString * const kCMISErrorDescriptionCancelled;
+extern NSString * const kCMISErrorDescriptionParsingFailed;
 //General errors as defined in 2.2.1.4.1 of spec
 extern NSString * const kCMISErrorDescriptionInvalidArgument;
 extern NSString * const kCMISErrorDescriptionObjectNotFound;

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISErrors.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISErrors.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISErrors.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISErrors.m Wed May 21 12:50:59 2014
@@ -37,6 +37,7 @@ NSString * const kCMISErrorDescriptionUn
 NSString * const kCMISErrorDescriptionNoRootFolderFound =  @"Root Folder Not Found Error";
 NSString * const kCMISErrorDescriptionRepositoryNotFound =  @"Repository Not Found Error";
 NSString * const kCMISErrorDescriptionCancelled = @"Operation Cancelled";
+NSString * const kCMISErrorDescriptionParsingFailed = @"Parsing Failed";
 
 //General errors as defined in 2.2.1.4.1 of spec
 NSString * const kCMISErrorDescriptionInvalidArgument = @"Invalid Argument Error";
@@ -103,6 +104,8 @@ NSString * const kCMISErrorDescriptionVe
             return kCMISErrorDescriptionRepositoryNotFound;
         case kCMISErrorCodeCancelled:
             return kCMISErrorDescriptionCancelled;
+        case kCMISErrorCodeParsingFailed:
+            return kCMISErrorDescriptionParsingFailed;
         case kCMISErrorCodeInvalidArgument:
             return kCMISErrorDescriptionInvalidArgument;
         case kCMISErrorCodeObjectNotFound:

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNetworkProvider.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNetworkProvider.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNetworkProvider.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNetworkProvider.h Wed May 21 12:50:59 2014
@@ -96,7 +96,7 @@ completionBlock:(void (^)(CMISHttpRespon
 
 
 /**
- * Invoke method used for uploads, i.e. POST/PUT requests. This method is used for encoding base64 data while streaming
+ * Invoke method used for uploads, i.e. POST/PUT requests. This method is used for putting the stream data between the start and end data
  * @param url the RESTful API URL to be used
  * @param httpRequestMethod
  * @param session
@@ -104,8 +104,9 @@ completionBlock:(void (^)(CMISHttpRespon
  * @param headers any additional headers to be used in the request (maybe nil)
  * @param bytesExpected the size of the content to be uploaded
  * @param cmisRequest will be used to set the cancellable request to the one created by the invoked method
- * @param cmisProperties 
- * @param mimeType
+ * @param startData start payload e.g. containing the form data before the input stream is written
+ * @param endData end payload e.g. containing the form data after the input stream is written
+ * @param useBase64Encoding Determines whether the data sent via the inputStream is encoded as base64 as it's sent to the server
  * @param completionBlock returns an instance of the HTTPResponse if successful or nil otherwise
  * @param progressBlock
  * @param requestObject a handle to the CMISRequest allowing this HTTP request to be cancelled
@@ -117,15 +118,15 @@ completionBlock:(void (^)(CMISHttpRespon
        headers:(NSDictionary *)additionalHeaders
  bytesExpected:(unsigned long long)bytesExpected
    cmisRequest:(CMISRequest *)cmisRequest
-cmisProperties:(CMISProperties *)cmisProperties
-      mimeType:(NSString *)mimeType
+     startData:(NSData *)startData
+       endData:(NSData *)endData
+useBase64Encoding:(BOOL)useBase64Encoding
 completionBlock:(void (^)(CMISHttpResponse *httpResponse, NSError *error))completionBlock
  progressBlock:(void (^)(unsigned long long bytesDownloaded, unsigned long long bytesTotal))progressBlock;
 
 
-
 /**
- * Invoke method used for downloads, 
+ * Invoke method used for downloads,
  * @param url the RESTful API URL to be used
  * @param httpRequestMethod
  * @param session

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.h Wed May 21 12:50:59 2014
@@ -148,4 +148,6 @@
  */
 @property(nonatomic, assign) BOOL canSetControllableAcl;
 
+- (void)setNewTypeSettableAttributesFromDictionary:(NSDictionary *)dictionary;
+
 @end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISNewTypeSettableAttributes.m Wed May 21 12:50:59 2014
@@ -18,7 +18,34 @@
  */
 
 #import "CMISNewTypeSettableAttributes.h"
+#import "CMISNSDictionary+CMISUtil.h"
+#import "CMISLog.h"
+#import "CMISConstants.h"
+#import "CMISObjectConverter.h"
 
 @implementation CMISNewTypeSettableAttributes
 
+- (void)setNewTypeSettableAttributesFromDictionary:(NSDictionary *)dictionary
+{
+    if([dictionary isKindOfClass:NSDictionary.class]){
+        self.canSetId = [dictionary cmis_boolForKey:kCMISRepositoryCapabilityNewTypeSettableAttributesId];
+        self.canSetLocalName = [dictionary cmis_boolForKey:kCMISRepositoryCapabilityNewTypeSettableAttributesLocalName];
+        self.canSetLocalNamespace = [dictionary cmis_boolForKey:kCMISRepositoryCapabilityNewTypeSettableAttributesLocalNamespace];
+        self.canSetDisplayName = [dictionary cmis_boolForKey:kCMISRepositoryCapabilityNewTypeSettableAttributesDisplayName];
+        self.canSetQueryName = [dictionary cmis_boolForKey:kCMISRepositoryCapabilityNewTypeSettableAttributesQueryName];
+        self.canSetDescription = [dictionary cmis_boolForKey:kCMISRepositoryCapabilityNewTypeSettableAttributesDescription];
+        self.canSetCreatable = [dictionary cmis_boolForKey:kCMISRepositoryCapabilityNewTypeSettableAttributesCreateable];
+        self.canSetFileable = [dictionary cmis_boolForKey:kCMISRepositoryCapabilityNewTypeSettableAttributesFileable];
+        self.canSetQueryable = [dictionary cmis_boolForKey:kCMISRepositoryCapabilityNewTypeSettableAttributesQueryable];
+        self.canSetFulltextIndexed = [dictionary cmis_boolForKey:kCMISRepositoryCapabilityNewTypeSettableAttributesFullTextIndexed];
+        self.canSetIncludedInSupertypeQuery = [dictionary cmis_boolForKey:kCMISRepositoryCapabilityNewTypeSettableAttributesIncludedInSuperTypeQuery];
+        self.canSetControllablePolicy = [dictionary cmis_boolForKey:kCMISRepositoryCapabilityNewTypeSettableAttributesControllablePolicy];
+        self.canSetControllableAcl = [dictionary cmis_boolForKey:kCMISRepositoryCapabilityNewTypeSettableAttributesControllableAcl];
+        
+        self.extensions = [CMISObjectConverter convertExtensions:dictionary cmisKeys:[CMISConstants repositoryCapabilityNewTypeSettableAttributesKeys]];
+    } else {
+        CMISLogWarning(@"expected a dictionary but was %@", dictionary.class);
+    }
+}
+
 @end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISObjectData.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISObjectData.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISObjectData.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISObjectData.h Wed May 21 12:50:59 2014
@@ -37,5 +37,7 @@
 @property (nonatomic, strong) CMISAllowableActions *allowableActions;
 @property (nonatomic, strong) CMISAcl *acl;
 @property (nonatomic, strong) NSArray *renditions; // An array containing CMISRenditionData objects
+@property (nonatomic, strong) NSArray *relationships; // An array containing CMISObjectData objects; Relationships from and to this object.
+@property (nonatomic, assign) BOOL isExactAcl; //TODO set this value also from atom
 
 @end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISPropertyData.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISPropertyData.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISPropertyData.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISPropertyData.h Wed May 21 12:50:59 2014
@@ -19,8 +19,9 @@
  
 #import <Foundation/Foundation.h>
 #import "CMISEnums.h"
+#import "CMISExtensionData.h"
 
-@interface CMISPropertyData : NSObject
+@interface CMISPropertyData : CMISExtensionData
 
 @property (nonatomic, strong) NSString *identifier;
 @property (nonatomic, strong) NSString *localName;

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISPropertyData.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISPropertyData.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISPropertyData.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISPropertyData.m Wed May 21 12:50:59 2014
@@ -104,7 +104,11 @@
     if ([value isKindOfClass:[NSArray class]]) {
         propertyData.values = [value copy];
     } else {
-        propertyData.values = [NSArray arrayWithObject:value];
+        if(value){
+            propertyData.values = [NSArray arrayWithObject:value];
+        } else {
+            propertyData.values = [NSArray array];
+        }
     }
     propertyData.type = type;
     return propertyData;

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.h Wed May 21 12:50:59 2014
@@ -119,14 +119,14 @@
  *
  * @cmis 1.1
  */
-@property(nonatomic, strong) CMISCreatablePropertyTypes *creatablePropertyTypes; // TODO: Set this attribute when we have browser binding
+@property(nonatomic, strong) CMISCreatablePropertyTypes *creatablePropertyTypes;
 
 /**
  *
  * @cmis 1.1
  */
-@property(nonatomic, strong) CMISNewTypeSettableAttributes *typeSettableAttributes; // TODO: Set this attribute when we have browser binding
+@property(nonatomic, strong) CMISNewTypeSettableAttributes *typeSettableAttributes;
 
--(void) setCapability:(NSString*)capabilityKey value:(NSString*)capabilityValue;
+-(void) setCapability:(NSString*)capabilityKey value:(id)capabilityValue;
 
 @end

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryCapabilities.m Wed May 21 12:50:59 2014
@@ -23,7 +23,7 @@
 
 @implementation CMISRepositoryCapabilities
 
--(void) setCapability:(NSString*)capabilityKey value:(NSString*)capabilityValue {
+-(void) setCapability:(NSString*)capabilityKey value:(id)capabilityValue {
     if ([capabilityKey isEqualToString:kCMISRepositoryAllVersionsSearchable]) {
         self.allVersionsSearchable = [capabilityValue boolValue];
     } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityACL]) {
@@ -99,7 +99,10 @@
             CMISLogWarning(@"WARNING: Unknown Repository Capability Order By Value");
         }
     } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityPropertyTypes]) {
-        
+        if(capabilityValue) {
+            self.creatablePropertyTypes = [[CMISCreatablePropertyTypes alloc] init];
+            [self.creatablePropertyTypes setCreateablePropertyTypeFromDictionary:capabilityValue];
+        }
     } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityPWCSearchable]) {
         self.pwcSearchable = [capabilityValue boolValue];
     } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityPWCUpdatable]) {
@@ -114,8 +117,11 @@
         }
     } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityVersionSpecificFiling]) {
         self.supportsVersionSpecificFiling = [capabilityValue boolValue];
-    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityTypeSettableAttributes]) {
-        
+    } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityNewTypeSettableAttributes]) {
+        if(capabilityValue) {
+            self.typeSettableAttributes = [[CMISNewTypeSettableAttributes alloc] init];
+            [self.typeSettableAttributes setNewTypeSettableAttributesFromDictionary:capabilityValue];
+        }
     } else if ([capabilityKey isEqualToString:kCMISRepositoryCapabilityUnfiling]) {
         self.supportsUnfiling = [capabilityValue boolValue];
     } else {

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryInfo.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryInfo.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryInfo.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISRepositoryInfo.h Wed May 21 12:50:59 2014
@@ -25,13 +25,15 @@
 
 @property (nonatomic, strong) NSString *identifier;
 @property (nonatomic, strong) NSString *name;
-@property (nonatomic, strong) NSString *desc;
+@property (nonatomic, strong) NSString *summary;
 @property (nonatomic, strong) NSString *rootFolderId;
 
 @property (nonatomic, strong) NSString *cmisVersionSupported;
 @property (nonatomic, strong) NSString *productName;
 @property (nonatomic, strong) NSString *productVersion;
 @property (nonatomic, strong) NSString *vendorName;
+@property (nonatomic, strong) NSString *thinClientUri;
+@property (nonatomic, strong) NSString *latestChangeLogToken;
 
 /**
  * Returns principal ID for an anonymous user (any authenticated user). This

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISSessionParameters.h
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISSessionParameters.h?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISSessionParameters.h (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISSessionParameters.h Wed May 21 12:50:59 2014
@@ -22,6 +22,7 @@
 #import "CMISBinding.h"
 #import "CMISAuthenticationProvider.h"
 #import "CMISNetworkProvider.h"
+#import "CMISTypeDefinitionCache.h"
 
 
 // Session param keys
@@ -39,8 +40,12 @@ extern NSString * const kCMISSessionPara
  */
 extern NSString * const kCMISSessionParameterLinkCacheSize;
 
-// TODO: Temporary, must be extracted into separate project
-extern NSString * const kCMISSessionParameterMode;
+/**
+ * Key for setting the value of the cache of type definitions.
+ * Value should be an NSNumber, indicating the amount of type defintions will be cached.
+ */
+extern NSString * const kCMISSessionParameterTypeDefinitionCacheSize;
+
 
 @interface CMISSessionParameters : NSObject
 
@@ -50,6 +55,7 @@ extern NSString * const kCMISSessionPara
 @property (nonatomic, strong) NSString *password;
 @property (nonatomic, strong) NSString *repositoryId;
 @property (nonatomic, strong) NSURL *atomPubUrl;
+@property (nonatomic, strong) NSURL *browserUrl;
 
 @property (nonatomic, assign, readonly) CMISBindingType bindingType;
 
@@ -60,6 +66,9 @@ extern NSString * const kCMISSessionPara
 // Network I/O
 @property (nonatomic, strong) id<CMISNetworkProvider> networkProvider;
 
+// Type definitions cache
+@property (nonatomic, strong) CMISTypeDefinitionCache *typeDefinitionCache;
+
 /** init with binding type
  */
 - (id)initWithBindingType:(CMISBindingType)bindingType;

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISSessionParameters.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISSessionParameters.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISSessionParameters.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Common/CMISSessionParameters.m Wed May 21 12:50:59 2014
@@ -19,11 +19,11 @@
 
 #import "CMISSessionParameters.h"
 
+// Session param keys
 NSString * const kCMISSessionParameterObjectConverterClassName = @"session_param_object_converter_class";
+NSString * const kCMISSessionParameterLinkCacheSize = @"session_param_cache_size_links";
+NSString * const kCMISSessionParameterTypeDefinitionCacheSize = @"session_param_cache_size_type_definition";
 
-NSString * const kCMISSessionParameterLinkCacheSize =@"session_param_cache_size_links";
-
-NSString * const kCMISSessionParameterMode = @"session_param_mode";
 
 @interface CMISSessionParameters ()
 @property (nonatomic, assign, readwrite) CMISBindingType bindingType;

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Utils/CMISDefaultNetworkProvider.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Utils/CMISDefaultNetworkProvider.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Utils/CMISDefaultNetworkProvider.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Utils/CMISDefaultNetworkProvider.m Wed May 21 12:50:59 2014
@@ -134,10 +134,11 @@ completionBlock:(void (^)(CMISHttpRespon
        headers:(NSDictionary *)additionalHeaders
  bytesExpected:(unsigned long long)bytesExpected
    cmisRequest:(CMISRequest *)cmisRequest
-cmisProperties:(CMISProperties *)cmisProperties
-      mimeType:(NSString *)mimeType
-completionBlock:(void (^)(CMISHttpResponse *httpResponse, NSError *error))completionBlock
- progressBlock:(void (^)(unsigned long long bytesDownloaded, unsigned long long bytesTotal))progressBlock
+     startData:(NSData *)startData
+       endData:(NSData *)endData
+useBase64Encoding:(BOOL)useBase64Encoding
+completionBlock:(void (^)(CMISHttpResponse *, NSError *))completionBlock
+ progressBlock:(void (^)(unsigned long long, unsigned long long))progressBlock
 {
     if (!cmisRequest.isCancelled) {
         NSMutableURLRequest *urlRequest = [CMISDefaultNetworkProvider createRequestForUrl:url
@@ -150,8 +151,9 @@ completionBlock:(void (^)(CMISHttpRespon
                                                                      headers:additionalHeaders
                                                                bytesExpected:bytesExpected
                                                       authenticationProvider:session.authenticationProvider
-                                                              cmisProperties:cmisProperties
-                                                                    mimeType:mimeType
+                                                              startData:startData
+                                                                    endData:endData
+                                                           useBase64Encoding:useBase64Encoding
                                                              completionBlock:completionBlock
                                                                progressBlock:progressBlock];
         if (request){
@@ -165,7 +167,6 @@ completionBlock:(void (^)(CMISHttpRespon
     }
 }
 
-
 - (void)invoke:(NSURL *)url
     httpMethod:(CMISHttpRequestMethod)httpRequestMethod
        session:(CMISBindingSession *)session

Modified: chemistry/objectivecmis/trunk/ObjectiveCMIS/Utils/CMISHttpRequest.m
URL: http://svn.apache.org/viewvc/chemistry/objectivecmis/trunk/ObjectiveCMIS/Utils/CMISHttpRequest.m?rev=1596563&r1=1596562&r2=1596563&view=diff
==============================================================================
--- chemistry/objectivecmis/trunk/ObjectiveCMIS/Utils/CMISHttpRequest.m (original)
+++ chemistry/objectivecmis/trunk/ObjectiveCMIS/Utils/CMISHttpRequest.m Wed May 21 12:50:59 2014
@@ -199,7 +199,7 @@ NSString * const kCMISExceptionVersionin
     }
     
     if ( (httpRequestMethod == HTTP_GET && response.statusCode != 200 && response.statusCode != 206)
-        || (httpRequestMethod == HTTP_POST && response.statusCode != 201)
+        || (httpRequestMethod == HTTP_POST && response.statusCode != 200 && response.statusCode != 201)
         || (httpRequestMethod == HTTP_DELETE && response.statusCode != 204)
         || (httpRequestMethod == HTTP_PUT && ((response.statusCode < 200 || response.statusCode > 299)))) {
         if (error) {



Mime
View raw message