You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by je...@apache.org on 2013/03/25 20:56:34 UTC

svn commit: r1460864 - in /chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory: server/ storedobj/impl/

Author: jens
Date: Mon Mar 25 19:56:34 2013
New Revision: 1460864

URL: http://svn.apache.org/r1460864
Log:
InMemory: add a (dummy) delete event in getContentChanges()

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/AtomLinkInfoProvider.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryDiscoveryServiceImpl.java
    chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/StoreManagerImpl.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/AtomLinkInfoProvider.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/AtomLinkInfoProvider.java?rev=1460864&r1=1460863&r2=1460864&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/AtomLinkInfoProvider.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/AtomLinkInfoProvider.java Mon Mar 25 19:56:34 2013
@@ -256,7 +256,7 @@ public class AtomLinkInfoProvider {
             if (null != listObjects) {
                 for (ObjectData object : listObjects) {
                     objectInfo = new ObjectInfoImpl();
-                    fillInformationForAtomLinks(repositoryId, object.getId(), objectInfo);
+                    fillInformationForAtomLinks(repositoryId, object, objectInfo);
                     objectInfos.addObjectInfo(objectInfo);
                 }
             }
@@ -264,6 +264,10 @@ public class AtomLinkInfoProvider {
 
     }
 
+    private void fillInformationForAtomLinks(String repositoryId, ObjectData od, ObjectInfoImpl objectInfo) {
+            objectInfo.setObject(od); 
+    }
+
     /**
      * FillObjectInfoHolder object with required information needed for Atom
      * binding for an ObjectInFolderContainer

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryDiscoveryServiceImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryDiscoveryServiceImpl.java?rev=1460864&r1=1460863&r2=1460864&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryDiscoveryServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryDiscoveryServiceImpl.java Mon Mar 25 19:56:34 2013
@@ -20,19 +20,25 @@ package org.apache.chemistry.opencmis.in
 
 import java.math.BigInteger;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.List;
+import java.util.UUID;
 
+import org.apache.chemistry.opencmis.commons.PropertyIds;
 import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
 import org.apache.chemistry.opencmis.commons.data.ObjectData;
 import org.apache.chemistry.opencmis.commons.data.ObjectInFolderContainer;
 import org.apache.chemistry.opencmis.commons.data.ObjectList;
 import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
+import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
 import org.apache.chemistry.opencmis.commons.enums.ChangeType;
 import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.ChangeEventInfoDataImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectDataImpl;
 import org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectListImpl;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertiesImpl;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIdImpl;
 import org.apache.chemistry.opencmis.commons.server.CallContext;
 import org.apache.chemistry.opencmis.commons.server.ObjectInfoHandler;
 import org.apache.chemistry.opencmis.commons.spi.Holder;
@@ -44,7 +50,6 @@ public class InMemoryDiscoveryServiceImp
     
     private static final Logger LOG = LoggerFactory.getLogger(InMemoryDiscoveryServiceImpl.class);
 
-    final AtomLinkInfoProvider fAtomLinkProvider;
     final InMemoryNavigationServiceImpl fNavigationService; // real implementation of
     // the service
     final InMemoryRepositoryServiceImpl fRepositoryService;
@@ -52,7 +57,6 @@ public class InMemoryDiscoveryServiceImp
     public InMemoryDiscoveryServiceImpl(StoreManager storeManager, InMemoryRepositoryServiceImpl repSvc,
             InMemoryNavigationServiceImpl navSvc) {
         super(storeManager);
-        fAtomLinkProvider = new AtomLinkInfoProvider(fStoreManager);
         fNavigationService = navSvc;
         fRepositoryService = repSvc;
     }
@@ -72,14 +76,33 @@ public class InMemoryDiscoveryServiceImp
         // convert ObjectInFolderContainerList to objectList
         List<ObjectData> lod = new ArrayList<ObjectData>();
         for (ObjectInFolderContainer obj : tempRes) {
-            convertList(lod, obj);
+//            convertList(lod, obj);
         }
+
+        // add a dummy delete event
+        ObjectDataImpl odImpl = new ObjectDataImpl();
+        PropertiesImpl props = new PropertiesImpl();
+        props.addProperty(new PropertyIdImpl(PropertyIds.OBJECT_ID, UUID.randomUUID().toString()));
+        props.addProperty(new PropertyIdImpl(PropertyIds.OBJECT_TYPE_ID, BaseTypeId.CMIS_DOCUMENT.value()));
+        props.addProperty(new PropertyIdImpl(PropertyIds.BASE_TYPE_ID, BaseTypeId.CMIS_DOCUMENT.value()));
+        odImpl.setProperties(props);
+        ChangeEventInfoDataImpl changeEventInfo = new ChangeEventInfoDataImpl();
+        changeEventInfo.setChangeType(ChangeType.DELETED);
+        changeEventInfo.setChangeTime(new GregorianCalendar());
+        odImpl.setChangeEventInfo(changeEventInfo);
+        lod.add(odImpl);
+
         objList.setObjects(lod);
         objList.setNumItems(BigInteger.valueOf(lod.size()));
+        
+        String changeToken = Long.valueOf(new Date().getTime()).toString();
+        changeLogToken.setValue(changeToken);
 
         // To be able to provide all Atom links in the response we need
         // additional information:
-        fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, null, objectInfos, objList);
+        if (objectInfos != null) {
+            fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, null, objectInfos, objList);
+        }
         return objList;
     }
 

Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/StoreManagerImpl.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/StoreManagerImpl.java?rev=1460864&r1=1460863&r2=1460864&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/StoreManagerImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/StoreManagerImpl.java Mon Mar 25 19:56:34 2013
@@ -395,7 +395,7 @@ public class StoreManagerImpl implements
         RepositoryCapabilitiesImpl caps = new RepositoryCapabilitiesImpl();
         caps.setAllVersionsSearchable(false);
         caps.setCapabilityAcl(CapabilityAcl.MANAGE);
-        caps.setCapabilityChanges(CapabilityChanges.NONE);
+        caps.setCapabilityChanges(CapabilityChanges.OBJECTIDSONLY);
         caps.setCapabilityContentStreamUpdates(CapabilityContentStreamUpdates.ANYTIME);
         caps.setCapabilityJoin(CapabilityJoin.NONE);
         caps.setCapabilityQuery(CapabilityQuery.BOTHCOMBINED);
@@ -483,18 +483,16 @@ public class StoreManagerImpl implements
             map.put(pm.getKey(), pm);
         }
         
+        List<BaseTypeId> changesOnType;
         // CMIS 1.1 extensions
         if (cmis11) {
             repoInfo.setCmisVersionSupported(CmisVersion.CMIS_1_1.value());
             repoInfo.setCmisVersion(CmisVersion.CMIS_1_1);
-            repoInfo.setCmisVersion(CmisVersion.CMIS_1_1);
-            List<BaseTypeId> changesOnType = new ArrayList<BaseTypeId>() {{
+            changesOnType = new ArrayList<BaseTypeId>() {{
                 add(BaseTypeId.CMIS_DOCUMENT);
                 add(BaseTypeId.CMIS_FOLDER);
                 add(BaseTypeId.CMIS_ITEM);
-                add(BaseTypeId.CMIS_SECONDARY);
             }};
-            repoInfo.setChangesOnType(changesOnType);
             
             Set<PropertyType> propertyTypeSet = new HashSet<PropertyType>() {{
                 add(PropertyType.BOOLEAN);
@@ -513,7 +511,12 @@ public class StoreManagerImpl implements
         } else {
             repoInfo.setCmisVersionSupported(CmisVersion.CMIS_1_0.value());
             repoInfo.setCmisVersion(CmisVersion.CMIS_1_0);
+            changesOnType = new ArrayList<BaseTypeId>() {{
+                add(BaseTypeId.CMIS_DOCUMENT);
+                add(BaseTypeId.CMIS_FOLDER);
+            }};
         }
+        repoInfo.setChangesOnType(changesOnType);
 
         aclCaps.setPermissionMappingData(map);