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);