FLUID-4917: Implement "demands block horizon" system enabling demands block resolution to be cut off when meeting first instance of a context name

Metadata

Source
FLUID-4917
Type
Improvement
Priority
Major
Status
Closed
Resolution
Fixed
Assignee
Justin Obara
Reporter
Antranig Basman
Created
2013-02-19T05:22:16.507-0500
Updated
2017-05-12T11:12:53.629-0400
Versions
  1. 1.4
Fixed Versions
  1. 1.5
Component
  1. IoC System
  2. Progressive Enhancement

Description

A fully consistent implementation of the ProgressiveEnhancement system requires us to be able to declaratively curtail demands block searches in order to make sure that at most one instance (the closest to the point of resolution) of a particular ProgressiveCheckerForComponent (PCFC) is taken into account. This is necessary because the current demands block system is only ADDITIVE - and so without some form of "horizon" system, the union of all context tags for a particular PCFC that can be seen up the component tree hierarhcy would be seen by the component instance which is resolving - which would lead to ambiguous and possibly incorrect matches for a required component implementation.

The intent of the PCFC system is that decisions made at a higher level in the tree can be overridden by means of PCFC instances lower down the tree - either to countermand them in the case of a localised set of the tree, or else to reflect more detailed information about user context + preferences.

A syntax like the following is proposed:

fluid.demands("fluid.uploaderImpl", "fluid.uploader.html5",
    { funcName: "fluid.uploader.multiFileUploader", horizon: "fluid.uploader.progressiveCheck" }
);

The "fluid.uploader.progressiveCheck" name is already automatically generated by the PCFC system.

Comments

  • Antranig Basman commented 2013-05-06T17:17:09.683-0400

    Committed to trunk at revision a653e4e