Apache Wicket

Apache Wicket 11.x

Here you can learn about the status of Wicket 11.x, find links to download it, learn how to configure your Maven POM to use Wicket, find the minimal requirements, and migrate your existing application to this Wicket version.

Status

The status for Wicket 11.x is: supported.

This is the current quarterly release of Wicket: production ready, and the line that receives new features. Wicket 11.x receives fixes until Wicket 12.0.0 supersedes it in January 2027. A serious issue may warrant a patch release, for example 11.0.1.

If you prefer a line that is supported for longer and changes less, use Wicket 10.x, the current long-term support (LTS) release. See the release policy for how the two lines relate.

Change log

To see what changed in these releases you can read the change log.

New in Wicket 11

  • A new baseline

    Wicket 11 requires Java 21 and runs on Jakarta Servlet 6.1, and its Spring integration moves to Spring 7. Applications on Wicket 10 already use jakarta.servlet, so the step up is your JDK and your container.

    Java
    21
    Jakarta Servlet
    6.1
    Spring
    7
  • More secure by default

    Encryption is rebuilt on one authenticated scheme: encrypted URLs and stored pages cannot be altered unnoticed, the scheme generates its own key, and encrypted URLs stay cacheable. Components that write model values into markup escape them consistently, and the content security policy now covers script-src-attr and style-src-attr.

  • Leaner components

    A component keeps its model, behaviors and metadata in one compact state object instead of a packed array. In the benchmarks, reading that state is 30 to 45% faster, and a component tree with Ajax behaviors serializes about 40% smaller, so sessions and the page store carry less.

  • Ajax without jQuery

    A second, plain JavaScript implementation of the Ajax engine with the same client-side API. Opt in, and your pages, including autocomplete, palette and the upload progress bar, no longer download jQuery. jQuery remains the default and now supports jQuery 4.

    WicketApplication.java

    @Override
    protected void init() {
        super.init();
        getJavaScriptLibrarySettings().setWicketAjaxReference(
            WicketAjaxVanillaResourceReference.get());
    }
    
  • Ajax veils

    PageVeilBehavior and LocalVeilBehavior in wicket-extensions cover a page or a single component while an Ajax request runs, so a second click on a slow button does not send the request twice. A spinner appears only when the request takes longer than 300 ms.

    BasePage.java

    public abstract class BasePage extends WebPage {
        public BasePage() {
            add(new PageVeilBehavior());
        }
    }
    

Download

The most recent release in this branch is: 11.0.0. You can get the release using Maven or download it manually.

Using Apache Maven

Use the following Maven dependency to use Wicket in your project:

<dependency>
    <groupId>org.apache.wicket</groupId>
    <artifactId>wicket-core</artifactId>
    <version>11.0.0</version>
</dependency>

Add the snippet above to your project’s POM in the dependency (management) section.

You can add more Wicket modules to your project by adding more dependencies (copy above snippet and change the artifactId accordingly).

If you are not a Maven user, you can download the Wicket release manually.

Download Manually

Use the following links to download Wicket manually to build Wicket from source:

Or use the following links to get the pre-packaged binaries instead:

Note that the binary packages and the source packages don’t contain any dependencies necessary to have your project working out of the box. We strongly urge you to use Maven (or Buildr, or Gradle) as your dependency management system.

Verify distribution’s signature

PGP signatures can be verified as described on this page. The public key used to sign Wicket distributions can be found in the KEYS file.

Older releases

The Apache mirroring system only hosts the latest version of each actively supported branch. When you need to download an older release you can find them in the archives.

Go to the Apache archives to find your specific version.

Requirements

Apache Wicket has few requirements in order to work properly. In this section you’ll find the minimum requirements for all Wicket modules. Specific modules may need additional libraries, such as file upload, date time APIs, CDI specifications, and more. See the module’s POM for more details on the necessary libraries.

Java version

This Wicket version requires at least the following Java version: JDK 21 or newer.

Not only is a particular version of Java necessary, Wicket also needs access to specific APIs.

Servlet API

This Wicket version requires at least the following Servlet API version: Jakarta Servlet API 6.1 or newer. This is provided by your container, please see the documentation of your container to see which version of the Servlet specification is supported.

In addition to the Servlet API, Wicket uses SLF4J to let you choose your own implementation of a logging framework.

Logging

You cannot use Wicket without adding an SLF4J logging implementation to your classpath. Most people use log4j.

If you do, just include slf4j-log4j12.jar on your classpath to get Wicket to use log4j too. If you want to use commons-logging or JDK14 logging or something else, please see the SLF4J site for more information.

Don’t mix Wicket versions

You cannot mix different Wicket versions in your project. You should always use the artifacts from a particular release. For example it is not possible to use Wicket Extensions 1.5 in a Wicket 6 project, or Wicket CDI 7.x in a Wicket 8 project. The same goes for 3rd party libraries: make sure you always use a compatible version of your 3rd party library.

Migrating from earlier versions

If you are migrating an existing application from earlier versions of Wicket you may find our migration guides invaluable: