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 2010/04/27 12:09:18 UTC
svn commit: r938389 -
/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/
Author: jens
Date: Tue Apr 27 10:09:18 2010
New Revision: 938389
URL: http://svn.apache.org/viewvc?rev=938389&view=rev
Log:
Adjust InMemory Server to use new server packages and classes
Removed:
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/ServiceFactory.java
Modified:
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/AtomLinkInfoProvider.java
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryDiscoveryServiceImpl.java
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryNavigationServiceImpl.java
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryService.java
incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java
Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/AtomLinkInfoProvider.java?rev=938389&r1=938388&r2=938389&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/AtomLinkInfoProvider.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/AtomLinkInfoProvider.java Tue Apr 27 10:09:18 2010
@@ -27,6 +27,7 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.api.ObjectList;
import org.apache.chemistry.opencmis.commons.api.ObjectParentData;
import org.apache.chemistry.opencmis.commons.api.TypeDefinition;
+import org.apache.chemistry.opencmis.commons.api.server.ObjectInfoHandler;
import org.apache.chemistry.opencmis.commons.impl.server.ObjectInfoImpl;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.Content;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.DocumentVersion;
@@ -35,7 +36,6 @@ import org.apache.chemistry.opencmis.inm
import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoredObject;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.VersionedDocument;
-import org.apache.chemistry.opencmis.server.spi.ObjectInfoHolder;
/**
* For the Atom binding more information might be required than the result of a
@@ -64,12 +64,11 @@ public class AtomLinkInfoProvider {
* @param objectInfos
* Holder to fill with information
*/
- public void fillInformationForAtomLinks(String repositoryId, StoredObject so, ObjectInfoHolder objectInfos) {
- if (null == objectInfos || null == so)
+ public void fillInformationForAtomLinks(String repositoryId, StoredObject so, ObjectData od, ObjectInfoImpl objInfo) {
+ if (null == objInfo || null == so)
return;
TypeDefinition typeDef = fStoreManager.getTypeById(repositoryId, so.getTypeId()).getTypeDefinition();
- ObjectInfoImpl objInfo = new ObjectInfoImpl();
// Fill all setters:
objInfo.setId(so.getId());
objInfo.setName(so.getName());
@@ -78,6 +77,7 @@ public class AtomLinkInfoProvider {
objInfo.setLastModificationDate(so.getModifiedAt());
objInfo.setTypeId(so.getTypeId());
objInfo.setBaseType(typeDef.getBaseTypeId());
+ objInfo.setObject(od);
// versioning information:
if (so instanceof DocumentVersion) {
@@ -138,7 +138,10 @@ public class AtomLinkInfoProvider {
objInfo.setSupportsDescendants(true);
objInfo.setSupportsFolderTree(true);
- objectInfos.addObjectInfo(objInfo);
+ }
+
+ public void fillInformationForAtomLinks(String repositoryId, StoredObject so, ObjectInfoImpl objectInfo) {
+ fillInformationForAtomLinks(repositoryId, so, null, objectInfo);
}
/**
@@ -152,15 +155,16 @@ public class AtomLinkInfoProvider {
* @param objectInfos
* Holder to fill with information
*/
- public void fillInformationForAtomLinks(String repositoryId, String objectId, ObjectInfoHolder objectInfos) {
- if (null == objectInfos || null == objectId)
+ public void fillInformationForAtomLinks(String repositoryId, String objectId, ObjectInfoImpl objectInfo) {
+ if (null == objectInfo || null == objectId)
return;
ObjectStore objectStore = fStoreManager.getObjectStore(repositoryId);
StoredObject so = objectStore.getObjectById(objectId);
- fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ fillInformationForAtomLinks(repositoryId, so, objectInfo);
}
+
/**
* FillObjectInfoHolder object with required information needed for Atom
* binding after a getChildren() call in navigation service
@@ -174,18 +178,23 @@ public class AtomLinkInfoProvider {
* @param objList
* result of getChildren call
*/
- public void fillInformationForAtomLinks(String repositoryId, String objectId, ObjectInfoHolder objectInfos,
+ public void fillInformationForAtomLinks(String repositoryId, String objectId, ObjectInfoHandler objectInfos,
ObjectInFolderList objList) {
if (null == objectInfos || null == objList || null == objectId)
return;
+
// Fill object information for requested object
- fillInformationForAtomLinks(repositoryId, objectId, objectInfos);
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fillInformationForAtomLinks(repositoryId, objectId, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
// Fill object information for all children in result list
for (ObjectInFolderData object : objList.getObjects()) {
- fillInformationForAtomLinks(repositoryId, object.getObject().getId(), objectInfos);
+ objectInfo = new ObjectInfoImpl();
+ fillInformationForAtomLinks(repositoryId, object.getObject().getId(), objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
}
}
@@ -202,12 +211,14 @@ public class AtomLinkInfoProvider {
* @param objList
* result of getChildren call
*/
- public void fillInformationForAtomLinks(String repositoryId, String objectId, ObjectInfoHolder objectInfos,
+ public void fillInformationForAtomLinks(String repositoryId, String objectId, ObjectInfoHandler objectInfos,
ObjectList objList) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
if (null != objectId) {
// Fill object information for requested object
- fillInformationForAtomLinks(repositoryId, objectId, objectInfos);
+ fillInformationForAtomLinks(repositoryId, objectId, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
}
if (null != objList && null != objList.getObjects()) {
@@ -215,7 +226,9 @@ public class AtomLinkInfoProvider {
List<ObjectData> listObjects = objList.getObjects();
if (null != listObjects)
for (ObjectData object : listObjects) {
- fillInformationForAtomLinks(repositoryId, object.getId(), objectInfos);
+ objectInfo = new ObjectInfoImpl();
+ fillInformationForAtomLinks(repositoryId, object.getId(), objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
}
}
@@ -234,7 +247,7 @@ public class AtomLinkInfoProvider {
* @param objList
* result of getChildren call
*/
- private void fillInformationForAtomLinks(String repositoryId, ObjectInfoHolder objectInfos,
+ private void fillInformationForAtomLinks(String repositoryId, ObjectInfoHandler objectInfos,
ObjectInFolderContainer oifc) {
if (null == objectInfos || null == oifc)
@@ -246,7 +259,9 @@ public class AtomLinkInfoProvider {
if (null != oifc.getChildren())
for (ObjectInFolderContainer object : oifc.getChildren()) {
// call recursively
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
fillInformationForAtomLinks(repositoryId, objectInfos, object);
+ objectInfos.addObjectInfo(objectInfo);
}
}
@@ -263,24 +278,28 @@ public class AtomLinkInfoProvider {
* @param oifcList
* result of getDescendants call
*/
- public void fillInformationForAtomLinks(String repositoryId, String objectId, ObjectInfoHolder objectInfos,
+ public void fillInformationForAtomLinks(String repositoryId, String objectId, ObjectInfoHandler objectInfos,
List<ObjectInFolderContainer> oifcList) {
if (null == objectInfos || null == oifcList || null == objectId)
return;
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
// Fill object information for requested object
- fillInformationForAtomLinks(repositoryId, objectId, objectInfos);
+ fillInformationForAtomLinks(repositoryId, objectId, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
for (ObjectInFolderContainer object : oifcList) {
fillInformationForAtomLinks(repositoryId, objectInfos, object);
}
}
- private void fillInformationForAtomLinks(String repositoryId, ObjectInfoHolder objectInfos,
+ private void fillInformationForAtomLinks(String repositoryId, ObjectInfoHandler objectInfos,
ObjectInFolderData object) {
- fillInformationForAtomLinks(repositoryId, object.getObject().getId(), objectInfos);
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fillInformationForAtomLinks(repositoryId, object.getObject().getId(), objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
}
/**
@@ -297,16 +316,19 @@ public class AtomLinkInfoProvider {
* result of getObjectParents call
*/
public void fillInformationForAtomLinksGetParents(String repositoryId, String objectId,
- ObjectInfoHolder objectInfos, List<ObjectParentData> objParents) {
+ ObjectInfoHandler objectInfos, List<ObjectParentData> objParents) {
if (null == objectInfos || null == objParents || null == objectId)
return;
// Fill object information for requested object
- fillInformationForAtomLinks(repositoryId, objectId, objectInfos);
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fillInformationForAtomLinks(repositoryId, objectId, objectInfo);
for (ObjectParentData object : objParents) {
- fillInformationForAtomLinks(repositoryId, object.getObject().getId(), objectInfos);
+ objectInfo = new ObjectInfoImpl();
+ fillInformationForAtomLinks(repositoryId, object.getObject().getId(), objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
}
}
Modified: incubator/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/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryDiscoveryServiceImpl.java?rev=938389&r1=938388&r2=938389&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryDiscoveryServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryDiscoveryServiceImpl.java Tue Apr 27 10:09:18 2010
@@ -41,6 +41,7 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.api.RepositoryInfo;
import org.apache.chemistry.opencmis.commons.api.TypeDefinition;
import org.apache.chemistry.opencmis.commons.api.server.CallContext;
+import org.apache.chemistry.opencmis.commons.api.server.ObjectInfoHandler;
import org.apache.chemistry.opencmis.commons.enums.ChangeType;
import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
import org.apache.chemistry.opencmis.commons.exceptions.CmisRuntimeException;
@@ -53,14 +54,12 @@ import org.apache.chemistry.opencmis.inm
import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoredObject;
import org.apache.chemistry.opencmis.inmemory.storedobj.impl.ObjectStoreImpl;
import org.apache.chemistry.opencmis.inmemory.types.PropertyCreationHelper;
-import org.apache.chemistry.opencmis.server.spi.CmisDiscoveryService;
-import org.apache.chemistry.opencmis.server.spi.ObjectInfoHolder;
-import org.apache.chemistry.opencmis.server.support.query.CMISQLLexer;
-import org.apache.chemistry.opencmis.server.support.query.CMISQLParser;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.chemistry.opencmis.server.support.query.CMISQLLexer;
+import org.apache.chemistry.opencmis.server.support.query.CMISQLParser;
-public class InMemoryDiscoveryServiceImpl extends InMemoryAbstractServiceImpl implements CmisDiscoveryService {
+public class InMemoryDiscoveryServiceImpl extends InMemoryAbstractServiceImpl{
private static final Log LOG = LogFactory.getLog(InMemoryDiscoveryServiceImpl.class.getName());
@@ -79,7 +78,7 @@ public class InMemoryDiscoveryServiceImp
public ObjectList getContentChanges(CallContext context, String repositoryId, Holder<String> changeLogToken,
Boolean includeProperties, String filter, Boolean includePolicyIds, Boolean includeAcl,
- BigInteger maxItems, ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ BigInteger maxItems, ExtensionsData extension, ObjectInfoHandler objectInfos) {
// dummy implementation using hard coded values
RepositoryInfo rep = fRepositoryService.getRepositoryInfo(context, repositoryId, null);
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java?rev=938389&r1=938388&r2=938389&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryMultiFilingServiceImpl.java Tue Apr 27 10:09:18 2010
@@ -21,21 +21,21 @@ package org.apache.chemistry.opencmis.in
import org.apache.chemistry.opencmis.commons.api.ExtensionsData;
import org.apache.chemistry.opencmis.commons.api.ObjectData;
import org.apache.chemistry.opencmis.commons.api.server.CallContext;
+import org.apache.chemistry.opencmis.commons.api.server.ObjectInfoHandler;
import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
import org.apache.chemistry.opencmis.commons.exceptions.CmisConstraintException;
import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
+import org.apache.chemistry.opencmis.commons.impl.server.ObjectInfoImpl;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.Folder;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.MultiFiling;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.ObjectStore;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoredObject;
import org.apache.chemistry.opencmis.inmemory.types.PropertyCreationHelper;
-import org.apache.chemistry.opencmis.server.spi.CmisMultiFilingService;
-import org.apache.chemistry.opencmis.server.spi.ObjectInfoHolder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-public class InMemoryMultiFilingServiceImpl extends InMemoryAbstractServiceImpl implements CmisMultiFilingService {
+public class InMemoryMultiFilingServiceImpl extends InMemoryAbstractServiceImpl {
private static final Log LOG = LogFactory.getLog(InMemoryMultiFilingServiceImpl.class.getName());
@@ -47,7 +47,7 @@ public class InMemoryMultiFilingServiceI
}
public ObjectData addObjectToFolder(CallContext context, String repositoryId, String objectId, String folderId,
- Boolean allVersions, ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ Boolean allVersions, ExtensionsData extension, ObjectInfoHandler objectInfos) {
LOG.debug("Begin addObjectToFolder()");
@@ -63,8 +63,13 @@ public class InMemoryMultiFilingServiceI
MultiFiling obj = (MultiFiling) so;
obj.addParent(newParent);
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, folder, objectInfos);
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, folder, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
+
String user = context.getUsername();
ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
@@ -75,7 +80,7 @@ public class InMemoryMultiFilingServiceI
}
public ObjectData removeObjectFromFolder(CallContext context, String repositoryId, String objectId,
- String folderId, ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ String folderId, ExtensionsData extension, ObjectInfoHandler objectInfos) {
LOG.debug("Begin removeObjectFromFolder()");
@@ -90,8 +95,12 @@ public class InMemoryMultiFilingServiceI
// To be able to provide all Atom links in the response we need
// additional information:
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, folder, objectInfos);
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, folder, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
String user = context.getUsername();
ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryNavigationServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryNavigationServiceImpl.java?rev=938389&r1=938388&r2=938389&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryNavigationServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryNavigationServiceImpl.java Tue Apr 27 10:09:18 2010
@@ -34,6 +34,7 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.api.ObjectParentData;
import org.apache.chemistry.opencmis.commons.api.Properties;
import org.apache.chemistry.opencmis.commons.api.server.CallContext;
+import org.apache.chemistry.opencmis.commons.api.server.ObjectInfoHandler;
import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
import org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
@@ -43,9 +44,9 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectInFolderListImpl;
import org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectListImpl;
import org.apache.chemistry.opencmis.commons.impl.dataobjects.ObjectParentDataImpl;
+import org.apache.chemistry.opencmis.commons.impl.server.ObjectInfoImpl;
import org.apache.chemistry.opencmis.inmemory.DataObjectCreator;
import org.apache.chemistry.opencmis.inmemory.FilterParser;
-import org.apache.chemistry.opencmis.inmemory.storedobj.api.Children;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.DocumentVersion;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.Filing;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.Folder;
@@ -56,13 +57,10 @@ import org.apache.chemistry.opencmis.inm
import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoredObject;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.VersionedDocument;
import org.apache.chemistry.opencmis.inmemory.types.PropertyCreationHelper;
-import org.apache.chemistry.opencmis.server.spi.CmisNavigationService;
-import org.apache.chemistry.opencmis.server.spi.CmisRepositoryService;
-import org.apache.chemistry.opencmis.server.spi.ObjectInfoHolder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-public class InMemoryNavigationServiceImpl extends InMemoryAbstractServiceImpl implements CmisNavigationService {
+public class InMemoryNavigationServiceImpl extends InMemoryAbstractServiceImpl {
private static Log LOG = LogFactory.getLog(InMemoryNavigationServiceImpl.class);
@@ -76,7 +74,7 @@ public class InMemoryNavigationServiceIm
public ObjectList getCheckedOutDocs(CallContext context, String repositoryId, String folderId, String filter,
String orderBy, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
String renditionFilter, BigInteger maxItems, BigInteger skipCount, ExtensionsData extension,
- ObjectInfoHolder objectInfos) {
+ ObjectInfoHandler objectInfos) {
ObjectListImpl res = new ObjectListImpl();
List<ObjectData> odList = new ArrayList<ObjectData>();
@@ -94,20 +92,28 @@ public class InMemoryNavigationServiceIm
for (VersionedDocument checkedOut : checkedOuts) {
ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, checkedOut, filter, user,
includeAllowableActions, includeRelationships, renditionFilter, false, false, extension);
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, checkedOut, objectInfos);
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, checkedOut, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
odList.add(od);
}
} else {
ObjectInFolderList children = getChildrenIntern(repositoryId, folderId, filter, orderBy,
- includeAllowableActions, includeRelationships, renditionFilter, false, -1, -1, false, objectInfos,
- user);
+ includeAllowableActions, includeRelationships, renditionFilter, false, -1, -1, false, context
+ .isObjectInfoRequired() ? objectInfos : null, user);
for (ObjectInFolderData child : children.getObjects()) {
ObjectData obj = child.getObject();
StoredObject so = fStoreManager.getObjectStore(repositoryId).getObjectById(obj.getId());
LOG.info("Checked out: children:" + obj.getId());
if (so instanceof DocumentVersion && ((DocumentVersion) so).getParentDocument().isCheckedOut()) {
odList.add(obj);
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
}
}
}
@@ -121,7 +127,7 @@ public class InMemoryNavigationServiceIm
public ObjectInFolderList getChildren(CallContext context, String repositoryId, String folderId, String filter,
String orderBy, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
String renditionFilter, Boolean includePathSegment, BigInteger maxItems, BigInteger skipCount,
- ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ ExtensionsData extension, ObjectInfoHandler objectInfos) {
LOG.debug("start getChildren()");
@@ -132,7 +138,7 @@ public class InMemoryNavigationServiceIm
String user = context.getUsername();
ObjectInFolderList res = getChildrenIntern(repositoryId, folderId, filter, orderBy, includeAllowableActions,
includeRelationships, renditionFilter, includePathSegment, maxItemsInt, skipCountInt, false,
- objectInfos, user);
+ context.isObjectInfoRequired() ? objectInfos : null, user);
LOG.debug("stop getChildren()");
return res;
}
@@ -140,7 +146,7 @@ public class InMemoryNavigationServiceIm
public List<ObjectInFolderContainer> getDescendants(CallContext context, String repositoryId, String folderId,
BigInteger depth, String filter, Boolean includeAllowableActions,
IncludeRelationships includeRelationships, String renditionFilter, Boolean includePathSegment,
- ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ ExtensionsData extension, ObjectInfoHandler objectInfos) {
LOG.debug("start getDescendants()");
@@ -166,7 +172,7 @@ public class InMemoryNavigationServiceIm
}
public ObjectData getFolderParent(CallContext context, String repositoryId, String folderId, String filter,
- ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ ExtensionsData extension, ObjectInfoHandler objectInfos) {
LOG.debug("start getFolderParent()");
@@ -179,13 +185,17 @@ public class InMemoryNavigationServiceIm
throw new CmisInvalidArgumentException("Can't get folder parent, id does not refer to a folder: "
+ folderId);
- ObjectData res = getFolderParentIntern(repositoryId, folder, filter, objectInfos);
+ ObjectData res = getFolderParentIntern(repositoryId, folder, filter, context.isObjectInfoRequired() ? objectInfos : null);
if (res == null)
throw new CmisInvalidArgumentException("Cannot get parent of a root folder");
// To be able to provide all Atom links in the response we need
// additional information:
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
LOG.debug("stop getFolderParent()");
return res;
@@ -194,7 +204,7 @@ public class InMemoryNavigationServiceIm
public List<ObjectInFolderContainer> getFolderTree(CallContext context, String repositoryId, String folderId,
BigInteger depth, String filter, Boolean includeAllowableActions,
IncludeRelationships includeRelationships, String renditionFilter, Boolean includePathSegment,
- ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ ExtensionsData extension, ObjectInfoHandler objectInfos) {
LOG.debug("start getFolderTree()");
@@ -217,7 +227,7 @@ public class InMemoryNavigationServiceIm
public List<ObjectParentData> getObjectParents(CallContext context, String repositoryId, String objectId,
String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
String renditionFilter, Boolean includeRelativePathSegment, ExtensionsData extension,
- ObjectInfoHolder objectInfos) {
+ ObjectInfoHandler objectInfos) {
LOG.debug("start getObjectParents()");
@@ -234,11 +244,15 @@ public class InMemoryNavigationServiceIm
else
return Collections.emptyList();
- result = getObjectParentsIntern(repositoryId, spo, filter, objectInfos);
+ result = getObjectParentsIntern(repositoryId, spo, filter, context.isObjectInfoRequired() ? objectInfos : null);
// To be able to provide all Atom links in the response we need
// additional information:
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
LOG.debug("stop getObjectParents()");
return result;
@@ -248,7 +262,7 @@ public class InMemoryNavigationServiceIm
private ObjectInFolderList getChildrenIntern(String repositoryId, String folderId, String filter, String orderBy,
Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
- Boolean includePathSegments, int maxItems, int skipCount, boolean folderOnly, ObjectInfoHolder objectInfos,
+ Boolean includePathSegments, int maxItems, int skipCount, boolean folderOnly, ObjectInfoHandler objectInfos,
String user) {
ObjectInFolderListImpl result = new ObjectInFolderListImpl();
@@ -296,17 +310,25 @@ public class InMemoryNavigationServiceIm
oifd.setObject(objectData);
folderList.add(oifd);
// add additional information for Atom
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, spo, objectInfos);
+ if (objectInfos != null) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, spo, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
}
result.setObjects(folderList);
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ if (objectInfos != null) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
return result;
}
private List<ObjectInFolderContainer> getDescendantsIntern(String repositoryId, String folderId, String filter,
Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
- Boolean includePathSegments, int level, int maxLevels, boolean folderOnly, ObjectInfoHolder objectInfos,
+ Boolean includePathSegments, int level, int maxLevels, boolean folderOnly, ObjectInfoHandler objectInfos,
String user) {
// log.info("getDescendantsIntern: " + folderId + ", in level " + level
@@ -340,7 +362,7 @@ public class InMemoryNavigationServiceIm
}
private List<ObjectParentData> getObjectParentsIntern(String repositoryId, Filing sop, String filter,
- ObjectInfoHolder objectInfos) {
+ ObjectInfoHandler objectInfos) {
List<ObjectParentData> result = null;
if (sop instanceof SingleFiling) {
@@ -373,14 +395,18 @@ public class InMemoryNavigationServiceIm
parentData.setObject(objData);
parentData.setRelativePathSegment(multiParentObj.getPathSegment());
result.add(parentData);
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, parent, objectInfos);
+ if (objectInfos != null) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, parent, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
}
}
return result;
}
private ObjectData getFolderParentIntern(String repositoryId, SingleFiling sop, String filter,
- ObjectInfoHolder objectInfos) {
+ ObjectInfoHandler objectInfos) {
ObjectDataImpl parent = new ObjectDataImpl();
@@ -391,7 +417,11 @@ public class InMemoryNavigationServiceIm
}
copyFilteredProperties(repositoryId, parentFolder, filter, parent);
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, parentFolder, objectInfos);
+ if (objectInfos != null) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, parentFolder, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
return parent;
}
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java?rev=938389&r1=938388&r2=938389&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryObjectServiceImpl.java Tue Apr 27 10:09:18 2010
@@ -39,6 +39,7 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.api.TypeDefinition;
import org.apache.chemistry.opencmis.commons.api.TypeDefinitionContainer;
import org.apache.chemistry.opencmis.commons.api.server.CallContext;
+import org.apache.chemistry.opencmis.commons.api.server.ObjectInfoHandler;
import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
import org.apache.chemistry.opencmis.commons.enums.UnfileObject;
@@ -51,6 +52,7 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.exceptions.CmisUpdateConflictException;
import org.apache.chemistry.opencmis.commons.impl.dataobjects.FailedToDeleteDataImpl;
import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertiesImpl;
+import org.apache.chemistry.opencmis.commons.impl.server.ObjectInfoImpl;
import org.apache.chemistry.opencmis.inmemory.DataObjectCreator;
import org.apache.chemistry.opencmis.inmemory.FilterParser;
import org.apache.chemistry.opencmis.inmemory.NameValidator;
@@ -69,13 +71,10 @@ import org.apache.chemistry.opencmis.inm
import org.apache.chemistry.opencmis.inmemory.types.InMemoryPolicyTypeDefinition;
import org.apache.chemistry.opencmis.inmemory.types.InMemoryRelationshipTypeDefinition;
import org.apache.chemistry.opencmis.inmemory.types.PropertyCreationHelper;
-import org.apache.chemistry.opencmis.server.spi.CmisObjectService;
-import org.apache.chemistry.opencmis.server.spi.CmisRepositoryService;
-import org.apache.chemistry.opencmis.server.spi.ObjectInfoHolder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-public class InMemoryObjectServiceImpl extends InMemoryAbstractServiceImpl implements CmisObjectService {
+public class InMemoryObjectServiceImpl extends InMemoryAbstractServiceImpl {
private static final Log LOG = LogFactory.getLog(InMemoryServiceFactoryImpl.class.getName());
AtomLinkInfoProvider fAtomLinkProvider;
@@ -180,17 +179,17 @@ public class InMemoryObjectServiceImpl e
* org.opencmis.client.provider.ContentStreamData,
* org.opencmis.commons.enums.VersioningState,
* org.opencmis.client.provider.ExtensionsData,
- * org.opencmis.server.spi.ObjectInfoHolder)
+ * org.opencmis.server.spi.ObjectInfoHandler)
*
* An additional create call compared to the ObjectService from the CMIS
* spec. This one is needed because the Atom binding in the server
* implementation does not know what kind of object needs to be created.
- * Also the ObjectInfoHolder needs to be filled.
+ * Also the ObjectInfoHandler needs to be filled.
*/
@SuppressWarnings("unchecked")
public ObjectData create(CallContext context, String repositoryId, Properties properties, String folderId,
ContentStream contentStream, VersioningState versioningState, List<String> policies,
- ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ ExtensionsData extension, ObjectInfoHandler objectInfos) {
if (null == properties || null == properties.getProperties())
throw new RuntimeException("Cannot create object, without properties.");
@@ -227,7 +226,11 @@ public class InMemoryObjectServiceImpl e
ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
IncludeRelationships.NONE, null, false, false, extension);
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, od, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
return od;
}
@@ -339,7 +342,7 @@ public class InMemoryObjectServiceImpl e
public ObjectData getObject(CallContext context, String repositoryId, String objectId, String filter,
Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
- Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension, ObjectInfoHandler objectInfos) {
LOG.debug("start getObject()");
@@ -352,7 +355,11 @@ public class InMemoryObjectServiceImpl e
ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, filter, user, includeAllowableActions,
includeRelationships, renditionFilter, includePolicyIds, includeAcl, extension);
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
LOG.debug("stop getObject()");
@@ -361,7 +368,7 @@ public class InMemoryObjectServiceImpl e
public ObjectData getObjectByPath(CallContext context, String repositoryId, String path, String filter,
Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
- Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension, ObjectInfoHandler objectInfos) {
LOG.debug("start getObjectByPath()");
checkRepositoryId(repositoryId);
@@ -379,7 +386,11 @@ public class InMemoryObjectServiceImpl e
// To be able to provide all Atom links in the response we need
// additional information:
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
return od;
}
@@ -412,7 +423,7 @@ public class InMemoryObjectServiceImpl e
}
public ObjectData moveObject(CallContext context, String repositoryId, Holder<String> objectId,
- String targetFolderId, String sourceFolderId, ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ String targetFolderId, String sourceFolderId, ExtensionsData extension, ObjectInfoHandler objectInfos) {
LOG.debug("start moveObject()");
StoredObject so = checkStandardParameters(repositoryId, objectId.getValue());
@@ -464,14 +475,18 @@ public class InMemoryObjectServiceImpl e
objectId.setValue(so.getId());
LOG.debug("stop moveObject()");
- // To be able to provide all Atom links in the response we need
- // additional information:
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
-
String user = context.getUsername();
ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
IncludeRelationships.NONE, null, false, false, extension);
+ // To be able to provide all Atom links in the response we need
+ // additional information:
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, od, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
+
return od;
}
@@ -509,7 +524,7 @@ public class InMemoryObjectServiceImpl e
public ObjectData updateProperties(CallContext context, String repositoryId, Holder<String> objectId,
Holder<String> changeToken, Properties properties, Acl acl, ExtensionsData extension,
- ObjectInfoHolder objectInfos) {
+ ObjectInfoHandler objectInfos) {
LOG.debug("start updateProperties()");
StoredObject so = checkStandardParameters(repositoryId, objectId.getValue());
@@ -616,14 +631,18 @@ public class InMemoryObjectServiceImpl e
// extension);
}
- // To be able to provide all Atom links in the response we need
- // additional information:
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
-
String user = context.getUsername();
ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
IncludeRelationships.NONE, null, false, false, extension);
+ // To be able to provide all Atom links in the response we need
+ // additional information:
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, od, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
+
LOG.debug("stop updateProperties()");
return od;
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java?rev=938389&r1=938388&r2=938389&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java Tue Apr 27 10:09:18 2010
@@ -36,7 +36,7 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
import org.apache.chemistry.opencmis.server.spi.CmisRepositoryService;
-public class InMemoryRepositoryServiceImpl extends InMemoryAbstractServiceImpl implements CmisRepositoryService {
+public class InMemoryRepositoryServiceImpl extends InMemoryAbstractServiceImpl {
public InMemoryRepositoryServiceImpl(StoreManager storeManager) {
super(storeManager);
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryService.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryService.java?rev=938389&r1=938388&r2=938389&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryService.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryService.java Tue Apr 27 10:09:18 2010
@@ -30,17 +30,14 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.api.ExtensionsData;
import org.apache.chemistry.opencmis.commons.api.FailedToDeleteData;
import org.apache.chemistry.opencmis.commons.api.Holder;
-import org.apache.chemistry.opencmis.commons.api.NavigationService;
import org.apache.chemistry.opencmis.commons.api.ObjectData;
import org.apache.chemistry.opencmis.commons.api.ObjectInFolderContainer;
import org.apache.chemistry.opencmis.commons.api.ObjectInFolderList;
import org.apache.chemistry.opencmis.commons.api.ObjectList;
import org.apache.chemistry.opencmis.commons.api.ObjectParentData;
-import org.apache.chemistry.opencmis.commons.api.ObjectService;
import org.apache.chemistry.opencmis.commons.api.Properties;
import org.apache.chemistry.opencmis.commons.api.RenditionData;
import org.apache.chemistry.opencmis.commons.api.RepositoryInfo;
-import org.apache.chemistry.opencmis.commons.api.RepositoryService;
import org.apache.chemistry.opencmis.commons.api.TypeDefinition;
import org.apache.chemistry.opencmis.commons.api.TypeDefinitionContainer;
import org.apache.chemistry.opencmis.commons.api.TypeDefinitionList;
@@ -54,9 +51,6 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.impl.dataobjects.BindingsObjectFactoryImpl;
import org.apache.chemistry.opencmis.commons.impl.server.AbstractCmisService;
import org.apache.chemistry.opencmis.inmemory.ConfigConstants;
-import org.apache.chemistry.opencmis.inmemory.clientprovider.NavigationServiceImpl;
-import org.apache.chemistry.opencmis.inmemory.clientprovider.ObjectServiceImpl;
-import org.apache.chemistry.opencmis.inmemory.clientprovider.RepositoryServiceImpl;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
import org.apache.chemistry.opencmis.inmemory.storedobj.impl.StoreManagerFactory;
import org.apache.chemistry.opencmis.inmemory.storedobj.impl.StoreManagerImpl;
@@ -110,11 +104,6 @@ public class InMemoryService extends Abs
}
}
- // With some special configuration settings fill the repository with
- // some documents and folders
- // if is empty
- if (!allAvailableRepositories.contains(repositoryId))
- fillRepositoryIfConfigured(parameters, repositoryId);
fRepSvc = new InMemoryRepositoryServiceImpl(storeManager);
fNavSvc = new InMemoryNavigationServiceImpl(storeManager);
@@ -123,6 +112,11 @@ public class InMemoryService extends Abs
fDisSvc = new InMemoryDiscoveryServiceImpl(storeManager, fRepSvc, fNavSvc);
fMultiSvc = new InMemoryMultiFilingServiceImpl(storeManager);
+ // With some special configuration settings fill the repository with
+ // some documents and folders
+ // if is empty
+ if (!allAvailableRepositories.contains(repositoryId))
+ fillRepositoryIfConfigured(parameters, repositoryId);
}
public CallContext getCallContext() {
@@ -166,39 +160,39 @@ public class InMemoryService extends Abs
Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
return fNavSvc.getCheckedOutDocs(getCallContext(), repositoryId, folderId, filter, orderBy,
- includeAllowableActions, includeRelationships, renditionFilter, maxItems, skipCount, extension, null);
+ includeAllowableActions, includeRelationships, renditionFilter, maxItems, skipCount, extension, this);
}
public ObjectInFolderList getChildren(String repositoryId, String folderId, String filter, String orderBy,
Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
Boolean includePathSegment, BigInteger maxItems, BigInteger skipCount, ExtensionsData extension) {
return fNavSvc.getChildren(getCallContext(), repositoryId, folderId, filter, orderBy, includeAllowableActions,
- includeRelationships, renditionFilter, includePathSegment, maxItems, skipCount, extension, null);
+ includeRelationships, renditionFilter, includePathSegment, maxItems, skipCount, extension, this);
}
public List<ObjectInFolderContainer> getDescendants(String repositoryId, String folderId, BigInteger depth,
String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
return fNavSvc.getDescendants(getCallContext(), repositoryId, folderId, depth, filter, includeAllowableActions,
- includeRelationships, renditionFilter, includePathSegment, extension, null);
+ includeRelationships, renditionFilter, includePathSegment, extension, this);
}
public ObjectData getFolderParent(String repositoryId, String folderId, String filter, ExtensionsData extension) {
- return fNavSvc.getFolderParent(getCallContext(), repositoryId, folderId, filter, extension, null);
+ return fNavSvc.getFolderParent(getCallContext(), repositoryId, folderId, filter, extension, this);
}
public List<ObjectInFolderContainer> getFolderTree(String repositoryId, String folderId, BigInteger depth,
String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
String renditionFilter, Boolean includePathSegment, ExtensionsData extension) {
return fNavSvc.getFolderTree(getCallContext(), repositoryId, folderId, depth, filter, includeAllowableActions,
- includeRelationships, renditionFilter, includePathSegment, extension, null);
+ includeRelationships, renditionFilter, includePathSegment, extension, this);
}
public List<ObjectParentData> getObjectParents(String repositoryId, String objectId, String filter,
Boolean includeAllowableActions, IncludeRelationships includeRelationships, String renditionFilter,
Boolean includeRelativePathSegment, ExtensionsData extension) {
return fNavSvc.getObjectParents(getCallContext(), repositoryId, objectId, filter, includeAllowableActions,
- includeRelationships, renditionFilter, includeRelativePathSegment, extension, null);
+ includeRelationships, renditionFilter, includeRelativePathSegment, extension, this);
}
// --- object service ---
@@ -206,7 +200,7 @@ public class InMemoryService extends Abs
public String create(String repositoryId, Properties properties, String folderId, ContentStream contentStream,
VersioningState versioningState, List<String> policies, ExtensionsData extension) {
ObjectData od = fObjSvc.create(getCallContext(), repositoryId, properties, folderId, contentStream,
- versioningState, policies, extension, null);
+ versioningState, policies, extension, this);
return od.getId();
}
@@ -276,14 +270,14 @@ public class InMemoryService extends Abs
IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
Boolean includeAcl, ExtensionsData extension) {
return fObjSvc.getObject(getCallContext(), repositoryId, objectId, filter, includeAllowableActions,
- includeRelationships, renditionFilter, includePolicyIds, includeAcl, extension, null);
+ includeRelationships, renditionFilter, includePolicyIds, includeAcl, extension, this);
}
public ObjectData getObjectByPath(String repositoryId, String path, String filter, Boolean includeAllowableActions,
IncludeRelationships includeRelationships, String renditionFilter, Boolean includePolicyIds,
Boolean includeAcl, ExtensionsData extension) {
return fObjSvc.getObjectByPath(getCallContext(), repositoryId, path, filter, includeAllowableActions,
- includeRelationships, renditionFilter, includePolicyIds, includeAcl, extension, null);
+ includeRelationships, renditionFilter, includePolicyIds, includeAcl, extension, this);
}
public Properties getProperties(String repositoryId, String objectId, String filter, ExtensionsData extension) {
@@ -298,7 +292,7 @@ public class InMemoryService extends Abs
public void moveObject(String repositoryId, Holder<String> objectId, String targetFolderId, String sourceFolderId,
ExtensionsData extension) {
- fObjSvc.moveObject(getCallContext(), repositoryId, objectId, targetFolderId, sourceFolderId, extension, null);
+ fObjSvc.moveObject(getCallContext(), repositoryId, objectId, targetFolderId, sourceFolderId, extension, this);
}
public void setContentStream(String repositoryId, Holder<String> objectId, Boolean overwriteFlag,
@@ -310,7 +304,7 @@ public class InMemoryService extends Abs
public void updateProperties(String repositoryId, Holder<String> objectId, Holder<String> changeToken,
Properties properties, ExtensionsData extension) {
fObjSvc.updateProperties(getCallContext(), repositoryId, objectId, changeToken, properties, null, extension,
- null);
+ this);
}
// --- versioning service ---
@@ -323,12 +317,12 @@ public class InMemoryService extends Abs
ContentStream contentStream, String checkinComment, List<String> policies, Acl addAces, Acl removeAces,
ExtensionsData extension) {
fVerSvc.checkIn(getCallContext(), repositoryId, objectId, major, properties, contentStream, checkinComment,
- policies, addAces, removeAces, extension, null);
+ policies, addAces, removeAces, extension, this);
}
public void checkOut(String repositoryId, Holder<String> objectId, ExtensionsData extension,
Holder<Boolean> contentCopied) {
- fVerSvc.checkOut(getCallContext(), repositoryId, objectId, extension, contentCopied, null);
+ fVerSvc.checkOut(getCallContext(), repositoryId, objectId, extension, contentCopied, this);
}
public ObjectData getObjectOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
@@ -336,7 +330,7 @@ public class InMemoryService extends Abs
String renditionFilter, Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension) {
return fVerSvc.getObjectOfLatestVersion(getCallContext(), repositoryId, versionSeriesId, major, filter,
includeAllowableActions, includeRelationships, renditionFilter, includePolicyIds, includeAcl,
- extension, null);
+ extension, this);
}
public Properties getPropertiesOfLatestVersion(String repositoryId, String objectId, String versionSeriesId,
@@ -348,15 +342,15 @@ public class InMemoryService extends Abs
public List<ObjectData> getAllVersions(String repositoryId, String objectId, String versionSeriesId, String filter,
Boolean includeAllowableActions, ExtensionsData extension) {
return fVerSvc.getAllVersions(getCallContext(), repositoryId, versionSeriesId, filter, includeAllowableActions,
- extension, null);
+ extension, this);
}
// --- discovery service ---
public ObjectList getContentChanges(String repositoryId, Holder<String> changeLogToken, Boolean includeProperties,
String filter, Boolean includePolicyIds, Boolean includeAcl, BigInteger maxItems, ExtensionsData extension) {
- return super.getContentChanges(repositoryId, changeLogToken, includeProperties, filter, includePolicyIds,
- includeAcl, maxItems, extension);
+ return fDisSvc.getContentChanges(getCallContext(), repositoryId, changeLogToken, includeProperties, filter, includePolicyIds,
+ includeAcl, maxItems, extension, this);
}
public ObjectList query(String repositoryId, String statement, Boolean searchAllVersions,
@@ -370,11 +364,11 @@ public class InMemoryService extends Abs
public void addObjectToFolder(String repositoryId, String objectId, String folderId, Boolean allVersions,
ExtensionsData extension) {
- fMultiSvc.addObjectToFolder(getCallContext(), repositoryId, objectId, folderId, allVersions, extension, null);
+ fMultiSvc.addObjectToFolder(getCallContext(), repositoryId, objectId, folderId, allVersions, extension, this);
}
public void removeObjectFromFolder(String repositoryId, String objectId, String folderId, ExtensionsData extension) {
- fMultiSvc.removeObjectFromFolder(getCallContext(), repositoryId, objectId, folderId, extension, null);
+ fMultiSvc.removeObjectFromFolder(getCallContext(), repositoryId, objectId, folderId, extension, this);
}
// --- relationship service ---
@@ -457,9 +451,9 @@ public class InMemoryService extends Abs
return;
BindingsObjectFactory objectFactory = new BindingsObjectFactoryImpl();
- NavigationService navSvc = new NavigationServiceImpl(fNavSvc);
- ObjectService objSvc = new ObjectServiceImpl(fObjSvc);
- RepositoryService repSvc = new RepositoryServiceImpl(fRepSvc);
+// NavigationService navSvc = new NavigationServiceImpl(fNavSvc);
+// ObjectService objSvc = new ObjectServiceImpl(fObjSvc);
+// RepositoryService repSvc = new RepositoryServiceImpl(fRepSvc);
String levelsStr = parameters.get(ConfigConstants.FILLER_DEPTH);
int levels = 1;
@@ -490,7 +484,7 @@ public class InMemoryService extends Abs
contentSizeKB = Integer.parseInt(contentSizeKBStr);
// Create a hierarchy of folders and fill it with some documents
- ObjectGenerator gen = new ObjectGenerator(objectFactory, navSvc, objSvc, repositoryId);
+ ObjectGenerator gen = new ObjectGenerator(objectFactory, this, this, repositoryId);
gen.setNumberOfDocumentsToCreatePerFolder(docsPerLevel);
@@ -519,10 +513,10 @@ public class InMemoryService extends Abs
// Simulate a runtime context with configuration parameters
// Attach the CallContext to a thread local context that can be accessed
// from everywhere
- // RuntimeContext.attachCfg(new DummyCallContext());
-
+ DummyCallContext ctx = new DummyCallContext();
+ setCallContext(ctx);
// Build the tree
- RepositoryInfo rep = repSvc.getRepositoryInfo(repositoryId, null);
+ RepositoryInfo rep = fRepSvc.getRepositoryInfo(ctx, repositoryId, null);
String rootFolderId = rep.getRootFolderId();
try {
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java?rev=938389&r1=938388&r2=938389&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryVersioningServiceImpl.java Tue Apr 27 10:09:18 2010
@@ -30,10 +30,12 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.api.Properties;
import org.apache.chemistry.opencmis.commons.api.TypeDefinition;
import org.apache.chemistry.opencmis.commons.api.server.CallContext;
+import org.apache.chemistry.opencmis.commons.api.server.ObjectInfoHandler;
import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
import org.apache.chemistry.opencmis.commons.exceptions.CmisUpdateConflictException;
+import org.apache.chemistry.opencmis.commons.impl.server.ObjectInfoImpl;
import org.apache.chemistry.opencmis.inmemory.FilterParser;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.Document;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.DocumentVersion;
@@ -41,12 +43,10 @@ import org.apache.chemistry.opencmis.inm
import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoredObject;
import org.apache.chemistry.opencmis.inmemory.storedobj.api.VersionedDocument;
import org.apache.chemistry.opencmis.inmemory.types.PropertyCreationHelper;
-import org.apache.chemistry.opencmis.server.spi.CmisVersioningService;
-import org.apache.chemistry.opencmis.server.spi.ObjectInfoHolder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-public class InMemoryVersioningServiceImpl extends InMemoryAbstractServiceImpl implements CmisVersioningService {
+public class InMemoryVersioningServiceImpl extends InMemoryAbstractServiceImpl {
private static final Log LOG = LogFactory.getLog(InMemoryVersioningServiceImpl.class.getName());
@@ -71,7 +71,7 @@ public class InMemoryVersioningServiceIm
public ObjectData checkIn(CallContext context, String repositoryId, Holder<String> objectId, Boolean major,
Properties properties, ContentStream contentStream, String checkinComment, List<String> policies,
- Acl addAces, Acl removeAces, ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ Acl addAces, Acl removeAces, ExtensionsData extension, ObjectInfoHandler objectInfos) {
StoredObject so = checkStandardParameters(repositoryId, objectId.getValue());
String user = context.getUsername();
@@ -89,7 +89,11 @@ public class InMemoryVersioningServiceIm
// To be able to provide all Atom links in the response we need
// additional information:
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
IncludeRelationships.NONE, null, false, false, extension);
@@ -98,7 +102,7 @@ public class InMemoryVersioningServiceIm
}
public ObjectData checkOut(CallContext context, String repositoryId, Holder<String> objectId,
- ExtensionsData extension, Holder<Boolean> contentCopied, ObjectInfoHolder objectInfos) {
+ ExtensionsData extension, Holder<Boolean> contentCopied, ObjectInfoHandler objectInfos) {
StoredObject so = checkStandardParameters(repositoryId, objectId.getValue());
TypeDefinition typeDef = getTypeDefinition(repositoryId, so);
@@ -131,7 +135,11 @@ public class InMemoryVersioningServiceIm
// To be able to provide all Atom links in the response we need
// additional information:
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
ObjectData od = PropertyCreationHelper.getObjectData(fStoreManager, so, null, user, false,
IncludeRelationships.NONE, null, false, false, extension);
@@ -140,7 +148,7 @@ public class InMemoryVersioningServiceIm
}
public List<ObjectData> getAllVersions(CallContext context, String repositoryId, String versionSeriesId,
- String filter, Boolean includeAllowableActions, ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ String filter, Boolean includeAllowableActions, ExtensionsData extension, ObjectInfoHandler objectInfos) {
StoredObject so = checkStandardParameters(repositoryId, versionSeriesId);
@@ -157,7 +165,11 @@ public class InMemoryVersioningServiceIm
}
// provide information for Atom links for version series:
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
return res;
}
@@ -165,7 +177,7 @@ public class InMemoryVersioningServiceIm
public ObjectData getObjectOfLatestVersion(CallContext context, String repositoryId, String versionSeriesId,
Boolean major, String filter, Boolean includeAllowableActions, IncludeRelationships includeRelationships,
String renditionFilter, Boolean includePolicyIds, Boolean includeAcl, ExtensionsData extension,
- ObjectInfoHolder objectInfos) {
+ ObjectInfoHandler objectInfos) {
StoredObject so = checkStandardParameters(repositoryId, versionSeriesId);
ObjectData objData = null;
@@ -182,7 +194,11 @@ public class InMemoryVersioningServiceIm
throw new RuntimeException("Object is not instance of a document (version series)");
// provide information for Atom links for version series:
- fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfos);
+ if (context.isObjectInfoRequired()) {
+ ObjectInfoImpl objectInfo = new ObjectInfoImpl();
+ fAtomLinkProvider.fillInformationForAtomLinks(repositoryId, so, objectInfo);
+ objectInfos.addObjectInfo(objectInfo);
+ }
return objData;
}
@@ -209,7 +225,7 @@ public class InMemoryVersioningServiceIm
}
private ObjectData getObject(CallContext context, String repositoryId, String objectId, String filter,
- Boolean includeAllowableActions, ExtensionsData extension, ObjectInfoHolder objectInfos) {
+ Boolean includeAllowableActions, ExtensionsData extension, ObjectInfoHandler objectInfos) {
return fObjectService.getObject(context, repositoryId, objectId, filter, includeAllowableActions,
IncludeRelationships.NONE, null, false, includeAllowableActions, extension, objectInfos);