<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta charset="utf-8">
        <title>Apache Wicket 7.13.0 released | Apache Wicket</title>
        <meta name="viewport" content="width=device-width, initial-scale=1" />

        <link rel="shortcut icon" href="/favicon.ico" type="image/vnd.microsoft.icon" />
        <link rel="stylesheet" href="/css/style.css" type="text/css" media="screen" />
        <link href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" />

		<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>

    </head>

    <body class="">
        <div class="header default">
    <div class="l-container">
<nav class="mainmenu">
    <ul>
		<!-- /start/quickstart.html || /news/2019/04/06/wicket-7.13.0-released.html -->
    	<li class=""><a href="/start/quickstart.html">Quick Start</a></li>
		<!-- /start/download.html || /news/2019/04/06/wicket-7.13.0-released.html -->
    	<li class=""><a href="/start/download.html">Download</a></li>
		<!-- /learn || /news/2019/04/06/wicket-7.13.0-released.html -->
    	<li class=""><a href="/learn">Documentation</a></li>
		<!-- /help || /news/2019/04/06/wicket-7.13.0-released.html -->
    	<li class=""><a href="/help">Support</a></li>
		<!-- /contribute || /news/2019/04/06/wicket-7.13.0-released.html -->
    	<li class=""><a href="/contribute">Contribute</a></li>
		<!-- /community || /news/2019/04/06/wicket-7.13.0-released.html -->
    	<li class=""><a href="/community">Community</a></li>
		<!-- /apache || /news/2019/04/06/wicket-7.13.0-released.html -->
    	<li class=""><a href="/apache">Apache</a></li>
    </ul>
</nav>
        <div class="logo">
    <a href="/"><img src="/img/logo-apachewicket.svg" alt="Apache Wicket"></a>
</div>
    </div>
</div>
<main>
    <div class="l-container">
        <header class="l-full preamble">
            <h1>Apache Wicket 7.13.0 released</h1>
        </header>
        <section class="l-one-third right">
            <div id="toc" class="toc"><div id="toc-title"><h2>Table of Contents</h2></div><ul><li class="toc--level-1 toc--section-1"><a href="#using-this-release"><span class="toc-number">1</span> <span class="toc-text">Using this release</span></a></li><li class="toc--level-1 toc--section-2"><a href="#upgrading-from-earlier-versions"><span class="toc-number">2</span> <span class="toc-text">Upgrading from earlier versions</span></a><ul><li class="toc--level-2 toc--section-3"><a href="#this-release"><span class="toc-number">2.1</span> <span class="toc-text">This Release</span></a></li></ul></li></ul></div>
        </section>
        <section class="l-two-third left">
            <div class="l-full">
    <p class="meta">06 Apr 2019</p>
    <p>The Apache Wicket PMC is proud to announce Apache Wicket 7.13.0!</p>
<p>Apache Wicket is an open source Java component oriented web application
framework that powers thousands of web applications and web sites for
governments, stores, universities, cities, banks, email providers, and
more. You can find more about Apache Wicket at https://wicket.apache.org</p>
<p>This release marks another minor release of Wicket 7. We
use semantic versioning for the development of Wicket, and as such no
API breaks are present breaks are present in this release compared to
7.0.0.</p>
<h2 id="using-this-release">Using this release</h2>
<p>With Apache Maven update your dependency to (and don’t forget to
update any other dependencies on Wicket projects to the same version):</p>
<figure class="highlight"><pre><code class="language-xml" data-lang="xml"><span class="nt">&lt;dependency&gt;</span>
    <span class="nt">&lt;groupId&gt;</span>org.apache.wicket<span class="nt">&lt;/groupId&gt;</span>
    <span class="nt">&lt;artifactId&gt;</span>wicket-core<span class="nt">&lt;/artifactId&gt;</span>
    <span class="nt">&lt;version&gt;</span>7.13.0<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span></code></pre></figure>
<p>Or download and build the distribution yourself, or use our
convenience binary package you can find here:</p>
<ul>
  <li>Download: http://wicket.apache.org/start/wicket-7.x.html#manually</li>
</ul>
<!--more-->
<h2 id="upgrading-from-earlier-versions">Upgrading from earlier versions</h2>
<p>If you upgrade from 7.y.z this release is a drop in replacement. If
you come from a version prior to 7.0.0, please read our Wicket 7
migration guide found at</p>
<ul>
  <li>http://s.apache.org/wicket7migrate</li>
