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 2012/02/08 22:25:15 UTC
svn commit: r1242106 - in
/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src:
main/java/org/apache/chemistry/opencmis/inmemory/
main/java/org/apache/chemistry/opencmis/inmemory/server/
main/java/org/apache/chemis...
Author: jens
Date: Wed Feb 8 21:25:14 2012
New Revision: 1242106
URL: http://svn.apache.org/viewvc?rev=1242106&view=rev
Log:
merge type mutability code from 1.1 into main
Added:
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/RepositoryServiceMutabilityTest.java
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/TypeManagerImpl.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryServiceFactoryImpl.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/ObjectStore.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/StoreManager.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/TypeManagerCreatable.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/StoreManagerImpl.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryDocumentTypeDefinition.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryFolderTypeDefinition.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryPolicyTypeDefinition.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryRelationshipTypeDefinition.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/AbstractServiceTest.java
chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/RepositoryServiceTest.java
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/TypeManagerImpl.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/TypeManagerImpl.java?rev=1242106&r1=1242105&r2=1242106&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/TypeManagerImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/TypeManagerImpl.java Wed Feb 8 21:25:14 2012
@@ -28,6 +28,8 @@ import java.util.Map.Entry;
import org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisConstraintException;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
import org.apache.chemistry.opencmis.commons.impl.Converter;
import org.apache.chemistry.opencmis.commons.impl.dataobjects.AbstractPropertyDefinition;
import org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeDefinitionContainerImpl;
@@ -142,14 +144,14 @@ public class TypeManagerImpl implements
*/
public void addTypeDefinition(TypeDefinition cmisType) {
if (fTypesMap.containsKey(cmisType.getId())) {
- throw new RuntimeException("You cannot add type with id " + cmisType.getId()
+ throw new CmisConstraintException("You cannot add type with id " + cmisType.getId()
+ " because it already exists.");
}
TypeDefinitionContainerImpl typeContainer = new TypeDefinitionContainerImpl(cmisType);
if (!fTypesMap.containsKey(cmisType.getParentTypeId())) {
- throw new RuntimeException("Cannot add type, because parent with id " + cmisType.getParentTypeId()
+ throw new CmisConstraintException("Cannot add type, because parent with id " + cmisType.getParentTypeId()
+ " does not exist.");
}
@@ -166,6 +168,19 @@ public class TypeManagerImpl implements
// add type to type map
fTypesMap.put(cmisType.getId(), typeContainer);
}
+
+ public void updateTypeDefinition(TypeDefinition typeDefinition) {
+ throw new CmisNotSupportedException("updating a type definition is not supported.");
+ }
+
+ /**
+ * Remove a type from a type system
+ * @param typeId
+ */
+ public void deleteTypeDefinition(String typeId) {
+ fTypesMap.remove(typeId);
+ }
+
/**
* Remove all types from the type system. After this call only the default
Modified: 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/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java?rev=1242106&r1=1242105&r2=1242106&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryRepositoryServiceImpl.java Wed Feb 8 21:25:14 2012
@@ -33,7 +33,10 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
import org.apache.chemistry.opencmis.commons.impl.dataobjects.TypeDefinitionListImpl;
import org.apache.chemistry.opencmis.commons.server.CallContext;
+import org.apache.chemistry.opencmis.commons.spi.Holder;
+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.TypeManagerCreatable;
public class InMemoryRepositoryServiceImpl extends InMemoryAbstractServiceImpl {
@@ -141,6 +144,70 @@ public class InMemoryRepositoryServiceIm
return result;
}
+ public void createTypeDefinition(String repositoryId, Holder<TypeDefinition> type, ExtensionsData extension) {
+
+ TypeManagerCreatable typeManager = fStoreManager.getTypeManager(repositoryId);
+ if (null == typeManager)
+ throw new CmisInvalidArgumentException("Unknown repository " + repositoryId);
+
+ String typeId = type.getValue().getId();
+
+ if (null == typeId)
+ throw new CmisInvalidArgumentException("Cannot add type, type id is required.");
+
+ if (typeManager.getTypeById(typeId) != null)
+ throw new CmisInvalidArgumentException("Cannot add type "
+ + typeId + ", type already exists");
+
+ String parentTypeId = type.getValue().getParentTypeId();
+
+ if (null == parentTypeId)
+ throw new CmisInvalidArgumentException("Cannot add type, parent type id is required.");
+
+ if (typeManager.getTypeById(parentTypeId) == null)
+ throw new CmisInvalidArgumentException("Cannot add type "
+ + parentTypeId + " is unknown.");
+
+ typeManager.addTypeDefinition(type.getValue());
+ }
+
+ public void updateTypeDefinition(String repositoryId, Holder<TypeDefinition> type, ExtensionsData extension) {
+ String typeId = type.getValue().getId();
+ TypeManagerCreatable typeManager = fStoreManager.getTypeManager(repositoryId);
+ if (null == typeManager)
+ throw new CmisInvalidArgumentException("Unknown repository " + repositoryId);
+
+ TypeDefinitionContainer typeDefC = typeManager.getTypeById(typeId);
+ if (null == typeDefC)
+ throw new CmisInvalidArgumentException("Cannot update type unknown type id: " + typeId);
+
+ typeManager.updateTypeDefinition(type.getValue());
+ }
+
+ public void deleteTypeDefinition(String repositoryId, String typeId, ExtensionsData extension) {
+
+ TypeManagerCreatable typeManager = fStoreManager.getTypeManager(repositoryId);
+ if (null == typeManager)
+ throw new CmisInvalidArgumentException("Unknown repository " + repositoryId);
+
+ TypeDefinitionContainer typeDefC = typeManager.getTypeById(typeId);
+ if (null == typeDefC)
+ throw new CmisInvalidArgumentException("Cannot delete type unknown type id: " + typeId);
+
+ TypeDefinition typeDef = typeDefC.getTypeDefinition();
+ // TODO: re-enable when CMIS 1.1 is supported.
+// if (!typeDef.getTypeMutability().supportsDelete()) {
+// throw new CmisInvalidArgumentException("type definition " + typeId + " cannot be deleted, deletion is not supported for type id " + typeId);
+// }
+
+ ObjectStore objectStore = fStoreManager.getObjectStore(repositoryId);
+ if (objectStore.isTypeInUse(typeId)) {
+ throw new CmisInvalidArgumentException("type definition " + typeId + " cannot be deleted, type is in use.");
+ }
+
+ typeManager.deleteTypeDefinition(typeId);
+ }
+
private RepositoryInfo getRepositoryInfoFromStoreManager(String repositoryId) {
RepositoryInfo repoInfo = fStoreManager.getRepositoryInfo(repositoryId);
if (null == repoInfo || !repoInfo.getId().equals(repositoryId)) {
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryServiceFactoryImpl.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/InMemoryServiceFactoryImpl.java?rev=1242106&r1=1242105&r2=1242106&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryServiceFactoryImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/server/InMemoryServiceFactoryImpl.java Wed Feb 8 21:25:14 2012
@@ -153,6 +153,10 @@ public class InMemoryServiceFactoryImpl
threadLocalService = null;
}
+ public StoreManager getStoreManger() {
+ return storeManager;
+ }
+
private void initStorageManager(Map<String, String> parameters) {
// initialize in-memory management
String repositoryClassName = (String) parameters.get(ConfigConstants.REPOSITORY_CLASS);
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/ObjectStore.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/api/ObjectStore.java?rev=1242106&r1=1242105&r2=1242106&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/ObjectStore.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/ObjectStore.java Wed Feb 8 21:25:14 2012
@@ -227,4 +227,14 @@ public interface ObjectStore {
*/
Acl applyAcl(StoredObject so, Acl aces, AclPropagation aclPropagation, String principalId);
+ /**
+ * Check if this store contains any object with the given type id
+ *
+ * @param typeId
+ * id of type definition to check
+ * @return
+ * true if at least one object in the store has the given type, false
+ * if no objects exist having this type
+ */
+ boolean isTypeInUse(String typeId);
}
\ No newline at end of file
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/StoreManager.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/api/StoreManager.java?rev=1242106&r1=1242105&r2=1242106&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/StoreManager.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/StoreManager.java Wed Feb 8 21:25:14 2012
@@ -27,7 +27,6 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
import org.apache.chemistry.opencmis.commons.enums.IncludeRelationships;
import org.apache.chemistry.opencmis.commons.spi.BindingsObjectFactory;
-import org.apache.chemistry.opencmis.server.support.TypeManager;
/**
* interface to a repository implementation. This interface is the entry point
@@ -162,7 +161,7 @@ public interface StoreManager {
* @return
* type manager for this repository or null if repository is unknown
*/
- TypeManager getTypeManager(String repositoryId);
+ TypeManagerCreatable getTypeManager(String repositoryId);
/**
* Execute a query against the repository (same parameter as the discovery service
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/TypeManagerCreatable.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/api/TypeManagerCreatable.java?rev=1242106&r1=1242105&r2=1242106&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/TypeManagerCreatable.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/api/TypeManagerCreatable.java Wed Feb 8 21:25:14 2012
@@ -23,14 +23,30 @@ import org.apache.chemistry.opencmis.ser
public interface TypeManagerCreatable extends TypeManager {
+
/**
* Add a type to the type system. Add all properties from inherited types,
* add type to children of parent types.
- *
- * @param repositoryId
- * repository to which the type is added
+ *
* @param cmisType
* new type to add
- */
- void addTypeDefinition(TypeDefinition cmisType);
+ */
+ public abstract void addTypeDefinition(TypeDefinition typeDefinition);
+
+ /**
+ * Modify an existing type definition
+ *
+ * @param typeDefinition
+ * type to be modified
+ */
+ public void updateTypeDefinition(TypeDefinition typeDefinition);
+
+ /**
+ * Delete a type from the type system. Delete will succeed only if type is not in use.
+ * Otherwise an exception is thrown
+ *
+ * @param cmisType
+ * type to delete
+ */
+ public abstract void deleteTypeDefinition(String typeId);
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.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/ObjectStoreImpl.java?rev=1242106&r1=1242105&r2=1242106&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/storedobj/impl/ObjectStoreImpl.java Wed Feb 8 21:25:14 2012
@@ -588,4 +588,14 @@ public class ObjectStoreImpl implements
return result;
}
+ public boolean isTypeInUse(String typeId) {
+ // iterate over all the objects and check for each if the type matches
+ for (String objectId : getIds()) {
+ StoredObject so = getObjectById(objectId);
+ if (so.getTypeId().equals(typeId))
+ return true;
+ }
+ return false;
+ }
+
}
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=1242106&r1=1242105&r2=1242106&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 Wed Feb 8 21:25:14 2012
@@ -61,6 +61,7 @@ import org.apache.chemistry.opencmis.inm
import org.apache.chemistry.opencmis.inmemory.storedobj.api.CmisServiceValidator;
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.TypeManagerCreatable;
import org.apache.chemistry.opencmis.server.support.TypeManager;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -480,8 +481,8 @@ public class StoreManagerImpl implements
return tdcClone;
}
- public TypeManager getTypeManager(String repositoryId) {
- TypeManager typeManager = fMapRepositoryToTypeManager.get(repositoryId);
+ public TypeManagerCreatable getTypeManager(String repositoryId) {
+ TypeManagerCreatable typeManager = fMapRepositoryToTypeManager.get(repositoryId);
return typeManager;
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryDocumentTypeDefinition.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/types/InMemoryDocumentTypeDefinition.java?rev=1242106&r1=1242105&r2=1242106&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryDocumentTypeDefinition.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryDocumentTypeDefinition.java Wed Feb 8 21:25:14 2012
@@ -102,6 +102,13 @@ public class InMemoryDocumentTypeDefinit
setIsIncludedInSupertypeQuery(true);
setIsQueryable(false);
+ // TODO: add with CMIS 1.1 extensions
+// TypeMutabilityCapabilitiesImpl caps = new TypeMutabilityCapabilitiesImpl();
+// caps.setSupportsCreate(createAndDeletable);
+// caps.setSupportsUpdate(false);
+// caps.setSupportsDelete(createAndDeletable);
+// super.setTypeMutability(caps);
+
Map<String, PropertyDefinition<?>> props = new HashMap<String, PropertyDefinition<?>>();
setPropertyDefinitions(props); // set initial empty set of properties
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryFolderTypeDefinition.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/types/InMemoryFolderTypeDefinition.java?rev=1242106&r1=1242105&r2=1242106&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryFolderTypeDefinition.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryFolderTypeDefinition.java Wed Feb 8 21:25:14 2012
@@ -98,6 +98,13 @@ public class InMemoryFolderTypeDefinitio
setIsIncludedInSupertypeQuery(true);
setIsQueryable(false);
+ // TODO: add with CMIS 1.1 extensions
+// TypeMutabilityCapabilitiesImpl caps = new TypeMutabilityCapabilitiesImpl();
+// caps.setSupportsCreate(createAndDeletable);
+// caps.setSupportsUpdate(false);
+// caps.setSupportsDelete(createAndDeletable);
+// super.setTypeMutability(caps);
+
Map<String, PropertyDefinition<?>> props = new HashMap<String, PropertyDefinition<?>>();
setPropertyDefinitions(props); // set initial empty set of properties
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryPolicyTypeDefinition.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/types/InMemoryPolicyTypeDefinition.java?rev=1242106&r1=1242105&r2=1242106&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryPolicyTypeDefinition.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryPolicyTypeDefinition.java Wed Feb 8 21:25:14 2012
@@ -98,6 +98,13 @@ public class InMemoryPolicyTypeDefinitio
setIsIncludedInSupertypeQuery(true);
setIsQueryable(false);
+ // TODO: add with CMIS 1.1 extensions
+// TypeMutabilityCapabilitiesImpl caps = new TypeMutabilityCapabilitiesImpl();
+// caps.setSupportsCreate(createAndDeletable);
+// caps.setSupportsUpdate(false);
+// caps.setSupportsDelete(createAndDeletable);
+// super.setTypeMutability(caps);
+
// set base properties
Map<String, PropertyDefinition<?>> props = new HashMap<String, PropertyDefinition<?>>();
setPropertyDefinitions(props); // set initial empty set of properties
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryRelationshipTypeDefinition.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/types/InMemoryRelationshipTypeDefinition.java?rev=1242106&r1=1242105&r2=1242106&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryRelationshipTypeDefinition.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/main/java/org/apache/chemistry/opencmis/inmemory/types/InMemoryRelationshipTypeDefinition.java Wed Feb 8 21:25:14 2012
@@ -99,6 +99,13 @@ public class InMemoryRelationshipTypeDef
setIsIncludedInSupertypeQuery(true);
setIsQueryable(false);
+ // TODO: add with CMIS 1.1 extensions
+// TypeMutabilityCapabilitiesImpl caps = new TypeMutabilityCapabilitiesImpl();
+// caps.setSupportsCreate(createAndDeletable);
+// caps.setSupportsUpdate(false);
+// caps.setSupportsDelete(createAndDeletable);
+// super.setTypeMutability(caps);
+
// relationship specifics
setAllowedSourceTypes(null);
setAllowedTargetTypes(null);
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/AbstractServiceTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/AbstractServiceTest.java?rev=1242106&r1=1242105&r2=1242106&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/AbstractServiceTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/AbstractServiceTest.java Wed Feb 8 21:25:14 2012
@@ -58,7 +58,6 @@ import org.apache.chemistry.opencmis.com
import org.apache.chemistry.opencmis.commons.spi.ObjectService;
import org.apache.chemistry.opencmis.commons.spi.RepositoryService;
import org.apache.chemistry.opencmis.commons.spi.VersioningService;
-import org.apache.chemistry.opencmis.inmemory.RepositoryServiceTest.UnitTestRepositoryInfo;
import org.apache.chemistry.opencmis.inmemory.server.InMemoryServiceFactoryImpl;
import org.apache.chemistry.opencmis.inmemory.storedobj.impl.ContentStreamDataImpl;
import org.apache.commons.logging.Log;
@@ -100,6 +99,10 @@ public class AbstractServiceTest {
fTypeCreatorClassName = typeCreatorClassName;
}
+ protected String getTypeCreatorClass() {
+ return fTypeCreatorClassName;
+ }
+
protected void setUp() {
// super.setUp();
LOG.debug("Initializing InMemory Test with type creator class: " + fTypeCreatorClassName);
@@ -109,9 +112,6 @@ public class AbstractServiceTest {
parameters.put(ConfigConstants.TYPE_CREATOR_CLASS, fTypeCreatorClassName);
parameters.put(ConfigConstants.REPOSITORY_ID, REPOSITORY_ID);
- // attach repository info to the session:
- parameters.put(ConfigConstants.REPOSITORY_INFO_CREATOR_CLASS, UnitTestRepositoryInfo.class.getName());
-
// give subclasses a chance to provide additional parameters for special
// tests
addParameters(parameters);
@@ -415,4 +415,9 @@ public class AbstractServiceTest {
assertTrue(pd.getFirstValue() instanceof String);
return (String) pd.getFirstValue();
}
+
+ protected void deleteDocument(String docId) {
+ fObjSvc.deleteObject(fRepositoryId, docId, true, null);
+ }
+
}
Added: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/RepositoryServiceMutabilityTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/RepositoryServiceMutabilityTest.java?rev=1242106&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/RepositoryServiceMutabilityTest.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/RepositoryServiceMutabilityTest.java Wed Feb 8 21:25:14 2012
@@ -0,0 +1,243 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.chemistry.opencmis.inmemory;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.chemistry.opencmis.commons.data.ContentStream;
+import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
+import org.apache.chemistry.opencmis.commons.data.Properties;
+import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
+import org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
+import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
+import org.apache.chemistry.opencmis.commons.enums.Updatability;
+import org.apache.chemistry.opencmis.commons.enums.VersioningState;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisNotSupportedException;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerDefinitionImpl;
+import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringDefinitionImpl;
+import org.apache.chemistry.opencmis.commons.spi.Holder;
+import org.apache.chemistry.opencmis.inmemory.server.InMemoryObjectServiceImpl;
+import org.apache.chemistry.opencmis.inmemory.server.InMemoryRepositoryServiceImpl;
+import org.apache.chemistry.opencmis.inmemory.server.InMemoryServiceFactoryImpl;
+import org.apache.chemistry.opencmis.inmemory.storedobj.api.StoreManager;
+import org.apache.chemistry.opencmis.inmemory.types.InMemoryDocumentTypeDefinition;
+import org.apache.chemistry.opencmis.inmemory.types.PropertyCreationHelper;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Temporary test class until CMIS 1.1 bindings are completed. Until then
+ * we use a special setup procedure to directly connect to the repository
+ * service implementation of InMemory.
+ *
+ * @author Jens
+ */
+public class RepositoryServiceMutabilityTest extends AbstractServiceTest {
+
+ private static final Log log = LogFactory.getLog(RepositoryServiceTest.class);
+ private static final String REPOSITORY_ID = "UnitTestRepository";
+ private static final String TYPE_ID_MUTABILITY = "BookTypeAddedLater";
+
+ private InMemoryRepositoryServiceImpl repSvc;
+ private InMemoryObjectServiceImpl objSvc;
+
+ @Override
+ @Before
+ public void setUp() {
+ super.setTypeCreatorClass(UnitTestTypeSystemCreator.class.getName());
+ super.setUp();
+
+ Map<String, String> parameters = new HashMap<String, String>();
+
+ // attach repository info to the session:
+ parameters.put(ConfigConstants.TYPE_CREATOR_CLASS, getTypeCreatorClass());
+ parameters.put(ConfigConstants.REPOSITORY_ID, REPOSITORY_ID);
+
+ InMemoryServiceFactoryImpl factory = new InMemoryServiceFactoryImpl();
+ factory.init(parameters);
+ StoreManager storeManager = factory.getStoreManger();
+ repSvc = new InMemoryRepositoryServiceImpl(storeManager);
+ objSvc = new InMemoryObjectServiceImpl(storeManager);
+ }
+
+ @Override
+ @After
+ public void tearDown() {
+ super.tearDown();
+ }
+
+ @Test
+ public void testRepositoryInfo() {
+ log.info("starting testRepositoryInfo() ...");
+ List<RepositoryInfo> repositories = repSvc.getRepositoryInfos(fTestCallContext, null);
+ assertNotNull(repositories);
+ assertFalse(repositories.isEmpty());
+
+ log.info("geRepositoryInfo(), found " + repositories.size() + " repository/repositories).");
+
+ for (RepositoryInfo repository : repositories) {
+ RepositoryInfo repository2 = repSvc.getRepositoryInfo(fTestCallContext, repository.getId(), null);
+ assertNotNull(repository2);
+ assertEquals(repository.getId(), repository2.getId());
+ log.info("found repository" + repository2.getId());
+ }
+
+ log.info("... testRepositoryInfo() finished.");
+ }
+
+
+ @Test
+ public void testTypeMutabilityCreation() throws Exception {
+ log.info("");
+ log.info("starting testTypeMutabilityCreation() ...");
+ TypeDefinition typeDefRef = getTypeForAddingAtRuntime();
+ String repositoryId = getRepositoryId();
+ // add type.
+ repSvc.createTypeDefinition(repositoryId, new Holder<TypeDefinition>(typeDefRef), null);
+ TypeDefinition type = repSvc.getTypeDefinition(fTestCallContext, repositoryId, typeDefRef.getId(), null);
+ assertEquals(typeDefRef.getId(), type.getId());
+ assertEquals(typeDefRef.getDescription(), type.getDescription());
+ assertEquals(typeDefRef.getDisplayName(), type.getDisplayName());
+ assertEquals(typeDefRef.getLocalName(), type.getLocalName());
+ assertEquals(typeDefRef.getLocalNamespace(), type.getLocalNamespace());
+ RepositoryServiceTest.containsAllBasePropertyDefinitions(type);
+ log.info("... testTypeMutabilityCreation() finished.");
+ }
+
+ @Test
+ public void testTypeMutabilityUpdate() throws Exception {
+ log.info("");
+ log.info("starting testTypeMutabilityUpdate() ...");
+ TypeDefinition typeDefRef = getTypeForAddingAtRuntime();
+ String repositoryId = getRepositoryId();
+ repSvc.createTypeDefinition(repositoryId, new Holder<TypeDefinition>(typeDefRef), null);
+ // update type.
+ try {
+ repSvc.updateTypeDefinition(repositoryId, new Holder<TypeDefinition>(typeDefRef), null);
+ fail("updating a type should throw exception.");
+ } catch (Exception e) {
+ assert(e instanceof CmisNotSupportedException);
+ }
+ log.info("... testTypeMutabilityUpdate() finished.");
+ }
+ @Test
+ public void testTypeMutabilityDeletion() throws Exception {
+ log.info("");
+ log.info("starting testTypeMutabilityDeletion() ...");
+ TypeDefinition typeDefRef = getTypeForAddingAtRuntime();
+ String repositoryId = getRepositoryId();
+ repSvc.createTypeDefinition(repositoryId, new Holder<TypeDefinition>(typeDefRef), null);
+
+ String docId = createDoc("Book1", getRootFolderId(REPOSITORY_ID), TYPE_ID_MUTABILITY);
+
+ // try deleting type, should fail, because in use.
+ try {
+ repSvc.deleteTypeDefinition(repositoryId, TYPE_ID_MUTABILITY, null);
+ fail("deleting a type which is in use should throw exception.");
+ } catch (Exception e) {
+ assert(e instanceof CmisInvalidArgumentException);
+ }
+
+ objSvc.deleteObject(fTestCallContext, fRepositoryId, docId, true, null);
+
+ try {
+ repSvc.deleteTypeDefinition(repositoryId, TYPE_ID_MUTABILITY, null);
+ } catch (Exception e) {
+ fail("deleting a type which is in not in use should not throw exception! Exception is: " + e);
+ }
+
+ try {
+ repSvc.getTypeDefinition(fTestCallContext, repositoryId, TYPE_ID_MUTABILITY, null);
+ fail("getting a type after it was deleted should fail.");
+ } catch (Exception e) {
+ }
+
+ try {
+ repSvc.deleteTypeDefinition(repositoryId, BaseTypeId.CMIS_DOCUMENT.name(), null);
+ fail("deleting a CMIS base type throw exception.");
+ } catch (Exception e) {
+ assert(e instanceof CmisInvalidArgumentException);
+ }
+ try {
+ repSvc.deleteTypeDefinition(repositoryId, BaseTypeId.CMIS_FOLDER.name(), null);
+ fail("deleting a CMIS base type throw exception.");
+ } catch (Exception e) {
+ assert(e instanceof CmisInvalidArgumentException);
+ }
+
+ log.info("... testTypeMutabilityDeletion() finished.");
+ }
+
+ private String getRepositoryId() {
+ List<RepositoryInfo> repositories = repSvc.getRepositoryInfos(fTestCallContext, null);
+ RepositoryInfo repository = repositories.get(0);
+ assertNotNull(repository);
+ return repository.getId();
+ }
+
+ private String getRootFolderId(String repositoryId) {
+ RepositoryInfo repository = repSvc.getRepositoryInfo(fTestCallContext, repositoryId, null);
+ assertNotNull(repository);
+ return repository.getRootFolderId();
+ }
+
+ private TypeDefinition getTypeForAddingAtRuntime() {
+
+ InMemoryDocumentTypeDefinition cmisLaterType = new InMemoryDocumentTypeDefinition(TYPE_ID_MUTABILITY,
+ "Type with two properties", InMemoryDocumentTypeDefinition.getRootDocumentType());
+
+ Map<String, PropertyDefinition<?>> propertyDefinitions = new HashMap<String, PropertyDefinition<?>>();
+
+ PropertyIntegerDefinitionImpl prop1 = PropertyCreationHelper.createIntegerDefinition("Number",
+ "Sample Int Property", Updatability.READWRITE);
+ propertyDefinitions.put(prop1.getId(), prop1);
+
+ PropertyStringDefinitionImpl prop2 = PropertyCreationHelper.createStringDefinition("Title",
+ "Sample String Property", Updatability.READWRITE);
+ propertyDefinitions.put(prop2.getId(), prop2);
+
+ cmisLaterType.addCustomPropertyDefinitions(propertyDefinitions);
+
+ return cmisLaterType;
+ }
+
+ String createDoc(String name, String folderId, String typeId) {
+ ContentStream contentStream = null;
+ List<String> policies = null;
+ ExtensionsData extension = null;
+
+ Properties props = createDocumentProperties(name, typeId);
+
+ String id = objSvc.createDocument(fTestCallContext, fRepositoryId, props, folderId, contentStream,
+ VersioningState.NONE, policies, null, null, extension);
+ return id;
+ }
+}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/RepositoryServiceTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/RepositoryServiceTest.java?rev=1242106&r1=1242105&r2=1242106&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/RepositoryServiceTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-server/chemistry-opencmis-server-inmemory/src/test/java/org/apache/chemistry/opencmis/inmemory/RepositoryServiceTest.java Wed Feb 8 21:25:14 2012
@@ -27,41 +27,19 @@ import static org.junit.Assert.fail;
import java.math.BigInteger;
import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.apache.chemistry.opencmis.commons.PropertyIds;
import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
-import org.apache.chemistry.opencmis.commons.definitions.Choice;
import org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionContainer;
import org.apache.chemistry.opencmis.commons.definitions.TypeDefinitionList;
import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
-import org.apache.chemistry.opencmis.commons.enums.CapabilityAcl;
-import org.apache.chemistry.opencmis.commons.enums.CapabilityChanges;
-import org.apache.chemistry.opencmis.commons.enums.CapabilityContentStreamUpdates;
-import org.apache.chemistry.opencmis.commons.enums.CapabilityJoin;
-import org.apache.chemistry.opencmis.commons.enums.CapabilityQuery;
-import org.apache.chemistry.opencmis.commons.enums.CapabilityRenditions;
import org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.ChoiceImpl;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDateTimeDefinitionImpl;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyDecimalDefinitionImpl;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyHtmlDefinitionImpl;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIdDefinitionImpl;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyIntegerDefinitionImpl;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyStringDefinitionImpl;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.PropertyUriDefinitionImpl;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.RepositoryCapabilitiesImpl;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.RepositoryInfoImpl;
import org.apache.chemistry.opencmis.inmemory.types.DocumentTypeCreationHelper;
-import org.apache.chemistry.opencmis.inmemory.types.InMemoryDocumentTypeDefinition;
-import org.apache.chemistry.opencmis.inmemory.types.PropertyCreationHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.After;
@@ -77,46 +55,8 @@ public class RepositoryServiceTest exten
private static final Log log = LogFactory.getLog(RepositoryServiceTest.class);
private static final String REPOSITORY_ID = "UnitTestRepository";
+ private static final String TYPE_ID_MUTABILITY = "BookTypeAddedLater";
- public static class UnitTestRepositoryInfo implements RepositoryInfoCreator {
-
- public RepositoryInfo createRepositoryInfo() {
- RepositoryCapabilitiesImpl caps = new RepositoryCapabilitiesImpl();
- caps.setAllVersionsSearchable(false);
- caps.setCapabilityAcl(CapabilityAcl.NONE);
- caps.setCapabilityChanges(CapabilityChanges.NONE);
- caps.setCapabilityContentStreamUpdates(CapabilityContentStreamUpdates.ANYTIME);
- caps.setCapabilityJoin(CapabilityJoin.NONE);
- caps.setCapabilityQuery(CapabilityQuery.NONE);
- caps.setCapabilityRendition(CapabilityRenditions.NONE);
- caps.setIsPwcSearchable(false);
- caps.setIsPwcUpdatable(true);
- caps.setSupportsGetDescendants(true);
- caps.setSupportsGetFolderTree(true);
- caps.setSupportsMultifiling(false);
- caps.setSupportsUnfiling(true);
- caps.setSupportsVersionSpecificFiling(false);
-
- RepositoryInfoImpl repositoryInfo = new RepositoryInfoImpl();
- repositoryInfo.setId(REPOSITORY_ID);
- repositoryInfo.setName("InMemory Repository");
- repositoryInfo.setDescription("InMemory Test Repository");
- repositoryInfo.setCmisVersionSupported("0.7");
- repositoryInfo.setCapabilities(caps);
- repositoryInfo.setRootFolder("/");
- repositoryInfo.setAclCapabilities(null);
- repositoryInfo.setPrincipalAnonymous("anonymous");
- repositoryInfo.setPrincipalAnyone("anyone");
- repositoryInfo.setThinClientUri(null);
- repositoryInfo.setChangesIncomplete(Boolean.TRUE);
- repositoryInfo.setChangesOnType(null);
- repositoryInfo.setLatestChangeLogToken(null);
- repositoryInfo.setVendorName("OpenCMIS");
- repositoryInfo.setProductName("OpenCMIS Client");
- repositoryInfo.setProductVersion("0.1");
- return repositoryInfo;
- }
- }
@Override
@Before
@@ -493,6 +433,7 @@ public class RepositoryServiceTest exten
log.info("... testInheritedProperties() finished.");
}
+
private String getRepositoryId() {
List<RepositoryInfo> repositories = fRepSvc.getRepositoryInfos(null);
RepositoryInfo repository = repositories.get(0);
@@ -500,15 +441,6 @@ public class RepositoryServiceTest exten
return repository.getId();
}
- // private boolean containsTypeById(String typeId,
- // List<TypeDefinitionContainer> types) {
- // for (TypeDefinitionContainer type : types) {
- // if (type.getTypeDefinition().getId().equals(typeId))
- // return true;
- // }
- // return false;
- // }
-
private boolean containsTypeByIdRecursive(String typeId, List<TypeDefinitionContainer> types) {
for (TypeDefinitionContainer type : types) {
if (containsTypeByIdRecursive(typeId, type)) {
@@ -531,7 +463,7 @@ public class RepositoryServiceTest exten
return false;
}
- private static void containsAllBasePropertyDefinitions(TypeDefinition typeDef) {
+ static void containsAllBasePropertyDefinitions(TypeDefinition typeDef) {
Map<String, PropertyDefinition<?>> propDefs = typeDef.getPropertyDefinitions();
String baseTypeId = typeDef.getBaseTypeId().value();
@@ -601,4 +533,5 @@ public class RepositoryServiceTest exten
return flattened;
}
+
}