Changes
IPageStore rework
Storage of pages was reworked:
- PageStoreManager was broken up into specific managers for storing pages in the request and session and further storage
- IPageStore and IDataStore were unified
Most application code should be uneffected by this change, IPageManager stays the central mediator between the application and page storage(s).
Users might consider utilizing new features as:
- CryptingPageStore for encryption of persisted pages
- FilePageStore with improvements for storing of pages that receive alternating requests
Stores in https://github.com/wicketstuff/core/wiki/DataStores were also updated.
PriorityHeadItems siblings ordering
The order of siblings' PriorityHeaderItems are now preserved.
API Changes
Deprecate package org.apache.wicket.util.time from wicket-util
Wicket used custom classes from package org.apache.wicket.util.time to handle and manipulate time entities such as "duration" or "current instant".
These classes have been replaced with standard Java 8 classes java.time.Duration and java.time.Instant.
Removals
Removed from wicket-core all the deprecated classes
Several deprecated classes were removed from wicket-core:
org/apache/wicket/RequestListenerInterface.java
org/apache/wicket/markup/IMarkup.java
org/apache/wicket/model/AbstractReadOnlyModel.java
org/apache/wicket/model/IChainingModel.java
org/apache/wicket/protocol/http/documentvalidation/Comment.java
org/apache/wicket/protocol/http/documentvalidation/DocumentElement.java
org/apache/wicket/protocol/http/documentvalidation/HtmlDocumentParser.java
org/apache/wicket/protocol/http/documentvalidation/HtmlDocumentValidator.java
org/apache/wicket/protocol/http/documentvalidation/Tag.java
org/apache/wicket/protocol/http/documentvalidation/TextContent.java
org/apache/wicket/request/cycle/AbstractRequestCycleListener.java
User agent detection
WICKET-6544 removes Wicket's user agent detection (was deprecated in Wicket 8.x), as the API and implementation was not sufficient for modern browsers. Users are encouraged to utilize https://github.com/nielsbasjes/yauaa
Dependencies
Wicket 9.0 requires Java 11
Upgrade JUnit to version 5
All **Tester classes (e.g. WicketTester, FormTester, TagTester, WebSocketTester) now depend on JUnit 5.x instead of 4.x.
Update CDI integration to CDI 2.0 specification
The old wicket-cdi module based on CDI 1.0 has been replaced with wicket-cdi-1.1 module (based on CDI 1.1), which has been updated to CDI 2.0. No code change or API break has been required for this update, hence those who were using wicket-cdi-1.1 should have no problem migrating to the new wicket-cdi module.
Use JQuery 3.x by default
JQuery 2.x is not maintained anymore by jQuery team. Wicket will use by default latest available 3.x version.
Upgrade Apache Velocity to 2.x
wicket-velocity module now uses org.apache.velocity:velocity-engine-core:2.1 dependency instead of org.apache.velocity:velocity:1.7. Because of this change there are small API changes in the signature of the Wicket Model used for the variables.
Overall updates
All libraries on which Wicket modules depend are updated to their latest stable versions.
The most notable ones are:
- Spring Framework 5.x
- Objenesis 3.x