A couple of other things to note:
I checked another example, the Date Time Entry Ajax Submit example as it's characteristics are very similar to to the Panel Listeners and it turns out that the listener is not fired there either. It's just that there is nothing in the UI to make this easily detectable. The setter is actually updating the date.
To boil down what I think the problem is. The AjaxBehavior(s) associated with the component are being handled differently than Mojarra. When you interact with the component
Mojarra:
AjaxBehaviour 'A' is created as part of Facelets construction
Listener is associated
AjaxBehaviour 'B' is created as part of View restoration
Listener is not associated
AjaxBehaviour 'A' is used (which has the associated Listener)
MyFaces:
AjaxBehaviour 'A' is created as part of Facelets construction
Listener is associated
AjaxBehaviour 'B' is created as part of View restoration
Listener is not associated
AjaxBehaviour 'B' is used (which does not have the associated Listener)
A couple of other things to note:
I checked another example, the Date Time Entry Ajax Submit example as it's characteristics are very similar to to the Panel Listeners and it turns out that the listener is not fired there either. It's just that there is nothing in the UI to make this easily detectable. The setter is actually updating the date.
To boil down what I think the problem is. The AjaxBehavior(s) associated with the component are being handled differently than Mojarra. When you interact with the component
Mojarra:
AjaxBehaviour 'A' is created as part of Facelets construction
Listener is associated
AjaxBehaviour 'B' is created as part of View restoration
Listener is not associated
AjaxBehaviour 'A' is used (which has the associated Listener)
MyFaces:
AjaxBehaviour 'A' is created as part of Facelets construction
Listener is associated
AjaxBehaviour 'B' is created as part of View restoration
Listener is not associated
AjaxBehaviour 'B' is used (which does not have the associated Listener)