Hello,
I know this is not on the roadmap right now, but I wanted to bring up
one feature from the wishlist which I recently updated. From the wiki:
Better stateless support
add more stateless components (stateless versions of existing
components)
adopt Ajax stateless behaviors (allow stateless ajax behavior
listeners)
...
In Wicket 6, any behavior implementing IBehaviorListener becomes
stateful. This includes all subclasses of AbstractAjaxBehavior.
Overriding this behavior by making getStatelessHint() return true for an
ajax behavior with a listener interface is tricky. The listener's url
cannot be assumed to be stable unless the number and order of behaviors
added to components does not change between the page creation and the
ajax request.
Now, some background. Recently, I've built a mechanism for building
"guided tours" of my website. It's essentially a server-side version of
http://bootstraptour.com/ which localizes the content and handles
navigating from one Wicket page to another during the tour. My approach
was to "inject" an ajax behavior (with next, prev links) to a page when
it is part of a currently active tour. This behavior takes care of
rendering the popovers and handling the tour navigation ajax callbacks.
I use an IComponentInstantiationListener which checks if the current
page is part of a tour and adds the ajax behavior.
This works very well, but a stateless page which is part of a tour
automatically becomes stateful when adding the behavior. Also, consider
a component on a site's front page which loads the latest 5 entries from
a database (think message board) and refreshes itself every 10 seconds.
To keep the page stateless, which is desirable I believe in many cases,
you'd have to use another mechanism (json resource with hand-built html
to display it, etc.) but you could not use only Wicket components and
behaviors.
I understand that perhaps no one is available or interested to work on
the "stateless ajax" issue. I also know that it is not trivial at all,
especially when we consider component replacement in pages. I simply
wanted to restate that this type of feature could be major for Wicket.
There have been many posts on the mailing list regarding stateless pages
and ajax.
Regards,
Bertrand
On 26/06/2013 7:20 AM, Martin Grigorov wrote:
Hi all,
I'd like to discuss where we are with Wicket 7 and what to do next.
At the moment there are just
3<https://issues.apache.org/jira/issues/?jql=project%20%3D%20WICKET%20AND%20fixVersion%20%3D%20%227.0.0%22%20AND%20status%20in%20(Open%2C%20%22In%20Progress%22%2C%20Reopened)%20ORDER%20BY%20created%20DESC%2C%20summary%20ASC>
tickets
with "Fix Version" 7.0.0.
One <https://issues.apache.org/jira/browse/WICKET-5172> of them is about
adding a link for the javadoc at http://wicket.apache.org. Trivial.
Another <https://issues.apache.org/jira/browse/WICKET-4951> is about
CDI-1.1. John Sarman is helping here. Thanks!
And the last <https://issues.apache.org/jira/browse/WICKET-5184> one is
about the signature of AbstractTree/Model.ofSet(). I don't see a good
solution here, but I have provided a workaround.
In the roadmap page there is also:
Refactor checkgroup/radiogroup to make them non
components<https://cwiki.apache.org/confluence/display/WICKET/Wicket+7.0+Roadmap#Wicket7.0Roadmap-Refactorcheckgroup%2Fradiogrouptomakethemnoncomponents.>
-
@Igor: do you want to work yourself on this ? Otherwise please give more
details how you imagine the new way.
Make CSS class strings used in the framework
configurable<https://cwiki.apache.org/confluence/display/WICKET/Wicket+7.0+Roadmap#Wicket7.0Roadmap-Makecssclassstringsusedintheframeworkconfigurable>
-
this one is clear. If there are no objections then I'll pick it soon
(unless someone else does it before me).
I'm going to investigate few tickets about bookmarkable mappers
(MountMapper, MountedMapper, PackageMapper and ResourceMapper) and their
handling of named parameters in the path/segments.
Unless someone has more ideas what can be improved for Wicket 7 I think we
are pretty close to be "feature complete" and we can release a milestone or
release candidate.
I'd like to thank Cedric Gatay, Michael Mossman, Andrea Del Bene and John
Sarman for their help so far!