FLUID-5824: distributeOptions distributions should be uniquified by namespace at the target, together with distance metric

Metadata

Source
FLUID-5824
Type
Improvement
Priority
Major
Status
Closed
Resolution
Fixed
Assignee
Colin Clark
Reporter
Antranig Basman
Created
2015-12-02T15:12:48.137-0500
Updated
2016-01-15T12:00:13.675-0500
Versions
N/A
Fixed Versions
N/A
Component
  1. Framework

Description

Our rules for namespaced options distributions together with priority constraints (implemented with FLUID-5621), are still not quite right. We need finer control in the case multiple distributors are competing to advise the same target. There seem to be two cases that need to be handled by the same scheme -

i) Where a level of containment is duplicated in one variant configuration, the distribution namespaces will be the same at two levels
ii) Where we require to completely displace a distribution, rather than merge with it (for example, in the case we need to displace a gradeName distribution to a target).

As our docs on "Priorities" note, our rules for namespaces wrt options distributions are already a bit anomalous with respect to the other kinds of things that can have priorities (e.g. event listeners). The expectation is that only one item with a particular namespace is permitted at the target. This is currently not enforced for options distributions. If we enforced this, with tie-breaking performed by "tree distance from distribution to target", it looks like we can deal with the two use cases above. Note that these are the opposite distance rules than those implemented originally for distributeOptions - which used to be that CLOSEST distribution wins. As per our recent thinking based around "integration through aggregation" it is more likely that a integrator who is FURTHER AWAY from the target should be given privileged overriding access.

Comments