New model relay facilities: FLUID-5361, FLUID-5371

Antranig Basman 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 
designed.

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 
direction.
"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.

Cheers,
A


More information about the fluid-work mailing list