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/08/09 17:04:47 UTC

svn commit: r1371244 [1/2] - in /chemistry/opencmis/trunk: chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/ chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/j...

Author: fmui
Date: Thu Aug  9 15:04:46 2012
New Revision: 1371244

URL: http://svn.apache.org/viewvc?rev=1371244&view=rev
Log:
Browser Binding client: added support for succinct flag (CMIS 1.1 WD 08)

Added:
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ClientTypeCacheImpl.java   (with props)
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ServerTypeCacheImpl.java   (with props)
Removed:
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/server/TypeCacheImpl.java
Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/CmisBindingFactory.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/AbstractBrowserBindingService.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/DiscoveryServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/FormDataWriter.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/NavigationServiceImpl.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/PolicyServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/RelationshipServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/VersioningServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/AbstractFilableCmisObject.java
    chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/FolderImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/SessionParameter.java
    chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/JSONConverter.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/DiscoveryService.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/MultiFilingService.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/NavigationService.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/PolicyService.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/RelationshipService.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/VersioningService.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/CmisBindingFactory.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/CmisBindingFactory.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/CmisBindingFactory.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/CmisBindingFactory.java Thu Aug  9 15:04:46 2012
@@ -195,6 +195,9 @@ public class CmisBindingFactory {
                 sessionParameters.put(SessionParameter.AUTHENTICATION_PROVIDER_CLASS, STANDARD_AUTHENTICATION_PROVIDER);
             }
         }
+        if (!sessionParameters.containsKey(SessionParameter.BROWSER_SUCCINCT)) {
+            sessionParameters.put(SessionParameter.BROWSER_SUCCINCT, "true");
+        }
         if (!sessionParameters.containsKey(SessionParameter.AUTH_HTTP_BASIC)) {
             sessionParameters.put(SessionParameter.AUTH_HTTP_BASIC, "true");
         }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/AbstractBrowserBindingService.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/AbstractBrowserBindingService.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/AbstractBrowserBindingService.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/AbstractBrowserBindingService.java Thu Aug  9 15:04:46 2012
@@ -73,12 +73,16 @@ public abstract class AbstractBrowserBin
     };
 
     private BindingSession session;
