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

 


Help: OASIS Mailing Lists Help | MarkMail Help

odata message

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


Subject: [OASIS Issue Tracker] Updated: (ODATA-531) Simplify OptimisticConcurrency in Core vocabulary


     [ http://tools.oasis-open.org/issues/browse/ODATA-531?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Pizzo updated ODATA-531:
--------------------------------

    Proposal: 
Replace the Core.OptimisticConcurrencyControl term in the Core vocabulary with the following:

<Term Name="OptimisticConcurrency" Type="Collection(Edm.PropertyPath)" AppliesTo="EntitySet"> 
  <Annotation Term="Core.Description" 
    String="Data modification requires the use of Etags. A non-empty collection contains the set of properties that are used to compute the ETag" /> 
</Term> 

  was:
Replace the Core.OptimisticConcurrencyControl term in the Core vocabulary with the following:

<Term Name="EtagProperties" Type="Collection(Edm.PropertyPath)" AppliesTo="EntitySet">
  <Annotation Term="Core.Description" String="The set of properties that are used to compute the ETag" />
</Term>


Yes, I thought of that, but thought it was probably somewhat of a corner case.

How about if we call it "OptimisticConcurrency" but still make it a collection of properties.

Presence of the term means I have an etag header. A non-empty collection of properties additionally means that the ETag is dependent upon the specified properties:

<Term Name="OptimisticConcurrency" Type="Collection(Edm.PropertyPath)" AppliesTo="EntitySet"> 
  <Annotation Term="Core.Description" 
    String="Data modification requires the use of Etags. A non-empty collection contains the set of properties that are used to compute the ETag" /> 
</Term> 

> Simplify OptimisticConcurrency in Core vocabulary
> -------------------------------------------------
>
>                 Key: ODATA-531
>                 URL: http://tools.oasis-open.org/issues/browse/ODATA-531
>             Project: OASIS Open Data Protocol (OData) TC
>          Issue Type: Bug
>          Components: Vocabularies
>    Affects Versions: V4.0_CS01
>         Environment: [Proposal]
>            Reporter: Michael Pizzo
>             Fix For: V4.0_CSD03
>
>
> The OptimisticConcurrencyControl term in the Core vocabulary currently defines a complex type that contains a single collection-valued property:
> <Term Name="OptimisticConcurrencyControl" Type="Core.OptimisticConcurrencyControlType" AppliesTo="EntitySet">
>   <Annotation Term="Core.Description" String="If present, the annotated entity set uses optimistic concurrency control" />
> </Term>
> <ComplexType Name="OptimisticConcurrencyControlType">
>   <Property Name="ETagDependsOn" Type="Collection(Edm.PropertyPath)" Nullable="true">
>     <Annotation Term="Core.Description" String="The ETag is computed from these properties" />
>   </Property>
> </ComplexType>
> This intermediate complex type means that applying the vocabulary requires an extra <Record> and <PropertyValue> wrapper:
> <EntitySet Name="Entities" Type="Self.Entity">
>   <Annotation Term="Core.OptimisticConcurrencyControl">
>     <Record>
>       <PropertyValue Name="ETagDependsOn">
>         <Collection>
>           <PropertyPath>LastModified</PropertyPath>
>         </Collection>
>       </PropertyValue>
>     </Record>
>   </Annotation>
> </EntitySet>
> This is unnecessarily cumbersome. We can remove the extra complex type and just create a term whose type is Collection(Edm.NavigationPropertyPath), as in:
> <Term Name="OptimisticConcurrencyControlProperties" Type="Collection(Edm.PropertyPath)" AppliesTo="EntitySet">
>   <Annotation Term="Core.Description" String="The set of properties that are used to compute the ETag" />
> </Term>
> Which would be applied much more simply as:
> <EntitySet Name="Entities" Type="Self.Entity">
>   <Annotation Term="Core.OptimisticConcurrencyControlProperties">
>     <Collection>
>       <PropertyPath>LastModified</PropertyPath>
>     </Collection>
>   </Annotation>
> </EntitySet>
> I think these annotations will be common, so having a simpler way to express is significant.

-- 
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]