OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

cmis message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] Commented: (CMIS-713) Add secondary objecttypes



    [ http://tools.oasis-open.org/issues/browse/CMIS-713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=25044#action_25044 ] 

David Choy commented on CMIS-713:
---------------------------------

Backward compatibility is a discussion by itself. We should address that at F2F. While compatibility is certainly desirable, 1.0 and 1.1 won't be 100% compatible because of the substantive changes we have already decided to make.
If they are not 100% compatible, then repositoryInfo should indicate which version of CMIS a repository supports. A repository that supports both 1.0 and 1.1 should provide a separate service endpoint for each.
While a vendor can still claim CMIS compliance by complying with 1.0, I doubt any vendor will be happy to be excluded from CMIS 1.1.

Using a secondary type to extend a primary type:

Assume we have a primary type P(p1 p2 p3) and a secondary type S(s1 s2), where p1, p2, p3, s1 and s2 are properties defined for the respective types. One could use S to create a subtype of P, T(p1 p2 p3 s1 s2), which is a primary type. If a repository does not have a capability to add a secondary type to an object instance, then secondary types can only be used to extend primary types in this manner.

Let's say P is the v1.1 base type for Document, which includes all v1.0 Document base type properties except content stream properties. S is v1.1 secondary object type containing content stream properties. Both P and S are predefined by 1.1. 
For a repository that has an ability to add secondary type to object instance, calling setContentStream for an object of P will add type S to the object if type S has not been added to the object before.

A repository that does not have an ability to add secondary type to object instance can define T. If setContentStream is called for an object of type T, the behavior will be just like v1.0. If it is called for an object of type P, an exception will be thrown, There is a catch though. When S is used to extend P, every "required" property of S needs to be changed to a "not required" property of T.

> Add secondary object types
> --------------------------
>
>                 Key: CMIS-713
>                 URL: http://tools.oasis-open.org/issues/browse/CMIS-713
>             Project: OASIS Content Management Interoperability Services (CMIS) TC
>          Issue Type: New Feature
>          Components: Domain Model
>            Reporter: Florian Mueller
>             Fix For: V1.1
>
>
> We have discussed secondary types/mix-ins/aspects/categories/... for CMIS 1.0 and dismissed them to get the specification out of the door.
> We should take the discussion up again for CMIS 1.1. It would open the door for more applications and simplify others. If I remember correctly, many repositories have native support for secondary types anyway.
> See this document for a more detailed proposal: http://www.oasis-open.org/apps/org/workgroup/cmis/download.php/41368/SecondaryTypesProposal.docx

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://tools.oasis-open.org/issues/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]