<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title>Apache Wicket 6.1.1 released | Apache Wicket</title>
        <meta charset="utf8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <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.3.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/2012/10/08/wicket-6.1.1-released.html -->
    	<li class=""><a href="/start/quickstart.html">Quick Start</a></li>
		<!-- /start/download.html || /news/2012/10/08/wicket-6.1.1-released.html -->
    	<li class=""><a href="/start/download.html">Download</a></li>
		<!-- /learn || /news/2012/10/08/wicket-6.1.1-released.html -->
    	<li class=""><a href="/learn">Documentation</a></li>
		<!-- /help || /news/2012/10/08/wicket-6.1.1-released.html -->
    	<li class=""><a href="/help">Support</a></li>
		<!-- /contribute || /news/2012/10/08/wicket-6.1.1-released.html -->
    	<li class=""><a href="/contribute">Contribute</a></li>
		<!-- /apache || /news/2012/10/08/wicket-6.1.1-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.1.1 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></li></ul></div>
        </section>
        <section class="l-two-third left">
            <div class="l-full">
    <p class="meta">08 Oct 2012</p>
    <p>The Apache Wicket PMC is proud to announce Apache Wicket 6.1.1!</p>
<p>This release marks the first patch release of Wicket 6. Starting with Wicket 
6 we use semantic versioning for the future development of Wicket, and as
such no API breaks are present in this release compared to 6.1.0 and 6.0.0.</p>
<p>This release fixes two bugs in 6.1.0:</p>
<p><a href="https://issues.apache.org/jira/browse/WICKET-4789">WICKET-4789</a></p>
<p>The way URLs are encoded was changed (WICKET-4645) and now the first
request (with ;jsessionid in path) generates invalid internal links.</p>
<p><a href="https://issues.apache.org/jira/browse/WICKET-4759">WICKET-4759</a></p>
<p>FilterForm/FilterToolbar don’t work when there’s more than one IColumn
to be filtered</p>
<p>Any other issues will be released in 6.2.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>
<div 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.1.1<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span></code></pre></div>
<p>Or download and build the distribution yourself, or use our
convenience binary package</p>
<ul>
  <li><a href="http://www.apache.org/dyn/closer.cgi/wicket/6.1.1">http://www.apache.org/dyn/closer.cgi/wicket/6.1.1</a></li>
  <li><a href="http://www.apache.org/dyn/closer.cgi/wicket/6.1.1/binaries">http://www.apache.org/dyn/closer.cgi/wicket/6.1.1/binaries</a></li>
</ul>
<h2 id="upgrading-from-earlier-versions">Upgrading from earlier versions</h2>
<p>If you upgrade from 6.0.0 or 6.1.0, 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 <a href="http://s.apache.org/wicket-6.0-migration">http://s.apache.org/wicket-6.0-migration</a></p>
<p>Have fun!</p>
<p>— The Wicket team</p>
</div>
        </section>
    </div>
</main>
        <footer class="l-container">
            <div class="l-full">
    <img height="60px" src="/img/asf_logo.gif" style="float:left">
    Copyright © 2014 — 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>
        </footer>
    </body>

</html>
