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

 


Help: OASIS Mailing Lists Help | MarkMail Help

regrep message

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


Subject: Re: [regrep] PROPOSAL: More flexible ObjectRef


Matthew MacKenzie wrote:

> Group,
>
> The current Registry object reference mechanism as defined by the RIM 
> ObjectRef class is too rigid when it comes to use cases that involve 
> object versioning. The current ObjectRef mechanism allows a specific 
> version of one object to reference a specific version of another 
> object. However, it does not allow a version of one object to 
> reference say the "latest" or "latest approved" version of another 
> object.
>
> There are many use cases where this would be desirable, for example:
>
> CompanyA publishes a "form" to the registry. The form is actually a 
> RegistryPackage containing an XML file, and some resources (images, 
> sounds, video, ...). In some cases, I do not want to automatically 
> inherit changes to constituent objects, so in those cases, I would 
> create HasMember references to specific versions of the objects to my 
> package members. In other cases, I want to automatically upgrade all 
> forms (for example, company logo change) and reference the latest 
> version of all member objects.

+1 on the need to support more flexible ObjectReferences. The concept of 
late binding comes to mind here from OO programming.

> My proposal is to add a new logical id attribute to the set of 
> registry versioning attributes, and otherwise improving ObjectRef to 
> allow selection of a particular version of an object.

+1 on being able to reference a logical object in a version independent 
manner.

This is exactly what the lid attribute is for in the versioning spec 
being added to version 2.6.

I think that the use case you raise can (and should) be addressed very 
easily by extending the ObjectRef class to have a choice of:

a) a static "hard-wired" reference to a specific version of a specific 
object (current capability)

b) a dynamic "late-binding" reference to a logical object which is 
determined at run-time (de-refence time).
I could see this being done via a second attribute named "dynamic". When 
dynamic is false (default) the registry
assumes that the id attribute references the referenced object. When 
dynamic is true, the registry assumes that the id attribute MUST be to a 
stored query that dynamically determines the referenced objects.

This is a very powerful concept. Thanks Matt for seeding this idea. I 
hope we can discuss this over email prior to next telecon. Thanks.

-- 
Regards,
Farrukh




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