diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/atomentry.lib.atom.ftl b/config/alfresco/templates/webscripts/org/alfresco/cmis/atomentry.lib.atom.ftl index 988ad51ee6..05cd855ee8 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/cmis/atomentry.lib.atom.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/atomentry.lib.atom.ftl @@ -209,7 +209,14 @@ [#if row.nodes??] [#assign node = row.nodes?first] ${node.properties.creator!""} -[@contentstream node/] + +[#-- TODO: review if consistent with ATOM --] +[#if node.isDocument] + [@contentstream node/] +[#else] + ${node.id} [#-- TODO --] +[/#if] + urn:uuid:${node.id} ${node.name} @@ -219,13 +226,11 @@ [#-- TODO: spec issue: baseType to become formal property --] -[#if node??] - [#if node.isDocument] - [@propvalue "BaseType" "document" "STRING"/] - [#else] - [@propvalue "BaseType" "folder" "STRING"/] - [/#if] -[/#if] +[#if node.isDocument] + [@propvalue "BaseType" "document" "STRING"/] +[#else] + [@propvalue "BaseType" "folder" "STRING"/] +[/#if] [#assign values = row.values] [#list values?keys as colname] diff --git a/source/java/org/alfresco/repo/cmis/rest/test/CMISTest.java b/source/java/org/alfresco/repo/cmis/rest/test/CMISTest.java index d03fa64890..d410b19448 100644 --- a/source/java/org/alfresco/repo/cmis/rest/test/CMISTest.java +++ b/source/java/org/alfresco/repo/cmis/rest/test/CMISTest.java @@ -1249,6 +1249,27 @@ public class CMISTest extends BaseCMISWebScriptTest // retrieve query request document String queryDoc = loadString("/org/alfresco/repo/cmis/rest/test/query.cmisquery.xml"); + { + // construct structured query + String query = "SELECT * FROM Folder " + + "WHERE ObjectId = '" + testFolderObject.getObjectId().getValue() + "'"; + String queryReq = queryDoc.replace("${STATEMENT}", query); + queryReq = queryReq.replace("${SKIPCOUNT}", "0"); + queryReq = queryReq.replace("${PAGESIZE}", "5"); + + // issue structured query + Response queryRes = sendRequest(new PostRequest(queryHREF.toString(), queryReq.getBytes(), CMISConstants.MIMETYPE_QUERY), 200); + assertNotNull(queryRes); + Feed queryFeed = abdera.parseFeed(new StringReader(queryRes.getContentAsString()), null); + assertNotNull(queryFeed); + assertEquals(1, queryFeed.getEntries().size()); + assertNotNull(queryFeed.getEntry(testFolder.getId().toString())); + CMISObject result1 = queryFeed.getEntry(testFolder.getId().toString()).getExtension(CMISConstants.OBJECT); + assertEquals(testFolderObject.getName().getValue(), result1.getName().getValue()); + assertEquals(testFolderObject.getObjectId().getValue(), result1.getObjectId().getValue()); + assertEquals(testFolderObject.getObjectTypeId().getValue(), result1.getObjectTypeId().getValue()); + } + { // construct structured query String query = "SELECT * FROM Document " + @@ -1270,7 +1291,7 @@ public class CMISTest extends BaseCMISWebScriptTest assertEquals(document1Object.getObjectId().getValue(), result1.getObjectId().getValue()); assertEquals(document1Object.getObjectTypeId().getValue(), result1.getObjectTypeId().getValue()); } - + if (fulltextCapability.equals("fulltextonly") || fulltextCapability.equals("fulltextandstructured")) { // construct fulltext query