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 16d61ed89f..5c991f3cd1 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
@@ -1,95 +1,138 @@
-<#import "/org/alfresco/cmis/cmis.lib.atom.ftl" as cmisLib/>
+[#ftl]
-<#-- -->
-<#-- ATOM Entry for Document -->
-<#-- -->
+[#-- --]
+[#-- ATOM Entry for Document --]
+[#-- --]
-<#macro document node>
-<#-- ATOM syndication -->
+[#macro document node]
${node.properties.creator}
urn:uuid:${node.id}
+
+
+
+
+[@documentCMISLinks node=node/]
${xmldate(node.properties.created)}
${node.properties.description!node.properties.title!cropContent(node, 50)}
${node.name}
${xmldate(node.properties.modified)}
-
-
-<#-- ATOM Publishing Protocol -->
+[@documentCMISProps node=node/]
${xmldate(node.properties.modified)}
-
-
-<#-- Alfresco props -->
${absurl(url.context)}${node.icon16}
-#macro>
+[/#macro]
-<#-- -->
-<#-- ATOM Entry for Version -->
-<#-- -->
+[#macro documentCMISLinks node]
+
+
+
+
+
+[/#macro]
-<#macro version node version>
-<#-- ATOM syndication -->
-${version.label} ${cropContent(node.properties.content, 50)}
+[#macro documentCMISProps node]
+
+ ${xmldate(node.properties.created)}
+ ${xmldate(node.properties.modified)}
+ ${node.nodeRef}
+ ${node.properties.content.size}
+ document
+ ${node.properties.creator}
+ ${node.properties.modifier}
+ ${node.properties.content.mimetype}
+ ${node.name}
+ ${absurl(url.serviceContext)}/api/node/${node.nodeRef.storeRef.protocol}/${node.nodeRef.storeRef.identifier}/${node.nodeRef.id}/content
+
+[/#macro]
+
+
+[#-- --]
+[#-- ATOM Entry for Version --]
+[#-- --]
+
+[#macro version node version]
${node.properties.creator}
urn:uuid:${node.id}
+
+
+[@documentCMISLinks node=node/]
${xmldate(node.properties.created)}
${node.properties.description!node.properties.title!cropContent(node.properties.content, 50)}
${node.name}
${xmldate(node.properties.modified)}
-
-
-<#-- ATOM Publishing Protocol -->
+[@documentCMISProps node=node/]
${xmldate(node.properties.modified)}
-<#-- Alfresco props -->
${absurl(url.context)}${node.icon16}
-#macro>
+[/#macro]
-<#-- -->
-<#-- ATOM Entry for Private Working Copy -->
-<#-- -->
-<#macro pwc node>
-<#-- ATOM syndication -->
+[#-- --]
+[#-- ATOM Entry for Private Working Copy --]
+[#-- --]
+
+[#macro pwc node]
${node.properties.creator}
urn:uuid:${node.id}
-${xmldate(node.properties.created)}
-${node.properties.description!node.properties.title!cropContent(node.properties.content, 50)}
-${node.name}
-${xmldate(node.properties.modified)}
-<#-- ATOM Publishing Protocol -->
-${xmldate(node.properties.modified)}
-<#-- TODO: the edit link refers to the updatable node resource, allowing updates on PWCs without checkin -->
-<#-- Alfresco props -->
-${absurl(url.context)}${node.icon16}
-#macro>
-
-<#-- -->
-<#-- ATOM Entry for Folder -->
-<#-- -->
-
-<#macro folder node>
-<#-- ATOM syndication -->
-${node.properties.creator}
-${node.id} <#-- TODO -->
-urn:uuid:${node.id}
+[@documentCMISLinks node=node/]
${xmldate(node.properties.created)}
-${node.properties.description!node.properties.title} <#-- TODO -->
+${node.properties.description!node.properties.title!cropContent(node.properties.content, 50)}
${node.name}
${xmldate(node.properties.modified)}
-
-<#-- ATOM Publishing Protocol -->
+[@documentCMISProps node=node/]
${xmldate(node.properties.modified)}
-
-<#-- Alfresco props -->
+[#-- TODO: the edit link refers to the updatable node resource, allowing updates on PWCs without checkin --]
${absurl(url.context)}${node.icon16}
-#macro>
+[/#macro]
-<#-- Helper to render Alfresco content type to Atom content type -->
-<#macro contenttype type><#if type == "text/html">text<#elseif type == "text/xhtml">xhtml<#elseif type == "text/plain">text<#else>${type}#if>#macro>
+[#-- --]
+[#-- ATOM Entry for Folder --]
+[#-- --]
+
+[#macro folder node]
+${node.properties.creator}
+${node.id} [#-- TODO --]
+urn:uuid:${node.id}
+
+
+[@folderCMISLinks node=node/]
+${xmldate(node.properties.created)}
+${node.properties.description!node.properties.title} [#-- TODO --]
+${node.name}
+${xmldate(node.properties.modified)}
+[@folderCMISProps node=node/]
+${xmldate(node.properties.modified)}
+${absurl(url.context)}${node.icon16}
+[/#macro]
+
+[#macro folderCMISLinks node]
+
+
+
+
+
+[/#macro]
+
+[#macro folderCMISProps node]
+
+ ${xmldate(node.properties.created)}
+ ${xmldate(node.properties.modified)}
+ ${node.nodeRef}
+ ${node.parent.nodeRef}
+ folder
+ ${node.properties.creator}
+ ${node.properties.modifier}
+ ${node.name}
+
+[/#macro]
+
+
+
+[#-- Helper to render Alfresco content type to Atom content type --]
+[#macro contenttype type][#if type == "text/html"]text[#elseif type == "text/xhtml"]xhtml[#elseif type == "text/plain"]text<#else>${type}[/#if][/#macro]
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/atomfeed.lib.atom.ftl b/config/alfresco/templates/webscripts/org/alfresco/cmis/atomfeed.lib.atom.ftl
index f868d189df..46d4d0679b 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/atomfeed.lib.atom.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/atomfeed.lib.atom.ftl
@@ -1,23 +1,47 @@
-<#-- -->
-<#-- ATOM Feed for Node -->
-<#-- -->
+[#ftl]
-<#macro node node>
-${node.properties.creator!""}
-Alfresco (${server.edition})
-${absurl(url.context)}/images/logo/AlfrescoLogo16.ico
-urn:uuid:${node.id}
-${node.name}
-${xmldate(node.properties.modified)}
-
-#macro>
+[#-- --]
+[#-- ATOM Feed (generic) --]
+[#-- --]
-<#macro generic id title author="System">
+[#macro generic id title author="System"]
${author}
Alfresco (${server.edition})
${absurl(url.context)}/images/logo/AlfrescoLogo16.ico
${id}
+
+[#nested] [#-- NOTE: Custom links --]
${title}
${xmldate(date)}
+[/#macro]
+
+
+[#-- --]
+[#-- ATOM Feed for Node --]
+[#-- --]
+
+[#macro node node]
+${node.properties.creator!""}
+Alfresco (${server.edition})
+${absurl(url.context)}/images/logo/AlfrescoLogo16.ico
+urn:uuid:${node.id}
-#macro>
\ No newline at end of file
+[#nested] [#-- NOTE: Custom links --]
+${node.name}
+${xmldate(node.properties.modified)}
+[/#macro]
+
+
+[#-- --]
+[#-- CMIS Paging --]
+[#-- --]
+
+[#macro hasMore more]
+[#if more?is_string && more = "true"]
+ true
+[#elseif more?is_string && more = "false"]
+ false
+[#else]
+ ${more.hasNextPage?string}
+[/#if]
+[/#macro]
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/cmis.lib.atom.ftl b/config/alfresco/templates/webscripts/org/alfresco/cmis/cmis.lib.atom.ftl
deleted file mode 100644
index 1bd8024ba5..0000000000
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/cmis.lib.atom.ftl
+++ /dev/null
@@ -1,69 +0,0 @@
-<#-- -->
-<#-- CMIS Extensions for Document -->
-<#-- -->
-
-<#macro document node>
-
-
-
-
-
-
- ${node.nodeRef}
- document
- ${node.properties.creator}
- ${xmldate(node.properties.created)}
- ${node.properties.modifier}
- ${xmldate(node.properties.modified)}
- ${node.properties.content.size}
- ${node.properties.content.mimetype}
- ${node.name}
- ${absurl(url.serviceContext)}/api/node/${node.nodeRef.storeRef.protocol}/${node.nodeRef.storeRef.identifier}/${node.nodeRef.id}/content
-
-#macro>
-
-<#-- -->
-<#-- CMIS Extensions for Version -->
-<#-- -->
-
-<#macro version node version>
-
-
-
-
-
-
- ${node.nodeRef}
- document
- ${node.properties.creator}
- ${xmldate(node.properties.created)}
- ${node.properties.modifier}
- ${xmldate(node.properties.modified)}
- ${node.properties.content.size}
- ${node.properties.content.mimetype}
- ${node.name}
- ${absurl(url.serviceContext)}/api/node/${node.nodeRef.storeRef.protocol}/${node.nodeRef.storeRef.identifier}/${node.nodeRef.id}/content
-
-#macro>
-
-<#-- -->
-<#-- CMIS Extensions for Folder -->
-<#-- -->
-
-<#macro folder node>
-
-
-
-
-
-
- ${node.nodeRef}
- folder
- ${node.properties.creator}
- ${xmldate(node.properties.created)}
- ${node.properties.modifier}
- ${xmldate(node.properties.modified)}
- ${node.name}
- ${node.parent.nodeRef}
-
-#macro>
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/index.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/cmis/index.get.desc.xml
deleted file mode 100644
index a13ec977ce..0000000000
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/index.get.desc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
- CMIS Index
- Provides an index of CMIS services
- /cmis
- /index/cmis
-
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/index.get.html.ftl b/config/alfresco/templates/webscripts/org/alfresco/cmis/index.get.html.ftl
deleted file mode 100644
index f08a4bee6d..0000000000
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/index.get.html.ftl
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
- Index of CMIS Services
-
-
-
-
-
-  |
- Index of CMIS Services |
-
- | ${services?size} Services
- |
-
-
-
- <#list services as webscript>
- <#assign desc = webscript.description>
- ${desc.shortName}
-
-
- <#if desc.description??>Description: | ${desc.description}<#else>#if>
- |
Authentication: | ${desc.requiredAuthentication}
- |
Transaction: | ${desc.requiredTransaction}
- |
Format Style: | ${desc.formatStyle}
- |
Default Format: | ${desc.defaultFormat!"Determined at run-time"}
- |
- |
Id: | ${desc.id}
- |
Description: | ${desc.storePath}/${desc.descPath}
- |
-
- #list>
-
-
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/cmis/ns.lib.atom.ftl b/config/alfresco/templates/webscripts/org/alfresco/cmis/ns.lib.atom.ftl
index 898f9053dc..435d4bc84a 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/cmis/ns.lib.atom.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/cmis/ns.lib.atom.ftl
@@ -1,8 +1,9 @@
-<#macro appNS>http://www.w3.org/2007/app#macro>
-<#macro atomNS>http://www.w3.org/2005/Atom#macro>
-<#macro cmisNS>http://www.cmis.org/2008/05#macro>
-<#macro alfNS>http://www.alfresco.org#macro>
-<#macro opensearchNS>http://a9.com/-/spec/opensearch/1.1/#macro>
-<#macro serviceNS>xmlns="<@appNS/>" xmlns:atom="<@atomNS/>" xmlns:cmis="<@cmisNS/>" xmlns:alf="<@alfNS/>"#macro>
-<#macro feedNS>xmlns="<@atomNS/>" xmlns:app="<@appNS/>" xmlns:cmis="<@cmisNS/>" xmlns:alf="<@alfNS/>" xmlns:opensearch="<@opensearchNS/>"#macro>
-<#macro entryNS>xmlns="<@atomNS/>" xmlns:app="<@appNS/>" xmlns:cmis="<@cmisNS/>" xmlns:alf="<@alfNS/>"#macro>
\ No newline at end of file
+[#ftl]
+[#macro appNS]http://www.w3.org/2007/app[/#macro]
+[#macro atomNS]http://www.w3.org/2005/Atom[/#macro]
+[#macro cmisNS]http://www.cmis.org/2008/05[/#macro]
+[#macro alfNS]http://www.alfresco.org[/#macro]
+[#macro opensearchNS]http://a9.com/-/spec/opensearch/1.1/[/#macro]
+[#macro serviceNS]xmlns="[@appNS/]" xmlns:atom="[@atomNS/]" xmlns:cmis="[@cmisNS/]" xmlns:alf="[@alfNS/]"[/#macro]
+[#macro feedNS]xmlns="[@atomNS/]" xmlns:app="[@appNS/]" xmlns:cmis="[@cmisNS/]" xmlns:alf="[@alfNS/]" xmlns:opensearch="[@opensearchNS/]"[/#macro]
+[#macro entryNS]xmlns="[@atomNS/]" xmlns:app="[@appNS/]" xmlns:cmis="[@cmisNS/]" xmlns:alf="[@alfNS/]"[/#macro]
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/paging.lib.atom.ftl b/config/alfresco/templates/webscripts/org/alfresco/paging.lib.atom.ftl
index 3c1a35c213..e96f34c570 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/paging.lib.atom.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/paging.lib.atom.ftl
@@ -1,9 +1,4 @@
-<#macro cursor cursor pageArg="pageNo" skipArg="skipCount">
-<#-- NOTE: this macro requires the definition of xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" in -->
-<#-- the enclosing document -->
-${cursor.totalRows}
-${cursor.startRow}
-${cursor.pageSize}
+<#macro links cursor pageArg="pageNo" skipArg="skipCount">
<#if cursor.pageType = "PAGE">
<#if cursor.hasFirstPage>
@@ -31,4 +26,12 @@
#if>
#if>
-#macro>
\ No newline at end of file
+#macro>
+
+<#macro opensearch cursor>
+<#-- NOTE: this macro requires the definition of xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" in -->
+<#-- the enclosing document -->
+${cursor.totalRows}
+${cursor.startRow}
+${cursor.pageSize}
+#macro>
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/repository.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/repository.get.desc.xml
index 94138e82b3..16f3d100c5 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/repository.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/repository.get.desc.xml
@@ -1,8 +1,8 @@
Repository AtomPub Service Document
- Repository ATOM Publishing Service Document (with CMIS extensions)
+ Repository ATOM Publishing Service Document
/api/repository
none
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.get.atomfeed.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.get.atomfeed.ftl
index b8e8c5fd79..0925648634 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.get.atomfeed.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.get.atomfeed.ftl
@@ -1,18 +1,27 @@
-<#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/>
-<#import "/org/alfresco/cmis/atomfeed.lib.atom.ftl" as feedLib/>
-<#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/>
-<#import "/org/alfresco/cmis/cmis.lib.atom.ftl" as cmisLib/>
-<#import "/org/alfresco/paging.lib.atom.ftl" as pagingLib/>
+[#ftl]
+[#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/]
+[#import "/org/alfresco/cmis/atomfeed.lib.atom.ftl" as feedLib/]
+[#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/]
+[#import "/org/alfresco/paging.lib.atom.ftl" as pagingLib/]
+[#compress]
+
->
-<@feedLib.generic id="urn:uuid:checkedout" title="Checked out Documents" author="${person.properties.userName}"/>
-<@pagingLib.cursor cursor=cursor/>
-<#list results as child>
+
+
+[@feedLib.generic id="urn:uuid:checkedout" title="Checked out Documents" author="${person.properties.userName}"]
+ [@pagingLib.links cursor=cursor/]
+[/@feedLib.generic]
+
+[#list results as child]
-<#if child.isDocument>
-<@entryLib.pwc node=child/>
-<@cmisLib.document node=child/>
-#if>
+ [#if child.isDocument]
+ [@entryLib.pwc node=child/]
+ [/#if]
-#list>
-
\ No newline at end of file
+[/#list]
+
+[@feedLib.hasMore more=cursor/]
+
+
+
+[/#compress]
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.get.desc.xml
index 5c69536dae..eb8dc04b34 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.get.desc.xml
@@ -4,5 +4,5 @@
/api/checkedout
user
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.post.atomentry.201.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.post.atomentry.201.ftl
index 15b8636cca..c31c53337c 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.post.atomentry.201.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.post.atomentry.201.ftl
@@ -1,8 +1,11 @@
-<#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/>
-<#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/>
-<#import "/org/alfresco/cmis/cmis.lib.atom.ftl" as cmisLib/>
+[#ftl]
+[#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/]
+[#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/]
+[#compress]
+
->
-<@entryLib.pwc node=pwc/>
-<@cmisLib.document node=pwc/>
+
+ [@entryLib.pwc node=pwc/]
+
+[/#compress]
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.post.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.post.desc.xml
index 4e98a560e8..00c3686d64 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.post.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/checkedout.post.desc.xml
@@ -4,5 +4,5 @@
/api/checkedout
user
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.get.atomfeed.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.get.atomfeed.ftl
index 3bf34009cb..18656e9cc3 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.get.atomfeed.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.get.atomfeed.ftl
@@ -1,22 +1,32 @@
-<#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/>
-<#import "/org/alfresco/cmis/atomfeed.lib.atom.ftl" as feedLib/>
-<#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/>
-<#import "/org/alfresco/cmis/cmis.lib.atom.ftl" as cmisLib/>
-<#import "/org/alfresco/paging.lib.atom.ftl" as pagingLib/>
+[#ftl]
+[#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/]
+[#import "/org/alfresco/cmis/atomfeed.lib.atom.ftl" as feedLib/]
+[#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/]
+[#import "/org/alfresco/paging.lib.atom.ftl" as pagingLib/]
+[#compress]
+
->
-<@feedLib.node node=node/>
-<@cmisLib.folder node=node/>
-<@pagingLib.cursor cursor=cursor/>
-<#list results as child>
+
+
+[@feedLib.node node=node]
+ [@pagingLib.links cursor=cursor/]
+ [@entryLib.folderCMISLinks node=node/] [#-- TODO: not part of 0.42 schema --]
+[/@feedLib.node]
+
+[#list results as child]
-<#if child.isDocument>
-<@entryLib.document node=child/>
-<@cmisLib.document node=child/>
-<#else>
-<@entryLib.folder node=child/>
-<@cmisLib.folder node=child/>
-#if>
+ [#if child.isDocument]
+ [@entryLib.document node=child/]
+ [#else]
+ [@entryLib.folder node=child/]
+ [/#if]
-#list>
-
\ No newline at end of file
+[/#list]
+
+[@feedLib.hasMore more=cursor/]
+[@entryLib.folderCMISProps node=node/] [#-- TODO: not part of 0.42 schema --]
+[@pagingLib.opensearch cursor=cursor/]
+
+
+
+[/#compress]
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.get.desc.xml
index 23a04196d7..1e1abd1043 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.get.desc.xml
@@ -5,5 +5,5 @@
/api/path/{store_type}/{store_id}/{id}/children?types={types}&filter={filter?}&skipCount={skipCount?}&maxChildren={maxChildren?}
guest
argument
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.post.atomentry.201.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.post.atomentry.201.ftl
index 3a2c281d1d..84a13506f1 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.post.atomentry.201.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.post.atomentry.201.ftl
@@ -1,13 +1,16 @@
-<#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/>
-<#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/>
-<#import "/org/alfresco/cmis/cmis.lib.atom.ftl" as cmisLib/>
+[#ftl]
+[#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/]
+[#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/]
+[#compress]
+
->
-<#if node.isDocument>
-<@entryLib.document node=node/>
-<@cmisLib.document node=node/>
-<#else>
-<@entryLib.folder node=node/>
-<@cmisLib.folder node=node/>
-#if>
+
+
+ [#if node.isDocument]
+ [@entryLib.document node=node/]
+ [#else]
+ [@entryLib.folder node=node/]
+ [/#if]
+
+[/#compress]
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.post.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.post.desc.xml
index 20301c7a79..bbf3d0983c 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.post.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/children.post.desc.xml
@@ -5,5 +5,5 @@
/api/path/{store_type}/{store_id}/{id}/children
user
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/content.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/content.get.desc.xml
index e563d134c4..4eb405322a 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/content.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/content.get.desc.xml
@@ -8,5 +8,5 @@
/api/path/{store_type}/{store_id}/{id}/content{property}?a={attach?}
guest
argument
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/descendants.delete.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/descendants.delete.desc.xml
index b1869d5dc6..872601e610 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/descendants.delete.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/descendants.delete.desc.xml
@@ -5,5 +5,5 @@
/api/path/{store_type}/{store_id}/{id}/descendants?continueOnFailure={continueOnFailure?}&unfileMultiFiledDocuments={unfileMultiFiledDocuments}
user
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.delete.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.delete.desc.xml
index adeb8af382..d1ba93c318 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.delete.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.delete.desc.xml
@@ -5,5 +5,5 @@
/api/path/{store_type}/{store_id}/{id}?includeChildren={includeChildren?}
user
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.get.atomentry.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.get.atomentry.ftl
index 3a2c281d1d..84a13506f1 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.get.atomentry.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.get.atomentry.ftl
@@ -1,13 +1,16 @@
-<#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/>
-<#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/>
-<#import "/org/alfresco/cmis/cmis.lib.atom.ftl" as cmisLib/>
+[#ftl]
+[#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/]
+[#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/]
+[#compress]
+
->
-<#if node.isDocument>
-<@entryLib.document node=node/>
-<@cmisLib.document node=node/>
-<#else>
-<@entryLib.folder node=node/>
-<@cmisLib.folder node=node/>
-#if>
+
+
+ [#if node.isDocument]
+ [@entryLib.document node=node/]
+ [#else]
+ [@entryLib.folder node=node/]
+ [/#if]
+
+[/#compress]
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.get.desc.xml
index 39f3cb2b01..6a77e83b00 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.get.desc.xml
@@ -7,5 +7,5 @@
guest
argument
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.put.atomentry.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.put.atomentry.ftl
index b401d58322..7aa5ead762 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.put.atomentry.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.put.atomentry.ftl
@@ -1,13 +1,16 @@
-<#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/>
-<#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/>
-<#import "/org/alfresco/cmis/cmis.lib.atom.ftl" as cmisLib/>
+[#ftl]
+[#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/]
+[#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/]
+[#compress]
+
->
-<#if node.isDocument>
-<@entryLib.document node=node/>
-<@cmisLib.document node=node/>
-<#else>
-<@entryLib.folder node=node/>
-<@cmisLib.folder node=node/>
-#if>
+
+
+ [#if node.isDocument]
+ [@entryLib.document node=node/]
+ [#else]
+ [@entryLib.folder node=node/]
+ [/#if]
+
+[/#compress]
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.put.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.put.desc.xml
index 718ee67d76..35706fb2f1 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.put.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/item.put.desc.xml
@@ -5,5 +5,5 @@
/api/path/{store_type}/{store_id}/{id}
user
argument
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/parent.get.atomfeed.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/store/parent.get.atomfeed.ftl
index 79030807f8..237dae3b5b 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/parent.get.atomfeed.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/parent.get.atomfeed.ftl
@@ -1,22 +1,28 @@
-<#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/>
-<#import "/org/alfresco/cmis/atomfeed.lib.atom.ftl" as feedLib/>
-<#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/>
-<#import "/org/alfresco/cmis/cmis.lib.atom.ftl" as cmisLib/>
+[#ftl]
+[#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/]
+[#import "/org/alfresco/cmis/atomfeed.lib.atom.ftl" as feedLib/]
+[#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/]
+[#compress]
+
->
-<@feedLib.node node=node/>
-<@cmisLib.folder node=node/>
-<@parent node=node.parent recurse=returnToRoot/>
+
+
+
+[@feedLib.node node=node/]
+[@parent node=node.parent recurse=returnToRoot/]
+[@feedLib.hasMore more="false"/]
+
-<#macro parent node recurse=false>
-<#if node?exists && node.isContainer>
-
-<@entryLib.folder node=node/>
-<@cmisLib.folder node=node/>
-
-<#if recurse && node.id != rootNode.id>
- <@parent node=node.parent recurse=true/>
-#if>
-#if>
-#macro>
\ No newline at end of file
+[/#compress]
+
+[#macro parent node recurse=false]
+[#if node?exists && node.isContainer]
+
+ [@entryLib.folder node=node/]
+
+ [#if recurse && node.id != rootNode.id]
+ [@parent node=node.parent recurse=true/]
+ [/#if]
+[/#if]
+[/#macro]
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/parent.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/parent.get.desc.xml
index b1dfe27108..f0421a4d9a 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/parent.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/parent.get.desc.xml
@@ -5,5 +5,5 @@
/api/path/{store_type}/{store_id}/{id}/parent?returnToRoot={returnToRoot}
guest
argument
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/parents.get.atomfeed.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/store/parents.get.atomfeed.ftl
index e26be98e60..237dae3b5b 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/parents.get.atomfeed.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/parents.get.atomfeed.ftl
@@ -1,23 +1,28 @@
-<#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/>
-<#import "/org/alfresco/cmis/atomfeed.lib.atom.ftl" as feedLib/>
-<#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/>
-<#import "/org/alfresco/cmis/cmis.lib.atom.ftl" as cmisLib/>
+[#ftl]
+[#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/]
+[#import "/org/alfresco/cmis/atomfeed.lib.atom.ftl" as feedLib/]
+[#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/]
+[#compress]
+
->
-<@feedLib.node node=node/>
-<@cmisLib.folder node=node/>
-<@parent node=node.parent recurse=returnToRoot/>
-<#-- TODO: secondary parents loop -->
+
+
+
+[@feedLib.node node=node/]
+[@parent node=node.parent recurse=returnToRoot/]
+[@feedLib.hasMore more="false"/]
+
-<#macro parent node recurse=false>
-<#if node?exists && node.isContainer>
-
-<@entryLib.folder node=node/>
-<@cmisLib.folder node=node/>
-
-<#if recurse && node.id != rootNode.id>
- <@parent node=node.parent recurse=true/>
-#if>
-#if>
-#macro>
\ No newline at end of file
+[/#compress]
+
+[#macro parent node recurse=false]
+[#if node?exists && node.isContainer]
+
+ [@entryLib.folder node=node/]
+
+ [#if recurse && node.id != rootNode.id]
+ [@parent node=node.parent recurse=true/]
+ [/#if]
+[/#if]
+[/#macro]
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/parents.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/parents.get.desc.xml
index bad01ef72b..c3acecb9b5 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/parents.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/parents.get.desc.xml
@@ -6,5 +6,5 @@
/api/path/{store_type}/{store_id}/{id}/parents
guest
argument
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.delete.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.delete.desc.xml
index 62484a6631..896f844e50 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.delete.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.delete.desc.xml
@@ -4,5 +4,5 @@
/api/pwc/{store_type}/{store_id}/{id}
user
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.get.atomentry.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.get.atomentry.ftl
index d4518c19ea..9962c284a6 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.get.atomentry.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.get.atomentry.ftl
@@ -1,8 +1,12 @@
-<#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/>
-<#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/>
-<#import "/org/alfresco/cmis/cmis.lib.atom.ftl" as cmisLib/>
+[#ftl]
+[#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/]
+[#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/]
+[#compress]
+
->
-<@entryLib.pwc node=node/>
-<@cmisLib.document node=node/>
+
+
+ [@entryLib.pwc node=node/]
+
+[/#compress]
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.get.desc.xml
index f48e1418d1..9b98336e51 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.get.desc.xml
@@ -4,5 +4,5 @@
/api/pwc/{store_type}/{store_id}/{id}?filter={filter?}
user
argument
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.put.atomentry.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.put.atomentry.ftl
index a9a057ade0..0bcd0f9db3 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.put.atomentry.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.put.atomentry.ftl
@@ -1,8 +1,12 @@
-<#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/>
-<#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/>
-<#import "/org/alfresco/cmis/cmis.lib.atom.ftl" as cmisLib/>
+[#ftl]
+[#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/]
+[#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/]
+[#compress]
+
->
-<@entryLib.document node=node/>
-<@cmisLib.document node=node/>
+
+
+ [@entryLib.document node=node/]
+
+[/#compress]
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.put.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.put.desc.xml
index da32e73925..e175de59fa 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.put.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/pwc.put.desc.xml
@@ -4,5 +4,5 @@
/api/pwc/{store_type}/{store_id}/{id}?checkinComment={checkinComment?}&major={major?}
user
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/unfiled.get.atomfeed.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/store/unfiled.get.atomfeed.ftl
index 5fc34ae729..923b912f59 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/unfiled.get.atomfeed.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/unfiled.get.atomfeed.ftl
@@ -1,6 +1,12 @@
-<#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/>
-<#import "/org/alfresco/cmis/atomfeed.lib.atom.ftl" as feedLib/>
+[#ftl]
+[#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/]
+[#import "/org/alfresco/cmis/atomfeed.lib.atom.ftl" as feedLib/]
+[#compress]
+
->
-<@feedLib.generic id="urn:uuid:unfiled" title="Unfiled Documents"/>
+
+
+ [@feedLib.generic id="urn:uuid:unfiled" title="Unfiled Documents"/]
+
+[/#compress]
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/unfiled.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/unfiled.get.desc.xml
index 2698020b9b..327e5b9c33 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/unfiled.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/unfiled.get.desc.xml
@@ -4,5 +4,5 @@
/api/unfiled
guest
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/versions.get.atomfeed.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/store/versions.get.atomfeed.ftl
index 00cd934ad2..29f79a5f64 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/versions.get.atomfeed.ftl
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/versions.get.atomfeed.ftl
@@ -1,14 +1,23 @@
-<#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/>
-<#import "/org/alfresco/cmis/atomfeed.lib.atom.ftl" as feedLib/>
-<#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/>
-<#import "/org/alfresco/cmis/cmis.lib.atom.ftl" as cmisLib/>
+[#ftl]
+[#import "/org/alfresco/cmis/ns.lib.atom.ftl" as nsLib/]
+[#import "/org/alfresco/cmis/atomfeed.lib.atom.ftl" as feedLib/]
+[#import "/org/alfresco/cmis/atomentry.lib.atom.ftl" as entryLib/]
+[#compress]
+
->
-<@feedLib.generic id="urn:uuid:${node.id}-versions" title="Versions of ${node.displayPath}"/>
-<#list nodes as version>
-
-<@entryLib.version node=version version=versions[version_index]/>
-<@cmisLib.version node=version version=versions[version_index]/>
-
-#list>
-
\ No newline at end of file
+
+
+
+[@feedLib.generic id="urn:uuid:${node.id}-versions" title="Versions of ${node.displayPath}"/]
+
+[#list nodes as version]
+
+ [@entryLib.version node=version version=versions[version_index]/]
+
+[/#list]
+
+[@feedLib.hasMore more="false"/]
+
+
+
+[/#compress]
\ No newline at end of file
diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/store/versions.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/repository/store/versions.get.desc.xml
index cfeeba26a4..58f3d248ca 100644
--- a/config/alfresco/templates/webscripts/org/alfresco/repository/store/versions.get.desc.xml
+++ b/config/alfresco/templates/webscripts/org/alfresco/repository/store/versions.get.desc.xml
@@ -5,5 +5,5 @@
/api/path/{store_type}/{store_id}/{id}/versions?filter={filter?}
user
argument
-
+ CMIS
\ No newline at end of file
diff --git a/config/alfresco/web-scripts-application-context.xml b/config/alfresco/web-scripts-application-context.xml
index c0ac61bb5a..4ec2687fc9 100644
--- a/config/alfresco/web-scripts-application-context.xml
+++ b/config/alfresco/web-scripts-application-context.xml
@@ -409,8 +409,6 @@
-
-
http://www.cmis.org/2008/05
@@ -425,18 +423,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/source/java/org/alfresco/repo/cmis/rest/BaseCMISWebScriptTest.java b/source/java/org/alfresco/repo/cmis/rest/BaseCMISWebScriptTest.java
index edc7e34663..86fa3e9b1f 100644
--- a/source/java/org/alfresco/repo/cmis/rest/BaseCMISWebScriptTest.java
+++ b/source/java/org/alfresco/repo/cmis/rest/BaseCMISWebScriptTest.java
@@ -111,9 +111,7 @@ public class BaseCMISWebScriptTest extends BaseWebScriptTest
protected Validator getAtomValidator()
throws IOException, SAXException
{
- return null;
- // TODO: Enable Atom Feed/Entry validator once up-to-date with 0.42
- //return getCMISValidator().getCMISAtomValidator();
+ return getCMISValidator().getCMISAtomValidator();
}
/**
diff --git a/source/java/org/alfresco/repo/cmis/rest/CMISDescription.java b/source/java/org/alfresco/repo/cmis/rest/CMISDescription.java
deleted file mode 100644
index a8720f27e9..0000000000
--- a/source/java/org/alfresco/repo/cmis/rest/CMISDescription.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2005-2008 Alfresco Software Limited.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
- * As a special exception to the terms and conditions of version 2.0 of
- * the GPL, you may redistribute this Program in connection with Free/Libre
- * and Open Source Software ("FLOSS") applications as described in Alfresco's
- * FLOSS exception. You should have recieved a copy of the text describing
- * the FLOSS exception, and it is also available here:
- * http://www.alfresco.com/legal/licensing"
- */
-package org.alfresco.repo.cmis.rest;
-
-import java.io.InputStream;
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.alfresco.web.scripts.DescriptionExtension;
-import org.alfresco.web.scripts.WebScriptException;
-import org.dom4j.Document;
-import org.dom4j.DocumentException;
-import org.dom4j.Element;
-import org.dom4j.io.SAXReader;
-
-
-/**
- * Web Script Descriptor Extension
- *
- *
- *
- * @author davidc
- */
-public class CMISDescription implements DescriptionExtension
-{
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.DescriptionExtension#parseExtensions(java.lang.String, java.io.InputStream)
- */
- public Map parseExtensions(String serviceDescPath, InputStream serviceDesc)
- {
- SAXReader reader = new SAXReader();
- try
- {
- Map extensions = null;
- Document document = reader.read(serviceDesc);
- Element rootElement = document.getRootElement();
- Element cmisElement = rootElement.element("cmis");
- if (cmisElement != null)
- {
- extensions = new HashMap();
- String version = cmisElement.attributeValue("version");
- if (version == null || version.length() == 0)
- {
- throw new WebScriptException("Expected 'version' attribute on element");
- }
- extensions.put("cmis_version", version);
- }
- return extensions;
- }
- catch(DocumentException e)
- {
- throw new WebScriptException("Failed to parse web script description document " + serviceDescPath, e);
- }
- }
-
-}
diff --git a/source/java/org/alfresco/repo/cmis/rest/Index.java b/source/java/org/alfresco/repo/cmis/rest/Index.java
deleted file mode 100644
index f70d8f7f89..0000000000
--- a/source/java/org/alfresco/repo/cmis/rest/Index.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2005-2007 Alfresco Software Limited.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
- * As a special exception to the terms and conditions of version 2.0 of
- * the GPL, you may redistribute this Program in connection with Free/Libre
- * and Open Source Software ("FLOSS") applications as described in Alfresco's
- * FLOSS exception. You should have recieved a copy of the text describing
- * the FLOSS exception, and it is also available here:
- * http://www.alfresco.com/legal/licensing"
- */
-package org.alfresco.repo.cmis.rest;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.alfresco.web.scripts.DeclarativeWebScript;
-import org.alfresco.web.scripts.Description;
-import org.alfresco.web.scripts.Status;
-import org.alfresco.web.scripts.WebScript;
-import org.alfresco.web.scripts.WebScriptRequest;
-
-
-/**
- * Index of CMIS Scripts
- *
- * @author davidc
- */
-public class Index extends DeclarativeWebScript
-{
-
- /* (non-Javadoc)
- * @see org.alfresco.web.scripts.DeclarativeWebScript#executeImpl(org.alfresco.web.scripts.WebScriptRequest, org.alfresco.web.scripts.WebScriptResponse)
- */
- @Override
- protected Map executeImpl(WebScriptRequest req, Status status)
- {
- List cmisScripts = new ArrayList();
-
- // scan through all web scripts looking for CMIS specific ones
- Collection webscripts = getContainer().getRegistry().getWebScripts();
- for (WebScript webscript : webscripts)
- {
- Description desc = webscript.getDescription();
- Map extensions = desc.getExtensions();
- if (extensions != null && extensions.get("cmis_version") != null)
- {
- cmisScripts.add(webscript);
- }
- }
-
- Map model = new HashMap(7, 1.0f);
- model.put("services", cmisScripts);
- return model;
- }
-
-}
diff --git a/source/java/org/alfresco/repo/cmis/rest/xsd/CMISSchemaTest.java b/source/java/org/alfresco/repo/cmis/rest/xsd/CMISSchemaTest.java
index bc07711a11..c42fdbed68 100644
--- a/source/java/org/alfresco/repo/cmis/rest/xsd/CMISSchemaTest.java
+++ b/source/java/org/alfresco/repo/cmis/rest/xsd/CMISSchemaTest.java
@@ -150,6 +150,13 @@ public class CMISSchemaTest extends TestCase
assertValidXML(xml, cmisValidator.getCMISAtomValidator());
}
+ public void testFolderChildrenAlfresco()
+ throws Exception
+ {
+ String xml = getXML("Example-FolderChildren-Alfresco.xml");
+ assertValidXML(xml, cmisValidator.getCMISAtomValidator());
+ }
+
public void testFolderDescendants()
throws Exception
{
diff --git a/source/java/org/alfresco/repo/cmis/rest/xsd/Example-FolderChildren-Alfresco.xml b/source/java/org/alfresco/repo/cmis/rest/xsd/Example-FolderChildren-Alfresco.xml
new file mode 100644
index 0000000000..e5c51e6b65
--- /dev/null
+++ b/source/java/org/alfresco/repo/cmis/rest/xsd/Example-FolderChildren-Alfresco.xml
@@ -0,0 +1,199 @@
+
+
+System
+Alfresco (Labs)
+http://localhost:80/alfresco/images/logo/AlfrescoLogo16.ico
+urn:uuid:ffddcc48-0c6a-4aa3-b9e2-1121c35f6504
+
+
+
+
+
+
+
+
+Company Home
+2008-07-11T16:51:03.508+01:00
+
+System
+b09bc7f5-19c3-4ad1-9c5d-8f3a95a3417d
+urn:uuid:b09bc7f5-19c3-4ad1-9c5d-8f3a95a3417d
+
+
+
+
+
+
+
+2008-07-11T16:51:03.086+01:00
+Site Collaboration Spaces
+Sites
+2008-07-11T16:51:03.854+01:00
+
+2008-07-11T16:51:03.086+01:00
+2008-07-11T16:51:03.854+01:00
+workspace://SpacesStore/b09bc7f5-19c3-4ad1-9c5d-8f3a95a3417d
+workspace://SpacesStore/ffddcc48-0c6a-4aa3-b9e2-1121c35f6504
+document
+System
+System
+Sites
+
+2008-07-11T16:51:03.854+01:00
+http://localhost:80/alfresco/images/icons/space-icon-default-16.gif
+
+
+System
+dd4f66e4-df9a-4910-94dd-4bc2a5e59443
+urn:uuid:dd4f66e4-df9a-4910-94dd-4bc2a5e59443
+
+
+
+
+
+
+
+2008-07-11T16:50:25.286+01:00
+User managed definitions
+Data Dictionary
+2008-07-11T16:51:03.509+01:00
+
+2008-07-11T16:50:25.286+01:00
+2008-07-11T16:51:03.509+01:00
+workspace://SpacesStore/dd4f66e4-df9a-4910-94dd-4bc2a5e59443
+workspace://SpacesStore/ffddcc48-0c6a-4aa3-b9e2-1121c35f6504
+document
+System
+System
+Data Dictionary
+
+2008-07-11T16:51:03.509+01:00
+http://localhost:80/alfresco/images/icons/space-icon-default-16.gif
+
+
+System
+6dc1e4b5-d959-4ca8-b20c-21ce05fe8889
+urn:uuid:6dc1e4b5-d959-4ca8-b20c-21ce05fe8889
+
+
+
+
+
+
+
+2008-07-11T16:50:25.698+01:00
+The guest root space
+Guest Home
+2008-07-11T16:51:03.515+01:00
+
+2008-07-11T16:50:25.698+01:00
+2008-07-11T16:51:03.515+01:00
+workspace://SpacesStore/6dc1e4b5-d959-4ca8-b20c-21ce05fe8889
+workspace://SpacesStore/ffddcc48-0c6a-4aa3-b9e2-1121c35f6504
+document
+System
+System
+Guest Home
+
+2008-07-11T16:51:03.515+01:00
+http://localhost:80/alfresco/images/icons/space-icon-default-16.gif
+
+
+System
+7d35ea01-5bfd-4785-92c3-3dc19623b162
+urn:uuid:7d35ea01-5bfd-4785-92c3-3dc19623b162
+
+
+
+
+
+
+
+2008-07-11T16:50:25.822+01:00
+User Homes
+User Homes
+2008-07-11T16:51:03.516+01:00
+
+2008-07-11T16:50:25.822+01:00
+2008-07-11T16:51:03.516+01:00
+workspace://SpacesStore/7d35ea01-5bfd-4785-92c3-3dc19623b162
+workspace://SpacesStore/ffddcc48-0c6a-4aa3-b9e2-1121c35f6504
+document
+System
+System
+User Homes
+
+2008-07-11T16:51:03.516+01:00
+http://localhost:80/alfresco/images/icons/space-icon-default-16.gif
+
+
+admin
+605a7b77-c3b7-4583-85e6-04183ba69e44
+urn:uuid:605a7b77-c3b7-4583-85e6-04183ba69e44
+
+
+
+
+
+
+
+2008-07-11T16:51:20.786+01:00
+CMIS Tests (summary)
+CMIS Tests
+2008-07-11T16:51:20.830+01:00
+
+2008-07-11T16:51:20.786+01:00
+2008-07-11T16:51:20.830+01:00
+workspace://SpacesStore/605a7b77-c3b7-4583-85e6-04183ba69e44
+workspace://SpacesStore/ffddcc48-0c6a-4aa3-b9e2-1121c35f6504
+document
+admin
+admin
+CMIS Tests
+
+2008-07-11T16:51:20.830+01:00
+http://localhost:80/alfresco/images/icons/space-icon-default-16.gif
+
+
+System
+79f2bb8b-a0ff-4e96-908c-85e794684104
+urn:uuid:79f2bb8b-a0ff-4e96-908c-85e794684104
+
+
+
+
+
+
+
+2008-07-11T22:08:33.603+01:00
+Web Content Management Spaces
+Web Projects
+2008-07-11T22:08:33.676+01:00
+
+2008-07-11T22:08:33.603+01:00
+2008-07-11T22:08:33.676+01:00
+workspace://SpacesStore/79f2bb8b-a0ff-4e96-908c-85e794684104
+workspace://SpacesStore/ffddcc48-0c6a-4aa3-b9e2-1121c35f6504
+document
+System
+System
+Web Projects
+
+2008-07-11T22:08:33.676+01:00
+http://localhost:80/alfresco/images/icons/space-icon-default-16.gif
+
+false
+
+2008-07-11T16:50:25.179+01:00
+2008-07-11T16:51:03.508+01:00
+workspace://SpacesStore/ffddcc48-0c6a-4aa3-b9e2-1121c35f6504
+workspace://SpacesStore/b9a00044-9a14-4733-a745-2bfb83915da8
+document
+System
+System
+Company Home
+
+6
+0
+0
+
\ No newline at end of file
diff --git a/source/java/org/apache/abdera/ext/cmis/CMISConstants.java b/source/java/org/apache/abdera/ext/cmis/CMISConstants.java
index 643e916a05..2cc7df7667 100644
--- a/source/java/org/apache/abdera/ext/cmis/CMISConstants.java
+++ b/source/java/org/apache/abdera/ext/cmis/CMISConstants.java
@@ -43,10 +43,17 @@ public interface CMISConstants
{
public static final String CMIS_200805_NS = "http://www.cmis.org/2008/05";
+ // CMIS Schema
public static final QName PROPERTIES = new QName(CMIS_200805_NS, "properties");
- public static final QName OBJECTID = new QName(CMIS_200805_NS, "objectId");
- public static final QName BASETYPE = new QName(CMIS_200805_NS, "baseType");
+ public static final QName PROPERTY_STRING = new QName(CMIS_200805_NS, "propertyString");
+ public static final QName PROPERTY_ID = new QName(CMIS_200805_NS, "propertyID");
+ public static final QName PROPERTY_NAME = new QName(CMIS_200805_NS, "name");
+
+ // CMIS Properties
+ public static final String PROP_OBJECTID = "objectId";
+ public static final String PROP_BASETYPE = "baseType";
+ // CMIS Relationships
public static final String REL_CHILDREN = "cmis-children";
public static final String REL_PARENT = "cmis-parent";
public static final String REL_PARENTS = "cmis-parents";
diff --git a/source/java/org/apache/abdera/ext/cmis/CMISProperties.java b/source/java/org/apache/abdera/ext/cmis/CMISProperties.java
index c6213d6e98..6d85b5760a 100644
--- a/source/java/org/apache/abdera/ext/cmis/CMISProperties.java
+++ b/source/java/org/apache/abdera/ext/cmis/CMISProperties.java
@@ -55,14 +55,40 @@ public class CMISProperties extends ElementWrapper
public String getObjectId()
{
- Element child = getInternal().getFirstChild(CMISConstants.OBJECTID);
- return (child == null) ? null : child.getText();
+ return findPropertyID(CMISConstants.PROP_OBJECTID);
}
public String getBaseType()
{
- Element child = getInternal().getFirstChild(CMISConstants.BASETYPE);
- return (child == null) ? null : child.getText();
+ return findPropertyString(CMISConstants.PROP_BASETYPE);
}
+ private String findPropertyString(String name)
+ {
+ Element child = getFirstChild(CMISConstants.PROPERTY_STRING);
+ while(child != null)
+ {
+ if (name.equals(child.getAttributeValue(CMISConstants.PROPERTY_NAME)))
+ {
+ return child.getText();
+ }
+ child = child.getNextSibling(CMISConstants.PROPERTY_STRING);
+ }
+ return null;
+ }
+
+ private String findPropertyID(String name)
+ {
+ Element child = getFirstChild(CMISConstants.PROPERTY_ID);
+ while(child != null)
+ {
+ if (name.equals(child.getAttributeValue(CMISConstants.PROPERTY_NAME)))
+ {
+ return child.getText();
+ }
+ child = child.getNextSibling(CMISConstants.PROPERTY_ID);
+ }
+ return null;
+ }
+
}
diff --git a/source/test-resources/cmis/rest/createdocument.atomentry.xml b/source/test-resources/cmis/rest/createdocument.atomentry.xml
index eb3fc391fa..09b8183126 100644
--- a/source/test-resources/cmis/rest/createdocument.atomentry.xml
+++ b/source/test-resources/cmis/rest/createdocument.atomentry.xml
@@ -4,6 +4,6 @@
${NAME} (summary)
test content ${NAME}
- document
+ document
diff --git a/source/test-resources/cmis/rest/createfolder.atomentry.xml b/source/test-resources/cmis/rest/createfolder.atomentry.xml
index 95732f937a..014d4c1fff 100644
--- a/source/test-resources/cmis/rest/createfolder.atomentry.xml
+++ b/source/test-resources/cmis/rest/createfolder.atomentry.xml
@@ -3,6 +3,6 @@
${NAME}
${NAME} (summary)
- folder
+ folder