In the current specification we have the statement:
For OSLC Defined Resources, clients SHOULD assume that an OSLC Service will discard unknown property values. An OSLC Service MAY discard property values that are not part of the resource definition or Resource Shape known by the server. We are running into a problem. When a client (in this case another application server) PUTs an update to a resource that includes a 'link' to another OSLC resource, and the server, at the time does not recognize the link type, the link is not accepted, but a 200 OK is returned. The server returns a 200 OK, because it feels like it can ignore the unrecognized link. The client gets that 200 OK, and thinks that the link was successfully added. This doesn't feel right. The only way a client can be sure that the PUT worked as expected is to re-GET the resource and compare it to what it expected to see (with the new link included), and maybe do a little looking at ETags to make sure things haven't changed in between. I guess the server could instead return a 400 Bad Request, and include in the response the reason for not accepting the PUT. But if the content that was submitted really should just be ignored (i.e. is part of a future version of the resource), then we don't want to abort the update. The OSLC verbage does not provide any guidance as to what to do. It would be helpful if we had more detailed explanation of this statement in the spec. Thanks, jim conallen Rational Design Management (DM) Integration Architect, OSLC AM Lead [email protected] Rational Software, IBM Software Group
