no listing with Chemistry

2 views
Skip to first unread message

Florent Guillaume

unread,
Mar 8, 2009, 12:24:09 PM3/8/09
to cmis-e...@googlegroups.com
I Shane,

I'm testing a new code base (Nuxeo's Chemistry, a work in progress) on
CMIS Explorer 0.3. It lists the types but fails to list the root's
documents.
Any idea what's wrong? Here's the sequence of requests and XML answers:


GET /cmis/repository

<?xml version='1.0' encoding='utf8'?>
<service xmlns="http://www.w3.org/2007/app" xmlns:cmis="http://www.cmis.org/2008/05
">
<workspace>
<title xmlns="http://www.w3.org/2005/Atom" type="text">test</title>
<cmis:repositoryInfo>
<cmis:repositoryId>test</cmis:repositoryId>
<cmis:repositoryName>test</cmis:repositoryName>
<cmis:repositoryRelationship>self</cmis:repositoryRelationship>
<cmis:repositoryDescription>Repository test</
cmis:repositoryDescription>
<cmis:vendorName>Nuxeo</cmis:vendorName>
<cmis:productName>Chemistry Memory Repository</cmis:productName>
<cmis:productVersion>0.1-SNAPSHOT</cmis:productVersion>
<cmis:rootFolderId>8777c04f-97e3-4e8b-9aa2-94e4fe32cb04</
cmis:rootFolderId>
<cmis:capabilities>
<cmis:capabilityMultifiling>false</cmis:capabilityMultifiling>
<cmis:capabilityUnfiling>false</cmis:capabilityUnfiling>
<cmis:capabilityVersionSpecificFiling>false</
cmis:capabilityVersionSpecificFiling>
<cmis:capabilityPWCUpdateable>false</
cmis:capabilityPWCUpdateable>
<cmis:capabilityPWCSearchable>false</
cmis:capabilityPWCSearchable>
<cmis:capabilityAllVersionsSearchable>false</
cmis:capabilityAllVersionsSearchable>
<cmis:capabilityQuery>both</cmis:capabilityQuery>
<cmis:capabilityJoin>nojoin</cmis:capabilityJoin>
<cmis:capabilityFullText>fulltext</cmis:capabilityFullText>
</cmis:capabilities>
<cmis:cmisVersionsSupported>0.5</cmis:cmisVersionsSupported>
<cmis:repositorySpecificInformation />
</cmis:repositoryInfo>
<collection href="http://localhost:8080/cmis/query" xmlns:cmis="http://www.cmis.org/2008/05
" cmis:collectionType="query">
<title xmlns="http://www.w3.org/2005/Atom" type="text">the
query</title>
</collection>
<collection href="http://localhost:8080/cmis/types" xmlns:cmis="http://www.cmis.org/2008/05
" cmis:collectionType="types-descendants">
<title xmlns="http://www.w3.org/2005/Atom" type="text">Types</
title>
</collection>
<collection href="http://localhost:8080/cmis/descendants/8777c04f-97e3-4e8b-9aa2-94e4fe32cb04
" xmlns:cmis="http://www.cmis.org/2008/05" cmis:collectionType="root-
descendants">
<title xmlns="http://www.w3.org/2005/Atom" type="text">the
descendants</title>
</collection>
<collection href="http://localhost:8080/cmis/types" xmlns:cmis="http://www.cmis.org/2008/05
" cmis:collectionType="types-children">
<title xmlns="http://www.w3.org/2005/Atom" type="text">Types</
title>
</collection>
<collection href="http://localhost:8080/cmis/unfiled" xmlns:cmis="http://www.cmis.org/2008/05
" cmis:collectionType="unfiled">
<title xmlns="http://www.w3.org/2005/Atom" type="text">the
unfiled</title>
</collection>
<collection href="http://localhost:8080/cmis/checkedout"
xmlns:cmis="http://www.cmis.org/2008/05"
cmis:collectionType="checkedout">
<title xmlns="http://www.w3.org/2005/Atom" type="text">the
checkedout</title>
</collection>
<collection href="http://localhost:8080/cmis/children/8777c04f-97e3-4e8b-9aa2-94e4fe32cb04
" xmlns:cmis="http://www.cmis.org/2008/05" cmis:collectionType="root-
children">
<title xmlns="http://www.w3.org/2005/Atom"
type="text">Children</title>
</collection>
</workspace>
</service>

GET /cmis/types

