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] -<#-- --> -<#-- 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] -<#-- --> -<#-- 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} - - -<#-- --> -<#-- 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] -<#-- 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} +[#-- --] +[#-- 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)} - - +[#-- --] +[#-- 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} - \ 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 - - - -<#-- --> -<#-- 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 - - - -<#-- --> -<#-- 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} - - \ 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 - - - - - - - - -
AlfrescoIndex of CMIS Services
${services?size} Services -
-
- -
Back to Web Scripts Home -
-
- <#list services as webscript> - <#assign desc = webscript.description> - ${desc.shortName} - - <#list desc.URIs as uri> -
${desc.method} ${url.serviceContext}${uri} - -
-
- - <#if desc.description??>
Description:${desc.description}<#else> -
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} -
-
- - - \ 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 atomNS>http://www.w3.org/2005/Atom -<#macro cmisNS>http://www.cmis.org/2008/05 -<#macro alfNS>http://www.alfresco.org -<#macro opensearchNS>http://a9.com/-/spec/opensearch/1.1/ -<#macro serviceNS>xmlns="<@appNS/>" xmlns:atom="<@atomNS/>" xmlns:cmis="<@cmisNS/>" xmlns:alf="<@alfNS/>" -<#macro feedNS>xmlns="<@atomNS/>" xmlns:app="<@appNS/>" xmlns:cmis="<@cmisNS/>" xmlns:alf="<@alfNS/>" xmlns:opensearch="<@opensearchNS/>" -<#macro entryNS>xmlns="<@atomNS/>" xmlns:app="<@appNS/>" xmlns:cmis="<@cmisNS/>" xmlns:alf="<@alfNS/>" \ 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 @@ - \ No newline at end of file + + +<#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} + 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 child.isDocument] + [@entryLib.pwc node=child/] + [/#if] - - \ 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 child.isDocument] + [@entryLib.document node=child/] + [#else] + [@entryLib.folder node=child/] + [/#if] - - \ 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 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 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 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/> - - - \ 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/> - - - \ 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]/> - - - \ 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