[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [OASIS Issue Tracker] Commented: (ODATA-531) Simplify OptimisticConcurrency in Core vocabulary
[ http://tools.oasis-open.org/issues/browse/ODATA-531?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=34795#action_34795 ] Ralf Handl commented on ODATA-531: ---------------------------------- With the current term I can say: watch out for the ETag header, I won't allow updates without a matching ETag: <EntitySet Name="Entities" Type="Self.Entity"> <Annotation Term="Core.OptimisticConcurrencyControl" /> </EntitySet> With "Properties" suffixed this annotation may give the impression that there are no optimistic concurrency control properties, misleading the client to assume there won't be ETags. > 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]