Environment
Wicket 8.0 requires at least Java 8
Wicket 8.0 requires Servlet 3.1
API changes
Deprecate org.apache.wicket.util.IProvider
Replace it with standard Java 8 java.util.function.Supplier<T> which is virtually identical.
IGenericComponent's setter methods now return the current instance for method chaining
All specialization classes return their type.
AjaxFallback** components now use java.util.Optional
All AjaxFallback** components and the containers which use internally AjaxFallback** components, like AjaxTabbedPanel, RatingPanel and TableTree, have been reworked to pass Optional<AjaxRequestTarget> instead of just AjaxRequestTarget to their onXyz() callback methods. This way the application developer should not forget to check that the AjaxRequestTarget is not null.
Behavior changes
FormComponentPanel delegates the call to #clearInput to its FormComponent children
FormComponent#clearInput() has been made non-final, so that now containers like FormComponentPanel could override this method and call #clearInput() on its children of type FormComponent.
Removals
Drop Jetty 7.x and 9.0.x modules for Wicket Native WebSocket WICKET-5990
Since Wicket 8.x requires Servlet 3.1 the modules for native websocket support for Jetty 7.x/9.0.x have been dropped.
Users are advised to use wicket-native-websocket-javax module with Jetty 9.2+, Apache Tomcat 7/8, JBoss WildFly.
Dependency updates
All libraries on which Wicket modules depend are updated to their latest stable versions.
The most notable ones are:
- Spring Framework 4.2.x
- Jetty 9.3.x (used in the Quickstart application archetype and for internal Wicket testing)