<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta charset="utf-8">
        <title>Apache Wicket 6.28.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/2017/10/01/wicket-6.28.0-released.html -->
    	<li class=""><a href="/start/quickstart.html">Quick Start</a></li>
		<!-- /start/download.html || /news/2017/10/01/wicket-6.28.0-released.html -->
    	<li class=""><a href="/start/download.html">Download</a></li>
		<!-- /learn || /news/2017/10/01/wicket-6.28.0-released.html -->
    	<li class=""><a href="/learn">Documentation</a></li>
		<!-- /help || /news/2017/10/01/wicket-6.28.0-released.html -->
    	<li class=""><a href="/help">Support</a></li>
		<!-- /contribute || /news/2017/10/01/wicket-6.28.0-released.html -->
    	<li class=""><a href="/contribute">Contribute</a></li>
		<!-- /community || /news/2017/10/01/wicket-6.28.0-released.html -->
    	<li class=""><a href="/community">Community</a></li>
		<!-- /apache || /news/2017/10/01/wicket-6.28.0-released.html -->
    	<li class=""><a href="/apache">Apache</a></li>
    </ul>
</nav>
        <div class="logo">
    <a href="/"><img src="/img/logo-apachewicket-white.svg" alt="Apache Wicket"></a>
</div>
    </div>
</div>
<main>
    <div class="l-container">
        <header class="l-full preamble">
            <h1>Apache Wicket 6.28.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="#new-and-noteworthy"><span class="toc-number">1</span> <span class="toc-text">New and noteworthy</span></a></li><li class="toc--level-1 toc--section-2"><a href="#using-this-release"><span class="toc-number">2</span> <span class="toc-text">Using this release</span></a></li><li class="toc--level-1 toc--section-3"><a href="#upgrading-from-earlier-versions"><span class="toc-number">3</span> <span class="toc-text">Upgrading from earlier versions</span></a><ul><li class="toc--level-2 toc--section-4"><a href="#this-release"><span class="toc-number">3.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">01 Oct 2017</p>
    <p>The Apache Wicket PMC is proud to announce Apache Wicket 6.28.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 6. 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
6.0.0.</p>
<h2 id="new-and-noteworthy">New and noteworthy</h2>
<p>This release fixes WICKET-6457 and WICKET-6465 which caused the page store not to be cleared when session ends.</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>6.28.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</p>
<ul>
  <li>Source: <a href="http://www.apache.org/dyn/closer.cgi/wicket/6.28.0">6.28.0 source download</a></li>
  <li>Binary: <a href="http://www.apache.org/dyn/closer.cgi/wicket/6.28.0/binaries">6.28.0 binary download</a></li>
</ul>
<!--more-->
<h2 id="upgrading-from-earlier-versions">Upgrading from earlier versions</h2>
<p>If you upgrade from 6.y.z this release is a drop in replacement. If
you come from a version prior to 6.0.0, please read our Wicket 6
migration guide found at</p>
<ul>
  <li>http://s.apache.org/wicket6migrate</li>
</ul>
<p>Have fun!</p>
<p>— The Wicket team</p>
<p>========================================================================</p>
<div class="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-6.28.0.zip:</p>
<div class="highlight"><pre>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJZy+bZAAoJEAzCjx+CMhBV6NIQAJcLGcLKjUpGG7zgXphVgOsh
Zlx0oJH6H2FfB/CTXrjPgvfFLyr4UZQ0/KqZIidRQx06O1oQGiBEobBv5W2rFpAL
eMUTVEKOYQyLfLJB1ngP9GvUAMjiuFnK1rJvE8mjjYbtVXHQ7jqRjsKqK7y3o+/u
CvzVPTL21ggJ790LOkkhPSPhuY6R0lLUWSdOqs600n5gxi7UoN67Y9JqcQSMiGwm
TbzlcG0dZCkskBHl+GIBuuyyB2IFT5gSB2DU0jKOjouhfSSxjuY48yWJ2lWqfUnP
iLvGABHtsSD3i4psyoFEbW2PVON8obJgnBqYNq+ERt9t0BF2eFcCHvxb6wJTZwHs
pINSc9J/OM7K4FAnORXAoaQSsdRBVD8USIAjlYpB5H3SJZlvVi7fUlCa5mfNtUER
rL2HZjRWGyiJx8GQzGf56jpZ9ZTlhpanhQNiGJsMMMY0P1BN0HlMUBHoVSeozyAe
QyqJTiPYPdUY+8HpkWTO3hE6b2c01pGIfz+7fDeYDKZ/Azl0hg4UQDFQPAPU/pjz
S0F5j3aSwpmcloHqX2tNaBmq7um0mVvBTpUOEWoagKA+7/eKMhRzjJblIoV5OBb2
9YjtcSoHYsMzVIauDw1hREhOKEAvAEvSvE4ZkB+rb4COCEar8K5ulENKosIjmS+K
BcfSYelcMrMY1EOlYsIb
=QAWQ
-----END PGP SIGNATURE-----
</pre></div>
<p>Signature for apache-wicket-6.28.0.tar.gz:</p>
<div class="highlight"><pre>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJZy+bZAAoJEAzCjx+CMhBVNNgP/iYb2lby8HrHXZvFI2ei7bE7
nfvh/UckkD0IDyVoSYJU9mNIcY6DqU+lPZrX8gA039IT3WztT4GOrEcj1L8yAwpI
lwuf4kIu9CyRT15ExeagSZl6RXzkxr6BjV27zT50Z21L4k1kLPD4Iy0cQpym3E4k
UDayPdN5O5U7u75CbetSppsiC3Tr3THYYzA3QRLNacXM8j9EFI9YQ6XlqHGpQY7s
cZx31EyoVSNfx5CwPps6cv42uYvf2cQpf5LTyj55o1Tta5FYZ9dgj7OnaXTUIBK4
Nf0b7xd3JSKwoUNP+yV9Y+NVGPsktkxQFh4ycNF+NrBuIk9+3WcV7lp7oxNv9qKA
pbvRHEaf6hRKug5RGaw+zvdcHQ6g1N+FQRUj3SGx8E+nqler05l9LHHuMMK1gqAj
H2kp4XskfXSdtUquagUzXuyKA4CaSMdRl3MYTF1wX3wOwkWOVafIqNNs+JKaodKx
5wo+bg24XPMO4u2NHIcNou/GsZfUTBViEcAAKbJzhu9DZkzh1f8CTM37E6dOe/7o
og+fgROhrYgt+TpRhPfe7zqnkBPYcT5X/27tPEg5JE5nheTjP+zeury3R7pQ6Q47
yZ/07TB4ICGeCRpYAVdiZRWNyqtTpDjy+QiqVjr/08IqYq8zSmUxiKjFCreklsyl
WSEJobCokQDT80UChQRB
=CrLw
-----END PGP SIGNATURE-----
</pre></div>
<p>========================================================================</p>
<h3 id="this-release">This Release</h3>
<h4 id="changelog-for-6280">CHANGELOG for 6.28.0:</h4>
<h5 id="bug">Bug</h5>
<ul>
  <li>[WICKET-6457] - PageStore not cleared at session end</li>
  <li>[WICKET-6465] - PageStore not cleared at session end</li>
</ul>
<h5 id="improvement">Improvement</h5>
<ul>
  <li>[WICKET-6308] - Add an extra constructor to EmailTextField with a custom validator but without model</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>