<?xml version='1.0' encoding='utf-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:cmis="http://www.cmis.org/2008/05
">
<id>urn:x-id:types</id>
<title type="text">Types</title>
<author>
<name>system</name>
</author>
<updated>2009-03-08T16:22:17.787Z</updated>
<entry>
<link href="http://localhost:8080/cmis/types/doc" rel="edit" />
<id>urn:x-tid:doc</id>
<title type="text">My Doc Type</title>
<updated>2009-03-08T16:22:17.789Z</updated>
<cmis:documentType>
<cmis:objectId>doc</cmis:objectId>
<cmis:queryName>Doc</cmis:queryName>
<cmis:displayName>My Doc Type</cmis:displayName>
<cmis:baseType>document</cmis:baseType>
<cmis:baseTypeQueryName>Document</cmis:baseTypeQueryName>
<cmis:parentId />
<cmis:description></cmis:description>
<cmis:creatable>true</cmis:creatable>
<cmis:fileable>true</cmis:fileable>
<cmis:queryable>true</cmis:queryable>
<cmis:controllable>true</cmis:controllable>
<cmis:versionable>true</cmis:versionable>
</cmis:documentType>
</entry>
<entry>
<link href="http://localhost:8080/cmis/types/fold" rel="edit" />
<id>urn:x-tid:fold</id>
<title type="text">My Folder Type</title>
<updated>2009-03-08T16:22:17.792Z</updated>
<cmis:documentType>
<cmis:objectId>fold</cmis:objectId>
<cmis:queryName>Fold</cmis:queryName>
<cmis:displayName>My Folder Type</cmis:displayName>
<cmis:baseType>folder</cmis:baseType>
<cmis:baseTypeQueryName>Folder</cmis:baseTypeQueryName>
<cmis:parentId />
<cmis:description></cmis:description>
<cmis:creatable>true</cmis:creatable>
<cmis:fileable>false</cmis:fileable>
<cmis:queryable>true</cmis:queryable>
<cmis:controllable>true</cmis:controllable>
<cmis:versionable>false</cmis:versionable>
</cmis:documentType>
</entry>
<entry>
<link href="http://localhost:8080/cmis/types/Root" rel="edit" />
<id>urn:x-tid:Root</id>
<title type="text">Root Folder Type</title>
<updated>2009-03-08T16:22:17.794Z</updated>
<cmis:documentType>
<cmis:objectId>Root</cmis:objectId>
<cmis:queryName>Root</cmis:queryName>
<cmis:displayName>Root Folder Type</cmis:displayName>
<cmis:baseType>folder</cmis:baseType>
<cmis:baseTypeQueryName>Folder</cmis:baseTypeQueryName>
<cmis:parentId />
<cmis:description></cmis:description>
<cmis:creatable>false</cmis:creatable>
<cmis:fileable>false</cmis:fileable>
<cmis:queryable>false</cmis:queryable>
<cmis:controllable>false</cmis:controllable>
<cmis:versionable>false</cmis:versionable>
</cmis:documentType>
</entry>
</feed>

GET /cmis/children/8777c04f-97e3-4e8b-9aa2-94e4fe32cb04

