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

    Description: 
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.





  was:
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:




       Proposal: 
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>

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