New model relay facilities: FLUID-5361, FLUID-5371
antranig.basman at colorado.edu
Thu May 15 03:46:25 EDT 2014
This work is being driven by cindyli's requirements for upgrading our metadata editing component for the
FLOE project to use the new model relay system. We're trying to ensure for the Infusion 1.5 release that the
system is usable for at least one use case beyond the ones that were already in place when it was first
http://issues.fluidproject.org/browse/FLUID-5361 implements global ordering for notification of
modelListeners across the entire component tree. The "priority" element which has been supported as standard
for all Infusion listeners and change listeners was ignored in the initial delivered implementation of model
relay since it was not immediately clear how it should be honoured. Model listeners were notified in an
indeterminate order. With FLUID-5361 listeners are now notified in priority order, sorted across all
components/models participating in the update transaction - that is, for example, all listeners with
priority 1 will be notified definitely before all listeners with no priority, which will be notified before
all listeners annotated as "last".
http://issues.fluidproject.org/browse/FLUID-5371 introduces new configuration options accepted in
"modelRelay" blocks under the names "forward" and "backward" - please comment on naming and apparent sanity.
The supported values for these options are:
"always" (default value - same effect as undefined or falsy): Always operate this relay in the specified
"liveOnly": Do not operate the relay in this direction during initialisation of this component's model
(during the "initial transaction")
"initOnly": ONLY operate the relay in this direction during the initial transaction (no plausible use can be
thought of for this option, entered only for completeness)
"never": Never operate this relay in this direction.
Clearly the "backward" options will be ignored if the relay rule is not invertible.
Pull request https://github.com/fluid-project/infusion/pull/520 is ready for checking by cindyli to see if
further blockers are encountered in the metadata component work - it's not yet ready for merging since it
needs a few more test cases for the new FLUID-5371 functionality.
Several significant bugs have come to light in the model relay implementation but hopefully they will not
need to be considered blockers for 1.5.
More information about the fluid-work