Modified: 
chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/StoredObjectImpl.java
URL: 
http://svn.apache.org/viewvc/chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/StoredObjectImpl.java?rev=1507777&r1=1507776&r2=1507777&view=diff
==============================================================================
--- 
chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/StoredObjectImpl.java
 (original)
+++ 
chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/StoredObjectImpl.java
 Sun Jul 28 11:02:14 2013
@@ -22,7 +22,6 @@ import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
@@ -34,26 +33,19 @@ import java.util.Map.Entry;
 import java.util.TimeZone;
 
 import org.apache.chemistry.opencmis.commons.PropertyIds;
-import org.apache.chemistry.opencmis.commons.data.Acl;
 import org.apache.chemistry.opencmis.commons.data.AllowableActions;
 import org.apache.chemistry.opencmis.commons.data.ContentStream;
-import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
-import org.apache.chemistry.opencmis.commons.data.ObjectList;
 import org.apache.chemistry.opencmis.commons.data.PropertyData;
 import org.apache.chemistry.opencmis.commons.data.RenditionData;
-import org.apache.chemistry.opencmis.commons.enums.CmisVersion;
-import org.apache.chemistry.opencmis.commons.enums.RelationshipDirection;
 import org.apache.chemistry.opencmis.commons.spi.BindingsObjectFactory;
 import org.apache.chemistry.opencmis.inmemory.DataObjectCreator;
 import org.apache.chemistry.opencmis.inmemory.FilterParser;
-import org.apache.chemistry.opencmis.inmemory.server.InMemoryServiceContext;
 import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoredObject;
