<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta charset="utf-8">
        <title>Apache Wicket 8.6.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-menu-container">
<nav class="mainmenu">
    <ul>
		<!-- /start/quickstart.html || /news/2019/09/07/wicket-8.6.0-released.html -->
    	<li class=""><a href="/start/quickstart.html">Quick Start</a></li>
		<!-- /start/download.html || /news/2019/09/07/wicket-8.6.0-released.html -->
    	<li class=""><a href="/start/download.html">Download</a></li>
		<!-- /learn || /news/2019/09/07/wicket-8.6.0-released.html -->
    	<li class=""><a href="/learn">Documentation</a></li>
		<!-- /help || /news/2019/09/07/wicket-8.6.0-released.html -->
    	<li class=""><a href="/help">Support</a></li>
		<!-- /contribute || /news/2019/09/07/wicket-8.6.0-released.html -->
    	<li class=""><a href="/contribute">Contribute</a></li>
		<!-- /community || /news/2019/09/07/wicket-8.6.0-released.html -->
    	<li class=""><a href="/community">Community</a></li>
		<!-- /apache || /news/2019/09/07/wicket-8.6.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 8.6.0 released</h1>
        </header>
        <section class="left">
            <div class="l-full">
    <p class="meta">07 Sep 2019</p>
    <p>The Apache Wicket PMC is proud to announce Apache Wicket 8.6.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 8. 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
8.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>8.6.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-8.x.html#manually</li>
</ul>
<!--more-->
<h2 id="upgrading-from-earlier-versions">Upgrading from earlier versions</h2>
<p>If you upgrade from 8.y.z this release is a drop in replacement. If
you come from a version prior to 8.0.0, please read our Wicket 8
migration guide found at</p>
<ul>
  <li>http://s.apache.org/wicket8migrate</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-8.6.0.zip:</p>
<div class="highlight"><pre>
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEE0a6YZHC1pJw+aieyh48B+qjTVuEFAl1u0ggACgkQh48B+qjT
VuHBVRAAgX8nPfftIKv6z0Rimyg4M9hefpkwcVCkj8mQ2q9cnRQCNN8lWPrVsqOz
jfkWOM1I3rmjR60o5eREFuNK+t7RNxdwfdZqlB+zsgu2BCNscpQMaTruf2uI14ip
B83PYCMkTSDA+BCJD1MTwRf3Ih3M+0rq4l3vedzStfC4GvmmwHRvMWTOml5i9Whg
pSStZvX9h61n6ofRNq/feLQi7342GOgv+/r0cvTVDRdIsEeYGalu1b+ZJKsjfTX3
l0oMiRILzFltg+CQP0fhWibfLkvyRLM+R4598rgvwM+QcKo7aCn0LcIEIhp0dYDS
KI6IhsPd/NS0qKoKgIPmQ6tMsvMWGOxTOpQMxnAj97wVzYVf1QoXArPuc+JaSrFE
D/a78zUMc78UFjdt38NBA22jf7HbcjVkAUUjD9fPtNStFnnrisniyw16dL0Wa6MA
kuiPuyl7gsPAkmOXH68KtVaR7ncTORPCt4ZC/6GxoRbhDc71+dLPz5XKpeDdqy8O
/pBGtsucjI9xIGZqGHWFvfAaBqqv2t4QARxOdkDA9d09PL4o/N+gljho+a30GrDv
A35wG2y2Idkoe1t4EJeHpMHGPmqMAj/m1wYagJjMeiXRDgtfFoJIlRfAboxq8Dwd
uT+mRsdS0hq8q78yPZPW3N24cC3gwohFJMWfb4IukQbFGI2gznE=
=mzMF
-----END PGP SIGNATURE-----
</pre></div>
<p>Signature for apache-wicket-8.6.0.tar.gz:</p>
<div class="highlight"><pre>
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEE0a6YZHC1pJw+aieyh48B+qjTVuEFAl1u0ggACgkQh48B+qjT
VuHSZw//WF61doVJ8fDK8hPvk8Td6Yf4hMzP7kff7tAkm+w72LqnXlUM7IDci5nz
Dcx627fBAYIXdRtfOkq53vRrFV+1e87x8iM/bnp7Tzj5lwF6BOvRkQ+gr6U6+6An
5CblTMT5kSq9xKGm8/Gj6I1OrQiVdSqFPWt7N/4D7FG9uekRVJoc+0ubekqdGR1M
lkoT8Wfteo7sstoD8qvQEgyKKZLqbxTKDGiVBywmSKVuxkv+4JnETI2k1R1TsCr0
/JdGx6fNxd/sBUKLoAUo8cxBpv9weuzvPCMw89eVGsKacBDedZMK7iMfR3M43Iz/
HuEN26JnHM3kqSBCMMYE197djXOroUhXmhr9WfNRxiaTqJsKbS1oG3jO9EkHQt8Y
ldhwiTaH8PmGE72xhn+w+FElZvazwlFXSECHZK92wGFEzq5VO7atv88AOmtQHM1o
LbgHOjhUYLQHj15JXn4g4XYFJ5WnZR3gbldAV9JEhXqnx30M6wMDrWCCw6K0+uh2
k8Il3y6TMY7KSrnUYwTeljyrLYReoAtYfQxi6EdGBlKamuyKXtSBqO0a2J5wsxnv
Z2fk3efWKDzdxbc9GmYbXMlTKtjYx5UYZ+PcgAuGvS81ejwzmiy5dH8rJYedx235
j3D8JG/YyG2Ja0r6nmwX7BDm8QS4W5eU+UQIyIq0KLCFND/qzSU=
=VBOu
-----END PGP SIGNATURE-----
</pre></div>
<p>========================================================================</p>
<h3 id="this-release">This Release</h3>
<h4 id="changelog-for-860">CHANGELOG for 8.6.0:</h4>
<h5 id="bug">Bug</h5>
<ul>
  <li>[WICKET-6613] - Wicket 8.1 ModalWindow autosizing problem</li>
  <li>[WICKET-6671] - IAjaxLink should be serializable</li>
  <li>[WICKET-6676] - Quickstart application won’t deploy to GlassFish</li>
  <li>[WICKET-6680] - JavaScriptStripper chokes on template literals that contain two forward slashes</li>
  <li>[WICKET-6689] - ClientProperties.getTimeZone() has some issue when DST and UTC offsets are different</li>
  <li>[WICKET-6690] - NullPointerException in KeyInSessionSunJceCryptFactory.<init></init></li>
  <li>[WICKET-6692] - Page deserialization on websocket close - possible performance issue</li>
</ul>
<h5 id="improvement">Improvement</h5>
<ul>
  <li>[WICKET-6675] - log4j-slf4j-impl requires version 1.7.25 of slf4j-api while Wicket 8.5 requires version 1.7.26</li>
  <li>[WICKET-6684] - Make autolabel functionality more flexible by introducing a locator interface that allows to specify the component the wicket:for refers to</li>
  <li>[WICKET-6695] - Add AjaxEditable*Label#shouldTrimInput()</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>
