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