Hi Leonardo, > The param "org.apache.myfaces.view.facelets.APPLIED" is used with the web > config param javax.faces.FACELETS_REFRESH_PERIOD, to detect changes on the > template files. If you set this param to 0, facelets stops to add it and > your state size is reduced, so that configuration must be used in production > environments.
so that is in all components? and it is only for reloading? wouldn't it be enough to have this once per view? In the view-root attributes map? then, if any of the files which are loaded are younger than this param, we drop the whole thing and reload? I thought the MARK_APPLIED was for something else, but I don't remember too well... I am concerned even about polluting the state while development - it makes the debugging harder. > I think it is possible to do something about ComponentSupport.MARK_DELETED. > The algorithm used to refresh a view by facelets uses this param to indicate > when a component should be deleted, but I think we can rewrite the algorithm > to do not use the component attribute map to save this information, because > it is only relevant for the current request. For even less, right? It should really be valid only for one building of the view - can we keep it in some facelet-context attribute, keyed by the component instance (so that the lookup is fast)? > Maybe we should change the keys for example from > "org.apache.myfaces.view.facelets.MARK_DELETED" to something smaller like > "oam.facelets.MARK_DELETED" to save some bytes. ah well, it should go completely. Everything else is only half the rent. best regards, Martin > 2010/6/24 Marius Petoi <marius.pe...@codebeat.ro> > >> Hello, >> >> As you said, Martin, the attribute >> "org.apache.myfaces.view.facelets.APPLIED" is included in the partial >> state. >> This, as well as all the other attributes of the components, as the >> attributeMap in the UIComponentBase is a _ComponentAttributesMap. The put >> method of this map calls afterwards the method in the _DeltaStateHelper. >> This method includes everything in the partial state (as long as the >> initial >> state is marked). This means that all the attributes of a component will >> be >> included in the partial state. I suppose that there are other attributes >> as >> facelets.APPLIED, which don't need to be included in the partial state. >> >> So my suggestion at first would be to add flags to the "put" methods of >> the >> _DeltaStateHelper, in which to decide whether the value added needs to be >> in >> the partial state (and therefore added in the _deltas map), or not (in >> which >> case it will be added only in the _fullstate map). Afterwards, we should >> revise all the attributes and decide whether they need to be in the >> partial >> state or not and call the put methods with the apropriate flag. >> >> What do you think? >> >> Regards, >> Marius >> >> >> On Wed, Jun 23, 2010 at 4:54 PM, Martin Marinschek <mmarinsc...@apache.org >> > wrote: >> >>> Hi Marius, >>> >>> I think you will easily find out candidates for a better >>> implementation - just take a look at the partial state of any of the >>> components. Something that comes immediately to my mind is >>> facelets.MARK_APPLIED - this is only relevant in request-scope, but is >>> currently in the partial state, both in Mojarra and MyFaces (last time >>> I looked). >>> >>> Stuff like this needs to be fixed. Tell us if you have more information. >>> >>> best regards, >>> >>> Martin >>> >>> On 6/18/10, Leonardo Uribe <lu4...@gmail.com> wrote: >>> > Hi >>> > >>> > I think the key classes are UIComponentBase , _DeltaStateHelper and >>> > _DeltaList. Take a look at UIComponentBase.saveState() and >>> > UIComponentBase.restoreState(). Those methods have calls to other >>> methods >>> > that are critical to state saving. I remember UIViewRoot has other >>> methods >>> > too. I think check those classes are a good point to start. >>> > >>> > regards, >>> > >>> > Leonardo Uribe >>> > >>> > 2010/6/18 Marius Petoi <marius.pe...@codebeat.ro> >>> > >>> >> Hello, >>> >> >>> >> In order to study the current performance of state saving, I designed >>> >> a >>> >> small page that I included in the examples for MyFaces 2.0. Also, I >>> wrote >>> >> 2 >>> >> phase listeners that determine the length of the state saved in the >>> >> ExternalContext before the render response phase and before the >>> >> restore >>> >> view >>> >> phase. Do you have any suggestions what components should I start >>> >> analyzing >>> >> the state for? >>> >> >>> >> Regards, >>> >> Marius >>> >> >>> > >>> >>> >>> -- >>> >>> http://www.irian.at >>> >>> Your JSF powerhouse - >>> JSF Consulting, Development and >>> Courses in English and German >>> >>> Professional Support for Apache MyFaces >>> >> >> > -- http://www.irian.at Your JSF powerhouse - JSF Consulting, Development and Courses in English and German Professional Support for Apache MyFaces