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 ...

PageParameters improvements

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.
See http://wicketinaction.com/2013/02/replace-components-with-animation/

Integrate bindgen-wicket

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

Use webjars instead of embedded libraries

... and integrate wicket-webjars