This page lists ideas what can be improved for Wicket 7.0.
These are only ideas. Some of them may not be implemented though. There will be a separate Roadmap page that will have only the ideas on which we agreed.
To be approved an idea has to be discussed first in dev@ mailing list. A patch and/or Pull Request increases the chance to get your idea in.
Ajax back button support
Igor has already started something about this at his GitHub
Perhaps this is a better library than simple history: https://github.com/rails/turbolinks
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.
Implement JAX-RS on top of Wicket IResource
Crazy, but why not ...
- make it possible to differentiate between named indexed parameters and query string ones.
See WICKET-4594, http://markmail.org/thread/cc7yjwshqugj4wic, WICKET-4441
Removal of auto-components
Auto components caused some problems due to their special lifecycle - they appear only during the rendering process. This will simplify component queueing, resolvers+auto components, problems with enclosures, ...
The idea is to rework the auto-components to be first class citizens, i.e. once the markup is parsed they should be in the runtime component tree as manually added components are. And should be reachable in the action phase.
Java 7 as a minimum
Java 7 has nice support for generics, better annotations, and Java 6 is reaching its end of life pretty soon.
Servlet 3 as a minimum
While we opted to not require servlet 3 for wicket 6, it has bitten us a couple of times solving issues in wicket 6. Servlet 3 has been out for ages, so we should move with the times.
Improved tag manipulation
Using attribute modifiers it is difficult to modify tags in proper ways such that existing classes on a 'class' attribute remain, while adding/removing other tags. A DSL for manipulating the class value of a component would be really great.
Make transitions possible/easy when replacing components using Ajax/Push
Currently we replace the markup of components, which works for updating the components, but it doesn't provide an easy way to animate the outgoing and incoming markup using CSS transitions. For example if you add a 'hidden' class to the class attribute of a component, and update it using Ajax, the markup gets replaced instead of updated.
The issue of fragile property expressions has not been given much love ever since. Bindgen-wicket solves this in a clean and elegant way. Moreover, annotation processing is no longer cumbersome (as it has become part of javac compilation process since java 6).
Discussion in dev@ mailing list: http://markmail.org/thread/z2ngjxxtpqqwsea6
Minor API cleanups
- Rename renderHead(HtmlHeaderContainer) https://issues.apache.org/jira/browse/WICKET-4964
Use webjars instead of embedded libraries
... and integrate wicket-webjars