Photo: Veronika Biro on Unsplash

Releases

Apache Wicket 11.x

The current quarterly release.

Latest release
11.0.0
Status
Supported Current
Supported
Until 12.0.0, Jan 2027
Java
21 or newer
Servlet API
Jakarta Servlet 6.1 or newer

Maven dependency

<!-- Apache Wicket 11.x: Java 21+, Jakarta Servlet 6.1+ -->
<dependency>
    <groupId>org.apache.wicket</groupId>
    <artifactId>wicket-core</artifactId>
    <version>11.0.0</version>
</dependency>

Other modules, such as wicket-extensions and wicket-spring, take the same group id and version. Wicket's modules lists them all.

Download the source and binaries · New project? Generate one with the quick start

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(
            WicketAjaxResourceReference.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());
        }
    }
    

Documentation

Blog posts about Wicket 11

    All posts on the blog

    Download

    Source and binaries

    Most projects get Wicket through Maven or Gradle, with the dependency at the top of this page. To build Wicket yourself, or to use it without a build tool, download the source:

    Or the binaries:

    Neither package contains the libraries Wicket depends on; a build tool such as Maven or Gradle brings those in.

    Verify a download

    Check its PGP signature with the keys in the KEYS file, as the ASF explains.

    Older releases

    The mirrors carry only the latest release of each supported line. Every older release is in the Apache archives.

    Change log

    What changed in each release of this line is in the change log.

    Requirements

    The Java and Servlet API versions this line needs are at the top of the page. Some modules need more libraries, such as file upload, date and time APIs or the CDI specification; each module’s POM lists them.

    Logging

    Wicket logs through SLF4J, so your application needs an SLF4J implementation on the classpath. The SLF4J manual lists them.

    Don’t mix Wicket versions

    Use one Wicket version for every Wicket module in a project: wicket-core, wicket-extensions, wicket-spring and the others are released together and only work with the same version. Libraries built on Wicket are made for one Wicket line; use the version made for yours.