<?xml version='1.0' encoding='utf-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:cmis="http://www.cmis.org/2008/05
">
<id>urn:x-children:8777c04f-97e3-4e8b-9aa2-94e4fe32cb04</id>
<title type="text">Children</title>
<author>
<name>system</name>
</author>
<updated>2009-03-08T16:23:01.125Z</updated>
<entry>
<id>urn:uuid:4790bee9-8494-4fe8-9546-6d52986a115b</id>
<title type="text">The folder description</title>
<updated>2009-03-08T16:17:05.182Z</updated>
<author>
<name>system</name>
</author>
<summary type="text">folder title</summary>
<link href="http://localhost:8080/cmis/object/4790bee9-8494-4fe8-9546-6d52986a115b
" rel="self" />
<link href="http://localhost:8080/cmis/object/4790bee9-8494-4fe8-9546-6d52986a115b
" rel="edit" />
<link href="http://localhost:8080/cmis/repository" rel="cmis-
repository" />
<link href="http://localhost:8080/cmis/type/fold" rel="cmis-
type" />
<cmis:object>
<cmis:properties>
<cmis:propertyDateTime cmis:name="LastModificationDate">
<cmis:value>2009-03-08T17:17:05+01:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyString cmis:name="title">
<cmis:value>The folder description</cmis:value>
</cmis:propertyString>
<cmis:propertyString cmis:name="LastModifiedBy">
<cmis:value>system</cmis:value>
</cmis:propertyString>
<cmis:propertyId cmis:name="ObjectTypeId">
<cmis:value>fold</cmis:value>
</cmis:propertyId>
<cmis:propertyId cmis:name="ParentId">
<cmis:value>8777c04f-97e3-4e8b-9aa2-94e4fe32cb04</cmis:value>
</cmis:propertyId>
<cmis:propertyString cmis:name="CreatedBy">
<cmis:value>system</cmis:value>
</cmis:propertyString>
<cmis:propertyId cmis:name="ObjectId">
<cmis:value>4790bee9-8494-4fe8-9546-6d52986a115b</cmis:value>
</cmis:propertyId>
<cmis:propertyString cmis:name="description">
<cmis:value>folder title</cmis:value>
</cmis:propertyString>
<cmis:propertyString cmis:name="Name">
<cmis:value>4790bee9-8494-4fe8-9546-6d52986a115b</cmis:value>
</cmis:propertyString>
<cmis:propertyDateTime cmis:name="CreationDate">
<cmis:value>2009-03-08T17:17:05+01:00</cmis:value>
</cmis:propertyDateTime>
</cmis:properties>
</cmis:object>
</entry>
<entry>
<id>urn:uuid:035fe570-9e59-4edb-84cc-5f50bcc641a3</id>
<title type="text">doc 1 title</title>
<updated>2009-03-08T16:17:05.183Z</updated>
<author>
<name>system</name>
</author>
<summary type="text">The doc 1 descr</summary>
<link href="http://localhost:8080/cmis/object/035fe570-9e59-4edb-84cc-5f50bcc641a3
" rel="self" />
<link href="http://localhost:8080/cmis/object/035fe570-9e59-4edb-84cc-5f50bcc641a3
" rel="edit" />
<link href="http://localhost:8080/cmis/repository" rel="cmis-
repository" />
<link href="http://localhost:8080/cmis/type/doc" rel="cmis-type" />
<cmis:object>
<cmis:properties>
<cmis:propertyDateTime cmis:name="LastModificationDate">
<cmis:value>2009-03-08T17:17:05+01:00</cmis:value>
</cmis:propertyDateTime>
<cmis:propertyString cmis:name="title">
<cmis:value>doc 1 title</cmis:value>
</cmis:propertyString>
<cmis:propertyString cmis:name="LastModifiedBy">
<cmis:value>system</cmis:value>
</cmis:propertyString>
<cmis:propertyString cmis:name="ContentStreamAllowed">
<cmis:value>allowed</cmis:value>
</cmis:propertyString>
<cmis:propertyId cmis:name="ObjectTypeId">
<cmis:value>doc</cmis:value>
</cmis:propertyId>
<cmis:propertyBoolean cmis:name="IsLatestVersion">
<cmis:value>true</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyBoolean cmis:name="IsVersionSeriesCheckedOut">
<cmis:value>false</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyString cmis:name="CreatedBy">
<cmis:value>system</cmis:value>
</cmis:propertyString>
<cmis:propertyId cmis:name="VersionSeriesId">
<cmis:value>035fe570-9e59-4edb-84cc-5f50bcc641a3</cmis:value>
</cmis:propertyId>
<cmis:propertyString cmis:name="Name">
<cmis:value>035fe570-9e59-4edb-84cc-5f50bcc641a3</cmis:value>
</cmis:propertyString>
<cmis:propertyBoolean cmis:name="IsLatestMajorVersion">
<cmis:value>true</cmis:value>
</cmis:propertyBoolean>
<cmis:propertyString cmis:name="VersionLabel">
<cmis:value>1.0</cmis:value>
</cmis:propertyString>
<cmis:propertyId cmis:name="ObjectId">
<cmis:value>035fe570-9e59-4edb-84cc-5f50bcc641a3</cmis:value>
</cmis:propertyId>
<cmis:propertyString cmis:name="description">
<cmis:value>The doc 1 descr</cmis:value>
</cmis:propertyString>
<cmis:propertyDateTime cmis:name="CreationDate">
<cmis:value>2009-03-08T17:17:05+01:00</cmis:value>
</cmis:propertyDateTime>
</cmis:properties>
</cmis:object>
</entry>
</feed>


