It seems to work fine. Alle example applications seems to work and the test are running.
Page.isStateless() is made final and it shouldn't be overriden because it can't really be up to the developer if a page is stateless or not.
stateless is calculated on every render.
If i look at the examples and the inspector then we see now that a lot of pages are not in the session!
Just look at the component reference example. It session is being kept very very clean!
johan
On 1/8/06, Johan Compagner <[EMAIL PROTECTED]> wrote:
as i already said. We know if a page is stateless or not as far as i can think off.
If Page.urlFor(Component,Interface) is not called for a page. The page is stateless..
If it is called then a callback to the page can happen so it is statefull.
Or do i miss something here?
Walking the component tree to check this can maybe be dangerous (now or in the further)
because what happens when the component itself is not the listener but for example a behaviour/ajax handler?
So i think just tracking the call to Page.urlFor is the best thing to do. And we have to make sure
that when we introduce listeners not only to components that that all go to one method of Page.
That check in Page.urlFor can be a boolean setter that is a transient or request only boolean because
if for example a Page had a Form or a Link but it is in a specific case not visible then the page is also stateless.
But that is just a matter what we want if we have a Page that was statefull then with the second request
the link/form was made invisible so then the page is stateless the Page.touch() doesn't add it again to the page map
So the Page is not again in front of the pagemap, but maybe this is the behaviour that we want because to that page
no call backs can be made. So that page doesn't have to be at front it can disappear earlier.
johanOn 1/8/06, Eelco Hillenius < [EMAIL PROTECTED]> wrote:A trick that I thought of - but never tried to implement yet - is to
walk the component tree in a (bookmarkable) page and look for any
nested IRequestListener with the exception of IRedirectListener and
bookmarkable page links. If none are found, you know that you can keep
that page out of the session. Imo, having such a boolean method is a
bit too easy and only to be used in very specific cases by people that
really know what they are doing, in which case they already have the
option of providing their own page map implementation (or whatever it
is called now). So, we might rethink whether we really need this
method, or that we should make Wicket smarter about this.
Eelco
On 1/8/06, Jonathan Locke < [EMAIL PROTECTED] > wrote:
>
> the idea was that some pages that encode stateful urls might actually be
> stateless (in the pagemap) because they put their state into the url or
> the client. that was my reasoning.
>
> Johan Compagner wrote:
> > i find that isStateless() a bit the javadoc should really be much
> > clearer of this method.
> > Because now developers can just think. "He it keeps the page out of
> > the session great i will return true"
> > But that is dangerous if you use any state (urlFor call basicly)
> > because those will not work,
> > you always get a Expired page of course..
> > So the developer can't really decide if a page is stateless yes or
> > know. We as a framework can.
> >
> > For exampe a developer can make a page stateless and in the beginning
> > it is stateless yes so everything works
> > Then suddenly a small change happens and suddenly errors are popping
> > up (hopefully they test this right as soon as possible
> > and they know immedianlty why they suddenly get an Expired Page when
> > they do X)
> >
> > johan
> >
> > On 1/7/06, *Jonathan Locke* < [EMAIL PROTECTED]
> > <mailto: [EMAIL PROTECTED]>> wrote:
> >
> >
> > maybe the IRequestCodingStrategy is the place to keep track of
> > this. if
> > the coding strategy is used, then the page is stateful. the urlFor
> > impls all call it and there might be more cases in the future.
> >
> > Johan Compagner wrote:
> > > I think for now we should just say if you want completely stateless
> > > make everything you do through bookmarkable links.
> > > Then for example amazon could do it for viewing all the
> > categories and
> > > items.
> > > Then we only need something for for forms.
> > > If we also can map a form to a bookmarkable link and that link first
> > > makes the form page (instead of looking it up in the pagemap)
> > > and then does the submit on it.
> > > Then a user must use cookies or something to store the relevant
> > > information on the clients computer (i think this is how amazon
> > works
> > > now)
> > > So then we need a BookmarkableForm component that doesn't do
> > > Page.urlFor(form,interface) but generates a bookmarkable link
> > > for the page it is on (how exactly maybe that the developer should
> > > help with)
> > >
> > > For pages that has just bookmarkable stuff (so
> > > Page.urlFor(Component,interface) is never called) we should
> > never make
> > > a PageEntry
> > > so the page should never go into the pagemap.
> > >
> > > johan
> > >
> > >
> > > On 1/7/06, * Jonathan Locke* < [EMAIL PROTECTED]
> > <mailto: [EMAIL PROTECTED]>
> > > <mailto: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> wrote:
> > >
> > >
> > > the new feature would not be any more limiting than the same
> > > feature in
> > > jsf. might not be too fun to implement though...
> > >
> > > Igor Vaynberg wrote:
> > > > imho,
> > > >
> > > > On 1/6/06, *Jonathan Locke* < [EMAIL PROTECTED]
> > <mailto:[EMAIL PROTECTED] >
> > > <mailto:[EMAIL PROTECTED] <mailto: [EMAIL PROTECTED]>>
> > > > <mailto: [EMAIL PROTECTED] <mailto: [EMAIL PROTECTED]>
> > <mailto: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>> wrote:
> > > >
> > > >
> > > > it definitely can get harder. but it depends on the
> > > page. you can
> > > > imagine a pretty complex page too where the whole page
> > can be
> > > > reconstructed in the correct state from just the page
> > > constructor
> > > > arguments... you just save the arguments and you can
> > > rebuild from
> > > > that.
> > > >
> > > >
> > > > no, actually i cant. rebuilding a page from constructor
> > > arguments just
> > > > means that you lose all the interaction that happened on
> > the page.
> > > > this is where wicket shines - the user interacts with
> > components
> > > that
> > > > are isolated from the page and keep their own state. i went
> > > through a
> > > > few pages i recently wrote to see how feasible this would
> > be, and it
> > > > was possible in a few situations, but in most it would not
> > be. even
> > > > something as simple as a dataview: the dataprovider pulls out
> > > page 4
> > > > which consists of 10 detachable models. in order to
> > reconstruct that
> > > > you would have to keep the ids of the 10 objects the models
> > > represent
> > > > and store them somewhere, then you would need a way to
> > > initialize the
> > > > data provider to load those particular 10 objects when the
> > dataview
> > > > requests page 4 after being reconstructed ( you need to
> > fake it
> > > > because page 4 at a later time does not insure the same 10
> > > objects).
> > > > it seems too much trouble to go through personally.
> > > >
> > > > i personally would probably not use this feature even on a
> > > high volume
> > > > site, perhaps unless it truly had to be clustered. but it
> > > seems
> > > > not too
> > > > hard to provide and it gives users options and critics
> > (who
> > > may or may
> > > > not be well informed) less to find lacking.
> > > >
> > > >
> > > > but then you have the situation where those same critics
> > are now
> > > > saying that this newly added feature solves nothing
> > because its too
> > > > limiting. and look at all the trouble we have to go
> > through to
> > > get it
> > > > working, i dont think converting all links to posts is
> > trivial.
> > > >
> > > > -Igor
> > > >
> > > >
> > > >
> > >
> > >
> > > -------------------------------------------------------
> > > This SF.net email is sponsored by: Splunk Inc. Do you grep
> > through
> > > log files
> > > for problems? Stop! Download the new AJAX search engine
> > that makes
> > > searching your log files as easy as surfing the web. DOWNLOAD
> > > SPLUNK!
> > > http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
> > < http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >
> > > < http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
> > < http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click>>
> > > _______________________________________________
> > > Wicket-develop mailing list
> > > [email protected]
> > <mailto: [email protected]>
> > > <mailto:[email protected]
> > <mailto: [email protected] >>
> > > https://lists.sourceforge.net/lists/listinfo/wicket-develop
> > >
> > >
> >
> >
> > -------------------------------------------------------
> > This SF.net email is sponsored by: Splunk Inc. Do you grep through
> > log files
> > for problems? Stop! Download the new AJAX search engine that makes
> > searching your log files as easy as surfing the web. DOWNLOAD
> > SPLUNK!
> > http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
> > <http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click >
> > _______________________________________________
> > Wicket-develop mailing list
> > [email protected]
> > <mailto: [email protected]>
> > https://lists.sourceforge.net/lists/listinfo/wicket-develop
> >
> >
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
> for problems? Stop! Download the new AJAX search engine that makes
> searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
> http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
> _______________________________________________
> Wicket-develop mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/wicket-develop
>
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_idv37&alloc_id865&opclick
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop
