- getScript method checks for proper component type. For EditableValueHolder it delegates call to the ClientValidatorRenderer, ActionSource uses FormClientValidator. In all other cases, FacesException should be thrown.
- (Server Side pp 2 ) findMessages should find all UIMessage components which points to target UIInput component, and all UIMessages included in view. If no message components found, it should throw MessageNotFoundException. This is optional check that should be performent in "DEVELOPMENT" stage only. Postpone implementation to M5 or late.
- ( ServerSide pp 3 ) getConverter should determine Converter instance used in target UIInput component. If it cannot find appropriate converter, it should throw ConverterNotFoundException.
- ( Server Side pp 4 ) getValidators should find all JSF and JSR-303 validators associated with target UIInput and return collections of their descriptors. If no validators there, it returns empty collection. For JSR-303 validators, it uses BeanValidatorUtils class, available as service in ServiceTracker.
- Behavior should wrap AjaxBehavior to generate AJAX call script and process decode phase. ClientValidatorRenderer gets script for AJAX call by getAjaxScript method.
- decode method delegates call to wrapped AjaxBehavior. If AJAX request detected by later, modifies it to render response after PROCESS_VALIDATORS phase, and also add to "render" list all UIMessage components that pointed to parent input.