</ul>
<p>Have fun!</p>
<p>— The Wicket team</p>
<p>========================================================================</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>The signatures for the source release artefacts:
</code></pre></div></div>
<p>Signature for apache-wicket-7.13.0.zip:</p>
<div class="highlight"><pre>
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEE0a6YZHC1pJw+aieyh48B+qjTVuEFAlyjvbEACgkQh48B+qjT
VuEUpw/9EdhvP18NKyL08P9dh/IVDW7DAUq95hhrOWPwLS9HJVDHJOJY+FbK6zzd
HHrHEHFWe6syz83xkl8za69SUHB8mdKbwLG7UAcXojzBb6MVRIZCsdYfF4pMfC+f
bDSrB+XvvBEXllrJySA2akJVfrgf0U6oxfs6vqUgTOzx/pUda5MTZRiZBeO7nmT0
aHHgyaP96ecvtjIDyR9lwhmkzxS7VkGmT8XWpaQ2wT9mln2Ff4/SKd3ZtIHEpKrY
qWRbuC0JFf7EdEH1NEbrOYbXL3hnM9CEvlQunDJGWv6VtbEXyx30EmVbSylStrfZ
LnIXyIDDOVZ/Exx4Y/ijwP1nPnaVRF19PVaCeiWuJd/OvbYjMMBxYhkz5BqJPp2I
mJuipjE4Ao4yoOmlPo53RnWf83gueosqO7rD55XkJI47GLN7pwbcdRXcUcxUqTL5
glZZC3VFPPvLloKHmDvAVgxAwjO0qI3zeNfL0CmZDYGLJZeW9DnxCiS1mi/4gURf
DHQzK6OFTgy1nUcqH3utOGT9Dwys3WGxeaT4oucvmi8yqiq5RRl+jXghqjI93Tvh
qdraUy+DvbTtCMnw3JRJl4pusbIaGkQfwFXri3l7V+kpUR/K8taFJiWeO/8GdVBO
jhP0dAyO8pvH1wXmobVFDw5o5UNa5y3A+Rr/PvI85hsHeTHQYS8=
=UPy5
-----END PGP SIGNATURE-----
</pre></div>
<p>Signature for apache-wicket-7.13.0.tar.gz:</p>
<div class="highlight"><pre>
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEE0a6YZHC1pJw+aieyh48B+qjTVuEFAlyjvbEACgkQh48B+qjT
VuGevA//aTrkqeHG/0QB03gZ7eya6BArgrkyK2vTP5gBRzCc571mBe7N3mdpV1di
6YnMEV25DJZwVIwQ9KoPtVs1KBGCX/2U/JqYf4YaQQJM1uEM2bQ3bVjwYJcG6xHI
P82cqhQDBGZGIydHWzBwrkf1GACF2K5DzqvK7y5fd1BGtrJIM52fLY5INVeYeVih
S4W84xlA+57HppsYdgR69c30qkI178903+iYcdlL9qtf1B3beKTJo/NkjJks/0a/
Yps0Za40/RwHSFDJM+G4Ks8LZ/wfHKW9OacAF4JT5vzLX6g5vOT0yy0jDQYsUx1C
BxHUeRcYv82yMdhR2pZ+F2htTQINEBdYL0GLx6TU5cwsU2GHQex8ZXJaNa6Xp/QS
TTADPaV3yIwJo8i4jpo6Br6/LZQTMuoOwfbkEVoNPsyoR89Rp67Bkqragg5gNnQH
IunybqbFBEpuyfMhoq7V1wYiPKGJwQXRy8J8A6Ozck+Lql2XsOgg71vnh1PjOmPa
s/cHnBFH6ravgnk+y6pAKG51mtPceR7TMNfm/zhu2qKYsp3C6t0A/OjeeqDTvWQz
0RuRWs47aXFRwLlQNqKJLO3YXJKRReZMRmJml/lBVXnqWLcsz3DKsrrdCZ91F5/f
AlaQslKTwi97uzUNSvG+Hm8+GnKGu63I3WPTqrsjKKVNcbLjNZE=
=H6X1
-----END PGP SIGNATURE-----
</pre></div>
<p>========================================================================</p>
<h3 id="this-release">This Release</h3>
<h4 id="changelog-for-7130">CHANGELOG for 7.13.0:</h4>
<h5 id="bug">Bug</h5>
<ul>
  <li>[WICKET-6645] - Concurrent web socket response message processing on the client</li>
</ul>
<h5 id="improvement">Improvement</h5>
<ul>
  <li>[WICKET-6638] - RedirectRequestHandler does not support Ajax</li>
</ul>
<h5 id="wish">Wish</h5>
<ul>
  <li>[WICKET-6646] - Upgrade jquery to 3.3.x</li>
</ul>
</div>
        </section>
    </div>
</main>
        <footer class="l-container">
            <div class="l-full">
   	<img src="/img/asf_logo_url.svg" style="height:90px; float:left; margin-right:10px;">
    <div style="margin-top:12px;">Copyright © 2020 — The Apache Software Foundation. Apache Wicket, Wicket, Apache, the Apache feather logo, and the Apache Wicket project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div>
</div>
        </footer>
    </body>

</html>
