Hi Simon,
Avoiding any change of behaviour within myfaces special options doesn't
seem adequate to me. EVERY myfaces option will change the behaviour.
MyFaces 1.2 supports
org.apache.myfaces.SERIALIZE_STATE_IN_SESSION
With this option set some applications may add non serializable beans to the state,
breaking compatibility with other implementations. It is obvious to the developer that
options starting with myfaces can induce compatibility problems.
Imho you hit the point when you said before that core extensions should be
avoided
"if they do fundamentally change the behaviour of the app". Standard applications
should be remain portable in spite of implementation options set.
Here's a short discussion on the portability issues of the proposed extension
options:
- With myfaces:pps set to true applications that evaluate request parameters within
phase 5 could change their behaviour.
- With myfaces:errorlevel set to WARNING applications that have a Javascript
part
that relies on some errorlisteners being triggered could change behaviour.
- With myfaces:queuesize set to 1 it's hard to think of an application that would
change behaviour. Maybe a button that increases a counter by 1 (or scrolls a list
by 1 page) on each click would miss some of the clicks if the user has a "quick thumb".
I cannot think of a szenario where myfaces:queuesize=1 would make an
application run
into errors (can you?).
I think all 3 of these are special cases where minor changes of behaviour occur, none
of them fundamentally changes the behaviour of the app.
Best Regards,
Ganesh
Adding behaviour-changing features to standard tags is setting a
portability trap for users, where their app will silently fail to run
correctly when executed on a different JSF implementation. That seems
unacceptable to me, even if the TCK cannot technically detect it.
So for the two params you are proposing which are just performance
tweaks, just attributes on f:ajax, or using nested f:attribute seems ok.
But for the other one (queueLength?) I would strongly recommend an
mf:ajax or mf:attribute tag be created.