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