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
