From acd2ba7073918be5c46efe0da3bc0fe8347f0a39 Mon Sep 17 00:00:00 2001 From: David Caruana Date: Thu, 29 Oct 2009 16:39:43 +0000 Subject: [PATCH] Merged CMIS063 to HEAD 15526: MOB-1100: Update Web Services to 0.62 final. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@17233 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../repo/cmis/ws/DMObjectServicePort.java | 2 +- .../repo/cmis/ws/DMRepositoryServicePort.java | 39 +++++++++++++++++-- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/source/java/org/alfresco/repo/cmis/ws/DMObjectServicePort.java b/source/java/org/alfresco/repo/cmis/ws/DMObjectServicePort.java index aca0d3124a..f74e3c450f 100644 --- a/source/java/org/alfresco/repo/cmis/ws/DMObjectServicePort.java +++ b/source/java/org/alfresco/repo/cmis/ws/DMObjectServicePort.java @@ -281,7 +281,7 @@ public class DMObjectServicePort extends DMAbstractServicePort implements Object NodeRef targetNodeRef = cmisObjectsUtils.getIdentifierInstance(targetObjectId, AlfrescoObjectType.ANY_OBJECT); Map propertiesMap = propertiesUtil.getPropertiesMap(properties); - String typeId = (String) propertiesMap.get(CMISDictionaryModel.DOCUMENT_TYPE_ID); + String typeId = (String) propertiesMap.get(CMISDictionaryModel.PROP_OBJECT_TYPE_ID); CMISTypeDefinition relationshipType = cmisDictionaryService.findType(typeId); if (relationshipType == null || relationshipType.getTypeId() == null || relationshipType.getTypeId().getScope() != CMISScope.RELATIONSHIP) diff --git a/source/java/org/alfresco/repo/cmis/ws/DMRepositoryServicePort.java b/source/java/org/alfresco/repo/cmis/ws/DMRepositoryServicePort.java index cfaed5aad1..6bd7c2f8c3 100644 --- a/source/java/org/alfresco/repo/cmis/ws/DMRepositoryServicePort.java +++ b/source/java/org/alfresco/repo/cmis/ws/DMRepositoryServicePort.java @@ -149,6 +149,7 @@ public class DMRepositoryServicePort extends DMAbstractServicePort implements Re repositoryInfoType.setProductName("Alfresco Repository (" + serverDescriptor.getEdition() + ")"); repositoryInfoType.setProductVersion(serverDescriptor.getVersion()); repositoryInfoType.setRootFolderId(propertiesUtil.getProperty(cmisService.getDefaultRootNodeRef(), CMISDictionaryModel.PROP_OBJECT_ID, (String) null)); + repositoryInfoType.setThinClientURI(repositoryId); CmisRepositoryCapabilitiesType capabilities = new CmisRepositoryCapabilitiesType(); capabilities.setCapabilityMultifiling(true); capabilities.setCapabilityUnfiling(false); @@ -180,7 +181,15 @@ public class DMRepositoryServicePort extends DMAbstractServicePort implements Re public CmisTypeDefinitionType getTypeDefinition(String repositoryId, String typeId) throws CmisException { checkRepositoryId(repositoryId); - CMISTypeDefinition typeDef = cmisDictionaryService.findType(typeId); + CMISTypeDefinition typeDef; + try + { + typeDef = cmisDictionaryService.findType(typeId); + } + catch (Exception e) + { + throw cmisObjectsUtils.createCmisException(e.toString(), EnumServiceException.INVALID_ARGUMENT); + } return getCmisTypeDefinition(typeDef, true); } @@ -202,7 +211,15 @@ public class DMRepositoryServicePort extends DMAbstractServicePort implements Re } else { - CMISTypeDefinition typeDef = cmisDictionaryService.findType(typeId); + CMISTypeDefinition typeDef = null; + try + { + typeDef = cmisDictionaryService.findType(typeId); + } + catch (Exception e) + { + throw cmisObjectsUtils.createCmisException(e.toString(), EnumServiceException.INVALID_ARGUMENT); + } if (null == typeDef) { @@ -573,22 +590,38 @@ public class DMRepositoryServicePort extends DMAbstractServicePort implements Re case DOCUMENT: CmisTypeDocumentDefinitionType documentDefinitionType = new CmisTypeDocumentDefinitionType(); setCmisTypeDefinitionProperties(documentDefinitionType, typeDef, includeProperties); - documentDefinitionType.setVersionable(typeDef.isVersionable()); + if ((null != typeDef.getParentType()) && (null != typeDef.getParentType().getTypeId())) + { + documentDefinitionType.setParentId(typeDef.getParentType().getTypeId().getId()); + } + documentDefinitionType.setVersionable(true); // FIXME: this attribute MUST be setted with typeDef.isVersionable() documentDefinitionType.setContentStreamAllowed(contentStreamAllowedEnumMapping.get(typeDef.getContentStreamAllowed())); result = documentDefinitionType; break; case FOLDER: CmisTypeFolderDefinitionType folderDefinitionType = new CmisTypeFolderDefinitionType(); + if ((null != typeDef.getParentType()) && (null != typeDef.getParentType().getTypeId())) + { + folderDefinitionType.setParentId(typeDef.getParentType().getTypeId().getId()); + } setCmisTypeDefinitionProperties(folderDefinitionType, typeDef, includeProperties); result = folderDefinitionType; break; case POLICY: CmisTypePolicyDefinitionType policyDefinitionType = new CmisTypePolicyDefinitionType(); + if ((null != typeDef.getParentType()) && (null != typeDef.getParentType().getTypeId())) + { + policyDefinitionType.setParentId(typeDef.getParentType().getTypeId().getId()); + } setCmisTypeDefinitionProperties(policyDefinitionType, typeDef, includeProperties); result = policyDefinitionType; break; case RELATIONSHIP: CmisTypeRelationshipDefinitionType relationshipDefinitionType = new CmisTypeRelationshipDefinitionType(); + if ((null != typeDef.getParentType()) && (null != typeDef.getParentType().getTypeId())) + { + relationshipDefinitionType.setParentId(typeDef.getParentType().getTypeId().getId()); + } setCmisTypeDefinitionProperties(relationshipDefinitionType, typeDef, includeProperties); result = relationshipDefinitionType; break;