Table of Contents |
---|
This page lists ideas what can be improved for Wicket 8.0.
...
- java.util.Optional for AjaxFallback**
Jira server ASF JIRA serverId 5aa69414-a9e9-3523-82ec-879b028fb15b key WICKET-6104 - new DateTime APIs for wicket-datetime
Jira server ASF JIRA serverId 5aa69414-a9e9-3523-82ec-879b028fb15b key WICKET-6105 - Lambda API for Listeners (onClick, etc.) Done. See Lambdas.java
AppCache for Offline-Support
http://www.html5rocks.com/de/tutorials/appcache/beginner/http://www.w3.org/TR/2011/WD-html5-20110525/offline.html
See: https://github.com/klopfdreh/wicket-components-playground/wiki/20.-HTML5-OfflineMode Implementation on hold (with ServiceWorker)
Also See: https://github.com/wicketstuff/core/tree/master/offline-mode-parent (Integration into Wicketstuff - with example)
Stays in wicketstuff repo as long as there is not enough browser support (http://caniuse.com/#feat=serviceworkers)
Better monitoring ( Jira server ASF JIRA serverId 5aa69414-a9e9-3523-82ec-879b028fb15b key WICKET-6120
)
Jira | ||||||
---|---|---|---|---|---|---|
|
Expose hooks for better monitoring.
For example an integration with something like https://dropwizard.github.io/metrics/3.1.0/
Better SEO for stateful pages
...
Some applications currently need to use NoVersionMapper (e.g. Apache OpenMeetings) to avoid it.
Basic components for mobile devices based on HTML5
Support for basic video / audio capture for example.
Media Components (
) Jira server ASF JIRA serverId 5aa69414-a9e9-3523-82ec-879b028fb15b key WICKET-6025
Generic resource reference to handle with media files located at the file system of the server (out of the box) (also for Wicket 7)
Server Push with HTTP2 (
Jira | ||||||
---|---|---|---|---|---|---|
|
We could provide native integration with different web containers to make use of their HTTP2 Push support, e.g. Tomcat 8.5+ provides org.apache.catalina.core.ApplicationPushBuilder.
Possible implementation is to add code similar to httpRequest.getPushBuilder().path(encodedUrl).push() to org.apache.wicket.markup.head.JavaScriptHeaderItem#internalRenderJavaScriptReference().
The problem is how to decide whether to push a resource or not, because the browser may already have it cached, so the push will be a waste of bandwidth (https://http2.github.io/faq/#how-can-i-use-http2-server-push).
Articles explaining possible solutions for this problem: https://www.mnot.net/blog/2016/04/22/ideal-http, https://mariusgundersen.net/module-pusher/
Status
Tomcat: https://github.com/apache/wicket/tree/master/wicket-experimental/wicket-http2/wicket-http2-tomcat (Mailing list request: https://www.mail-archive.com/users@tomcat.apache.org/msg121670.html)
Jetty: https://github.com/apache/wicket/tree/master/wicket-experimental/wicket-http2/wicket-http2-jetty
Undertow: https://github.com/apache/wicket/tree/master/wicket-experimental/wicket-http2/wicket-http2-undertow
Implementation
https://github.com/apache/wicket/tree/master/wicket-experimental/wicket-http2
Note
When the official servlet 4.0 API has been finished and all servers are using it this line of code: https://github.com/apache/wicket/blob/master/wicket-experimental/wicket-http2/wicket-http2-core/src/main/java/org/apache/wicket/http2/markup/head/PushHeaderItem.java#L91 has to be changed to the standard interface
Update WicketTester assertions
Take inspiration from JUnit 5 and improve WicketTester & Co.
New components
StreamView
A component similar to ListView but using java.util.stream.Stream instead of java.util.List as a model object.
The idea is to be as lazy as possible. At render time the Stream will be "collected".