Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

This page lists ideas what can be improved for Wicket 8.0.

...

  • java.util.Optional for AjaxFallback**  
    Jira
    serverASF JIRA
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    keyWICKET-6104
  • new DateTime APIs for wicket-datetime
    Jira
    serverASF JIRA
    serverId5aa69414-a9e9-3523-82ec-879b028fb15b
    keyWICKET-6105
  • Lambda API for Listeners (onClick, etc.) Done. See Lambdas.java

AppCache for Offline-Support

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
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyWICKET-6120
)

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

...

Support for basic video / audio capture for example.

Media Components (

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyWICKET-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
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyWICKET-6194
)

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-httphttps://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".