-import org.apache.chemistry.opencmis.inmemory.types.PropertyCreationHelper;
 
 /**
  * StoredObject is the common superclass of all objects hold in the repository
  * Documents, Folders, Relationships and Policies
- *
+ * 
  * @author Jens
  */
 public class StoredObjectImpl implements StoredObject {
@@ -72,24 +64,22 @@ public class StoredObjectImpl implements
     protected GregorianCalendar fModifiedAt;
     protected String fRepositoryId;
     protected Map<String, PropertyData<?>> fProperties;
-    protected final ObjectStoreImpl fObjStore;
     protected int fAclId;
     protected String description; // CMIS 1.1
     protected List<String> secondaryTypeIds; // CMIS 1.1
     protected List<String> policyIds;
 
-    StoredObjectImpl(ObjectStoreImpl objStore) { // visibility should be 
package
+    StoredObjectImpl() { // visibility should be package
         GregorianCalendar now = getNow();
         now.setTime(new Date());
         fCreatedAt = now;
         fModifiedAt = now;
-        fObjStore = objStore;
         secondaryTypeIds = new ArrayList<String>();
         policyIds = null;
     }
 
     @Override
-       public String getId() {
+    public String getId() {
         return fId;
     }
 
@@ -97,64 +87,64 @@ public class StoredObjectImpl implements
     public void setId(String id) {
         fId = id;
     }
-    
+
     @Override
-       public String getName() {
+    public String getName() {
         return fName;
     }
 
     @Override
-       public void setName(String name) {
+    public void setName(String name) {
         fName = name;
     }
 
     @Override
-       public String getTypeId() {
+    public String getTypeId() {
         return fTypeId;
     }
 
     @Override
-       public void setTypeId(String type) {
+    public void setTypeId(String type) {
         fTypeId = type;
     }
 
     @Override
-       public String getCreatedBy() {
+    public String getCreatedBy() {
         return fCreatedBy;
     }
 
     @Override
-       public void setCreatedBy(String createdBy) {
+    public void setCreatedBy(String createdBy) {
         this.fCreatedBy = createdBy;
     }
 
     @Override
-       public String getModifiedBy() {
+    public String getModifiedBy() {
         return fModifiedBy;
     }
 
     @Override
-       public void setModifiedBy(String modifiedBy) {
+    public void setModifiedBy(String modifiedBy) {
         this.fModifiedBy = modifiedBy;
     }
 
     @Override
-       public GregorianCalendar getCreatedAt() {
+    public GregorianCalendar getCreatedAt() {
         return fCreatedAt;
     }
 
     @Override
-       public void setCreatedAt(GregorianCalendar createdAt) {
+    public void setCreatedAt(GregorianCalendar createdAt) {
         this.fCreatedAt = createdAt;
     }
 
     @Override
-       public GregorianCalendar getModifiedAt() {
+    public GregorianCalendar getModifiedAt() {
         return fModifiedAt;
     }
 
     @Override
-       public void setModifiedAtNow() {
+    public void setModifiedAtNow() {
         this.fModifiedAt = getNow();
     }
 
@@ -164,23 +154,23 @@ public class StoredObjectImpl implements
     }
 
     @Override
-       public void setRepositoryId(String repositoryId) {
+    public void setRepositoryId(String repositoryId) {
         fRepositoryId = repositoryId;
     }
 
     @Override
-       public String getRepositoryId() {
+    public String getRepositoryId() {
         return fRepositoryId;
     }
-    
+
     @Override
-       public List<String> getAppliedPolicies() {
+    public List<String> getAppliedPolicies() {
         if (null == policyIds)
             return null;
         else
             return Collections.unmodifiableList(policyIds);
     }
-    
+
     public void setAppliedPolicies(List<String> newPolicies) {
         if (null == newPolicies) {
             policyIds = null;
@@ -191,9 +181,9 @@ public class StoredObjectImpl implements
             policyIds.addAll(newPolicies);
         }
     }
-    
+
     @Override
-       public void addAppliedPolicy(String policyId) {
+    public void addAppliedPolicy(String policyId) {
         if (null == policyIds) {
             policyIds = new ArrayList<String>();
         }
@@ -203,7 +193,7 @@ public class StoredObjectImpl implements
     }
 
     @Override
-       public void removePolicy(String policyId) {
+    public void removePolicy(String policyId) {
         if (null != policyIds && policyIds.contains(policyId)) {
             policyIds.remove(policyId);
             if (policyIds.isEmpty()) {
@@ -211,55 +201,55 @@ public class StoredObjectImpl implements
             }
         }
     }
-    
+
     // CMIS 1.1:
     @Override
-       public void setDescription(String descr) {
+    public void setDescription(String descr) {
         description = descr;
     }
-    
+
     // CMIS 1.1:
     @Override
-       public String getDescription() {
+    public String getDescription() {
         return description;
     }
 
     @Override
-       public List<String> getSecondaryTypeIds() {
+    public List<String> getSecondaryTypeIds() {
         return Collections.unmodifiableList(secondaryTypeIds);
     }
 
     @Override
-       public void setProperties(Map<String, PropertyData<?>> props) {
+    public void setProperties(Map<String, PropertyData<?>> props) {
         fProperties = props;
     }
 
     @Override
-       public Map<String, PropertyData<?>> getProperties() {
+    public Map<String, PropertyData<?>> getProperties() {
         return fProperties;
     }
 
     @Override
-       public String getChangeToken() {
+    public String getChangeToken() {
         GregorianCalendar lastModified = getModifiedAt();
         String token = Long.valueOf(lastModified.getTimeInMillis()).toString();
         return token;
     }
 
     @Override
-       public void createSystemBasePropertiesWhenCreated(Map<String, 
PropertyData<?>> properties, String user) {
+    public void createSystemBasePropertiesWhenCreated(Map<String, 
PropertyData<?>> properties, String user) {
         addSystemBaseProperties(properties, user, true);
     }
 
     @Override
-       public void updateSystemBasePropertiesWhenModified(Map<String, 
PropertyData<?>> properties, String user) {
+    public void updateSystemBasePropertiesWhenModified(Map<String, 
PropertyData<?>> properties, String user) {
         addSystemBaseProperties(properties, user, false);
     }
 
     @Override
-       public void fillProperties(Map<String, PropertyData<?>> properties, 
BindingsObjectFactory objFactory,
+    public void fillProperties(Map<String, PropertyData<?>> properties, 
BindingsObjectFactory objFactory,
             List<String> requestedIds) {
-        
+
         if (FilterParser.isContainedInFilter(PropertyIds.NAME, requestedIds)) {
             properties.put(PropertyIds.NAME, 
objFactory.createPropertyStringData(PropertyIds.NAME, getName()));
         }
@@ -267,8 +257,8 @@ public class StoredObjectImpl implements
             properties.put(PropertyIds.OBJECT_ID, 
objFactory.createPropertyIdData(PropertyIds.OBJECT_ID, getId()));
         }
         if (FilterParser.isContainedInFilter(PropertyIds.OBJECT_TYPE_ID, 
requestedIds)) {
-            properties.put(PropertyIds.OBJECT_TYPE_ID, 
objFactory.createPropertyIdData(PropertyIds.OBJECT_TYPE_ID,
-                    getTypeId()));
+            properties.put(PropertyIds.OBJECT_TYPE_ID,
+                    
objFactory.createPropertyIdData(PropertyIds.OBJECT_TYPE_ID, getTypeId()));
         }
         // set the base type id outside becaus it requires the type definition
         // if (FilterParser.isContainedInFilter(PropertyIds.CMIS_BASE_TYPE_ID,
@@ -277,36 +267,36 @@ public class StoredObjectImpl implements
         // CMIS_BASE_TYPE_ID, getBaseTypeId()));
         // }
         if (FilterParser.isContainedInFilter(PropertyIds.CREATED_BY, 
requestedIds)) {
-            properties.put(PropertyIds.CREATED_BY, 
objFactory.createPropertyStringData(PropertyIds.CREATED_BY,
-                    getCreatedBy()));
+            properties.put(PropertyIds.CREATED_BY,
+                    
objFactory.createPropertyStringData(PropertyIds.CREATED_BY, getCreatedBy()));
         }
         if (FilterParser.isContainedInFilter(PropertyIds.CREATION_DATE, 
requestedIds)) {
-            properties.put(PropertyIds.CREATION_DATE, 
objFactory.createPropertyDateTimeData(PropertyIds.CREATION_DATE,
-                    getCreatedAt()));
+            properties.put(PropertyIds.CREATION_DATE,
+                    
objFactory.createPropertyDateTimeData(PropertyIds.CREATION_DATE, 
getCreatedAt()));
         }
         if (FilterParser.isContainedInFilter(PropertyIds.LAST_MODIFIED_BY, 
requestedIds)) {
-            properties.put(PropertyIds.LAST_MODIFIED_BY, 
objFactory.createPropertyStringData(
-                    PropertyIds.LAST_MODIFIED_BY, getModifiedBy()));
+            properties.put(PropertyIds.LAST_MODIFIED_BY,
+                    
objFactory.createPropertyStringData(PropertyIds.LAST_MODIFIED_BY, 
getModifiedBy()));
         }
         if 
(FilterParser.isContainedInFilter(PropertyIds.LAST_MODIFICATION_DATE, 
requestedIds)) {
-            properties.put(PropertyIds.LAST_MODIFICATION_DATE, 
objFactory.createPropertyDateTimeData(
-                    PropertyIds.LAST_MODIFICATION_DATE, getModifiedAt()));
+            properties.put(PropertyIds.LAST_MODIFICATION_DATE,
+                    
objFactory.createPropertyDateTimeData(PropertyIds.LAST_MODIFICATION_DATE, 
getModifiedAt()));
         }
         if (FilterParser.isContainedInFilter(PropertyIds.CHANGE_TOKEN, 
requestedIds)) {
             String token = getChangeToken();
-            properties.put(PropertyIds.CHANGE_TOKEN, 
objFactory.createPropertyStringData(PropertyIds.CHANGE_TOKEN,
-                    token));
+            properties.put(PropertyIds.CHANGE_TOKEN,
+                    
objFactory.createPropertyStringData(PropertyIds.CHANGE_TOKEN, token));
         }
-        
+
         // CMIS 1.1 properties:
         if (FilterParser.isContainedInFilter(PropertyIds.DESCRIPTION, 
requestedIds)) {
-            properties.put(PropertyIds.DESCRIPTION, 
objFactory.createPropertyStringData(PropertyIds.DESCRIPTION,
-                    description));
+            properties.put(PropertyIds.DESCRIPTION,
+                    
objFactory.createPropertyStringData(PropertyIds.DESCRIPTION, description));
         }
         if 
(FilterParser.isContainedInFilter(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, 
requestedIds)) {
-            properties.put(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, 
objFactory.createPropertyIdData(PropertyIds.SECONDARY_OBJECT_TYPE_IDS,
-                    secondaryTypeIds));
-        }            
+            properties.put(PropertyIds.SECONDARY_OBJECT_TYPE_IDS,
+                    
objFactory.createPropertyIdData(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, 
secondaryTypeIds));
+        }
 
         // add custom properties of type definition to the collection
         if (null != fProperties) {
@@ -316,14 +306,14 @@ public class StoredObjectImpl implements
                 }
             }
         }
-        
+
     }
 
     // ///////////////////////////////////////////
     // private helper methods
 
     @Override
-       public void setCustomProperties(Map<String, PropertyData<?>> 
properties) {
+    public void setCustomProperties(Map<String, PropertyData<?>> properties) {
         properties = new HashMap<String, PropertyData<?>>(properties); // get a
         // writable
         // collection
@@ -351,13 +341,13 @@ public class StoredObjectImpl implements
         // constructor.
         setModifiedBy(user);
         if (null != properties.get(PropertyIds.DESCRIPTION))
-            
setDescription((String)properties.get(PropertyIds.DESCRIPTION).getFirstValue());
-        
+            setDescription((String) 
properties.get(PropertyIds.DESCRIPTION).getFirstValue());
+
         if (null != properties.get(PropertyIds.SECONDARY_OBJECT_TYPE_IDS)) {
             secondaryTypeIds.clear();
-            
secondaryTypeIds.addAll((List<String>)properties.get(PropertyIds.SECONDARY_OBJECT_TYPE_IDS).getValues());
+            secondaryTypeIds.addAll((List<String>) 
properties.get(PropertyIds.SECONDARY_OBJECT_TYPE_IDS).getValues());
         }
-        
+
         if (isCreated) {
             setCreatedBy(user);
             setName((String) properties.get(PropertyIds.NAME).getFirstValue());
@@ -386,7 +376,7 @@ public class StoredObjectImpl implements
      * CMIS_NAME CMIS_OBJECT_ID CMIS_OBJECT_TYPE_ID CMIS_BASE_TYPE_ID
      * CMIS_CREATED_BY CMIS_CREATION_DATE CMIS_LAST_MODIFIED_BY
      * CMIS_LAST_MODIFICATION_DATE CMIS_CHANGE_TOKEN
-     *
+     * 
      * // ---- document ---- CMIS_IS_IMMUTABLE CMIS_IS_LATEST_VERSION
      * CMIS_IS_MAJOR_VERSION CMIS_IS_LATEST_MAJOR_VERSION CMIS_VERSION_LABEL
      * CMIS_VERSION_SERIES_ID CMIS_IS_VERSION_SERIES_CHECKED_OUT
@@ -394,12 +384,12 @@ public class StoredObjectImpl implements
      * CMIS_CHECKIN_COMMENT CMIS_CONTENT_STREAM_LENGTH
      * CMIS_CONTENT_STREAM_MIME_TYPE CMIS_CONTENT_STREAM_FILE_NAME
      * CMIS_CONTENT_STREAM_ID
-     *
+     * 
      * // ---- folder ---- CMIS_PARENT_ID CMIS_ALLOWED_CHILD_OBJECT_TYPE_IDS
      * CMIS_PATH
-     *
+     * 
      * // ---- relationship ---- CMIS_SOURCE_ID CMIS_TARGET_ID
-     *
+     * 
      * // ---- policy ---- CMIS_POLICY_TEXT
      */
     private static void removeAllSystemProperties(Map<String, PropertyData<?>> 
properties) {
@@ -498,89 +488,68 @@ public class StoredObjectImpl implements
     }
 
     @Override
-       public void persist() {
-        // in-memory implementation does not need to to anything to persist,
-        // but after this call the id should be set.
-        fId = fObjStore.storeObject(this);
-    }
-
-       @Override
-       public Acl getAcl() {
-           return fObjStore.getAcl(fAclId);
-       }
-
-       public int getAclId() {
-           return fAclId;
-       }
-       
-       public void setAclId(int aclId) {
-           fAclId = aclId;
-       }
-       
-    @Override
-       public List<StoredObject> getObjectRelationships(RelationshipDirection 
relationshipDirection, String user) {
-           
-        List<StoredObject> rels = fObjStore.getRelationships(getId(), null, 
relationshipDirection);
-               return rels;
-       }
-
-       @Override
-       public AllowableActions getAllowableActions(String user) {
-               AllowableActions actions = 
DataObjectCreator.fillAllowableActions(this, user);
-               return actions;
-       }
+    public int getAclId() {
+        return fAclId;
+    }
+
+    public void setAclId(int aclId) {
+        fAclId = aclId;
+    }
+
+    @Override
+    public AllowableActions getAllowableActions(String user) {
+        AllowableActions actions = 
DataObjectCreator.fillAllowableActions(this, user);
+        return actions;
+    }
 
     @Override
-       public List<RenditionData> getRenditions(String renditionFilter, long 
maxItems, long skipCount) {
+    public List<RenditionData> getRenditions(String renditionFilter, long 
maxItems, long skipCount) {
         return null;
     }
 
     @Override
-       public ContentStream getRenditionContent(String streamId, long offset, 
long length) {
+    public ContentStream getRenditionContent(String streamId, long offset, 
long length) {
         return null;
     }
 
     @Override
-       public boolean hasRendition(String user) {
+    public boolean hasRendition(String user) {
         return false;
     }
-    
-    protected  ContentStream getIconFromResourceDir(String name) throws 
IOException {
-        
+
+    protected ContentStream getIconFromResourceDir(String name) throws 
IOException {
+
         InputStream imageStream = this.getClass().getResourceAsStream(name);
         ContentStreamDataImpl content = new ContentStreamDataImpl(0);
         content.setFileName(name);
         content.setMimeType("image/png");
 
         ByteArrayOutputStream ba = new ByteArrayOutputStream();
-        byte[] buffer = new byte [65536];
+        byte[] buffer = new byte[65536];
         int noBytesRead = 0;
 
-        while ((noBytesRead = imageStream.read(buffer)) >=0 ) {
+        while ((noBytesRead = imageStream.read(buffer)) >= 0) {
             ba.write(buffer, 0, noBytesRead);
         }
-        
+
         content.setContent(new ByteArrayInputStream(ba.toByteArray()));
         return content;
     }
-    
+
     protected boolean testRenditionFilterForImage(String[] formats) {
         if (formats.length == 1 && null != formats[0] && 
formats[0].equals("cmis:none"))
             return false;
         else
-            return arrayContainsString(formats, "*")  || 
arrayContainsString(formats, "image/*") 
-                || arrayContainsString(formats, "image/jpeg") ;
+            return arrayContainsString(formats, "*") || 
arrayContainsString(formats, "image/*")
+                    || arrayContainsString(formats, "image/jpeg");
     }
-    
+
     private boolean arrayContainsString(String[] formats, String val) {
         for (String s : formats) {
             if (val.equals(s))
-                return true;            
+                return true;
         }
         return false;
     }
 
-
-
-
 }

Modified: 
chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/VersionedDocumentImpl.java
URL: 
http://svn.apache.org/viewvc/chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/VersionedDocumentImpl.java?rev=1507777&r1=1507776&r2=1507777&view=diff
==============================================================================
--- 
chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/VersionedDocumentImpl.java
 (original)
+++ 
chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/VersionedDocumentImpl.java
 Sun Jul 28 11:02:14 2013
@@ -40,8 +40,8 @@ public class VersionedDocumentImpl exten
     private String fCheckedOutUser;
     private final List<DocumentVersion> fVersions;
 
-    public VersionedDocumentImpl(ObjectStoreImpl objStore) {
-        super(objStore);
+    public VersionedDocumentImpl() {
+        super();
         fVersions = new ArrayList<DocumentVersion>();
         fIsCheckedOut = false;
     }
@@ -53,10 +53,9 @@ public class VersionedDocumentImpl exten
             throw new CmisConstraintException("Cannot add a version to 
document, document is checked out.");
         }
 
-        DocumentVersionImpl ver = new DocumentVersionImpl(fRepositoryId, this, 
content, verState, fObjStore);
+        DocumentVersionImpl ver = new DocumentVersionImpl(fRepositoryId, this, 
content, verState);
         ver.setSystemBasePropertiesWhenCreatedDirect(getName(), getTypeId(), 
user); // copy
         // name and type id from version series.
-        ver.persist();
         fVersions.add(ver);
         if (verState == VersioningState.CHECKEDOUT) {
             fCheckedOutUser = user;
@@ -215,7 +214,6 @@ public class VersionedDocumentImpl exten
     }
 
     private void cancelCheckOut(boolean deleteInObjectStore) {
-
         DocumentVersion pwc = getPwc();
         fIsCheckedOut = false;
         fCheckedOutUser = null;
@@ -227,8 +225,6 @@ public class VersionedDocumentImpl exten
             }
         }
 
-        if (deleteInObjectStore)
-            fObjStore.removeVersion(pwc);
     }
 
 }

Modified: 
chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/types/PropertyCreationHelper.java
URL: 
http://svn.apache.org/viewvc/chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/types/PropertyCreationHelper.java?rev=1507777&r1=1507776&r2=1507777&view=diff
==============================================================================
--- 
chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/types/PropertyCreationHelper.java
 (original)
+++ 
chemistry/opencmis/branches/inmemory-refactoring/src/main/java/org/apache/chemistry/opencmis/inmemory/types/PropertyCreationHelper.java
 Sun Jul 28 11:02:14 2013
@@ -73,6 +73,8 @@ import org.apache.chemistry.opencmis.inm
 import org.apache.chemistry.opencmis.inmemory.FilterParser;
 import org.apache.chemistry.opencmis.inmemory.NameValidator;
 import org.apache.chemistry.opencmis.inmemory.storedobj.api.DocumentVersion;
+import org.apache.chemistry.opencmis.inmemory.storedobj.api.Folder;
+import org.apache.chemistry.opencmis.inmemory.storedobj.api.ObjectStore;
 import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoredObject;
 import org.apache.chemistry.opencmis.server.support.TypeManager;
 import org.slf4j.Logger;
@@ -207,7 +209,7 @@ public final class PropertyCreationHelpe
         prop.setDefaultValue(Collections.singletonList(defVal));
     }
 
-    public static Properties getPropertiesFromObject(StoredObject so, 
TypeManager typeManager,
+    public static Properties getPropertiesFromObject(StoredObject so, 
ObjectStore objectStore, TypeManager typeManager,
             List<String> requestedIds, boolean fillOptionalPropertyData) {
         // build properties collection
 
@@ -217,6 +219,10 @@ public final class PropertyCreationHelpe
         TypeDefinition td = 
typeManager.getTypeById(so.getTypeId()).getTypeDefinition();
 
         String typeId = so.getTypeId();
+        if (so instanceof Folder && 
FilterParser.isContainedInFilter(PropertyIds.PATH, requestedIds)) {
+            String path = objectStore.getFolderPath(so.getId());
+            properties.put(PropertyIds.PATH, 
objectFactory.createPropertyStringData(PropertyIds.PATH, path));
+        }
         if (FilterParser.isContainedInFilter(PropertyIds.BASE_TYPE_ID, 
requestedIds)) {
             if (td == null) {
                 log.warn("getPropertiesFromObject(), cannot get type 
definition, a type with id " + typeId
@@ -260,7 +266,7 @@ public final class PropertyCreationHelpe
         return props;
     }
 
-    public static Properties getPropertiesFromObject(StoredObject so, 
TypeDefinition primaryType, List<TypeDefinition> secondaryTypes,
+    public static Properties getPropertiesFromObject(StoredObject so, 
ObjectStore objectStore, TypeDefinition primaryType, List<TypeDefinition> 
secondaryTypes,
             Map<String, String> requestedIds, Map<String, String> 
requestedFuncs) {
         // build properties collection
 
@@ -268,6 +274,11 @@ public final class PropertyCreationHelpe
         BindingsObjectFactory objectFactory = new BindingsObjectFactoryImpl();
         Map<String, PropertyData<?>> properties = new HashMap<String, 
PropertyData<?>>();
         so.fillProperties(properties, objectFactory, idList);
+        // special handling for path
+        if (so instanceof Folder && 
FilterParser.isContainedInFilter(PropertyIds.PATH, idList)) {
+            String path = objectStore.getFolderPath(so.getId());
+            properties.put(PropertyIds.PATH, 
objectFactory.createPropertyStringData(PropertyIds.PATH, path));
+        }
 
         if (FilterParser.isContainedInFilter(PropertyIds.BASE_TYPE_ID, 
idList)) {
             String baseTypeId = primaryType.getBaseTypeId().value();
@@ -391,9 +402,9 @@ public final class PropertyCreationHelpe
         }
     }
 
-    public static ObjectData getObjectData(TypeManager tm, StoredObject so, 
String filter, String user,
-            Boolean includeAllowableActions, IncludeRelationships 
includeRelationships, String renditionFilter,
-            Boolean includePolicyIds, Boolean includeACL, ExtensionsData 
extension) {
+    public static ObjectData getObjectData(TypeManager tm, ObjectStore 
objectStore, StoredObject so, String filter,
+            String user, Boolean includeAllowableActions, IncludeRelationships 
includeRelationships,
+            String renditionFilter, Boolean includePolicyIds, Boolean 
includeACL, ExtensionsData extension) {
 
         ObjectDataImpl od = new ObjectDataImpl();
 
@@ -403,7 +414,7 @@ public final class PropertyCreationHelpe
 
         // build properties collection
         List<String> requestedIds = 
FilterParser.getRequestedIdsFromFilter(filter);
-        Properties props = getPropertiesFromObject(so, tm, requestedIds, true);
+        Properties props = getPropertiesFromObject(so, objectStore, tm, 
requestedIds, true);
 
         // fill output object
         if (null != includeAllowableActions && includeAllowableActions) {
@@ -416,7 +427,8 @@ public final class PropertyCreationHelpe
             od.setRenditions(renditions);
 
         if (null != includeACL && includeACL) {
-            Acl acl = so instanceof DocumentVersion ? ((DocumentVersion) 
so).getParentDocument().getAcl() : so.getAcl();
+            int aclId = so instanceof DocumentVersion ? ((DocumentVersion) 
so).getParentDocument().getAclId() : so.getAclId();
+            Acl acl = objectStore.getAcl(aclId);
             od.setAcl(acl);
         }
         od.setIsExactAcl(true);
@@ -426,7 +438,7 @@ public final class PropertyCreationHelpe
         }
 
         if (null != includeRelationships && includeRelationships != 
IncludeRelationships.NONE) {
-            od.setRelationships(DataObjectCreator.fillRelationships(tm, 
includeRelationships, so, user));
+            od.setRelationships(DataObjectCreator.fillRelationships(tm, 
objectStore, includeRelationships, so, user));
         }
 
         if (null != includePolicyIds && includePolicyIds) {
@@ -443,15 +455,15 @@ public final class PropertyCreationHelpe
         return od;
     }
 
-    public static ObjectData getObjectDataQueryResult(TypeManager tm, 
TypeDefinition primaryType, StoredObject so,
-            String user, Map<String, String> requestedProperties, Map<String, 
String> requestedFuncs,
-            List<TypeDefinition> secondaryTypes, Boolean 
includeAllowableActions,
+    public static ObjectData getObjectDataQueryResult(TypeManager tm, 
ObjectStore objectStore,
+            TypeDefinition primaryType, StoredObject so, String user, 
Map<String, String> requestedProperties,
+            Map<String, String> requestedFuncs, List<TypeDefinition> 
secondaryTypes, Boolean includeAllowableActions,
             IncludeRelationships includeRelationships, String renditionFilter) 
{
 
         ObjectDataImpl od = new ObjectDataImpl();
 
         // build properties collection
-        Properties props = getPropertiesFromObject(so, primaryType, 
secondaryTypes, requestedProperties, requestedFuncs);
+        Properties props = getPropertiesFromObject(so, objectStore, 
primaryType, secondaryTypes, requestedProperties, requestedFuncs);
 
         // fill output object
         if (null != includeAllowableActions && includeAllowableActions) {
@@ -461,11 +473,14 @@ public final class PropertyCreationHelpe
             od.setAllowableActions(allowableActions);
         }
 
-        od.setAcl(so.getAcl());
+        int aclId = so.getAclId();
+        Acl acl = objectStore.getAcl(aclId);
+        od.setAcl(acl);
+
         od.setIsExactAcl(true);
 
         if (null != includeRelationships && includeRelationships != 
IncludeRelationships.NONE) {
-            od.setRelationships(DataObjectCreator.fillRelationships(tm, 
includeRelationships, so, user));
+            od.setRelationships(DataObjectCreator.fillRelationships(tm, 
objectStore, includeRelationships, so, user));
         }
 
         List<RenditionData> renditions = so.getRenditions(renditionFilter, 0, 
0);

Modified: 
chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/FolderTest.java
URL: 
http://svn.apache.org/viewvc/chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/FolderTest.java?rev=1507777&r1=1507776&r2=1507777&view=diff
==============================================================================
--- 
chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/FolderTest.java
 (original)
+++ 
chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/FolderTest.java
 Sun Jul 28 11:02:14 2013
@@ -70,9 +70,9 @@ public class FolderTest extends TestCase
         assertNull(fRoot.getParentId());
         assertEquals(fRoot.getId(), f1.getParentId());
         assertEquals(f1.getId(), f11.getParentId());
-        assertEquals(Filing.PATH_SEPARATOR, fRoot.getPath());
-        assertEquals("/Folder 1", f1.getPath());
-        assertEquals("/Folder 1/Folder 1.1", f11.getPath());
+        assertEquals(Filing.PATH_SEPARATOR, getPath(fRoot));
+        assertEquals("/Folder 1", getPath(f1));
+        assertEquals("/Folder 1/Folder 1.1", getPath(f11));
         StoredObject fTest = fStore.getObjectByPath("/", USER);
         assertEquals(fRoot, fTest);
         fTest = fStore.getObjectByPath("/Folder 1", USER);
@@ -91,10 +91,10 @@ public class FolderTest extends TestCase
     public void testRenameFolder() {
         // rename top level folder
         String newName = "Folder B";
-        String oldPath = f2.getPath();
+        String oldPath = getPath(f2);
         fStore.rename(f2, newName);
         assertEquals(f2.getName(), newName);
-        assertEquals(f2.getPath(), Filing.PATH_SEPARATOR + newName);
+        assertEquals(getPath(f2), Filing.PATH_SEPARATOR + newName);
         assertNull(fStore.getObjectByPath(oldPath, USER));
         assertEquals(f2, fStore.getObjectByPath(Filing.PATH_SEPARATOR + 
newName, USER));
         try {
@@ -104,10 +104,10 @@ public class FolderTest extends TestCase
         }
 
         // rename sub folder
-        oldPath = f11.getPath();
+        oldPath = getPath(f11);
         fStore.rename(f11, newName);
         assertEquals(f11.getName(), newName);
-        assertEquals(f11.getPath(), "/Folder 1/Folder B");
+        assertEquals(getPath(f11), "/Folder 1/Folder B");
         assertNull(fStore.getObjectByPath(oldPath, USER));
         assertEquals(f11, fStore.getObjectByPath("/Folder 1/Folder B", USER));
         try {
@@ -126,11 +126,11 @@ public class FolderTest extends TestCase
 
     @Test
     public void testMoveFolder() {
-        String oldPath = f1.getPath();
+        String oldPath = getPath(f1);
         Folder f1Parent = fRoot;
         fStore.move(f1, f1Parent, f3);
         assertNull(fStore.getObjectByPath(oldPath, USER));
-        assertEquals(f1.getPath(), "/Folder 3/Folder 1");
+        assertEquals(getPath(f1), "/Folder 3/Folder 1");
         assertEquals(f1, fStore.getObjectByPath("/Folder 3/Folder 1", USER));
 
         fStore.rename(f2, "Folder 1");
@@ -144,7 +144,7 @@ public class FolderTest extends TestCase
 
     @Test
     public void testDeleteFolder() {
-        String oldPath = f2.getPath();
+        String oldPath = getPath(f2);
         fStore.deleteObject(f2.getId(), true, "TestUser");
         assertNull(fStore.getObjectByPath(oldPath, USER));
 
@@ -158,22 +158,21 @@ public class FolderTest extends TestCase
     private void createFolders() {
         fRoot = (FolderImpl) fStore.getRootFolder();
         f1 = (FolderImpl) createFolder("Folder 1", fRoot);
-        f1.persist();
 
         f2 = (FolderImpl) createFolder("Folder 2", fRoot);
-        f2.persist();
 
         f3 = (FolderImpl) createFolder("Folder 3", fRoot);
-        f3.persist();
 
         f4 = (FolderImpl) createFolder("Folder 4", fRoot);
-        f4.persist();
 
         f11 = (FolderImpl) createFolder("Folder 1.1", f1);
-        f11.persist();
     }
     
     private Folder createFolder(String name, Folder parent) {
        return fStore.createFolder(name, null, "user", parent, null, null, 
null);       
     }
+    
+    private String getPath(Folder folder) {
+        return fStore.getFolderPath(folder.getId());
+    }
 }

Modified: 
chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/TypeValidationTest.java
URL: 
http://svn.apache.org/viewvc/chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/TypeValidationTest.java?rev=1507777&r1=1507776&r2=1507777&view=diff
==============================================================================
--- 
chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/TypeValidationTest.java
 (original)
+++ 
chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/TypeValidationTest.java
 Sun Jul 28 11:02:14 2013
@@ -735,7 +735,7 @@ public class TypeValidationTest extends 
     private static TypeManager buildInheritedTypes() {
 
         TypeManagerImpl tm = new TypeManagerImpl();
-        tm.initTypeSystem(null); // create CMIS default types
+        tm.initTypeSystem(null, true); // create CMIS default types
 
         // create super type
         InMemoryDocumentTypeDefinition cmisSuperType = new 
InMemoryDocumentTypeDefinition(DOC_TYPE_SUPER,

Modified: 
chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/query/ProcessQueryTest.java
URL: 
http://svn.apache.org/viewvc/chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/query/ProcessQueryTest.java?rev=1507777&r1=1507776&r2=1507777&view=diff
==============================================================================
--- 
chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/query/ProcessQueryTest.java
 (original)
+++ 
chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/query/ProcessQueryTest.java
 Sun Jul 28 11:02:14 2013
@@ -414,7 +414,7 @@ public class ProcessQueryTest extends Ab
     @Before
     public void setUp() {
         tm = new TypeManagerImpl();
-        tm.initTypeSystem(null); // create CMIS default types
+        tm.initTypeSystem(null, true); // create CMIS default types
 
         // create some types for testing
         List<TypeDefinition> typeDefs = super.createTypes();

Modified: 
chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/query/QueryTypesTest.java
URL: 
http://svn.apache.org/viewvc/chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/query/QueryTypesTest.java?rev=1507777&r1=1507776&r2=1507777&view=diff
==============================================================================
--- 
chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/query/QueryTypesTest.java
 (original)
+++ 
chemistry/opencmis/branches/inmemory-refactoring/src/test/java/org/apache/chemistry/opencmis/inmemory/query/QueryTypesTest.java
 Sun Jul 28 11:02:14 2013
@@ -63,7 +63,7 @@ public class QueryTypesTest extends Abst
     @Before
     public void setUp() {
         tm = new TypeManagerImpl();
-        tm.initTypeSystem(null); // create CMIS default types
+        tm.initTypeSystem(null, true); // create CMIS default types
 
         // create some types for testing
         List<TypeDefinition> typeDefs = super.createTypes();
@@ -533,7 +533,7 @@ public class QueryTypesTest extends Abst
     public void testSecondaryJoin() throws RecognitionException {
         // needs some special types:
         tm = new TypeManagerImpl();
-        tm.initTypeSystem(null); // create CMIS default types
+        tm.initTypeSystem(null, true); // create CMIS default types
 
         // create some types for testing
         List<TypeDefinition> typeDefs = 
UnitTestTypeSystemCreator.getTypesList(); 


Reply via email to