FLUID-5054: Base grades of dynamic grades are not registered into IoC resolution

Metadata

Source
FLUID-5054
Type
Bug
Priority
Critical
Status
Closed
Resolution
Fixed
Assignee
y z
Reporter
y z
Created
2013-06-14T11:29:03.072-0400
Updated
2014-03-03T11:48:52.854-0500
Versions
  1. 1.4
Fixed Versions
N/A
Component
  1. IoC System

Description

It looks like contributed hierarchical grades are not resolving with the current IoC system.

Attaching a patch with a test case

Comments

  • Antranig Basman commented 2013-06-17T05:41:01.429-0400

    Hi Yura - thanks for this issue report - the test case code looks clear enough but this report unfortunately falls into the category of a TLJ (Two Line JIRA). Do you think you could expand the issue description so that
    i) there is a chance that a 3rd party could understand what the issue is without reading the code
    ii) you describe the context where the problem arose
    iii) you describe any simplifications you have attempted to the test case which will cause it no longer to fail

    Thanks, A

  • y z commented 2013-06-17T13:22:11.480-0400

    Hi Antranig, gladly:

    i) As a user of the framework might be aware, there's an option of specifying ("contributing") additional grades to a specific component via its options. Those additional grades might be composed of other grades created outside of framework defaults. The problem here is that if such grade is, indeed, specified in options, the actual component will not be considered an instance of one of its derivative grades.

  • y z commented 2013-06-17T13:27:55.956-0400

    ii) The problem arose while working on refactoring of uioptions. We have a grade called fluid.uiOptions.initialModel that contains an empty initial model used by uiOptions component. In addition to that grade we also have a grade called fluid.uiOptions.initialModel.starter. This grade is a child grade of fluid.uiOptions.initialModel with a starter uiOptions model actually defined. This grade is conditionally attached to fluid.uiOptions component itself (there's an option of defining other grades that inherit from fluid.uiOptions.initialModel). The problem arises when we refer to fluid.uiOptions component as a more loose fluid.uiOptions.initialModel grade instead of its fluid.uiOptions.initialModel.starter instance. In that case the reference to a component is not resolved by the framework.
    3) Note however that everything works if there grades are specified in the component defaults. In order to fix it, for the time being (until the initial model is replaced by the current schema work), uiOptions has an additional default grade of fluid.uiOptions.initialModel that contains no pre set initial uiOptions model.

  • Antranig Basman commented 2013-06-18T07:51:22.618-0400

    Thanks for the addiitonal description, Yura! A pull request is now in the queue

  • Antranig Basman commented 2013-06-28T16:08:25.815-0400

    Merged into trunk at dccfc47