+    private boolean succint;
 
     /**
      * Sets the current session.
      */
     protected void setSession(BindingSession session) {
         this.session = session;
+
+        Object succintObj = session.get(SessionParameter.BROWSER_SUCCINCT);
+        this.succint = (succintObj == null ? true : Boolean.parseBoolean(succintObj.toString()));
     }
 
     /**
@@ -175,6 +179,14 @@ public abstract class AbstractBrowserBin
         return result;
     }
 
+    protected boolean getSuccinct() {
+        return succint;
+    }
+
+    protected String getSuccinctParameter() {
+        return succint ? "true" : null;
+    }
+
     // ---- exceptions ----
 
     /**

Added: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ClientTypeCacheImpl.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/ClientTypeCacheImpl.java?rev=1371244&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ClientTypeCacheImpl.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ClientTypeCacheImpl.java Thu Aug  9 15:04:46 2012
@@ -0,0 +1,56 @@
+/*
+ * 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.client.bindings.spi.browser;
+
+import org.apache.chemistry.opencmis.client.bindings.impl.CmisBindingsHelper;
+import org.apache.chemistry.opencmis.client.bindings.impl.TypeDefinitionCache;
+import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
+import org.apache.chemistry.opencmis.commons.impl.TypeCache;
+
+public class ClientTypeCacheImpl implements TypeCache {
+
+    private final String repositoryId;
+    private final AbstractBrowserBindingService service;
+
+    public ClientTypeCacheImpl(String repositoryId, AbstractBrowserBindingService service) {
+        this.repositoryId = repositoryId;
+        this.service = service;
+    }
+
+    public TypeDefinition getTypeDefinition(String typeId) {
+
+        TypeDefinitionCache cache = CmisBindingsHelper.getTypeDefinitionCache(service.getSession());
+
+        TypeDefinition type = cache.get(repositoryId, typeId);
+        if (type == null) {
+            type = service.getTypeDefinitionInternal(repositoryId, typeId);
+            if (type != null) {
+                cache.put(repositoryId, type);
+            }
+        }
+
+        return type;
+    }
+
+    public TypeDefinition getTypeDefinitionForObject(String objectId) {
+        // not used
+        return null;
+    }
+
+}

Propchange: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/ClientTypeCacheImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/DiscoveryServiceImpl.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/DiscoveryServiceImpl.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/DiscoveryServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/DiscoveryServiceImpl.java Thu Aug  9 15:04:46 2012
@@ -30,6 +30,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.impl.Constants;
 import org.apache.chemistry.opencmis.commons.impl.JSONConstants;
 import org.apache.chemistry.opencmis.commons.impl.JSONConverter;
+import org.apache.chemistry.opencmis.commons.impl.TypeCache;
 import org.apache.chemistry.opencmis.commons.impl.UrlBuilder;
 import org.apache.chemistry.opencmis.commons.spi.DiscoveryService;
 import org.apache.chemistry.opencmis.commons.spi.Holder;
@@ -61,6 +62,7 @@ public class DiscoveryServiceImpl extend
         formData.addParameter(Constants.PARAM_RENDITION_FILTER, renditionFilter);
         formData.addParameter(Constants.PARAM_MAX_ITEMS, maxItems);
         formData.addParameter(Constants.PARAM_SKIP_COUNT, skipCount);
+        // Important: No succinct flag here!!!
 
         // send and parse
         HttpUtils.Response resp = post(url, formData.getContentType(), new HttpUtils.Output() {
@@ -69,21 +71,23 @@ public class DiscoveryServiceImpl extend
             }
         });
 
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
-        return JSONConverter.convertObjectList(json, true);
+        return JSONConverter.convertObjectList(json, typeCache, true);
     }
 
     public ObjectList getContentChanges(String repositoryId, Holder<String> changeLogToken, Boolean includeProperties,
             String filter, Boolean includePolicyIds, Boolean includeAcl, BigInteger maxItems, ExtensionsData extension) {
         // build URL
         UrlBuilder url = getRepositoryUrl(repositoryId, Constants.SELECTOR_CONTENT_CHANGES);
-        url.addParameter(Constants.PARAM_CHANGE_LOG_TOKEN,
-                changeLogToken == null ? null : changeLogToken.getValue());
+        url.addParameter(Constants.PARAM_CHANGE_LOG_TOKEN, changeLogToken == null ? null : changeLogToken.getValue());
         url.addParameter(Constants.PARAM_PROPERTIES, includeProperties);
         url.addParameter(Constants.PARAM_FILTER, filter);
         url.addParameter(Constants.PARAM_POLICY_IDS, includePolicyIds);
         url.addParameter(Constants.PARAM_ACL, includeAcl);
         url.addParameter(Constants.PARAM_MAX_ITEMS, maxItems);
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
@@ -96,6 +100,8 @@ public class DiscoveryServiceImpl extend
             }
         }
 
-        return JSONConverter.convertObjectList(json, false);
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        return JSONConverter.convertObjectList(json, typeCache, false);
     }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/FormDataWriter.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/FormDataWriter.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/FormDataWriter.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/FormDataWriter.java Thu Aug  9 15:04:46 2012
@@ -98,6 +98,12 @@ public class FormDataWriter {
         }
     }
 
+    public void addSuccinctFlag(boolean succinct) {
+        if (succinct) {
+            addParameter(Constants.CONTROL_SUCCINCT, "true");
+        }
+    }
+
     public void addPoliciesParameters(List<String> policies) {
         if (policies == null) {
             return;
@@ -177,7 +183,7 @@ public class FormDataWriter {
             }
         } else {
             writeLine(out);
-            
+
             // parameters
             for (Map.Entry<String, String> param : parameters.entrySet()) {
                 writeLine(out, "--" + boundary);

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/NavigationServiceImpl.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/NavigationServiceImpl.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/NavigationServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/NavigationServiceImpl.java Thu Aug  9 15:04:46 2012
@@ -33,6 +33,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
 import org.apache.chemistry.opencmis.commons.impl.Constants;
 import org.apache.chemistry.opencmis.commons.impl.JSONConverter;
+import org.apache.chemistry.opencmis.commons.impl.TypeCache;
 import org.apache.chemistry.opencmis.commons.impl.UrlBuilder;
 import org.apache.chemistry.opencmis.commons.spi.NavigationService;
 
@@ -61,12 +62,15 @@ public class NavigationServiceImpl exten
         url.addParameter(Constants.PARAM_PATH_SEGMENT, includePathSegment);
         url.addParameter(Constants.PARAM_MAX_ITEMS, maxItems);
         url.addParameter(Constants.PARAM_SKIP_COUNT, skipCount);
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
 
-        return JSONConverter.convertObjectInFolderList(json);
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        return JSONConverter.convertObjectInFolderList(json, typeCache);
     }
 
     public List<ObjectInFolderContainer> getDescendants(String repositoryId, String folderId, BigInteger depth,
@@ -80,12 +84,15 @@ public class NavigationServiceImpl exten
         url.addParameter(Constants.PARAM_RELATIONSHIPS, includeRelationships);
         url.addParameter(Constants.PARAM_RENDITION_FILTER, renditionFilter);
         url.addParameter(Constants.PARAM_PATH_SEGMENT, includePathSegment);
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
         List<Object> json = parseArray(resp.getStream(), resp.getCharset());
 
-        return JSONConverter.convertDescendants(json);
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        return JSONConverter.convertDescendants(json, typeCache);
     }
 
     public List<ObjectInFolderContainer> getFolderTree(String repositoryId, String folderId, BigInteger depth,
@@ -99,12 +106,15 @@ public class NavigationServiceImpl exten
         url.addParameter(Constants.PARAM_RELATIONSHIPS, includeRelationships);
         url.addParameter(Constants.PARAM_RENDITION_FILTER, renditionFilter);
         url.addParameter(Constants.PARAM_PATH_SEGMENT, includePathSegment);
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
         List<Object> json = parseArray(resp.getStream(), resp.getCharset());
 
-        return JSONConverter.convertDescendants(json);
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        return JSONConverter.convertDescendants(json, typeCache);
     }
 
     public List<ObjectParentData> getObjectParents(String repositoryId, String objectId, String filter,
@@ -117,24 +127,30 @@ public class NavigationServiceImpl exten
         url.addParameter(Constants.PARAM_RELATIONSHIPS, includeRelationships);
         url.addParameter(Constants.PARAM_RENDITION_FILTER, renditionFilter);
         url.addParameter(Constants.PARAM_RELATIVE_PATH_SEGMENT, includeRelativePathSegment);
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
         List<Object> json = parseArray(resp.getStream(), resp.getCharset());
 
-        return JSONConverter.convertObjectParents(json);
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        return JSONConverter.convertObjectParents(json, typeCache);
     }
 
     public ObjectData getFolderParent(String repositoryId, String folderId, String filter, ExtensionsData extension) {
         // build URL
         UrlBuilder url = getObjectUrl(repositoryId, folderId, Constants.SELECTOR_PARENT);
         url.addParameter(Constants.PARAM_FILTER, filter);
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
 
-        return JSONConverter.convertObject(json);
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        return JSONConverter.convertObject(json, typeCache);
     }
 
     public ObjectList getCheckedOutDocs(String repositoryId, String folderId, String filter, String orderBy,
@@ -150,11 +166,14 @@ public class NavigationServiceImpl exten
         url.addParameter(Constants.PARAM_RENDITION_FILTER, renditionFilter);
         url.addParameter(Constants.PARAM_MAX_ITEMS, maxItems);
         url.addParameter(Constants.PARAM_SKIP_COUNT, skipCount);
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
 
-        return JSONConverter.convertObjectList(json, false);
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        return JSONConverter.convertObjectList(json, typeCache, false);
     }
 }

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=1371244&r1=1371243&r2=1371244&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 Aug  9 15:04:46 2012
@@ -40,6 +40,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
 import org.apache.chemistry.opencmis.commons.impl.Constants;
 import org.apache.chemistry.opencmis.commons.impl.JSONConverter;
+import org.apache.chemistry.opencmis.commons.impl.TypeCache;
 import org.apache.chemistry.opencmis.commons.impl.UrlBuilder;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.ContentStreamImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.FailedToDeleteDataImpl;
@@ -71,6 +72,7 @@ public class ObjectServiceImpl extends A
         formData.addPoliciesParameters(policies);
         formData.addAddAcesParameters(addAces);
         formData.addRemoveAcesParameters(removeAces);
+        formData.addSuccinctFlag(getSuccinct());
 
         // send and parse
         HttpUtils.Response resp = post(url, formData.getContentType(), new HttpUtils.Output() {
@@ -80,7 +82,10 @@ public class ObjectServiceImpl extends A
         });
 
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
-        ObjectData newObj = JSONConverter.convertObject(json);
+
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        ObjectData newObj = JSONConverter.convertObject(json, typeCache);
 
         return (newObj == null ? null : newObj.getId());
     }
@@ -99,6 +104,7 @@ public class ObjectServiceImpl extends A
         formData.addPoliciesParameters(policies);
         formData.addAddAcesParameters(addAces);
         formData.addRemoveAcesParameters(removeAces);
+        formData.addSuccinctFlag(getSuccinct());
 
         // send and parse
         HttpUtils.Response resp = post(url, formData.getContentType(), new HttpUtils.Output() {
@@ -108,7 +114,10 @@ public class ObjectServiceImpl extends A
         });
 
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
-        ObjectData newObj = JSONConverter.convertObject(json);
+
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        ObjectData newObj = JSONConverter.convertObject(json, typeCache);
 
         return (newObj == null ? null : newObj.getId());
     }
@@ -124,6 +133,7 @@ public class ObjectServiceImpl extends A
         formData.addPoliciesParameters(policies);
         formData.addAddAcesParameters(addAces);
         formData.addRemoveAcesParameters(removeAces);
+        formData.addSuccinctFlag(getSuccinct());
 
         // send and parse
         HttpUtils.Response resp = post(url, formData.getContentType(), new HttpUtils.Output() {
@@ -133,7 +143,10 @@ public class ObjectServiceImpl extends A
         });
 
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
-        ObjectData newObj = JSONConverter.convertObject(json);
+
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        ObjectData newObj = JSONConverter.convertObject(json, typeCache);
 
         return (newObj == null ? null : newObj.getId());
     }
@@ -149,6 +162,7 @@ public class ObjectServiceImpl extends A
         formData.addPoliciesParameters(policies);
         formData.addAddAcesParameters(addAces);
         formData.addRemoveAcesParameters(removeAces);
+        formData.addSuccinctFlag(getSuccinct());
 
         // send and parse
         HttpUtils.Response resp = post(url, formData.getContentType(), new HttpUtils.Output() {
@@ -158,7 +172,10 @@ public class ObjectServiceImpl extends A
         });
 
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
-        ObjectData newObj = JSONConverter.convertObject(json);
+
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        ObjectData newObj = JSONConverter.convertObject(json, typeCache);
 
         return (newObj == null ? null : newObj.getId());
     }
@@ -174,6 +191,7 @@ public class ObjectServiceImpl extends A
         formData.addPoliciesParameters(policies);
         formData.addAddAcesParameters(addAces);
         formData.addRemoveAcesParameters(removeAces);
+        formData.addSuccinctFlag(getSuccinct());
 
         // send and parse
         HttpUtils.Response resp = post(url, formData.getContentType(), new HttpUtils.Output() {
@@ -183,7 +201,10 @@ public class ObjectServiceImpl extends A
         });
 
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
-        ObjectData newObj = JSONConverter.convertObject(json);
+
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        ObjectData newObj = JSONConverter.convertObject(json, typeCache);
 
         return (newObj == null ? null : newObj.getId());
     }
@@ -210,12 +231,15 @@ public class ObjectServiceImpl extends A
         url.addParameter(Constants.PARAM_RENDITION_FILTER, renditionFilter);
         url.addParameter(Constants.PARAM_POLICY_IDS, includePolicyIds);
         url.addParameter(Constants.PARAM_ACL, includeAcl);
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
 
-        return JSONConverter.convertObject(json);
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        return JSONConverter.convertObject(json, typeCache);
     }
 
     public ObjectData getObjectByPath(String repositoryId, String path, String filter, Boolean includeAllowableActions,
@@ -229,24 +253,33 @@ public class ObjectServiceImpl extends A
         url.addParameter(Constants.PARAM_RENDITION_FILTER, renditionFilter);
         url.addParameter(Constants.PARAM_POLICY_IDS, includePolicyIds);
         url.addParameter(Constants.PARAM_ACL, includeAcl);
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
 
-        return JSONConverter.convertObject(json);
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        return JSONConverter.convertObject(json, typeCache);
     }
 
     public Properties getProperties(String repositoryId, String objectId, String filter, ExtensionsData extension) {
         // build URL
         UrlBuilder url = getObjectUrl(repositoryId, objectId, Constants.SELECTOR_PROPERTIES);
         url.addParameter(Constants.PARAM_FILTER, filter);
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
 
-        return JSONConverter.convertProperties(json);
+        if (getSuccinct()) {
+            TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+            return JSONConverter.convertSuccinctProperties(json, typeCache);
+        } else {
+            return JSONConverter.convertProperties(json);
+        }
     }
 
     public List<RenditionData> getRenditions(String repositoryId, String objectId, String renditionFilter,
@@ -302,6 +335,7 @@ public class ObjectServiceImpl extends A
         final FormDataWriter formData = new FormDataWriter(Constants.CMISACTION_UPDATE_PROPERTIES);
         formData.addPropertiesParameters(properties);
         formData.addParameter(Constants.PARAM_CHANGE_TOKEN, (changeToken == null ? null : changeToken.getValue()));
+        formData.addSuccinctFlag(getSuccinct());
 
         // send and parse
         HttpUtils.Response resp = post(url, formData.getContentType(), new HttpUtils.Output() {
@@ -311,7 +345,10 @@ public class ObjectServiceImpl extends A
         });
 
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
-        ObjectData newObj = JSONConverter.convertObject(json);
+
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        ObjectData newObj = JSONConverter.convertObject(json,typeCache);
 
         objectId.setValue(newObj == null ? null : newObj.getId());
 
@@ -335,6 +372,7 @@ public class ObjectServiceImpl extends A
         final FormDataWriter formData = new FormDataWriter(Constants.CMISACTION_MOVE);
         formData.addParameter(Constants.PARAM_TARGET_FOLDER_ID, targetFolderId);
         formData.addParameter(Constants.PARAM_SOURCE_FOLDER_ID, sourceFolderId);
+        formData.addSuccinctFlag(getSuccinct());
 
         // send and parse
         HttpUtils.Response resp = post(url, formData.getContentType(), new HttpUtils.Output() {
@@ -344,7 +382,10 @@ public class ObjectServiceImpl extends A
         });
 
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
-        ObjectData newObj = JSONConverter.convertObject(json);
+
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        ObjectData newObj = JSONConverter.convertObject(json,typeCache);
 
         objectId.setValue(newObj == null ? null : newObj.getId());
     }
@@ -405,6 +446,7 @@ public class ObjectServiceImpl extends A
         final FormDataWriter formData = new FormDataWriter(Constants.CMISACTION_SET_CONTENT, contentStream);
         formData.addParameter(Constants.PARAM_OVERWRITE_FLAG, overwriteFlag);
         formData.addParameter(Constants.PARAM_CHANGE_TOKEN, (changeToken == null ? null : changeToken.getValue()));
+        formData.addSuccinctFlag(getSuccinct());
 
         // send and parse
         HttpUtils.Response resp = post(url, formData.getContentType(), new HttpUtils.Output() {
@@ -414,7 +456,10 @@ public class ObjectServiceImpl extends A
         });
 
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
-        ObjectData newObj = JSONConverter.convertObject(json);
+
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        ObjectData newObj = JSONConverter.convertObject(json,typeCache);
 
         objectId.setValue(newObj == null ? null : newObj.getId());
 
@@ -437,6 +482,7 @@ public class ObjectServiceImpl extends A
         // prepare form data
         final FormDataWriter formData = new FormDataWriter(Constants.CMISACTION_DELETE_CONTENT);
         formData.addParameter(Constants.PARAM_CHANGE_TOKEN, (changeToken == null ? null : changeToken.getValue()));
+        formData.addSuccinctFlag(getSuccinct());
 
         // send and parse
         HttpUtils.Response resp = post(url, formData.getContentType(), new HttpUtils.Output() {
@@ -446,7 +492,10 @@ public class ObjectServiceImpl extends A
         });
 
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
-        ObjectData newObj = JSONConverter.convertObject(json);
+
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        ObjectData newObj = JSONConverter.convertObject(json, typeCache);
 
         objectId.setValue(newObj == null ? null : newObj.getId());
 

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/PolicyServiceImpl.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/PolicyServiceImpl.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/PolicyServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/PolicyServiceImpl.java Thu Aug  9 15:04:46 2012
@@ -28,6 +28,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.data.ObjectData;
 import org.apache.chemistry.opencmis.commons.impl.Constants;
 import org.apache.chemistry.opencmis.commons.impl.JSONConverter;
+import org.apache.chemistry.opencmis.commons.impl.TypeCache;
 import org.apache.chemistry.opencmis.commons.impl.UrlBuilder;
 import org.apache.chemistry.opencmis.commons.spi.PolicyService;
 
@@ -80,11 +81,14 @@ public class PolicyServiceImpl extends A
         // build URL
         UrlBuilder url = getObjectUrl(repositoryId, objectId, Constants.SELECTOR_POLICIES);
         url.addParameter(Constants.PARAM_FILTER, filter);
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
         List<Object> json = parseArray(resp.getStream(), resp.getCharset());
 
-        return JSONConverter.convertObjects(json);
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        return JSONConverter.convertObjects(json, typeCache);
     }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/RelationshipServiceImpl.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/RelationshipServiceImpl.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/RelationshipServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/RelationshipServiceImpl.java Thu Aug  9 15:04:46 2012
@@ -28,6 +28,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.enums.RelationshipDirection;
 import org.apache.chemistry.opencmis.commons.impl.Constants;
 import org.apache.chemistry.opencmis.commons.impl.JSONConverter;
+import org.apache.chemistry.opencmis.commons.impl.TypeCache;
 import org.apache.chemistry.opencmis.commons.impl.UrlBuilder;
 import org.apache.chemistry.opencmis.commons.spi.RelationshipService;
 
@@ -55,11 +56,14 @@ public class RelationshipServiceImpl ext
         url.addParameter(Constants.PARAM_ALLOWABLE_ACTIONS, includeAllowableActions);
         url.addParameter(Constants.PARAM_MAX_ITEMS, maxItems);
         url.addParameter(Constants.PARAM_SKIP_COUNT, skipCount);
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
 
-        return JSONConverter.convertObjectList(json, false);
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        return JSONConverter.convertObjectList(json, typeCache, false);
     }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/VersioningServiceImpl.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/VersioningServiceImpl.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/VersioningServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-bindings/src/main/java/org/apache/chemistry/opencmis/client/bindings/spi/browser/VersioningServiceImpl.java Thu Aug  9 15:04:46 2012
@@ -34,6 +34,7 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.impl.Constants;
 import org.apache.chemistry.opencmis.commons.impl.JSONConverter;
 import org.apache.chemistry.opencmis.commons.impl.ReturnVersion;
+import org.apache.chemistry.opencmis.commons.impl.TypeCache;
 import org.apache.chemistry.opencmis.commons.impl.UrlBuilder;
 import org.apache.chemistry.opencmis.commons.spi.Holder;
 import org.apache.chemistry.opencmis.commons.spi.VersioningService;
@@ -62,6 +63,7 @@ public class VersioningServiceImpl exten
 
         // prepare form data
         final FormDataWriter formData = new FormDataWriter(Constants.CMISACTION_CHECK_OUT);
+        formData.addSuccinctFlag(getSuccinct());
 
         // send and parse
         HttpUtils.Response resp = post(url, formData.getContentType(), new HttpUtils.Output() {
@@ -71,7 +73,10 @@ public class VersioningServiceImpl exten
         });
 
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
-        ObjectData newObj = JSONConverter.convertObject(json);
+
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        ObjectData newObj = JSONConverter.convertObject(json, typeCache);
 
         objectId.setValue(newObj == null ? null : newObj.getId());
     }
@@ -110,6 +115,7 @@ public class VersioningServiceImpl exten
         formData.addPoliciesParameters(policies);
         formData.addAddAcesParameters(addAces);
         formData.addRemoveAcesParameters(removeAces);
+        formData.addSuccinctFlag(getSuccinct());
 
         // send and parse
         HttpUtils.Response resp = post(url, formData.getContentType(), new HttpUtils.Output() {
@@ -119,7 +125,10 @@ public class VersioningServiceImpl exten
         });
 
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
-        ObjectData newObj = JSONConverter.convertObject(json);
+
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        ObjectData newObj = JSONConverter.convertObject(json, typeCache);
 
         objectId.setValue(newObj == null ? null : newObj.getId());
     }
@@ -137,12 +146,15 @@ public class VersioningServiceImpl exten
         url.addParameter(Constants.PARAM_ACL, includeAcl);
         url.addParameter(Constants.PARAM_RETURN_VERSION,
                 (major == null || Boolean.FALSE.equals(major) ? ReturnVersion.LATEST : ReturnVersion.LASTESTMAJOR));
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
 
-        return JSONConverter.convertObject(json);
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        return JSONConverter.convertObject(json, typeCache);
     }
 
     public Properties getPropertiesOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
@@ -152,12 +164,18 @@ public class VersioningServiceImpl exten
         url.addParameter(Constants.PARAM_FILTER, filter);
         url.addParameter(Constants.PARAM_RETURN_VERSION,
                 (major == null || Boolean.FALSE.equals(major) ? ReturnVersion.LATEST : ReturnVersion.LASTESTMAJOR));
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
         Map<String, Object> json = parseObject(resp.getStream(), resp.getCharset());
 
-        return JSONConverter.convertProperties(json);
+        if (getSuccinct()) {
+            TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+            return JSONConverter.convertSuccinctProperties(json, typeCache);
+        } else {
+            return JSONConverter.convertProperties(json);
+        }
     }
 
     public List<ObjectData> getAllVersions(String repositoryId, String objectId, String versionSeriesId, String filter,
@@ -166,11 +184,14 @@ public class VersioningServiceImpl exten
         UrlBuilder url = getObjectUrl(repositoryId, objectId, Constants.SELECTOR_VERSIONS);
         url.addParameter(Constants.PARAM_FILTER, filter);
         url.addParameter(Constants.PARAM_ALLOWABLE_ACTIONS, includeAllowableActions);
+        url.addParameter(Constants.PARAM_SUCCINCT, getSuccinctParameter());
 
         // read and parse
         HttpUtils.Response resp = read(url);
         List<Object> json = parseArray(resp.getStream(), resp.getCharset());
 
-        return JSONConverter.convertObjects(json);
+        TypeCache typeCache = new ClientTypeCacheImpl(repositoryId, this);
+
+        return JSONConverter.convertObjects(json, typeCache);
     }
 }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/AbstractFilableCmisObject.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/AbstractFilableCmisObject.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/AbstractFilableCmisObject.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/AbstractFilableCmisObject.java Thu Aug  9 15:04:46 2012
@@ -67,7 +67,7 @@ public abstract class AbstractFilableCmi
 
             // get id property
             PropertyData<?> idProperty = p.getObject().getProperties().getProperties().get(PropertyIds.OBJECT_ID);
-            if (!(idProperty instanceof PropertyId)) {
+            if (!(idProperty instanceof PropertyId) && !(idProperty instanceof PropertyString)) {
                 // the repository sent an object without a valid object id...
                 throw new CmisRuntimeException("Repository sent invalid data! No object id!");
             }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/FolderImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/FolderImpl.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/FolderImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/main/java/org/apache/chemistry/opencmis/client/runtime/FolderImpl.java Thu Aug  9 15:04:46 2012
@@ -418,7 +418,7 @@ public class FolderImpl extends Abstract
 
         // get id property
         PropertyData<?> idProperty = bindingParent.getProperties().getProperties().get(PropertyIds.OBJECT_ID);
-        if (!(idProperty instanceof PropertyId)) {
+        if (!(idProperty instanceof PropertyId) && !(idProperty instanceof PropertyString)) {
             // the repository sent an object without a valid object id...
             throw new CmisRuntimeException("Repository sent invalid data! No object id!");
         }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/SessionParameter.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/SessionParameter.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/SessionParameter.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-api/src/main/java/org/apache/chemistry/opencmis/commons/SessionParameter.java Thu Aug  9 15:04:46 2012
@@ -57,6 +57,7 @@ public final class SessionParameter {
 
     /** URL of the Browser Binding entry point. */
     public static final String BROWSER_URL = "org.apache.chemistry.opencmis.binding.browser.url";
