Hi guys,

In the last two weeks I was working on a better debug page (<ui:debug />)
for MyFaces, which contains a lot more information than the current one.
This information includes the whole component tree (how it really is
rendered), renderer information and a value lifecycle (submittedValue,
localValue and values changes over the whole lifecycle) with a call stack
(from where the call to the setter came from).

The value lifecycle however is only available if the ProjectStage is
Development. For this to work I use a DebugPhaseListener and in addition
some code on UIInput.setSubmittedValue() and UIInput.setValue(). The code in
UIInput checks if the current ProjectStage is Development and if so, it
stores debug information in the request map.

The problem with this is that the code on UIInput checks the ProjectStage
everytime setSubmittedValue() or setValue() are called, which is very often
and could make MyFaces a bit slower, I guess. If we remove this code on
UIInput, the debug output will stay mostly the same except for the call
stack, because this will be gone.

The question now is if we should leave it the way it currently is (with the
code on UIInput and the possibility to display the call stack) or if we
should remove the code from UIInput (which means no slowdown on
setSubmittedValue() and setValue() but loosing the call stack). What do you
guys think? Any opinions/objections?

Regards,
Jakob

-- 
Jakob Korherr

blog: http://www.jakobk.com
twitter: http://twitter.com/jakobkorherr
work: http://www.irian.at

Reply via email to