myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marius Petoi <marius.pe...@codebeat.ro>
Subject Re: [GSOC] State saving status after first improvements
Date Fri, 23 Jul 2010 07:54:58 GMT
Hi Martin,

The state of a typical input text contains the following 4 attributes (both
the keys and the values): valid, value, localValueSet and submittedValue.
Value and submittedValue may be null, in this case only the keys are
contained in the state. Valid and localValueSet are boolean properties. I
measured the state of an input text to be approximately 300 B. If this is in
a table, you need to multiply it by the number of rows in that table.

Regards,
Marius

On Fri, Jul 23, 2010 at 6:07 AM, Martin Marinschek
<mmarinschek@apache.org>wrote:

> Hi guys,
>
>
> > Unfortunately, try to save the state directly on the child components is
> not
> > possible. The problem is the datatable is the one who know about the
> rows,
> > so the right place for save this information (at least the delta
> > information) is there. But the initial state could be saved on the
> children
> > if some additional methods are provided. I don't know if it is worth to
> add
> > those methods, because the only one interested to save the initial state
> is
> > the datatable (things are different if the children could use that
> > information to "reset" the current state, maybe a method called
> > resetInitialState). My first solution for partial state saving used a
> > protected variable to save the initial state on the children, but after
> look
> > the latest solution I'm inclined to implement the latest one.
>
> Leonardo is right - I don´t see a way to do this either. Additionally,
> I don´t think changing the location will buy any major reductions.
>
> For the state of a normal input text - what exactly does it consist
> of, highlight the size of each of the parts.
>
> best regards,
>
> Martin
>
> >> On Wed, Jul 21, 2010 at 7:51 PM, Leonardo Uribe <lu4242@gmail.com>
> wrote:
> >>>
> >>> Hi Marius, Martin
> >>>
> >>> Yes, it is a bug. The problem is related to some changes done on
> >>> MYFACES-2754. I think that this changes was tested against jsp but not
> >>> against facelets. I reverted the changes so you can test now.
> >>>
> >>> regards,
> >>>
> >>> Leonardo Uribe
> >>>
> >>> 2010/7/21 Martin Marinschek <mmarinschek@apache.org>
> >>>>
> >>>> Hi Marius,
> >>>>
> >>>> ok, Leonardo will hopefully take a look - for you to continue: just
> >>>> post the partial state values for typical pages right now (you can
> >>>> also take the pages of the sample as a base if you want).
> >>>>
> >>>> best regards,
> >>>>
> >>>> Martin
> >>>>
> >>>> On Wed, Jul 21, 2010 at 3:23 PM, Marius Petoi <
> marius.petoi@codebeat.ro>
> >>>> wrote:
> >>>> > Hello,
> >>>> >
> >>>> > As I see, in JspStateManagerImpl.saveSerializedView (actually in
the
> >>>> > isWritingState() method), there is a check whether the
> >>>> > JSP_IS_WRITING_STATE_ATTR is set in the FacesContext. But this
> >>>> > attribute is
> >>>> > set in ViewHandlerImpl.setWritingState() if there is no StateWriter
> >>>> > defined
> >>>> > (if the current view is a jsp). So, in my opinion, the verification
> in
> >>>> > the
> >>>> > JspStateManagerImpl.isWritingState() should also include the
> >>>> > verification of
> >>>> > the StateWriter. Otherwise, full state saving will work only for
> >>>> > JSP-s.
> >>>> >
> >>>> > Regards,
> >>>> > Marius
> >>>> >
> >>>> > On Wed, Jul 21, 2010 at 3:49 PM, Martin Marinschek
> >>>> > <mmarinschek@apache.org>
> >>>> > wrote:
> >>>> >>
> >>>> >> Hi Marius
> >>>> >>
> >>>> >> > --> Full state saving means setting the context parameter
> >>>> >> > javax.faces.PARTIAL_STATE_SAVING to false. This is all,
right?
> I've
> >>>> >> > noticed
> >>>> >> > that just by doing this, the xhtml pages don't work
> anymore...only
> >>>> >> > the
> >>>> >> > jsp-s. There is no state saved in xhtml-s. Am I missing
> something?
> >>>> >>
> >>>> >> Oh my. That´s a bug then. Leonardo, can you look into this
(not
> that
> >>>> >> I
> >>>> >> desperately need full state saving, but some users might need
it)?
> >>>> >>
> >>>> >> best regards,
> >>>> >>
> >>>> >> Martin
> >>>> >>
> >>>> >> >> On Tue, Jul 20, 2010 at 2:46 PM, Marius Petoi
> >>>> >> >> <marius.petoi@codebeat.ro>
> >>>> >> >> wrote:
> >>>> >> >> > Hi Leonardo,
> >>>> >> >> >
> >>>> >> >> > So you are working on UIData at the moment. What
about
> UIRepeat?
> >>>> >> >> > I
> >>>> >> >> > see
> >>>> >> >> > that
> >>>> >> >> > partial state saving is not implemented in UIRepeat
> components.
> >>>> >> >> > We
> >>>> >> >> > could
> >>>> >> >> > improve the _childState table (which is included
in the saved
> >>>> >> >> > state)
> >>>> >> >> > to
> >>>> >> >> > save
> >>>> >> >> > only the states which are different from an initial
state
> (like
> >>>> >> >> > in
> >>>> >> >> > UIData
> >>>> >> >> > components).
> >>>> >> >> >
> >>>> >> >> > Regards,
> >>>> >> >> > Marius
> >>>> >> >> >
> >>>> >> >> > On Mon, Jul 19, 2010 at 1:46 PM, Leonardo Uribe
> >>>> >> >> > <lu4242@gmail.com>
> >>>> >> >> > wrote:
> >>>> >> >> >>
> >>>> >> >> >> Hi Marius
> >>>> >> >> >>
> >>>> >> >> >> Right now I'm working on "MYFACES-2616 Fix
UIData state
> saving
> >>>> >> >> >> model
> >>>> >> >> >> (spec
> >>>> >> >> >> issue 153)". I hope to attach some new patches,
a example and
> a
> >>>> >> >> >> better
> >>>> >> >> >> documentation in that issue soon, so we can
review it and
> make
> >>>> >> >> >> comments.
> >>>> >> >> >>
> >>>> >> >> >> regards,
> >>>> >> >> >>
> >>>> >> >> >> Leonardo Uribe
> >>>> >> >> >>
> >>>> >> >> >> 2010/7/19 Marius Petoi <marius.petoi@codebeat.ro>
> >>>> >> >> >>>
> >>>> >> >> >>> Hi Martin,
> >>>> >> >> >>>
> >>>> >> >> >>> Regarding state saving in tables, here
are my observations
> and
> >>>> >> >> >>> comments:
> >>>> >> >> >>> - there is no state saved in relation
to the UIData objects.
> >>>> >> >> >>> - the states saved for the children of
the UIData objects
> (the
> >>>> >> >> >>> components
> >>>> >> >> >>> in the tables) are irrelevant. They are
not used afterwards,
> >>>> >> >> >>> as the
> >>>> >> >> >>> components are initialized at each request
with default
> values
> >>>> >> >> >>> and
> >>>> >> >> >>> the
> >>>> >> >> >>> state
> >>>> >> >> >>> saved corresponds to the last modifications
of the component
> >>>> >> >> >>> (to
> >>>> >> >> >>> the
> >>>> >> >> >>> row
> >>>> >> >> >>> which was last set via the setRowIndex()
method).
> >>>> >> >> >>> - every time the setRowIndex() method
is invoked with the -1
> >>>> >> >> >>> parameter,
> >>>> >> >> >>> _initialDescendantComponentState is initialized.
This will
> no
> >>>> >> >> >>> longer
> >>>> >> >> >>> be
> >>>> >> >> >>> necessary, as the initial state will
be restored from the
> >>>> >> >> >>> previously
> >>>> >> >> >>> saved
> >>>> >> >> >>> state.
> >>>> >> >> >>> - the _rowStates array of states is constructed
using
> >>>> >> >> >>> "partial"
> >>>> >> >> >>> state.
> >>>> >> >> >>> This means that only states for the rows
which are different
> >>>> >> >> >>> from
> >>>> >> >> >>> the
> >>>> >> >> >>> template are saved in this array. In
my opinion, this is
> what
> >>>> >> >> >>> needs
> >>>> >> >> >>> to
> >>>> >> >> >>> be
> >>>> >> >> >>> saved for the UIData. The children component
of the UIData
> >>>> >> >> >>> should
> >>>> >> >> >>> have
> >>>> >> >> >>> no
> >>>> >> >> >>> state saved (at least not in the first
phase - we could
> think
> >>>> >> >> >>> that
> >>>> >> >> >>> if
> >>>> >> >> >>> something appears in all the rows of
_rowStates for a
> >>>> >> >> >>> componentt,
> >>>> >> >> >>> then
> >>>> >> >> >>> we
> >>>> >> >> >>> could move this down to the component
state).
> >>>> >> >> >>>
> >>>> >> >> >>> These are just some basic observations
about state saving in
> >>>> >> >> >>> tables.
> >>>> >> >> >>> What
> >>>> >> >> >>> do you think?
> >>>> >> >> >>>
> >>>> >> >> >>> Regards,
> >>>> >> >> >>> Marius
> >>>> >> >> >>>
> >>>> >> >> >>> On Wed, Jul 14, 2010 at 4:29 PM, Martin
Marinschek
> >>>> >> >> >>> <mmarinschek@apache.org> wrote:
> >>>> >> >> >>>>
> >>>> >> >> >>>> Ok, so you actually checked it -
perfect!
> >>>> >> >> >>>>
> >>>> >> >> >>>> Next step: is there any component
where this is different?
> >>>> >> >> >>>> UIInput
> >>>> >> >> >>>> is
> >>>> >> >> >>>> ok - all the other standard components
are ok as well?
> >>>> >> >> >>>>
> >>>> >> >> >>>> When we have finished this, take
a look at what Leonardo
> has
> >>>> >> >> >>>> done
> >>>> >> >> >>>> for
> >>>> >> >> >>>> partial state saving in data-tables.
We will need to work
> out
> >>>> >> >> >>>> a
> >>>> >> >> >>>> proposal for an API in JSF 2.1 -
and, I guess, alsongside
> our
> >>>> >> >> >>>> implementation, also an implementation
for Mojarra, cause
> the
> >>>> >> >> >>>> RI
> >>>> >> >> >>>> team
> >>>> >> >> >>>> will not be able to get this done.
> >>>> >> >> >>>>
> >>>> >> >> >>>> best regards,
> >>>> >> >> >>>>
> >>>> >> >> >>>> Martin
> >>>> >> >> >>>>
> >>>> >> >> >>>> On 7/14/10, Marius Petoi <marius.petoi@codebeat.ro>
wrote:
> >>>> >> >> >>>> > I placed a breakpoint in
> >>>> >> >> >>>> > DefaultFaceletsManagementStrategy.saveStateOnMap,
> >>>> >> >> >>>> > in the point where saveState
is called for each
> component.
> >>>> >> >> >>>> > That
> >>>> >> >> >>>> > is
> >>>> >> >> >>>> > the
> >>>> >> >> >>>> > point
> >>>> >> >> >>>> > where the state to be saved
is retrieved. That is where I
> >>>> >> >> >>>> > got
> >>>> >> >> >>>> > the
> >>>> >> >> >>>> > information on the first place.
I looked at each
> component
> >>>> >> >> >>>> > and
> >>>> >> >> >>>> > at
> >>>> >> >> >>>> > the
> >>>> >> >> >>>> > returned value of saveState.
> >>>> >> >> >>>> >
> >>>> >> >> >>>> > On Wed, Jul 14, 2010 at 3:41
PM, Martin Marinschek
> >>>> >> >> >>>> > <mmarinschek@apache.org>wrote:
> >>>> >> >> >>>> >
> >>>> >> >> >>>> >> Hi Marius,
> >>>> >> >> >>>> >>
> >>>> >> >> >>>> >> "as I see" means you see
it, or you think it is like
> this
> >>>> >> >> >>>> >> ;) ?
> >>>> >> >> >>>> >>
> >>>> >> >> >>>> >> best regards,
> >>>> >> >> >>>> >>
> >>>> >> >> >>>> >> Martin
> >>>> >> >> >>>> >>
> >>>> >> >> >>>> >> On 7/14/10, Marius Petoi
<marius.petoi@codebeat.ro>
> wrote:
> >>>> >> >> >>>> >> > Hi Martin,
> >>>> >> >> >>>> >> >
> >>>> >> >> >>>> >> > I think you mean for
the attributes that I say are
> added
> >>>> >> >> >>>> >> > before
> >>>> >> >> >>>> >> > the
> >>>> >> >> >>>> >> > call
> >>>> >> >> >>>> >> to
> >>>> >> >> >>>> >> > markInitialState().
So, as I see, the
> >>>> >> >> >>>> >> > org.apache.myfaces.view.facelets.MARK_ID,
locale,
> >>>> >> >> >>>> >> > uniqueIdCounter,
> >>>> >> >> >>>> >> > renderKitId, rendererType
are not present in the
> partial
> >>>> >> >> >>>> >> > state
> >>>> >> >> >>>> >> > at
> >>>> >> >> >>>> >> > the
> >>>> >> >> >>>> >> > end
> >>>> >> >> >>>> >> of
> >>>> >> >> >>>> >> > the lifecycle, although
they are in the StateHelper.
> The
> >>>> >> >> >>>> >> > reason
> >>>> >> >> >>>> >> > for
> >>>> >> >> >>>> >> > this
> >>>> >> >> >>>> >> is
> >>>> >> >> >>>> >> > that they are added
there before the call to
> >>>> >> >> >>>> >> > markInitialState().
> >>>> >> >> >>>> >> > So,
> >>>> >> >> >>>> >> > they
> >>>> >> >> >>>> >> > will never be in the
partial state.
> >>>> >> >> >>>> >> >
> >>>> >> >> >>>> >> > Regards,
> >>>> >> >> >>>> >> > Marius
> >>>> >> >> >>>> >> >
> >>>> >> >> >>>> >> > On Wed, Jul 14, 2010
at 3:05 PM, Martin Marinschek
> >>>> >> >> >>>> >> > <mmarinschek@apache.org>wrote:
> >>>> >> >> >>>> >> >
> >>>> >> >> >>>> >> >> Hi Marius,
> >>>> >> >> >>>> >> >>
> >>>> >> >> >>>> >> >> you are sounding
a bit unsure about this - did you
> >>>> >> >> >>>> >> >> really
> >>>> >> >> >>>> >> >> check
> >>>> >> >> >>>> >> >> what
> >>>> >> >> >>>> >> >> is in the partial
state at the end of the lifecycle?
> >>>> >> >> >>>> >> >>
> >>>> >> >> >>>> >> >> best regards,
> >>>> >> >> >>>> >> >>
> >>>> >> >> >>>> >> >> Martin
> >>>> >> >> >>>> >> >>
> >>>> >> >> >>>> >> >> On 7/14/10, Marius
Petoi <marius.petoi@codebeat.ro>
> >>>> >> >> >>>> >> >> wrote:
> >>>> >> >> >>>> >> >> > Hello,
> >>>> >> >> >>>> >> >> >
> >>>> >> >> >>>> >> >> > After the
improvements we discussed in previous
> >>>> >> >> >>>> >> >> > threads,
> >>>> >> >> >>>> >> >> > here
> >>>> >> >> >>>> >> >> > is
> >>>> >> >> >>>> >> >> > what
> >>>> >> >> >>>> >> >> > the
> >>>> >> >> >>>> >> >> > state looks
like for some of the components:
> >>>> >> >> >>>> >> >> >
> >>>> >> >> >>>> >> >> > - the org.apache.myfaces.view.facelets.MARK_ID
> >>>> >> >> >>>> >> >> > (ComponentSupport.MARK_CREATED)
attribute is
> present
> >>>> >> >> >>>> >> >> > in
> >>>> >> >> >>>> >> >> > almost
> >>>> >> >> >>>> >> >> > all
> >>>> >> >> >>>> >> >> > the
> >>>> >> >> >>>> >> >> > components,
but that is put in the attributes map
> >>>> >> >> >>>> >> >> > before
> >>>> >> >> >>>> >> >> > the
> >>>> >> >> >>>> >> >> > initial
> >>>> >> >> >>>> >> >> state
> >>>> >> >> >>>> >> >> > is marked,
so I think it does not affect partial
> >>>> >> >> >>>> >> >> > state
> >>>> >> >> >>>> >> >> > saving
> >>>> >> >> >>>> >> >> >
> >>>> >> >> >>>> >> >> > - same goes
for locale, uniqueIdCounter,
> renderKitId,
> >>>> >> >> >>>> >> >> > rendererType,
> >>>> >> >> >>>> >> >> > which
> >>>> >> >> >>>> >> >> > are also attributes
in the StateHelper, but are
> added
> >>>> >> >> >>>> >> >> > before
> >>>> >> >> >>>> >> >> > the
> >>>> >> >> >>>> >> >> > call
> >>>> >> >> >>>> >> to
> >>>> >> >> >>>> >> >> > markInitialState().
So they also shouldn't be
> >>>> >> >> >>>> >> >> > included in
> >>>> >> >> >>>> >> >> > the
> >>>> >> >> >>>> >> >> > partial
> >>>> >> >> >>>> >> >> state.
> >>>> >> >> >>>> >> >> >
> >>>> >> >> >>>> >> >> > - for UIInput,
the partial state contains the
> value,
> >>>> >> >> >>>> >> >> > localValueSet,
> >>>> >> >> >>>> >> >> > submittedValue
and valid properties. This is the
> >>>> >> >> >>>> >> >> > partial
> >>>> >> >> >>>> >> >> > state
> >>>> >> >> >>>> >> >> > which
> >>>> >> >> >>>> >> is
> >>>> >> >> >>>> >> >> > stored after
one submit.
> >>>> >> >> >>>> >> >> >
> >>>> >> >> >>>> >> >> > Do you have
other suggestions about what else could
> >>>> >> >> >>>> >> >> > be
> >>>> >> >> >>>> >> >> > improved
> >>>> >> >> >>>> >> >> > in
> >>>> >> >> >>>> >> >> partial
> >>>> >> >> >>>> >> >> > state saving?
> >>>> >> >> >>>> >> >> >
> >>>> >> >> >>>> >> >> > 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
> >>>> >> >> >>>> >>
> >>>> >> >> >>>> >
> >>>> >> >> >>>>
> >>>> >> >> >>>>
> >>>> >> >> >>>> --
> >>>> >> >> >>>>
> >>>> >> >> >>>> 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
> >>>> >> >
> >>>> >> >
> >>>> >>
> >>>> >>
> >>>> >>
> >>>> >> --
> >>>> >>
> >>>> >> 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
> >>>
> >>
> >
> >
>
>
>
> --
>
> http://www.irian.at
>
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
>

Mime
View raw message