+    public static final String BROWSER_SUCCINCT = "org.apache.chemistry.opencmis.binding.browser.succinct";
 
     /** Factory class name for the local binding. */
     public static final String LOCAL_FACTORY = "org.apache.chemistry.opencmis.binding.local.classname";

Modified: chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/JSONConverter.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/JSONConverter.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/JSONConverter.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-commons/chemistry-opencmis-commons-impl/src/main/java/org/apache/chemistry/opencmis/commons/impl/JSONConverter.java Thu Aug  9 15:04:46 2012
@@ -1539,7 +1539,7 @@ public class JSONConverter {
     /**
      * Converts an object.
      */
-    public static ObjectData convertObject(Map<String, Object> json) {
+    public static ObjectData convertObject(Map<String, Object> json, TypeCache typeCache) {
         if (json == null) {
             return null;
         }
@@ -1561,10 +1561,19 @@ public class JSONConverter {
         }
         result.setIsExactAcl(getBoolean(json, JSON_OBJECT_EXACT_ACL));
         result.setPolicyIds(convertPolicyIds(getMap(json.get(JSON_OBJECT_POLICY_IDS))));
-        result.setProperties(convertProperties(getMap(json.get(JSON_OBJECT_PROPERTIES))));
+
+        Map<String, Object> propMap = getMap(json.get(JSON_OBJECT_SUCCINCT_PROPERTIES));
+        if (propMap != null) {
+            result.setProperties(convertSuccinctProperties(propMap, typeCache));
+        }
+        propMap = getMap(json.get(JSON_OBJECT_PROPERTIES));
+        if (propMap != null) {
+            result.setProperties(convertProperties(propMap));
+        }
+
         List<Object> jsonRelationships = getList(json.get(JSON_OBJECT_RELATIONSHIPS));
         if (jsonRelationships != null) {
-            result.setRelationships(convertObjects(jsonRelationships));
+            result.setRelationships(convertObjects(jsonRelationships, typeCache));
         }
         List<Object> jsonRenditions = getList(json.get(JSON_OBJECT_RENDITIONS));
         if (jsonRenditions != null) {
@@ -1579,14 +1588,14 @@ public class JSONConverter {
     /**
      * Converts an object.
      */
-    public static List<ObjectData> convertObjects(List<Object> json) {
+    public static List<ObjectData> convertObjects(List<Object> json, TypeCache typeCache) {
         if (json == null) {
             return null;
         }
 
         List<ObjectData> result = new ArrayList<ObjectData>();
         for (Object obj : json) {
-            ObjectData relationship = convertObject(getMap(obj));
+            ObjectData relationship = convertObject(getMap(obj), typeCache);
             if (relationship != null) {
                 result.add(relationship);
             }
@@ -1904,6 +1913,253 @@ public class JSONConverter {
     }
 
     /**
+     * Converts properties.
+     */
+    @SuppressWarnings("unchecked")
+    public static Properties convertSuccinctProperties(Map<String, Object> json, TypeCache typeCache) {
+        if (json == null) {
+            return null;
+        }
+
+        TypeDefinition typeDef = null;
+        if (json.get(PropertyIds.OBJECT_TYPE_ID) instanceof String) {
+            typeDef = typeCache.getTypeDefinition((String) json.get(PropertyIds.OBJECT_TYPE_ID));
+        }
+
+        PropertiesImpl result = new PropertiesImpl();
+
+        for (Map.Entry<String, Object> entry : json.entrySet()) {
+            String id = entry.getKey();
+            PropertyDefinition<?> propDef = (typeDef == null ? null : typeDef.getPropertyDefinitions().get(id));
+
+            List<Object> values = null;
+            if (entry.getValue() instanceof List) {
+                values = (List<Object>) entry.getValue();
+            } else if (entry.getValue() != null) {
+                values = Collections.singletonList(entry.getValue());
+            }
+
+            AbstractPropertyData<?> property = null;
+
+            if (propDef != null) {
+                switch (propDef.getPropertyType()) {
+                case STRING:
+                    property = new PropertyStringImpl();
+                    {
+                        List<String> propertyValues = null;
+                        if (values != null) {
+                            propertyValues = new ArrayList<String>();
+                            for (Object obj : values) {
+                                if (obj instanceof String) {
+                                    propertyValues.add(obj.toString());
+                                } else {
+                                    throw new CmisRuntimeException("Invalid property value: " + obj);
+                                }
+                            }
+                        }
+                        ((PropertyStringImpl) property).setValues(propertyValues);
+                    }
+                    break;
+                case ID:
+                    property = new PropertyIdImpl();
+                    {
+                        List<String> propertyValues = null;
+                        if (values != null) {
+                            propertyValues = new ArrayList<String>();
+                            for (Object obj : values) {
+                                if (obj instanceof String) {
+                                    propertyValues.add(obj.toString());
+                                } else {
+                                    throw new CmisRuntimeException("Invalid property value: " + obj);
+                                }
+                            }
+                        }
+                        ((PropertyIdImpl) property).setValues(propertyValues);
+                    }
+                    break;
+                case BOOLEAN:
+                    property = new PropertyBooleanImpl();
+                    {
+                        List<Boolean> propertyValues = null;
+                        if (values != null) {
+                            propertyValues = new ArrayList<Boolean>();
+                            for (Object obj : values) {
+                                if (obj instanceof Boolean) {
+                                    propertyValues.add((Boolean) obj);
+                                } else {
+                                    throw new CmisRuntimeException("Invalid property value: " + obj);
+                                }
+                            }
+                        }
+                        ((PropertyBooleanImpl) property).setValues(propertyValues);
+                    }
+                    break;
+                case INTEGER:
+                    property = new PropertyIntegerImpl();
+                    {
+                        List<BigInteger> propertyValues = null;
+                        if (values != null) {
+                            propertyValues = new ArrayList<BigInteger>();
+                            for (Object obj : values) {
+                                if (obj instanceof BigInteger) {
+                                    propertyValues.add((BigInteger) obj);
+                                } else {
+                                    throw new CmisRuntimeException("Invalid property value: " + obj);
+                                }
+                            }
+                        }
+                        ((PropertyIntegerImpl) property).setValues(propertyValues);
+                    }
+                    break;
+                case DECIMAL:
+                    property = new PropertyDecimalImpl();
+                    {
+                        List<BigDecimal> propertyValues = null;
+                        if (values != null) {
+                            propertyValues = new ArrayList<BigDecimal>();
+                            for (Object obj : values) {
+                                if (obj instanceof BigDecimal) {
+                                    propertyValues.add((BigDecimal) obj);
+                                } else if (obj instanceof BigInteger) {
+                                    propertyValues.add(new BigDecimal((BigInteger) obj));
+                                } else {
+                                    throw new CmisRuntimeException("Invalid property value: " + obj);
+                                }
+                            }
+                        }
+                        ((PropertyDecimalImpl) property).setValues(propertyValues);
+                    }
+                    break;
+                case DATETIME:
+                    property = new PropertyDateTimeImpl();
+                    {
+                        List<GregorianCalendar> propertyValues = null;
+                        if (values != null) {
+                            propertyValues = new ArrayList<GregorianCalendar>();
+                            for (Object obj : values) {
+                                if (obj instanceof Number) {
+                                    GregorianCalendar cal = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
+                                    cal.setTimeInMillis(((Number) obj).longValue());
+                                    propertyValues.add(cal);
+                                } else {
+                                    throw new CmisRuntimeException("Invalid property value: " + obj);
+                                }
+                            }
+                        }
+                        ((PropertyDateTimeImpl) property).setValues(propertyValues);
+                    }
+                    break;
+                case HTML:
+                    property = new PropertyHtmlImpl();
+                    {
+                        List<String> propertyValues = null;
+                        if (values != null) {
+                            propertyValues = new ArrayList<String>();
+                            for (Object obj : values) {
+                                if (obj instanceof String) {
+                                    propertyValues.add(obj.toString());
+                                } else {
+                                    throw new CmisRuntimeException("Invalid property value: " + obj);
+                                }
+                            }
+                        }
+                        ((PropertyHtmlImpl) property).setValues(propertyValues);
+                    }
+                    break;
+                case URI:
+                    property = new PropertyUriImpl();
+                    {
+                        List<String> propertyValues = null;
+                        if (values != null) {
+                            propertyValues = new ArrayList<String>();
+                            for (Object obj : values) {
+                                if (obj instanceof String) {
+                                    propertyValues.add(obj.toString());
+                                } else {
+                                    throw new CmisRuntimeException("Invalid property value: " + obj);
+                                }
+                            }
+                        }
+                        ((PropertyUriImpl) property).setValues(propertyValues);
+                    }
+                    break;
+                }
+
+                property.setId(id);
+                property.setDisplayName(propDef.getDisplayName());
+                property.setQueryName(propDef.getQueryName());
+                property.setLocalName(propDef.getLocalName());
+            } else {
+                // this else block should only be reached in rare circumstances
+                // it may return incorrect types
+
+                if (values == null) {
+                    property = new PropertyStringImpl();
+                    ((PropertyStringImpl) property).setValues(null);
+                } else {
+                    Object firstValue = values.get(0);
+                    if (firstValue instanceof Boolean) {
+                        property = new PropertyBooleanImpl();
+                        List<Boolean> propertyValues = new ArrayList<Boolean>();
+                        for (Object obj : values) {
+                            if (obj instanceof Boolean) {
+                                propertyValues.add((Boolean) obj);
+                            } else {
+                                throw new CmisRuntimeException("Invalid property value: " + obj);
+                            }
+                        }
+                        ((PropertyBooleanImpl) property).setValues(propertyValues);
+                    } else if (firstValue instanceof BigInteger) {
+                        property = new PropertyIntegerImpl();
+                        List<BigInteger> propertyValues = new ArrayList<BigInteger>();
+                        for (Object obj : values) {
+                            if (obj instanceof BigInteger) {
+                                propertyValues.add((BigInteger) obj);
+                            } else {
+                                throw new CmisRuntimeException("Invalid property value: " + obj);
+                            }
+                        }
+                        ((PropertyIntegerImpl) property).setValues(propertyValues);
+                    } else if (firstValue instanceof BigDecimal) {
+                        property = new PropertyDecimalImpl();
+                        List<BigDecimal> propertyValues = new ArrayList<BigDecimal>();
+                        for (Object obj : values) {
+                            if (obj instanceof BigDecimal) {
+                                propertyValues.add((BigDecimal) obj);
+                            } else if (obj instanceof BigInteger) {
+                                propertyValues.add(new BigDecimal((BigInteger) obj));
+                            } else {
+                                throw new CmisRuntimeException("Invalid property value: " + obj);
+                            }
+                        }
+                        ((PropertyDecimalImpl) property).setValues(propertyValues);
+                    } else {
+                        property = new PropertyStringImpl();
+                        List<String> propertyValues = new ArrayList<String>();
+                        for (Object obj : values) {
+                            if (obj instanceof String) {
+                                propertyValues.add((String) obj);
+                            } else {
+                                throw new CmisRuntimeException("Invalid property value: " + obj);
+                            }
+                        }
+                        ((PropertyStringImpl) property).setValues(propertyValues);
+                    }
+                }
+
+                property.setId(id);
+                property.setDisplayName(id);
+                property.setQueryName(null);
+                property.setLocalName(null);
+            }
+
+            result.addProperty(property);
+        }
+
+        return result;
+    }
+
+    /**
      * Converts a rendition.
      */
     public static RenditionData convertRendition(Map<String, Object> json) {
@@ -1950,7 +2206,7 @@ public class JSONConverter {
     /**
      * Converts a object list.
      */
-    public static ObjectInFolderList convertObjectInFolderList(Map<String, Object> json) {
+    public static ObjectInFolderList convertObjectInFolderList(Map<String, Object> json, TypeCache typeCache) {
         if (json == null) {
             return null;
         }
@@ -1964,7 +2220,7 @@ public class JSONConverter {
             for (Object obj : jsonChildren) {
                 Map<String, Object> jsonObject = getMap(obj);
                 if (jsonObject != null) {
-                    objects.add(convertObjectInFolder(jsonObject));
+                    objects.add(convertObjectInFolder(jsonObject, typeCache));
                 }
             }
         }
@@ -1981,14 +2237,14 @@ public class JSONConverter {
     /**
      * Converts an object in a folder.
      */
-    public static ObjectInFolderData convertObjectInFolder(Map<String, Object> json) {
+    public static ObjectInFolderData convertObjectInFolder(Map<String, Object> json, TypeCache typeCache) {
         if (json == null) {
             return null;
         }
 
         ObjectInFolderDataImpl result = new ObjectInFolderDataImpl();
 
-        result.setObject(convertObject(getMap(json.get(JSON_OBJECTINFOLDER_OBJECT))));
+        result.setObject(convertObject(getMap(json.get(JSON_OBJECTINFOLDER_OBJECT)), typeCache));
         result.setPathSegment(getString(json, JSON_OBJECTINFOLDER_PATH_SEGMENT));
 
         convertExtension(json, result, OBJECTINFOLDER_KEYS);
@@ -1999,7 +2255,7 @@ public class JSONConverter {
     /**
      * Converts a descendants tree.
      */
-    public static List<ObjectInFolderContainer> convertDescendants(List<Object> json) {
+    public static List<ObjectInFolderContainer> convertDescendants(List<Object> json, TypeCache typeCache) {
         if (json == null) {
             return null;
         }
@@ -2009,7 +2265,7 @@ public class JSONConverter {
         for (Object obj : json) {
             Map<String, Object> desc = getMap(obj);
             if (desc != null) {
-                result.add(convertDescendant(desc));
+                result.add(convertDescendant(desc, typeCache));
             }
         }
 
@@ -2019,14 +2275,14 @@ public class JSONConverter {
     /**
      * Converts a descendant.
      */
-    public static ObjectInFolderContainer convertDescendant(Map<String, Object> json) {
+    public static ObjectInFolderContainer convertDescendant(Map<String, Object> json, TypeCache typeCache) {
         if (json == null) {
             return null;
         }
 
         ObjectInFolderContainerImpl result = new ObjectInFolderContainerImpl();
 
-        result.setObject(convertObjectInFolder(getMap(json.get(JSON_OBJECTINFOLDERCONTAINER_OBJECT))));
+        result.setObject(convertObjectInFolder(getMap(json.get(JSON_OBJECTINFOLDERCONTAINER_OBJECT)), typeCache));
 
         List<ObjectInFolderContainer> containerList = new ArrayList<ObjectInFolderContainer>();
         List<Object> jsonContainerList = getList(json.get(JSON_OBJECTINFOLDERCONTAINER_CHILDREN));
@@ -2034,7 +2290,7 @@ public class JSONConverter {
             for (Object obj : jsonContainerList) {
                 Map<String, Object> containerChild = getMap(obj);
                 if (containerChild != null) {
-                    containerList.add(convertDescendant(containerChild));
+                    containerList.add(convertDescendant(containerChild, typeCache));
                 }
             }
         }
@@ -2049,7 +2305,7 @@ public class JSONConverter {
     /**
      * Converts an object parents list.
      */
-    public static List<ObjectParentData> convertObjectParents(List<Object> json) {
+    public static List<ObjectParentData> convertObjectParents(List<Object> json, TypeCache typeCache) {
         if (json == null) {
             return null;
         }
@@ -2061,7 +2317,7 @@ public class JSONConverter {
             if (jsonParent != null) {
                 ObjectParentDataImpl parent = new ObjectParentDataImpl();
 
-                parent.setObject(convertObject(getMap(jsonParent.get(JSON_OBJECTPARENTS_OBJECT))));
+                parent.setObject(convertObject(getMap(jsonParent.get(JSON_OBJECTPARENTS_OBJECT)), typeCache));
                 parent.setRelativePathSegment(getString(jsonParent, JSON_OBJECTPARENTS_RELATIVE_PATH_SEGMENT));
 
                 convertExtension(jsonParent, parent, OBJECTPARENTS_KEYS);
@@ -2076,7 +2332,7 @@ public class JSONConverter {
     /**
      * Converts a object list.
      */
-    public static ObjectList convertObjectList(Map<String, Object> json, boolean isQueryResult) {
+    public static ObjectList convertObjectList(Map<String, Object> json, TypeCache typeCache, boolean isQueryResult) {
         if (json == null) {
             return null;
         }
@@ -2091,7 +2347,7 @@ public class JSONConverter {
             for (Object obj : jsonChildren) {
                 Map<String, Object> jsonObject = getMap(obj);
                 if (jsonObject != null) {
-                    objects.add(convertObject(jsonObject));
+                    objects.add(convertObject(jsonObject, typeCache));
                 }
             }
         }

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/DiscoveryService.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/DiscoveryService.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/DiscoveryService.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/DiscoveryService.java Thu Aug  9 15:04:46 2012
@@ -41,7 +41,6 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.impl.JSONConverter;
 import org.apache.chemistry.opencmis.commons.impl.TypeCache;
 import org.apache.chemistry.opencmis.commons.impl.json.JSONObject;
-import org.apache.chemistry.opencmis.commons.impl.server.TypeCacheImpl;
 import org.apache.chemistry.opencmis.commons.server.CallContext;
 import org.apache.chemistry.opencmis.commons.server.CmisService;
 import org.apache.chemistry.opencmis.commons.spi.Holder;
@@ -81,7 +80,7 @@ public class DiscoveryService {
             throw new CmisRuntimeException("Results are null!");
         }
 
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonResults = JSONConverter.convert(results, typeCache, true, succinct);
 
         response.setStatus(HttpServletResponse.SC_OK);
@@ -106,7 +105,7 @@ public class DiscoveryService {
         ObjectList changes = service.getContentChanges(repositoryId, changeLogTokenHolder, includeProperties, filter,
                 includePolicyIds, includeAcl, maxItems, null);
 
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonChanges = JSONConverter.convert(changes, typeCache, false, succinct);
         jsonChanges.put(JSONConstants.JSON_OBJECTLIST_CHANGE_LOG_TOKEN, changeLogTokenHolder.getValue());
 

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/MultiFilingService.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/MultiFilingService.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/MultiFilingService.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/MultiFilingService.java Thu Aug  9 15:04:46 2012
@@ -38,7 +38,6 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.impl.JSONConverter;
 import org.apache.chemistry.opencmis.commons.impl.TypeCache;
 import org.apache.chemistry.opencmis.commons.impl.json.JSONObject;
-import org.apache.chemistry.opencmis.commons.impl.server.TypeCacheImpl;
 import org.apache.chemistry.opencmis.commons.server.CallContext;
 import org.apache.chemistry.opencmis.commons.server.CmisService;
 import org.apache.chemistry.opencmis.commons.spi.Holder;
@@ -77,7 +76,7 @@ public class MultiFilingService {
         response.setHeader("Location", location);
 
         // return object
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonObject = JSONConverter.convert(object, typeCache, false, succinct);
 
         writeJSON(jsonObject, request, response);
@@ -111,7 +110,7 @@ public class MultiFilingService {
         response.setHeader("Location", location);
 
         // return object
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonObject = JSONConverter.convert(object, typeCache, false, succinct);
 
         writeJSON(jsonObject, request, response);

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/NavigationService.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/NavigationService.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/NavigationService.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/NavigationService.java Thu Aug  9 15:04:46 2012
@@ -52,7 +52,6 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.impl.TypeCache;
 import org.apache.chemistry.opencmis.commons.impl.json.JSONArray;
 import org.apache.chemistry.opencmis.commons.impl.json.JSONObject;
-import org.apache.chemistry.opencmis.commons.impl.server.TypeCacheImpl;
 import org.apache.chemistry.opencmis.commons.server.CallContext;
 import org.apache.chemistry.opencmis.commons.server.CmisService;
 
@@ -91,7 +90,7 @@ public final class NavigationService {
             throw new CmisRuntimeException("Children are null!");
         }
 
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonChildren = JSONConverter.convert(children, typeCache, succinct);
 
         response.setStatus(HttpServletResponse.SC_OK);
@@ -122,7 +121,7 @@ public final class NavigationService {
             throw new CmisRuntimeException("Descendants are null!");
         }
 
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONArray jsonDescendants = new JSONArray();
         for (ObjectInFolderContainer descendant : descendants) {
             jsonDescendants.add(JSONConverter.convert(descendant, typeCache, succinct));
@@ -156,7 +155,7 @@ public final class NavigationService {
             throw new CmisRuntimeException("Folder Tree are null!");
         }
 
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONArray jsonDescendants = new JSONArray();
         for (ObjectInFolderContainer descendant : folderTree) {
             jsonDescendants.add(JSONConverter.convert(descendant, typeCache, succinct));
@@ -183,7 +182,7 @@ public final class NavigationService {
             throw new CmisRuntimeException("Parent is null!");
         }
 
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonObject = JSONConverter.convert(parent, typeCache, false, succinct);
 
         response.setStatus(HttpServletResponse.SC_OK);
@@ -213,7 +212,7 @@ public final class NavigationService {
             throw new CmisRuntimeException("Parents are null!");
         }
 
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONArray jsonParents = new JSONArray();
         for (ObjectParentData parent : parents) {
             jsonParents.add(JSONConverter.convert(parent, typeCache, succinct));
@@ -248,7 +247,7 @@ public final class NavigationService {
             throw new CmisRuntimeException("Checked out list is null!");
         }
 
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonCheckedOut = JSONConverter.convert(checkedout, typeCache, false, succinct);
 
         response.setStatus(HttpServletResponse.SC_OK);

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/ObjectService.java Thu Aug  9 15:04:46 2012
@@ -82,7 +82,6 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.impl.TypeCache;
 import org.apache.chemistry.opencmis.commons.impl.json.JSONArray;
 import org.apache.chemistry.opencmis.commons.impl.json.JSONObject;
-import org.apache.chemistry.opencmis.commons.impl.server.TypeCacheImpl;
 import org.apache.chemistry.opencmis.commons.server.CallContext;
 import org.apache.chemistry.opencmis.commons.server.CmisService;
 import org.apache.chemistry.opencmis.commons.spi.Holder;
@@ -110,7 +109,7 @@ public final class ObjectService {
 
         // execute
         ControlParser cp = new ControlParser(request);
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
 
         String newObjectId = service.createDocument(repositoryId, createProperties(cp, null, typeCache), folderId,
                 createContentStream(request), versioningState, createPolicies(cp), createAddAcl(cp),
@@ -145,7 +144,7 @@ public final class ObjectService {
 
         // execute
         ControlParser cp = new ControlParser(request);
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
 
         ObjectData sourceDoc = getSimpleObject(service, repositoryId, sourceId);
         PropertyData<?> sourceTypeId = sourceDoc.getProperties().getProperties().get(PropertyIds.OBJECT_TYPE_ID);
@@ -184,7 +183,7 @@ public final class ObjectService {
 
         // execute
         ControlParser cp = new ControlParser(request);
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
 
         String newObjectId = service.createFolder(repositoryId, createProperties(cp, null, typeCache), folderId,
                 createPolicies(cp), createAddAcl(cp), createRemoveAcl(cp), null);
@@ -216,7 +215,7 @@ public final class ObjectService {
 
         // execute
         ControlParser cp = new ControlParser(request);
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
 
         String newObjectId = service.createPolicy(repositoryId, createProperties(cp, null, typeCache), folderId,
                 createPolicies(cp), createAddAcl(cp), createRemoveAcl(cp), null);
@@ -247,7 +246,7 @@ public final class ObjectService {
 
         // execute
         ControlParser cp = new ControlParser(request);
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
 
         String newObjectId = service.createRelationship(repositoryId, createProperties(cp, null, typeCache),
                 createPolicies(cp), createAddAcl(cp), createRemoveAcl(cp), null);
@@ -281,7 +280,7 @@ public final class ObjectService {
 
         // execute
         ControlParser cp = new ControlParser(request);
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         Holder<String> objectIdHolder = new Holder<String>(objectId);
         Holder<String> changeTokenHolder = (changeToken == null ? null : new Holder<String>(changeToken));
 
@@ -335,7 +334,7 @@ public final class ObjectService {
         }
 
         // return object
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonObject = JSONConverter.convert(properties, objectId, typeCache, false, succinct);
 
         response.setStatus(HttpServletResponse.SC_OK);
@@ -376,7 +375,7 @@ public final class ObjectService {
         }
 
         // return object
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonObject = JSONConverter.convert(object, typeCache, false, succinct);
 
         response.setStatus(HttpServletResponse.SC_OK);
@@ -541,7 +540,7 @@ public final class ObjectService {
         response.setStatus(HttpServletResponse.SC_OK);
 
         // return object
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonObject = JSONConverter.convert(object, typeCache, false, succinct);
 
         writeJSON(jsonObject, request, response);
@@ -578,7 +577,7 @@ public final class ObjectService {
         response.setHeader("Location", location);
 
         // return object
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonObject = JSONConverter.convert(object, typeCache, false, succinct);
 
         writeJSON(jsonObject, request, response);
@@ -613,7 +612,7 @@ public final class ObjectService {
         response.setHeader("Location", location);
 
         // return object
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonObject = JSONConverter.convert(object, typeCache, false, succinct);
 
         writeJSON(jsonObject, request, response);

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/PolicyService.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/PolicyService.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/PolicyService.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/PolicyService.java Thu Aug  9 15:04:46 2012
@@ -38,7 +38,6 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.impl.TypeCache;
 import org.apache.chemistry.opencmis.commons.impl.json.JSONArray;
 import org.apache.chemistry.opencmis.commons.impl.json.JSONObject;
-import org.apache.chemistry.opencmis.commons.impl.server.TypeCacheImpl;
 import org.apache.chemistry.opencmis.commons.server.CallContext;
 import org.apache.chemistry.opencmis.commons.server.CmisService;
 
@@ -62,7 +61,7 @@ public class PolicyService {
 
         JSONArray jsonPolicies = new JSONArray();
         if (policies != null) {
-            TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+            TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
             for (ObjectData policy : policies) {
                 jsonPolicies.add(JSONConverter.convert(policy, typeCache, false, succinct));
             }
@@ -93,7 +92,7 @@ public class PolicyService {
         // return object
         response.setStatus(HttpServletResponse.SC_OK);
 
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonObject = JSONConverter.convert(object, typeCache, false, succinct);
 
         writeJSON(jsonObject, request, response);
@@ -120,7 +119,7 @@ public class PolicyService {
         // return object
         response.setStatus(HttpServletResponse.SC_OK);
 
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonObject = JSONConverter.convert(object, typeCache, false, succinct);
 
         writeJSON(jsonObject, request, response);

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/RelationshipService.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/RelationshipService.java?rev=1371244&r1=1371243&r2=1371244&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/RelationshipService.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-bindings/src/main/java/org/apache/chemistry/opencmis/server/impl/browser/RelationshipService.java Thu Aug  9 15:04:46 2012
@@ -43,7 +43,6 @@ import org.apache.chemistry.opencmis.com
 import org.apache.chemistry.opencmis.commons.impl.JSONConverter;
 import org.apache.chemistry.opencmis.commons.impl.TypeCache;
 import org.apache.chemistry.opencmis.commons.impl.json.JSONObject;
-import org.apache.chemistry.opencmis.commons.impl.server.TypeCacheImpl;
 import org.apache.chemistry.opencmis.commons.server.CallContext;
 import org.apache.chemistry.opencmis.commons.server.CmisService;
 
@@ -74,7 +73,7 @@ public class RelationshipService {
             throw new CmisRuntimeException("Relationships are null!");
         }
 
-        TypeCache typeCache = new TypeCacheImpl(repositoryId, service);
+        TypeCache typeCache = new ServerTypeCacheImpl(repositoryId, service);
         JSONObject jsonChildren = JSONConverter.convert(relationships, typeCache, false, succinct);
 
         response.setStatus(HttpServletResponse.SC_OK);