Thanks,
Florent

Shane

unread,
Mar 9, 2009, 5:35:31 PM3/9/09
to CMIS Explorer
I think I see what it might be.

I was looking for <link href="http://localhost:8080/cmis/types/doc"
rel="self" /> in the type entry as opposed to rel="edit".

This should be easy to fix. I don't know if there is anything in the
spec regarding this. I know that the ATOM spec indicates that if there
is no content element, then there *should* be a link element with a
rel="alternate".

Shane

On Mar 8, 11:24 am, Florent Guillaume <florent.guilla...@gmail.com>
wrote:
>      <collection href="http://localhost:8080/cmis/descendants/8777c04f-97e3-4e8b-9aa2-94e4fe...

Florent Guillaume

unread,
Mar 9, 2009, 6:05:25 PM3/9/09
to cmis-e...@googlegroups.com
On 9 Mar 2009, at 22:35, Shane wrote:
> I think I see what it might be.
>
> I was looking for <link href="http://localhost:8080/cmis/types/doc"
> rel="self" /> in the type entry as opposed to rel="edit".
>
> This should be easy to fix. I don't know if there is anything in the
> spec regarding this. I know that the ATOM spec indicates that if there
> is no content element, then there *should* be a link element with a
> rel="alternate".
>
> Shane

You're right about the Atom spec; I added the link rel="alternate" to
types (and the children collection).
But that didn't do it. Types are listed well, but not the root children.
I'll try to provide you with a publicly accessible instance so that
you can have a look directly.

Florent

Shane

unread,
Mar 9, 2009, 6:41:29 PM3/9/09
to CMIS Explorer
I'll need to update the CMIS Explorer to look for "alternate" tonight.
Right now it is looking for "self" because that is what Alfresco has.

However, it seems like everyone should use "alternate". In the
meantime I'll update the code to check for either "alternate" or
"self" until everyone standardizes on one or the other.

I'll have an updated version up on Google Code tonight.

Shane

On Mar 9, 5:05 pm, Florent Guillaume <florent.guilla...@gmail.com>
wrote:

Florent Guillaume

unread,
Mar 9, 2009, 6:59:34 PM3/9/09
to cmis-e...@googlegroups.com
Ok no hurry, I added a link rel="self" and fixed my type links and I
now see a toplevel folder -- hurray!
But I don't see the toplevel document so I'll keep digging.

BTW is there any way to activate some kinds of logs of what CMIS
Explorer is doing? This would help my debugging.

Thanks,
Florent

Shane

unread,
Mar 9, 2009, 7:26:27 PM3/9/09
to CMIS Explorer
Good deal.

Are these unfiled documents then? I need to make some changes to
support that. It doesn't show any documents at the 'root' level. It
will only show documents within any of the 'root' level folders and
the child folders.

I was thinking the same thing about logging. I usually add some
tracing when I am debugging, but I haven't actually thought about
logging out to a file yet. I'll look into that.

Shane

On Mar 9, 5:59 pm, Florent Guillaume <florent.guilla...@gmail.com>
wrote:

Florent Guillaume

unread,
Mar 9, 2009, 7:30:50 PM3/9/09
to cmis-e...@googlegroups.com
No they're not unfiled but yes they're at the root.
I'll put one at the second level but I have to fix another small bug
first.

Meanwhile I can't trace in the AS code but looking at it gave me some
clues about something I did wrong.

I'll keep you posted.

Florent

Florent Guillaume

unread,
Mar 9, 2009, 8:05:40 PM3/9/09
to cmis-e...@googlegroups.com
Ok, success!
I can now list folders and documents.

Tomorrow I'll deal with content streams.

Florent

On 10 Mar 2009, at 00:26, Shane wrote:

Shane

unread,
Mar 11, 2009, 9:22:03 PM3/11/09
to CMIS Explorer
I realize we another group but I just wanted to close this discussion
instead of starting a new one, and I am checking in some code soon.

Are you guys going to settle on <link rel="self" href="..." /> for
identify the documentType via URI?

At first I considered "alternate" because I am working on an ATOM
application myself and ran into the same situation where I have no
<content />, but I wanted to provide a URI for the entry. I'm now
thinking that "self" makes the most sense.

I'm also checking in logging ;)

Shane

On Mar 9, 7:05 pm, Florent Guillaume <florent.guilla...@gmail.com>
wrote:
Reply all
Reply to author
Forward
0 new messages