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!


Reply via email to