Description
Environment
None
depends on
Activity
Show:
Antranig Basman September 9, 2021 at 12:18 PM
Note that the work plan listed in this JIRA is extremely old. In practice we did not work by translation and produce old-fashioned renderer trees from new renderer components - instead the new renderer currently in https://github.com/amb26/new-renderer-demo/blob/FLUID-5047 fabricates the new DOM tree directly from the component tree without any intermediate representation.
The Fluid Renderer system, constructed by direct translation from Java code forming the "RSF Renderer", has increasingly come to be seen as a source of confusion and fragility. The JSON dialect(s) that it operates are hard to write, and increasingly we have come to see that facilities provided in the Renderer are more properly, powerfully and usably supplied within the JSON dialect operated by the IoC system and graded defaults scheme for standard Fluid components, which did not exist when the renderer was first written.
We should eliminate the JSON dialects parsed by the Fluid Renderer entirely from direct use in client code, instead providing a facility where arbitrary rendering effect can be achieved by writing standard Fluid components in an IoC tree, some of which will be in direct correspondence with the old Fluid renderer types e.g. UIInput, UISelect etc.
Initially this implementation will work by translation - as part of , the framework will automatically construct a standard "renderer component tree" which will then be fed to a standard invocation of the old renderer. Over time, we plan to be able to remove the majority of implementation code from the "old renderer" entirely (e.g. primitives for looping and branching through templates, which can be seen as a limited and cumbersome implementation of the more powerful directives available in the IoC system itself - branching -> type/grade resolution for , , etc., looping -> ).
This work will allow the resolution of a number of Renderer goals written up separately under various heads - e.g.
"Renderer antigen" support
"Tag singularity" problem caused by mismatches between component structure and template structure
Arbitrary allocation of rendering work between server-side and client side
Expanded renderer component workflow
This work will also be assisted by which will allow Model Transformations material to appear in a general IoC tree, as well as enabled by , the "asynchronous ginger world" which is required to allow template references to be freely interleaved amongst the component tree for .