<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta charset="utf-8">
        <title>Apache Wicket News | 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/ -->
    	<li class=""><a href="/start/quickstart.html">Quick Start</a></li>
		<!-- /start/download.html || /news/ -->
    	<li class=""><a href="/start/download.html">Download</a></li>
		<!-- /learn || /news/ -->
    	<li class=""><a href="/learn">Documentation</a></li>
		<!-- /help || /news/ -->
    	<li class=""><a href="/help">Support</a></li>
		<!-- /contribute || /news/ -->
    	<li class=""><a href="/contribute">Contribute</a></li>
		<!-- /community || /news/ -->
    	<li class=""><a href="/community">Community</a></li>
		<!-- /apache || /news/ -->
    	<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 News</h1>
            <h2>Releases, Security updates and more&mdash;all in one neat feed.</h2>
            <p>The news is published in several venues. All announcements are sent to the Apache announcement mailing list, our announcement, user and development mailing lists, the news feed of this website and of course this website.</p>
        </header>
        <div class="l-two-third">
<div class="l-first">
  <h1 id="all-news-for-2020">All News for 2020</h1>
  <p>This section contains all news items published in <a href="/news/2020">2020</a>.</p>
  <article>
	<h3 id="/news/2020/04/24/wicket-8.8.0-released.html">Apache Wicket 8.8.0 released</h3>
    <small>24 Apr 2020</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.8.0! 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...
	<a href="/news/2020/04/24/wicket-8.8.0-released.html">more</a></p>
</article>
  <article>
	<h3 id="/news/2020/04/06/wicket-9.0.0-M5-released.html">Apache Wicket 9.0.0-M5 released</h3>
    <small>06 Apr 2020</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 9.0.0-M5! 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...
	<a href="/news/2020/04/06/wicket-9.0.0-M5-released.html">more</a></p>
</article>
  <article>
	<h3 id="/news/2020/01/09/wicket-9.0.0-M4-released.html">Apache Wicket 9.0.0-M4 released</h3>
    <small>09 Jan 2020</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 9.0.0-M4! 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...
	<a href="/news/2020/01/09/wicket-9.0.0-M4-released.html">more</a></p>
</article>
  <article>
	<h3 id="/news/2020/01/08/wicket-7.16.0-released.html">Apache Wicket 7.16.0 released</h3>
    <small>08 Jan 2020</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.16.0! 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...
	<a href="/news/2020/01/08/wicket-7.16.0-released.html">more</a></p>
</article>
  <article>
	<h3 id="/news/2020/01/07/wicket-8.7.0-released.html">Apache Wicket 8.7.0 released</h3>
    <small>07 Jan 2020</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.7.0! 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...
	<a href="/news/2020/01/07/wicket-8.7.0-released.html">more</a></p>
</article>
  <div class="l-first"></div>
  <hr />
  <div class="l-first">
    <h1 id="all-news-for-2019">All News for 2019</h1>
    <p>This section contains all news items published in <a href="/news/2019">2019</a>.</p>
    <article>
	<h3 id="/news/2019/09/16/wicket-9.0.0-M3-released.html">Apache Wicket 9.0.0-M3 released</h3>
    <small>16 Sep 2019</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 9.0.0-M3! 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...
	<a href="/news/2019/09/16/wicket-9.0.0-M3-released.html">more</a></p>
</article>
    <article>
	<h3 id="/news/2019/09/13/wicket-8.6.1-released.html">Apache Wicket 8.6.1 released</h3>
    <small>13 Sep 2019</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.6.1! 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...
	<a href="/news/2019/09/13/wicket-8.6.1-released.html">more</a></p>
</article>
    <article>
	<h3 id="/news/2019/09/07/wicket-8.6.0-released.html">Apache Wicket 8.6.0 released</h3>
    <small>07 Sep 2019</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.6.0! 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...
	<a href="/news/2019/09/07/wicket-8.6.0-released.html">more</a></p>
</article>
    <article>
	<h3 id="/news/2019/09/07/wicket-7.15.0-released.html">Apache Wicket 7.15.0 released</h3>
    <small>07 Sep 2019</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.15.0! 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...
	<a href="/news/2019/09/07/wicket-7.15.0-released.html">more</a></p>
</article>
    <article>
	<h3 id="/news/2019/06/02/wicket-9.0.0-M2-released.html">Apache Wicket 9.0.0-M2 released</h3>
    <small>02 Jun 2019</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 9.0.0-M2! 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...
	<a href="/news/2019/06/02/wicket-9.0.0-M2-released.html">more</a></p>
</article>
    <article>
	<h3 id="/news/2019/05/28/wicket-8.5.0-released.html">Apache Wicket 8.5.0 released</h3>
    <small>28 May 2019</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.5.0! 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...
	<a href="/news/2019/05/28/wicket-8.5.0-released.html">more</a></p>
</article>
    <article>
	<h3 id="/news/2019/05/28/wicket-7.14.0-released.html">Apache Wicket 7.14.0 released</h3>
    <small>28 May 2019</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.14.0! 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...
	<a href="/news/2019/05/28/wicket-7.14.0-released.html">more</a></p>
</article>
    <article>
	<h3 id="/news/2019/04/15/wicket-9.0.0-M1-released.html">Apache Wicket 9.0.0-M1 released</h3>
    <small>15 Apr 2019</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 9.0.0-M1! 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...
	<a href="/news/2019/04/15/wicket-9.0.0-M1-released.html">more</a></p>
</article>
    <article>
	<h3 id="/news/2019/04/06/wicket-7.13.0-released.html">Apache Wicket 7.13.0 released</h3>
    <small>06 Apr 2019</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.13.0! 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...
	<a href="/news/2019/04/06/wicket-7.13.0-released.html">more</a></p>
</article>
    <article>
	<h3 id="/news/2019/04/05/wicket-8.4.0-released.html">Apache Wicket 8.4.0 released</h3>
    <small>05 Apr 2019</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.4.0! 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...
	<a href="/news/2019/04/05/wicket-8.4.0-released.html">more</a></p>
</article>
    <article>
	<h3 id="/news/2019/02/06/wicket-7.12.0-released.html">Apache Wicket 7.12.0 released</h3>
    <small>06 Feb 2019</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.12.0! 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...
	<a href="/news/2019/02/06/wicket-7.12.0-released.html">more</a></p>
</article>
    <article>
	<h3 id="/news/2019/01/30/wicket-8.3.0-released.html">Apache Wicket 8.3.0 released</h3>
    <small>30 Jan 2019</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.3.0! 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...
	<a href="/news/2019/01/30/wicket-8.3.0-released.html">more</a></p>
</article>
    <div class="l-first"></div>
    <hr />
    <div class="l-first">
      <h1 id="all-news-for-2018">All News for 2018</h1>
      <p>This section contains all news items published in <a href="/news/2018">2018</a>.</p>
      <article>
	<h3 id="/news/2018/12/10/wicket-6.30.0-released.html">Apache Wicket 6.30.0 released</h3>
    <small>10 Dec 2018</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.30.0! 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...
	<a href="/news/2018/12/10/wicket-6.30.0-released.html">more</a></p>
</article>
      <article>
	<h3 id="/news/2018/12/01/wicket-7.11.0-released.html">Apache Wicket 7.11.0 released</h3>
    <small>01 Dec 2018</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.11.0! 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...
	<a href="/news/2018/12/01/wicket-7.11.0-released.html">more</a></p>
</article>
      <article>
	<h3 id="/news/2018/11/17/wicket-8.2.0-released.html">Apache Wicket 8.2.0 released</h3>
    <small>17 Nov 2018</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.2.0! 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...
	<a href="/news/2018/11/17/wicket-8.2.0-released.html">more</a></p>
</article>
      <article>
	<h3 id="/news/2018/09/15/wicket-8.1.0-released.html">Apache Wicket 8.1.0 released</h3>
    <small>15 Sep 2018</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.1.0! 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...
	<a href="/news/2018/09/15/wicket-8.1.0-released.html">more</a></p>
</article>
      <article>
	<h3 id="/news/2018/05/22/wicket-8-released.html">Announcing Apache Wicket 8: Write Less, Achieve More</h3>
    <small>22 May 2018</small>
	<p>The Apache Wicket project announces the 8th major release of the open source Java web framework servicing websites and applications across the globe for over a decade. With this release Wicket embraces Java 8 idioms fully, allowing the use of lambda expressions in all the right places. With Wicket 8...
	<a href="/news/2018/05/22/wicket-8-released.html">more</a></p>
</article>
      <article>
	<h3 id="/news/2018/02/21/wicket-6.29.0-released.html">Apache Wicket 6.29.0 released</h3>
    <small>21 Feb 2018</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.29.0! 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...
	<a href="/news/2018/02/21/wicket-6.29.0-released.html">more</a></p>
</article>
      <article>
	<h3 id="/news/2018/02/17/wicket-8.0.0-M9-released.html">Apache Wicket 8.0.0-M9 released</h3>
    <small>17 Feb 2018</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.0.0-M9! 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...
	<a href="/news/2018/02/17/wicket-8.0.0-M9-released.html">more</a></p>
</article>
      <article>
	<h3 id="/news/2018/02/15/wicket-7.10.0-released.html">Apache Wicket 7.10.0 released</h3>
    <small>15 Feb 2018</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.10.0! 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...
	<a href="/news/2018/02/15/wicket-7.10.0-released.html">more</a></p>
</article>
      <div class="l-first"></div>
      <hr />
      <div class="l-first">
        <h1 id="all-news-for-2017">All News for 2017</h1>
        <p>This section contains all news items published in <a href="/news/2017">2017</a>.</p>
        <article>
	<h3 id="/news/2017/10/25/wicket-8.0.0-M8-released.html">Apache Wicket 8.0.0-M8 released</h3>
    <small>25 Oct 2017</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.0.0-M8! 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...
	<a href="/news/2017/10/25/wicket-8.0.0-M8-released.html">more</a></p>
</article>
        <article>
	<h3 id="/news/2017/10/01/wicket-6.28.0-released.html">Apache Wicket 6.28.0 released</h3>
    <small>01 Oct 2017</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.28.0! 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...
	<a href="/news/2017/10/01/wicket-6.28.0-released.html">more</a></p>
</article>
        <article>
	<h3 id="/news/2017/09/19/wicket-7.9.0-released.html">Apache Wicket 7.9.0 released</h3>
    <small>19 Sep 2017</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.9.0! 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...
	<a href="/news/2017/09/19/wicket-7.9.0-released.html">more</a></p>
</article>
        <article>
	<h3 id="/news/2017/08/12/wicket-8.0.0-M7-released.html">Apache Wicket 8.0.0-M7 released</h3>
    <small>12 Aug 2017</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.0.0-M7! 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...
	<a href="/news/2017/08/12/wicket-8.0.0-M7-released.html">more</a></p>
</article>
        <article>
	<h3 id="/news/2017/07/12/wicket-7.8.0-released.html">Apache Wicket 7.8.0 released</h3>
    <small>12 Jul 2017</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.8.0! 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...
	<a href="/news/2017/07/12/wicket-7.8.0-released.html">more</a></p>
</article>
        <article>
	<h3 id="/news/2017/07/06/wicket-6.27.0-released.html">Apache Wicket 6.27.0 released</h3>
    <small>06 Jul 2017</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.27.0! 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...
	<a href="/news/2017/07/06/wicket-6.27.0-released.html">more</a></p>
</article>
        <article>
	<h3 id="/news/2017/05/18/wicket-8.0.0-M6-released.html">Apache Wicket 8.0.0-M6 released</h3>
    <small>18 May 2017</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.0.0-M6! 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...
	<a href="/news/2017/05/18/wicket-8.0.0-M6-released.html">more</a></p>
</article>
        <article>
	<h3 id="/news/2017/05/16/wicket-7.7.0-released.html">Apache Wicket 7.7.0 released</h3>
    <small>16 May 2017</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.7.0! 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...
	<a href="/news/2017/05/16/wicket-7.7.0-released.html">more</a></p>
</article>
        <article>
	<h3 id="/news/2017/03/29/wicket-8.0.0-M5-released.html">Apache Wicket 8.0.0-M5 released</h3>
    <small>29 Mar 2017</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.0.0-M5! 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...
	<a href="/news/2017/03/29/wicket-8.0.0-M5-released.html">more</a></p>
</article>
        <article>
	<h3 id="/news/2017/02/07/wicket-8.0.0-M4-released.html">Apache Wicket 8.0.0-M4 released</h3>
    <small>07 Feb 2017</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.0.0-M4! 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...
	<a href="/news/2017/02/07/wicket-8.0.0-M4-released.html">more</a></p>
</article>
        <div class="l-first"></div>
        <hr />
        <div class="l-first">
          <h1 id="all-news-for-2016">All News for 2016</h1>
          <p>This section contains all news items published in <a href="/news/2016">2016</a>.</p>
          <article>
	<h3 id="/news/2016/12/31/cve-2016-6793.html">CVE-2016-6793 Apache Wicket deserialization vulnerability</h3>
    <small>31 Dec 2016</small>
	<p>Severity: Low Vendor: The Apache Software Foundation Versions Affected: Apache Wicket 6.x and 1.5.x Description: Depending on the ISerializer set in the Wicket application, it’s possible that a Wicket’s object deserialized from an untrusted source and utilized by the application to causes the code to enter in an infinite loop....
	<a href="/news/2016/12/31/cve-2016-6793.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/12/29/wicket-8.0.0-M3-released.html">Apache Wicket 8.0.0-M3 released</h3>
    <small>29 Dec 2016</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.0.0-M3! 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...
	<a href="/news/2016/12/29/wicket-8.0.0-M3-released.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/12/29/wicket-7.6.0-released.html">Apache Wicket 7.6.0 released</h3>
    <small>29 Dec 2016</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.6.0! 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...
	<a href="/news/2016/12/29/wicket-7.6.0-released.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/12/29/wicket-6.26.0-released.html">Apache Wicket 6.26.0 released</h3>
    <small>29 Dec 2016</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.26.0! 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...
	<a href="/news/2016/12/29/wicket-6.26.0-released.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/11/08/cve-2016-6806.html">CVE-2016-6806 Apache Wicket CSRF detection vulnerability</h3>
    <small>08 Nov 2016</small>
	<p>Severity: Important Vendor: The Apache Software Foundation Versions Affected: Apache Wicket 6.20.0, 6.21.0, 6.22.0, 6.23.0, 6.24.0, 7.0.0, 7.1.0, 7.2.0, 7.3.0, 7.4.0 and 8.0.0-M1 Description: Affected versions of Apache Wicket provide a CSRF prevention measure that fails to discover some cross origin requests. The mitigation is to not only check the...
	<a href="/news/2016/11/08/cve-2016-6806.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/10/26/wicket-8.0.0-M2-released.html">Apache Wicket 8.0.0-M2 released</h3>
    <small>26 Oct 2016</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.0.0-M2! 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...
	<a href="/news/2016/10/26/wicket-8.0.0-M2-released.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/10/26/wicket-7.5.0-released.html">Apache Wicket 7.5.0 released</h3>
    <small>26 Oct 2016</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.5.0! 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...
	<a href="/news/2016/10/26/wicket-7.5.0-released.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/10/26/wicket-6.25.0-released.html">Apache Wicket 6.25.0 released</h3>
    <small>26 Oct 2016</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.25.0! 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...
	<a href="/news/2016/10/26/wicket-6.25.0-released.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/08/05/wicket-1.5.16-released.html">Wicket 1.5.16 released</h3>
    <small>05 Aug 2016</small>
	<p>This is the sixteenth maintenance release of the Wicket 1.5.x series. This release brings over 2 bug fixes. CHANGELOG for 1.5.16: Bug CVE-2013-2186: Disable (de)serialization of Commons FileUpload items. CVE-2016-3092: Apache Commons Fileupload information disclosure vulnerability To use in Maven: &lt;dependency&gt; &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt; &lt;artifactId&gt;wicket-core&lt;/artifactId&gt; &lt;version&gt;1.5.16&lt;/version&gt; &lt;/dependency&gt; Download the full distribution (including...
	<a href="/news/2016/08/05/wicket-1.5.16-released.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/08/05/cve-2016-3092.html">CVE-2016-3092 &amp; CVE-2013-2186 Apache Commons Fileupload vulnerabilities</h3>
    <small>05 Aug 2016</small>
	<p>Severity: Important Vendor: The Apache Software Foundation Versions Affected: Apache Wicket 1.5.x, 6.x and 7.x Description: CVE-2016-3092: A malicious client can send file upload requests that cause the HTTP server using the Apache Commons Fileupload library to become unresponsive, preventing the server from servicing other requests. This flaw is not...
	<a href="/news/2016/08/05/cve-2016-3092.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/07/25/wicket-8.0.0-M1-released.html">Apache Wicket 8.0.0-M1 released</h3>
    <small>25 Jul 2016</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 8.0.0-M1! 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...
	<a href="/news/2016/07/25/wicket-8.0.0-M1-released.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/07/21/wicket-7.4.0-released.html">Apache Wicket 7.4.0 released</h3>
    <small>21 Jul 2016</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.4.0! 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...
	<a href="/news/2016/07/21/wicket-7.4.0-released.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/07/21/wicket-6.24.0-released.html">Apache Wicket 6.24.0 released</h3>
    <small>21 Jul 2016</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.24.0! 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...
	<a href="/news/2016/07/21/wicket-6.24.0-released.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/05/05/wicket-7.3.0-released.html">Apache Wicket 7.3.0 released</h3>
    <small>05 May 2016</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.3.0! 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...
	<a href="/news/2016/05/05/wicket-7.3.0-released.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/05/05/wicket-6.23.0-released.html">Apache Wicket 6.23.0 released</h3>
    <small>05 May 2016</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.23.0! 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...
	<a href="/news/2016/05/05/wicket-6.23.0-released.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/03/02/cve-2015-7520.html">CVE-2015-7520 Apache Wicket XSS vulnerability</h3>
    <small>02 Mar 2016</small>
	<p>Severity: Important Vendor: The Apache Software Foundation Versions Affected: Apache Wicket 1.5.x, 6.x and 7.x Description: It is possible for JavaScript statements to break out of a RadioGroup’s and CheckBoxMultipleChoice’s “value” attribute of &lt;input&gt; elements This might pose a security threat if the written JavaScript contains user provided data. The...
	<a href="/news/2016/03/02/cve-2015-7520.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/03/01/cve-2015-5347.html">CVE-2015-5347 Apache Wicket XSS vulnerability</h3>
    <small>01 Mar 2016</small>
	<p>Severity: Important Vendor: The Apache Software Foundation Versions Affected: Apache Wicket 1.5.x, 6.x and 7.x Description: It is possible for JavaScript statements to break out of a ModalWindow’s title - only quotes are escaped in the JavaScript settings object, allowing JavaScript to be injected into the markup. This might pose...
	<a href="/news/2016/03/01/cve-2015-5347.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/02/19/wicket-6.22.0-released.html">Apache Wicket 6.22.0 released</h3>
    <small>19 Feb 2016</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.22.0! 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. Using this release With...
	<a href="/news/2016/02/19/wicket-6.22.0-released.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/02/19/wicket-1.5.15-released.html">Wicket 1.5.15 released</h3>
    <small>19 Feb 2016</small>
	<p>This is the fifteenth maintenance release of the Wicket 1.5.x series. This release brings over 2 bug fixes. CHANGELOG for 1.5.15: Bug [WICKET-6037] - ModalWindow vulnerable to Javascript injection through title model Escape the generated markup for attribute names and values in CheckBoxMultipleChoice and RadioChoice To use in Maven: &lt;dependency&gt;...
	<a href="/news/2016/02/19/wicket-1.5.15-released.html">more</a></p>
</article>
          <article>
	<h3 id="/news/2016/01/20/wicket-7.2.0-released.html">Apache Wicket 7.2.0 released</h3>
    <small>20 Jan 2016</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.2.0! 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. New and noteworthy In...
	<a href="/news/2016/01/20/wicket-7.2.0-released.html">more</a></p>
</article>
          <div class="l-first"></div>
          <hr />
          <div class="l-first">
            <h1 id="all-news-for-2015">All News for 2015</h1>
            <p>This section contains all news items published in <a href="/news/2015">2015</a>.</p>
            <article>
	<h3 id="/news/2015/11/16/wicket-6.21.0-released.html">Apache Wicket 6.21.0 released</h3>
    <small>16 Nov 2015</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.21.0! 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. Using this release With...
	<a href="/news/2015/11/16/wicket-6.21.0-released.html">more</a></p>
</article>
            <article>
	<h3 id="/news/2015/11/15/wicket-1.4.x-eol.html">Apache Wicket 1.4.x end of life</h3>
    <small>15 Nov 2015</small>
	<p>The Apache Wicket team announces that support for Apache Wicket 1.4.x ends on 16 November 2015. On the same day Wicket 1.5.x enters “security fixes” maintenance mode. This means that after 16 October 2015: no more releases from the 1.4.x branch bugs affecting only the 1.4.x branch will not be...
	<a href="/news/2015/11/15/wicket-1.4.x-eol.html">more</a></p>
</article>
            <article>
	<h3 id="/news/2015/10/25/wicket-7.1.0-released.html">Apache Wicket 7.1.0 released</h3>
    <small>25 Oct 2015</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.1.0! 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. New and noteworthy Significant...
	<a href="/news/2015/10/25/wicket-7.1.0-released.html">more</a></p>
</article>
            <article>
	<h3 id="/news/2015/10/24/wicket-1.5.14-released.html">Wicket 1.5.14 released</h3>
    <small>24 Oct 2015</small>
	<p>This is the fourteenth maintenance release of the Wicket 1.5.x series. This release brings over 4 bug fixes and 1 improvement. CHANGELOG for 1.5.14: ** Bug * [WICKET-5838] - Last-modified header of external markup is ignored * [WICKET-5927] - Velocity remote code execution * [WICKET-6000] - Wicket 1.5 DTD link...
	<a href="/news/2015/10/24/wicket-1.5.14-released.html">more</a></p>
</article>
            <article>
	<h3 id="/news/2015/07/28/wicket-7.0-released.html">Apache Wicket v7.0 released</h3>
    <small>28 Jul 2015</small>
	<p>The Apache Software Foundation announces Apache Wicket™ v7.0 Open Source Java web framework that powers thousands of web applications and web sites for governments, stores, universities, cities, banks, email providers, and more. The Apache Software Foundation (ASF), the all-volunteer developers, stewards, and incubators of nearly 150 Open Source projects and...
	<a href="/news/2015/07/28/wicket-7.0-released.html">more</a></p>
</article>
            <article>
	<h3 id="/news/2015/06/21/wicket-7.0.0-M6-released.html">Apache Wicket 7.0.0-M6 released</h3>
    <small>21 Jun 2015</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.0.0-M6! We have released another milestone release for Apache Wicket 7. We aim to finalise Wicket 7 over the coming months and request your help in testing the new major version. Caveats It is still a development version so expect...
	<a href="/news/2015/06/21/wicket-7.0.0-M6-released.html">more</a></p>
</article>
            <article>
	<h3 id="/news/2015/06/14/wicket-6.20.0-released.html">Apache Wicket 6.20.0 released</h3>
    <small>14 Jun 2015</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.20.0! This release marks another minor 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.0.0. Using this...
	<a href="/news/2015/06/14/wicket-6.20.0-released.html">more</a></p>
</article>
            <article>
	<h3 id="/news/2015/02/13/wicket-1.5.13-released.html">Wicket 1.5.13 released</h3>
    <small>13 Feb 2015</small>
	<p>This is the thirteenth maintenance release of the Wicket 1.5.x series. This release brings over 1 bug fix and 1 improvement.
  Git tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket-core&lt;/artifactId&gt;
    &lt;version&gt;1.5.13&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including sources)
	<a href="/news/2015/02/13/wicket-1.5.13-released.html">more</a></p>
</article>
            <article>
	<h3 id="/news/2015/02/13/new-committer-Sebastien-Briquet.html">New committer - Sebastien Briquet</h3>
    <small>13 Feb 2015</small>
	<p>The Project Management Committee (PMC) for Apache Wicket has asked Sebastien Briquet to become a committer and we are pleased to announce that he has accepted. Sebastien has been involved with Wicket for several years now by developing one of the most successful integrations with JavaScript libraries, namely Wicket jQuery...
	<a href="/news/2015/02/13/new-committer-Sebastien-Briquet.html">more</a></p>
</article>
            <article>
	<h3 id="/news/2015/02/02/wicket-7.0.0-M5-released.html">Apache Wicket 7.0.0-M5 released</h3>
    <small>02 Feb 2015</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.0.0-M5! We have released another milestone release for Apache Wicket 7. We aim to finalise Wicket 7 over the coming months and request your help in testing the new major version. Caveats It is still a development version so expect...
	<a href="/news/2015/02/02/wicket-7.0.0-M5-released.html">more</a></p>
</article>
            <article>
	<h3 id="/news/2015/02/02/wicket-6.19.0-released.html">Apache Wicket 6.19.0 released</h3>
    <small>02 Feb 2015</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.19.0! This release marks another minor 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.0.0. Using this...
	<a href="/news/2015/02/02/wicket-6.19.0-released.html">more</a></p>
</article>
            <div class="l-first"></div>
            <hr />
            <div class="l-first">
              <h1 id="all-news-for-2014">All News for 2014</h1>
              <p>This section contains all news items published in <a href="/news/2014">2014</a>.</p>
              <article>
	<h3 id="/news/2014/11/05/wicket-7.0.0-M4-released.html">Apache Wicket 7.0.0-M4 released</h3>
    <small>05 Nov 2014</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 7.0.0-M4! We have released another milestone release for Apache Wicket 7. We aim to finalise Wicket 7 over the coming months and request your help in testing the new major version. Caveats It is still a development version so expect...
	<a href="/news/2014/11/05/wicket-7.0.0-M4-released.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/11/05/wicket-6.18.0-released.html">Apache Wicket 6.18.0 released</h3>
    <small>05 Nov 2014</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.18.0! This release marks another minor 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.0.0. Using this...
	<a href="/news/2014/11/05/wicket-6.18.0-released.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/09/22/cve-2014-3526.html">CVE-2014-3526 - Apache Wicket Information disclosure vulnerability</h3>
    <small>22 Sep 2014</small>
	<p>Severity: Important Vendor: The Apache Software Foundation Versions Affected: Apache Wicket 1.5.11, 6.16.0 and 7.0.0-M2 Description: When rendering a web page Wicket checks the request url against the one at the render time. It is possible the application to change the page parameters (this includes both the query parameters and...
	<a href="/news/2014/09/22/cve-2014-3526.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/09/15/wicket-1.5.12-released.html">Wicket 1.5.12 released</h3>
    <small>15 Sep 2014</small>
	<p>This is the twelfth maintenance release of the Wicket 1.5.x series. This release brings over 5 bug fixes and improvements.
  Git tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket-core&lt;/artifactId&gt;
    &lt;version&gt;1.5.12&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including sources)
	<a href="/news/2014/09/15/wicket-1.5.12-released.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/08/24/wicket-6.17.0-released.html">Apache Wicket 6.17.0 released</h3>
    <small>24 Aug 2014</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.17.0! This release marks the seventeenth minor 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.0.0. New...
	<a href="/news/2014/08/24/wicket-6.17.0-released.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/08/23/wicket-7.0.0-M3-released.html">Apache Wicket 7.0.0-M3 released</h3>
    <small>23 Aug 2014</small>
	<p>We have released the third of a series of milestone releases for Apache Wicket 7. We aim to finalise Wicket 7 over the coming months and request your help in testing the new major version. Caveats It is still a development version so expect minor API breaks to happen over...
	<a href="/news/2014/08/23/wicket-7.0.0-M3-released.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/06/21/wicket-6.16.0-released.html">Apache Wicket 6.16.0 released</h3>
    <small>21 Jun 2014</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.16.0! This release marks the sixteenth minor 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.0.0. New...
	<a href="/news/2014/06/21/wicket-6.16.0-released.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/06/20/wicket-7.0.0-M2-released.html">Apache Wicket 7.0.0-M2 released</h3>
    <small>20 Jun 2014</small>
	<p>We have released the first of a series of milestone releases for Apache Wicket 7. We aim to finalise Wicket 7 over the coming months and request your help in testing the new major version. Caveats It is still a development version so expect API breaks to happen over the...
	<a href="/news/2014/06/20/wicket-7.0.0-M2-released.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/04/30/wicket-7.0.0-M1-released.html">Apache Wicket 7.0.0-M1 released</h3>
    <small>30 Apr 2014</small>
	<p>We have released the first of a series of milestone releases for Apache Wicket 7. We aim to finalise Wicket 7 over the coming months and request your help in testing the new major version. Caveats It is still a development version so expect API breaks to happen over the...
	<a href="/news/2014/04/30/wicket-7.0.0-M1-released.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/04/23/wicket-6.15.0-released.html">Apache Wicket 6.15.0 released</h3>
    <small>23 Apr 2014</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.15.0! This release marks the fifteenth minor 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.0.0. New...
	<a href="/news/2014/04/23/wicket-6.15.0-released.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/02/21/cve-2014-0043.html">CVE-2014-0043 - Apache Wicket Information disclosure vulnerability</h3>
    <small>21 Feb 2014</small>
	<p>Severity: Important Vendor: The Apache Software Foundation Versions Affected: Apache Wicket 1.5.10 and 6.13.0 Description: By issuing requests to special urls handled by Wicket it is possible to check for the existence of particular classes in the classpath and thus check whether a third party library with a known security...
	<a href="/news/2014/02/21/cve-2014-0043.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/02/20/wicket-6.14.0-released.html">Apache Wicket 6.14.0 released</h3>
    <small>20 Feb 2014</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.14.0! This release marks the fourteenth minor 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.0.0. New...
	<a href="/news/2014/02/20/wicket-6.14.0-released.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/02/06/wicket-1.5.11-released.html">Wicket 1.5.11 released</h3>
    <small>06 Feb 2014</small>
	<p>This is the eleventh maintenance release of the Wicket 1.5.x series. This release brings over 34 bug fixes and improvements.
  Git tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket-core&lt;/artifactId&gt;
    &lt;version&gt;1.5.11&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2014/02/06/wicket-1.5.11-released.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/02/06/wicket-1.4.23-released.html">Wicket 1.4.23 released</h3>
    <small>06 Feb 2014</small>
	<p>This is twenty thirdth release of the Wicket 1.4.x series. This is a security bugfix release on the 1.4.x branch.
Read CVE-2013-2055 for more information.
  Git tag
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket&lt;/artifactId&gt;
    &lt;version&gt;1.4.23&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2014/02/06/wicket-1.4.23-released.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/02/06/cve-2013-2055.html">CVE-2013-2055 - Apache Wicket Information disclosure vulnerability</h3>
    <small>06 Feb 2014</small>
	<p>Severity: Important Vendor: The Apache Software Foundation Versions Affected: Apache Wicket 1.4.22, 1.5.10 and 6.7.0 Description: It is possible to make Wicket deliver the HTML templates in their raw/non-processed form. An attacker could see any sensitive information in the part of the HTML template that is usually ignored during rendering....
	<a href="/news/2014/02/06/cve-2013-2055.html">more</a></p>
</article>
              <article>
	<h3 id="/news/2014/01/05/wicket-6.13.0-released.html">Apache Wicket 6.13.0 released</h3>
    <small>05 Jan 2014</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.13.0! This release marks the thirteenth minor 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.0.0. New...
	<a href="/news/2014/01/05/wicket-6.13.0-released.html">more</a></p>
</article>
              <div class="l-first"></div>
              <hr />
              <div class="l-first">
                <h1 id="all-news-for-2013">All News for 2013</h1>
                <p>This section contains all news items published in <a href="/news/2013">2013</a>.</p>
                <article>
	<h3 id="/news/2013/11/01/wicket-6.12.0-released.html">Apache Wicket 6.12.0 released</h3>
    <small>01 Nov 2013</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.12.0! This release marks the twelfth minor 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.0.0. New...
	<a href="/news/2013/11/01/wicket-6.12.0-released.html">more</a></p>
</article>
                <article>
	<h3 id="/news/2013/09/20/wicket-6.11.0-released.html">Apache Wicket 6.11.0 released</h3>
    <small>20 Sep 2013</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.11.0! This release marks the eleventh minor 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.0.0. New...
	<a href="/news/2013/09/20/wicket-6.11.0-released.html">more</a></p>
</article>
                <article>
	<h3 id="/news/2013/08/18/wicket-6.10.0-released.html">Apache Wicket 6.10.0 released</h3>
    <small>18 Aug 2013</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.10.0! This release marks the tenth minor 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.0.0. New...
	<a href="/news/2013/08/18/wicket-6.10.0-released.html">more</a></p>
</article>
                <article>
	<h3 id="/news/2013/07/10/wicket-6.9.1-released.html">Apache Wicket 6.9.1 released</h3>
    <small>10 Jul 2013</small>
	<p>The Apache Wicket PMC announces Apache Wicket 6.9.1! This is a patch release for 6.9.0 where we inadvertently broke CDI injection into (amongst others) anonymous inner classes. See below for more information regarding this release. Please note that this patch release only fixes WICKET-5264. Starting with Wicket 6 we use...
	<a href="/news/2013/07/10/wicket-6.9.1-released.html">more</a></p>
</article>
                <article>
	<h3 id="/news/2013/06/27/wicket-6.9.0-released.html">Apache Wicket 6.9.0 released</h3>
    <small>27 Jun 2013</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.9.0! This release marks the ninth minor 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.0.0. New...
	<a href="/news/2013/06/27/wicket-6.9.0-released.html">more</a></p>
</article>
                <article>
	<h3 id="/news/2013/05/17/wicket-6.8.0-released.html">Apache Wicket 6.8.0 released</h3>
    <small>17 May 2013</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.8.0! This release marks the eighth minor 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.0.0. Using...
	<a href="/news/2013/05/17/wicket-6.8.0-released.html">more</a></p>
</article>
                <article>
	<h3 id="/news/2013/04/12/wicket-6.7.0-released.html">Apache Wicket 6.7.0 released</h3>
    <small>12 Apr 2013</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.7.0! This release marks the seventh minor 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.0.0. New...
	<a href="/news/2013/04/12/wicket-6.7.0-released.html">more</a></p>
</article>
                <article>
	<h3 id="/news/2013/03/03/cve-2012-5636.html">CVE-2012-5636 - Apache Wicket XSS vulnerability</h3>
    <small>03 Mar 2013</small>
	<p>Severity: Important Vendor: The Apache Software Foundation Versions Affected: Apache Wicket 1.4.x, 1.5.x and 1.6.x Description: It is possible for JavaScript statements to break out of a &lt;script&gt; tag in the rendered response. This might pose a security threat if the written JavaScript contains user provided data. This vulnerability is...
	<a href="/news/2013/03/03/cve-2012-5636.html">more</a></p>
</article>
                <article>
	<h3 id="/news/2013/02/26/wicket-1.5.10-released.html">Wicket 1.5.10 released</h3>
    <small>26 Feb 2013</small>
	<p>This is the tenth maintenance release of the Wicket 1.5.x series. This release brings over 28 bug fixes and improvements.
  Git tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket-core&lt;/artifactId&gt;
    &lt;version&gt;1.5.10&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2013/02/26/wicket-1.5.10-released.html">more</a></p>
</article>
                <article>
	<h3 id="/news/2013/02/15/wicket-6.6.0-released.html">Apache Wicket 6.6.0 released</h3>
    <small>15 Feb 2013</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.6.0! This release marks the sixth minor 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.0.0. New...
	<a href="/news/2013/02/15/wicket-6.6.0-released.html">more</a></p>
</article>
                <article>
	<h3 id="/news/2013/01/23/wicket-6.5.0-released.html">Apache Wicket 6.5.0 released</h3>
    <small>23 Jan 2013</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.5.0! This release marks the fifth minor 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.0.0. New...
	<a href="/news/2013/01/23/wicket-6.5.0-released.html">more</a></p>
</article>
                <div class="l-first"></div>
                <hr />
                <div class="l-first">
                  <h1 id="all-news-for-2012">All News for 2012</h1>
                  <p>This section contains all news items published in <a href="/news/2012">2012</a>.</p>
                  <article>
	<h3 id="/news/2012/12/14/wicket-6.4.0-released.html">Apache Wicket 6.4.0 released</h3>
    <small>14 Dec 2012</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.4.0! This release marks the fourth minor 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.0.0. New...
	<a href="/news/2012/12/14/wicket-6.4.0-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/11/16/wicket-6.3.0-released.html">Apache Wicket 6.3.0 released</h3>
    <small>16 Nov 2012</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.3.0! This release marks the third minor 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.0.0. New...
	<a href="/news/2012/11/16/wicket-6.3.0-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/11/09/wicket-1.5.9-released.html">Wicket 1.5.9 released</h3>
    <small>09 Nov 2012</small>
	<p>This is the nineth maintenance release of the Wicket 1.5.x series. This release brings over 48 bug fixes and improvements.
  Git tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket-core&lt;/artifactId&gt;
    &lt;version&gt;1.5.9&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2012/11/09/wicket-1.5.9-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/10/23/wicket-6.2.0-released.html">Apache Wicket 6.2.0 released</h3>
    <small>23 Oct 2012</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.2.0! This release marks the second minor 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.0.0. New...
	<a href="/news/2012/10/23/wicket-6.2.0-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/10/08/wicket-6.1.1-released.html">Apache Wicket 6.1.1 released</h3>
    <small>08 Oct 2012</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.1.1! 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...
	<a href="/news/2012/10/08/wicket-6.1.1-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/10/04/wicket-6.1.0-released.html">Apache Wicket 6.1.0 released</h3>
    <small>04 Oct 2012</small>
	<p>The Apache Wicket PMC is proud to announce Apache Wicket 6.1.0! This release marks the first maintenance 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.0.0. New...
	<a href="/news/2012/10/04/wicket-6.1.0-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/09/06/cve-2012-3373.html">CVE-2012-3373 - Apache Wicket XSS vulnerability</h3>
    <small>06 Sep 2012</small>
	<p>Severity: Important Vendor: The Apache Software Foundation Versions Affected: Apache Wicket 1.4.x and 1.5.x Description: It is possible to inject JavaScript statements into an ajax link by adding an encoded null byte to a URL pointing to a Wicket app. This could be done by sending a legitimate user a...
	<a href="/news/2012/09/06/cve-2012-3373.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/09/05/wicket-6.0.0-released.html">Apache Wicket v6.0.0 released</h3>
    <small>05 Sep 2012</small>
	<p>“With great pleasure we announce the availability of Apache Wicket 6.0.0” – Martijn Dashorst, Vice President, Apache Wicket Apache Wicket v6.0.0 is the 6th major release of the popular open source Java web framework. Numerous enhancements make Apache Wicket v6.0.0 a solid choice for web development: Out-of-the box JQuery integration...
	<a href="/news/2012/09/05/wicket-6.0.0-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/09/05/wicket-1.4.21-released.html">Wicket 1.4.21 released</h3>
    <small>05 Sep 2012</small>
	<p>This is 21st release of the Wicket 1.4.x series. This is also the last release of the 1.4.x series, rounding up the remaining bugfixes. No further releases will happen in this branch. Git tag Changelog To use in Maven: &lt;dependency&gt; &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt; &lt;artifactId&gt;wicket&lt;/artifactId&gt; &lt;version&gt;1.4.21&lt;/version&gt; &lt;/dependency&gt; Download the full distribution (including source)...
	<a href="/news/2012/09/05/wicket-1.4.21-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/08/24/wicket-1.5.8-released.html">Wicket 1.5.8 released</h3>
    <small>24 Aug 2012</small>
	<p>This is the eighth maintenance release of the Wicket 1.5.x series. This release brings over 45 bug fixes and improvements.
  Git tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket-core&lt;/artifactId&gt;
    &lt;version&gt;1.5.8&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2012/08/24/wicket-1.5.8-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/07/16/wicket-6.0.0-beta3-released.html">Wicket 6.0.0-beta3 released</h3>
    <small>16 Jul 2012</small>
	<p>The Wicket team is proud to announce the third beta release of the Wicket 6.x series. This release is an intermediary release just before we give you 6.0.0 final. There are no more planned API breaks but if you find something that can be made better now it the time...
	<a href="/news/2012/07/16/wicket-6.0.0-beta3-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/06/20/wicket-native-websockets.html">Wicket Native WebSockets support</h3>
    <small>20 Jun 2012</small>
	<p>A new experimental module just landed in Wicket’s Git repository - Wicket Native WebSocket. It provides the support for HTML5 WebSockets in Wicket as the one for Ajax that you may already use in your applications. The full documentation is available at Native WebSocket Wiki A demo application is available...
	<a href="/news/2012/06/20/wicket-native-websockets.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/06/04/wicket-1.5.7-released.html">Wicket 1.5.7 released</h3>
    <small>04 Jun 2012</small>
	<p>This is the seventh maintenance release of the Wicket 1.5.x series. This release brings over 26 bug fixes and improvements.
  Git tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket-core&lt;/artifactId&gt;
    &lt;version&gt;1.5.7&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2012/06/04/wicket-1.5.7-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/05/29/wicket-6.0.0-beta2-released.html">Wicket 6.0.0-beta2 released</h3>
    <small>29 May 2012</small>
	<p>The Wicket team is proud to announce the second beta release of the Wicket 6.x series. This release brings over many improvements over the 1.5.x series. New and Noteworthy Wicket Atmosphere The Beta 2 contains a new experimental module Wicket Atmosphere, which brings serverside push to Wicket and provides a...
	<a href="/news/2012/05/29/wicket-6.0.0-beta2-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/05/07/wicket-1.5.6-released.html">Wicket 1.5.6 released</h3>
    <small>07 May 2012</small>
	<p>This is the sixth maintenance release of the Wicket 1.5.x series. This release brings over 40 bug fixes and improvements.
  Git tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket-core&lt;/artifactId&gt;
    &lt;version&gt;1.5.6&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2012/05/07/wicket-1.5.6-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/03/26/wicket-6.0.0-beta1-released.html">Wicket 6.0.0-beta1 released</h3>
    <small>26 Mar 2012</small>
	<p>The Wicket team is proud to announce the first beta release of the Wicket 6.x series. This release brings over many improvements over the 1.5.x series. Check the roadmap with a list of the major goals. And the migration guide with all major and some minor changes between 1.5.x and...
	<a href="/news/2012/03/26/wicket-6.0.0-beta1-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/03/22/wicket-cve-2012-1089.html">CVE-2012-1089 - Apache Wicket serving of hidden files vulnerability</h3>
    <small>22 Mar 2012</small>
	<p>Severity: Important Vendor: The Apache Software Foundation Versions Affected: Apache Wicket 1.4.x and 1.5.x Description: It is possible to view the content of any file of a web application by using an Url to a Wicket resource which resolves to a ‘null’ package. With such a Url the attacker can...
	<a href="/news/2012/03/22/wicket-cve-2012-1089.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/03/22/wicket-cve-2012-0047.html">CVE-2012-0047 - Apache Wicket XSS vulnerability via pageMapName request parameter</h3>
    <small>22 Mar 2012</small>
	<p>Severity: Important Vendor: The Apache Software Foundation Versions Affected: Apache Wicket 1.4.x Apache Wicket 1.3.x and 1.5.x are not affected Description: A Cross Site Scripting (XSS) attack is possible by manipulating the value of ‘wicket:pageMapName’ request parameter. Mitigation: Upgrade to Apache Wicket 1.4.20 or Apache Wicket 1.5.5 Credit: This issue...
	<a href="/news/2012/03/22/wicket-cve-2012-0047.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/03/12/wicket-1.5.5-released.html">Wicket 1.5.5 released</h3>
    <small>12 Mar 2012</small>
	<p>This is the fifth maintenance release of the Wicket 1.5.x series. This release brings over 50 bug fixes and improvements.
  Git tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket-core&lt;/artifactId&gt;
    &lt;version&gt;1.5.5&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2012/03/12/wicket-1.5.5-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/03/12/wicket-1.4.20-released.html">Wicket 1.4.20 released</h3>
    <small>12 Mar 2012</small>
	<p>This is twentieth release of the Wicket 1.4.x series. This is primarily a minor bugfix release on the 1.4.x (stable) branch.
  Subversion tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket&lt;/artifactId&gt;
    &lt;version&gt;1.4.20&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2012/03/12/wicket-1.4.20-released.html">more</a></p>
</article>
                  <article>
	<h3 id="/news/2012/01/23/wicket-1.5.4-released.html">Wicket 1.5.4 released</h3>
    <small>23 Jan 2012</small>
	<p>This is the fourth maintenance release of the Wicket 1.5.x series. This release brings over 68 bug fixes and improvements.
  Git tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket-core&lt;/artifactId&gt;
    &lt;version&gt;1.5.4&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2012/01/23/wicket-1.5.4-released.html">more</a></p>
</article>
                  <div class="l-first"></div>
                  <hr />
                  <div class="l-first">
                    <h1 id="all-news-for-2011">All News for 2011</h1>
                    <p>This section contains all news items published in <a href="/news/2011">2011</a>.</p>
                    <article>
	<h3 id="/news/2011/11/14/wicket-1.5.3-released.html">Wicket 1.5.3 released</h3>
    <small>14 Nov 2011</small>
	<p>This is the third maintenance release of the Wicket 1.5.x series. This release brings over 40 bug fixes and improvements.
  Subversion tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket-core&lt;/artifactId&gt;
    &lt;version&gt;1.5.3&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2011/11/14/wicket-1.5.3-released.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/10/24/wicket-1.5.2-released.html">Wicket 1.5.2 released</h3>
    <small>24 Oct 2011</small>
	<p>This is the second maintenance release of the Wicket 1.5.x series. This release brings over 25 bug fixes and 5 improvements.
  Subversion tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket-core&lt;/artifactId&gt;
    &lt;version&gt;1.5.2&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2011/10/24/wicket-1.5.2-released.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/10/17/wicket-1.4.19-released.html">Wicket 1.4.19 released</h3>
    <small>17 Oct 2011</small>
	<p>This is nineteenth release of the Wicket 1.4.x series. This is primarily a minor bugfix release on the 1.4.x (stable) branch.
  Subversion tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket&lt;/artifactId&gt;
    &lt;version&gt;1.4.19&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2011/10/17/wicket-1.4.19-released.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/09/29/wicket-1.5.1-released.html">Wicket 1.5.1 released</h3>
    <small>29 Sep 2011</small>
	<p>This is the first maintenance release of the Wicket 1.5.x series. This release brings over 40 bug fixes and 15 improvements.
  Subversion tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket-core&lt;/artifactId&gt;
    &lt;version&gt;1.5.1&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2011/09/29/wicket-1.5.1-released.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/09/07/wicket-1.5-released.html">Apache Wicket releases Wicket 1.5</h3>
    <small>07 Sep 2011</small>
	<p>The Apache Wicket team is proud to announce the immediate availability of the newest release of their component oriented open source Java web framework. Apache Wicket 1.5 has been in development for the last two years and brings many improvements over previous versions. Downloading Apache Wicket 1.5 You can download...
	<a href="/news/2011/09/07/wicket-1.5-released.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/08/28/1.5-RC7-released.html">Wicket 1.5-RC7 released</h3>
    <small>28 Aug 2011</small>
	<p>The Wicket Team is proud to introduce the seventh Release Candidate in Wicket 1.5 series. See the changelog for the list of bug fixes and improvements done between 1.5-RC5.1 and 1.5-RC7 More detailed migration notes are available on our Migrate to 1.5 Wiki Page Release Artifacts: Subversion tag Changelog RC6...
	<a href="/news/2011/08/28/1.5-RC7-released.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/08/23/cve-2011-2712.html">CVE-2011-2712 - Apache Wicket XSS vulnerability</h3>
    <small>23 Aug 2011</small>
	<p>Severity: Important Vendor: The Apache Software Foundation Versions Affected: Apache Wicket 1.4.x Apache Wicket 1.3.x and 1.5-RCx are not affected Description: With multi window support application configuration and special query parameters it is possible to execute any kind of JavaScript on a site running with the affected versions. Mitigation: Either...
	<a href="/news/2011/08/23/cve-2011-2712.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/08/09/wicket-1.4.18-released.html">Wicket 1.4.18 released</h3>
    <small>09 Aug 2011</small>
	<p>This is eightteenth release of the Wicket 1.4.x series. This is primarily a minor bugfix release on the 1.4.x (stable) branch.
  Subversion tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket&lt;/artifactId&gt;
    &lt;version&gt;1.4.18&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2011/08/09/wicket-1.4.18-released.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/06/25/wicket-1.5-RC5.1-released.html">Wicket 1.5-RC5.1 released</h3>
    <small>25 Jun 2011</small>
	<p>The Wicket Team is proud to introduce the fourth Release Candidate in Wicket 1.5 series. See the changelog for the list of bug fixes and improvements done between 1.5-RC4.2 and 1.5-RC5.1 More detailed migration notes are available on our Migrate to 1.5 Wiki Page Release Artifacts: Subversion tag Changelog To...
	<a href="/news/2011/06/25/wicket-1.5-RC5.1-released.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/05/17/wicket-cookbook-contest.html">Apache Wicket Cookbook Giveaway Contest</h3>
    <small>17 May 2011</small>
	<p>
Packt Publishing has generously allowed me to
give away a free copy of the ebook version of Apache Wicket Cookbook (http://link.packtpub.com/AzN8N9), and a free one year subscription to PacktLib. For details see the contest announcement.
Cheers,
-Igor
	<a href="/news/2011/05/17/wicket-cookbook-contest.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/05/11/wicket-1.5-RC4.2-released.html">Wicket 1.5-RC4.2 released</h3>
    <small>11 May 2011</small>
	<p>The Wicket Team is proud to introduce the fourth Release Candidate in Wicket 1.5 series. See the changelog for the list of bug fixes and improvements done between 1.5-RC3 and 1.5-RC4.2 More detailed migration notes are available on our Migrate to 1.5 Wiki Page Release Artifacts: Subversion tag Changelog To...
	<a href="/news/2011/05/11/wicket-1.5-RC4.2-released.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/04/02/wicket-1.5-RC3-released.html">Wicket 1.5-RC3 released</h3>
    <small>02 Apr 2011</small>
	<p>The Wicket Team is proud to introduce the third Release Candidate in Wicket 1.5 series. See the changelog for the list of bug fixes and improvements done between 1.5-rc2 and 1.5-RC3 More detailed migration notes are available on our Migrate to 1.5 Wiki Page Release Artifacts: Subversion tag Changelog To...
	<a href="/news/2011/04/02/wicket-1.5-RC3-released.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/04/02/wicket-1.4.17-released.html">Wicket 1.4.17 released</h3>
    <small>02 Apr 2011</small>
	<p>This is seventeenth release of the Wicket 1.4.x series. This is primarily a minor bugfix release on the 1.4.x (stable) branch.
  Subversion tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket&lt;/artifactId&gt;
    &lt;version&gt;1.4.17&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2011/04/02/wicket-1.4.17-released.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/03/25/wicket-cookbook-published.html">Apache Wicket Cookbook Published!</h3>
    <small>25 Mar 2011</small>
	<p>For the past nine months I have been quietly working on a book about Wicket. Unlike other books on the market this one does not attempt to teach you Wicket from the ground up. Instead, it is for developers who already know the basics and want to learn how to...
	<a href="/news/2011/03/25/wicket-cookbook-published.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/02/25/wicket-1.5-rc2-released.html">Wicket 1.5-rc2 released</h3>
    <small>25 Feb 2011</small>
	<p>The Wicket Team is proud to introduce the second Release Candidate in Wicket 1.5 series. See the changelog for the list of bug fixes and improvements done between 1.5-RC1 and 1.5-rc2 More detailed migration notes are available on our Migrate to 1.5 Wiki Page Release Artifacts: Subversion tag Changelog To...
	<a href="/news/2011/02/25/wicket-1.5-rc2-released.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/02/25/wicket-1.4.16-released.html">Wicket 1.4.16 released</h3>
    <small>25 Feb 2011</small>
	<p>This is sixteenth release of the Wicket 1.4.x series. This is primarily a minor bugfix release on the 1.4.x (stable) branch.
  Subversion tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket&lt;/artifactId&gt;
    &lt;version&gt;1.4.16&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2011/02/25/wicket-1.4.16-released.html">more</a></p>
</article>
                    <article>
	<h3 id="/news/2011/01/22/wicket-1.5-RC1-released.html">Wicket 1.5-RC1 released</h3>
    <small>22 Jan 2011</small>
	<p>The Wicket Team is proud to introduce the first Release Candidate in Wicket 1.5 series. The 1.5 series provides the following major improvements: A more powerful and flexible request processing pipeline Intercomponent event mechanism Improved configuration More flexible markup loading Better proxy support (x-forwarded-for header) More detailed migration notes are...
	<a href="/news/2011/01/22/wicket-1.5-RC1-released.html">more</a></p>
</article>
                    <div class="l-first"></div>
                    <hr />
                    <div class="l-first">
                      <h1 id="all-news-for-2010">All News for 2010</h1>
                      <p>This section contains all news items published in <a href="/news/2010">2010</a>.</p>
                      <article>
	<h3 id="/news/2010/12/24/wicket-1.4.15-released.html">Wicket 1.4.15 released</h3>
    <small>24 Dec 2010</small>
	<p>This is fifteenth release of the Wicket 1.4.x series. This is primarily a minor bugfix release on the 1.4.x (stable) branch.
  Subversion tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket&lt;/artifactId&gt;
    &lt;version&gt;1.4.15&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2010/12/24/wicket-1.4.15-released.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/11/29/wicket-1.4.14-released.html">Wicket 1.4.14 released</h3>
    <small>29 Nov 2010</small>
	<p>This is fourteenth release of the Wicket 1.4.x series. This is primarily a minor bugfix release on the 1.4.x (stable) branch.
  Subversion tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket&lt;/artifactId&gt;
    &lt;version&gt;1.4.14&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2010/11/29/wicket-1.4.14-released.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/11/21/pedro-santos-committer.html">Pedro Santos is a Wicket team member</h3>
    <small>21 Nov 2010</small>
	<p>Pedro Santos has been added as a committer and PMC member for Apache Wicket. Pedro has been increasingly active in the Wicket community in recent months, and his patches continue to improve in quality. Additionally, Pedro is always willing to do the “grunt work” of creating great test cases for...
	<a href="/news/2010/11/21/pedro-santos-committer.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/11/05/wicket-1.5-M3-released.html">Wicket 1.5-M3 released</h3>
    <small>05 Nov 2010</small>
	<p>This is another milestone release from trunk (in-development branch).  This release includes several enhancments and fixes, which can be seen in the changelog (linked below).
  Subversion tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket&lt;/artifactId&gt;
    &lt;version&gt;1.5-M3&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2010/11/05/wicket-1.5-M3-released.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/11/01/wicket-1.4.13-released.html">Wicket 1.4.13 released</h3>
    <small>01 Nov 2010</small>
	<p>This is thirteenth release of the Wicket 1.4.x series. This is primarily a minor bugfix release on the 1.4.x (stable) branch.
  Subversion tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket&lt;/artifactId&gt;
    &lt;version&gt;1.4.13&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2010/11/01/wicket-1.4.13-released.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/09/17/wicket.1.5-M2.1-released.html">Wicket 1.5-M2.1 released</h3>
    <small>17 Sep 2010</small>
	<p>This is the second milestone of the new 1.5.x Wicket series. The focus of 1.5.x is to provide our users with a more powerful and flexible request processing pipeline. This release is NOT production-ready, it is more of a technology demo that should facilitate user-feedback we can fold into the...
	<a href="/news/2010/09/17/wicket.1.5-M2.1-released.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/09/17/wicket.1.4.12-released.html">Wicket 1.4.12 released</h3>
    <small>17 Sep 2010</small>
	<p>This is the twelfth maintenance release of the 1.4.x series. This release brings a fix to a critical bug which prevented ajax form submits in FireFox.
  Subversion tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket&lt;/artifactId&gt;
    &lt;version&gt;1.4.12&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2010/09/17/wicket.1.4.12-released.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/09/09/wicket-1.4.11-released.html">Wicket 1.4.11 released</h3>
    <small>09 Sep 2010</small>
	<p>This is the eleventh maintenance release of the 1.4.x series and brings over
fifty bug fixes and improvements.
  Subversion tag
  Changelog
  To use in Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket&lt;/artifactId&gt;
    &lt;version&gt;1.4.11&lt;/version&gt;
&lt;/dependency&gt;
  Download the full distribution (including source)
	<a href="/news/2010/09/09/wicket-1.4.11-released.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/08/24/peter-ertl-committer.html">Peter Ertl is a Wicket team member</h3>
    <small>24 Aug 2010</small>
	<p>The Apache Wicket team is proud to have Peter Ertl as a new member to the team of developers. Peter has been active in our community for a long time now and has contributed many patches, reported many bugs as well as helping out on the user list. Welcome Peter!...
	<a href="/news/2010/08/24/peter-ertl-committer.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/08/11/wicket-1.5-M1-released.html">Wicket 1.5-M1 released</h3>
    <small>11 Aug 2010</small>
	<p>This is the first milestone of the new 1.5.x Wicket series. The focus of 1.5.x is to provide our users with a more powerful and flexible request processing pipeline. This release is NOT production-ready, it is more of a technology demo that should facilitate user-feedback we can fold into the...
	<a href="/news/2010/08/11/wicket-1.5-M1-released.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/08/11/wicket-1.4.10-released.html">Wicket 1.4.10 released</h3>
    <small>11 Aug 2010</small>
	<p>This is the tenth maintenance release of the 1.4.x series and brings over thirty bug fixes and improvements. As well as bringing bug fixes and small improvements, 1.4.10 brings two major new features: Delayed component initialization Component configuration Delayed component initialization allows developers to initialize their components outside of a...
	<a href="/news/2010/08/11/wicket-1.4.10-released.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/08/04/martin-grigorov-committer.html">Martin Grigorov is a Wicket team member</h3>
    <small>04 Aug 2010</small>
	<p>The Apache Wicket team is proud to have Martin Grigorov as a new member to the team of developers. Martin has provided many high quality patches and didn’t just pick the easy bugs either. He’s also very active on the user list and contributes to several Wicket Stuff projects. Welcome...
	<a href="/news/2010/08/04/martin-grigorov-committer.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/05/24/wicket-1.4.9-released.html">Wicket 1.4.9 released</h3>
    <small>24 May 2010</small>
	<p>This is the ninth maintenance release of the 1.4.x series and brings over fifteen bug fixes and improvements. Subversion tag Changelog To use in Maven: &lt;dependency&gt; &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt; &lt;artifactId&gt;wicket&lt;/artifactId&gt; &lt;version&gt;1.4.9&lt;/version&gt; &lt;/dependency&gt; Download the full distribution (including source) It is worth noting that WICKET-2846 will be reverted in the next release because...
	<a href="/news/2010/05/24/wicket-1.4.9-released.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/05/03/wicket-1.4.8-released.html">Wicket 1.4.8 released</h3>
    <small>03 May 2010</small>
	<p>Wicket 1.4.8 is released!
This is the eighth maintenance release of 1.4.x series and brings over
20 bug fixes and improvements.
  SVN tag
  Using Maven:
&lt;dependency&gt;
    &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt;
    &lt;artifactId&gt;wicket&lt;/artifactId&gt;
    &lt;version&gt;1.4.8&lt;/version&gt;
&lt;/dependency&gt;
  Download
  Change log
	<a href="/news/2010/05/03/wicket-1.4.8-released.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/03/05/wicket-1.4.7-released.html">Wicket 1.4.7 released</h3>
    <small>05 Mar 2010</small>
	<p>The Apache Wicket project is proud to announce the seventh maintenance release of Apache Wicket 1.4. This releases brings over 30 improvements and bug fixes. Download Apache Wicket 1.4.7 You can download the release here: http://www.apache.org/dyn/closer.cgi/wicket/1.4.7 Or use this in your Maven pom’s to upgrade to the new version: &lt;dependency&gt;...
	<a href="/news/2010/03/05/wicket-1.4.7-released.html">more</a></p>
</article>
                      <article>
	<h3 id="/news/2010/02/01/wicket-1.4.6-released.html">Wicket 1.4.6 released</h3>
    <small>01 Feb 2010</small>
	<p>The Apache Wicket project is proud to announce the sixths maintenance release of Apache Wicket 1.4. This releases brings over 40 improvements and bug fixes that make Wicket 1.4 even more stable in production environments. Download Apache Wicket 1.4.6 You can download the release here: http://www.apache.org/dyn/closer.cgi/wicket/1.4.6 Or use this in...
	<a href="/news/2010/02/01/wicket-1.4.6-released.html">more</a></p>
</article>
                      <div class="l-first"></div>
                      <hr />
                      <div class="l-first">
                        <h1 id="all-news-for-2009">All News for 2009</h1>
                        <p>This section contains all news items published in <a href="/news/2009">2009</a>.</p>
                        <article>
	<h3 id="/news/2009/12/21/wicket-1.4.5-released.html">Wicket 1.4.5 released</h3>
    <small>21 Dec 2009</small>
	<p>The Apache Wicket project is proud to announce the fifth maintenance release of Apache Wicket 1.4. This releases mainly fixes WICKET-2613 which has caused certain applications to stop functioning properly in production environments. Download Apache Wicket 1.4 You can download the release here: http://www.apache.org/dyn/closer.cgi/wicket/1.4.5 Or use this in your Maven...
	<a href="/news/2009/12/21/wicket-1.4.5-released.html">more</a></p>
</article>
                        <article>
	<h3 id="/news/2009/12/13/wicket-1.4.4-released.html">Wicket 1.4.4 released</h3>
    <small>13 Dec 2009</small>
	<p>The Apache Wicket project is proud to announce the fourth maintenance release of Apache Wicket 1.4. Download Apache Wicket 1.4.4 You can download the release here: http://www.apache.org/dyn/closer.cgi/wicket/1.4.4 Or use this in your Maven pom’s to upgrade to the new version: &lt;dependency&gt; &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt; &lt;artifactId&gt;wicket&lt;/artifactId&gt; &lt;version&gt;1.4.4&lt;/version&gt; &lt;/dependency&gt; Changes A complete list of...
	<a href="/news/2009/12/13/wicket-1.4.4-released.html">more</a></p>
</article>
                        <article>
	<h3 id="/news/2009/10/24/wicket-1.4.3-released.html">Wicket 1.4.3 released</h3>
    <small>24 Oct 2009</small>
	<p>The Apache Wicket project is proud to announce the third maintenance release of Apache Wicket 1.4. Download Apache Wicket 1.4.3 You can download the release here: http://www.apache.org/dyn/closer.cgi/wicket/1.4.3 Or use this in your Maven pom’s to upgrade to the new version: &lt;dependency&gt; &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt; &lt;artifactId&gt;wicket&lt;/artifactId&gt; &lt;version&gt;1.4.3&lt;/version&gt; &lt;/dependency&gt; Changes A complete list of...
	<a href="/news/2009/10/24/wicket-1.4.3-released.html">more</a></p>
</article>
                        <article>
	<h3 id="/news/2009/10/12/wicket-1.4.2-released.html">Wicket 1.4.2 released</h3>
    <small>12 Oct 2009</small>
	<p>The Apache Wicket project is proud to announce the second maintenance release of Apache Wicket 1.4. Download Apache Wicket 1.4.2 You can download the release here: http://www.apache.org/dyn/closer.cgi/wicket/1.4.2 Or use this in your Maven pom’s to upgrade to the new version: &lt;dependency&gt; &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt; &lt;artifactId&gt;wicket&lt;/artifactId&gt; &lt;version&gt;1.4.2&lt;/version&gt; &lt;/dependency&gt; Changes A complete list of...
	<a href="/news/2009/10/12/wicket-1.4.2-released.html">more</a></p>
</article>
                        <article>
	<h3 id="/news/2009/08/21/wicket-1.4.1-released.html">Wicket 1.4.1 released</h3>
    <small>21 Aug 2009</small>
	<p>The Apache Wicket project is proud to announce the first maintenance release of Apache Wicket 1.4. Download Apache Wicket 1.4 You can download the release here: http://www.apache.org/dyn/closer.cgi/wicket/1.4.1 Or use this in your Maven pom’s to upgrade to the new version: &lt;dependency&gt; &lt;groupId&gt;org.apache.wicket&lt;/groupId&gt; &lt;artifactId&gt;wicket&lt;/artifactId&gt; &lt;version&gt;1.4.1&lt;/version&gt; &lt;/dependency&gt; Changes The most notable change...
	<a href="/news/2009/08/21/wicket-1.4.1-released.html">more</a></p>
</article>
                        <article>
	<h3 id="/news/2009/07/30/wicket-1.4-takes-typesafety-to-the-next-level.html">Apache Wicket 1.4 takes typesafety to the next level</h3>
    <small>30 Jul 2009</small>
	<p>The Apache Wicket project is proud to announce the release of Apache Wicket 1.4. Apache Wicket is an open source, component oriented Java web application framework. With overwhelming support from the user community, this release marks a departure from the past where we leave Java 1.4 behind and we require...
	<a href="/news/2009/07/30/wicket-1.4-takes-typesafety-to-the-next-level.html">more</a></p>
</article>
                        <article>
	<h3 id="/news/2009/07/30/wicket-1.3.7-released.html">Apache Wicket 1.3.7 marks end of life for Wicket 1.3</h3>
    <small>30 Jul 2009</small>
	<p>The Apache Wicket team is proud to present the release of Apache Wicket 1.3.7. This will be the last feature release for the 1.3.x branch. Going forward, only security fixes will be released in the 1.3.x branch - meaning that 1.3.7 may be the last release in this branch. All...
	<a href="/news/2009/07/30/wicket-1.3.7-released.html">more</a></p>
</article>
                        <div class="l-first"></div>
                        <hr />
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
        </div>
        <div class="l-one-third">
            <h2>2020</h2>
            <ul>
            <li><a href="/news/2020">All of 2020</a></li>
            <li><a href="/news/2020/04">April</a></li>
            <li><a href="/news/2020/01">January</a></li>
            </ul>
            <h2>2019</h2>
            <ul>
            <li><a href="/news/2019">All of 2019</a></li>
            <li><a href="/news/2019/09">September</a></li>
            <li><a href="/news/2019/06">June</a></li>
            <li><a href="/news/2019/05">May</a></li>
            <li><a href="/news/2019/04">April</a></li>
            <li><a href="/news/2019/02">February</a></li>
            <li><a href="/news/2019/01">January</a></li>
            </ul>
            <h2>2018</h2>
            <ul>
            <li><a href="/news/2018">All of 2018</a></li>
            <li><a href="/news/2018/12">December</a></li>
            <li><a href="/news/2018/11">November</a></li>
            <li><a href="/news/2018/09">September</a></li>
            <li><a href="/news/2018/05">May</a></li>
            <li><a href="/news/2018/02">February</a></li>
            </ul>
            <h2>2017</h2>
            <ul>
            <li><a href="/news/2017">All of 2017</a></li>
            <li><a href="/news/2017/10">October</a></li>
            <li><a href="/news/2017/09">September</a></li>
            <li><a href="/news/2017/08">August</a></li>
            <li><a href="/news/2017/07">July</a></li>
            <li><a href="/news/2017/05">May</a></li>
            <li><a href="/news/2017/03">March</a></li>
            <li><a href="/news/2017/02">February</a></li>
            </ul>
            <h2>2016</h2>
            <ul>
            <li><a href="/news/2016">All of 2016</a></li>
            <li><a href="/news/2016/12">December</a></li>
            <li><a href="/news/2016/11">November</a></li>
            <li><a href="/news/2016/10">October</a></li>
            <li><a href="/news/2016/08">August</a></li>
            <li><a href="/news/2016/07">July</a></li>
            <li><a href="/news/2016/05">May</a></li>
            <li><a href="/news/2016/03">March</a></li>
            <li><a href="/news/2016/02">February</a></li>
            <li><a href="/news/2016/01">January</a></li>
            </ul>
            <h2>2015</h2>
            <ul>
            <li><a href="/news/2015">All of 2015</a></li>
            <li><a href="/news/2015/11">November</a></li>
            <li><a href="/news/2015/10">October</a></li>
            <li><a href="/news/2015/07">July</a></li>
            <li><a href="/news/2015/06">June</a></li>
            <li><a href="/news/2015/02">February</a></li>
            </ul>
            <h2>2014</h2>
            <ul>
            <li><a href="/news/2014">All of 2014</a></li>
            <li><a href="/news/2014/11">November</a></li>
            <li><a href="/news/2014/09">September</a></li>
            <li><a href="/news/2014/08">August</a></li>
            <li><a href="/news/2014/06">June</a></li>
            <li><a href="/news/2014/04">April</a></li>
            <li><a href="/news/2014/02">February</a></li>
            <li><a href="/news/2014/01">January</a></li>
            </ul>
            <h2>2013</h2>
            <ul>
            <li><a href="/news/2013">All of 2013</a></li>
            <li><a href="/news/2013/11">November</a></li>
            <li><a href="/news/2013/09">September</a></li>
            <li><a href="/news/2013/08">August</a></li>
            <li><a href="/news/2013/07">July</a></li>
            <li><a href="/news/2013/06">June</a></li>
            <li><a href="/news/2013/05">May</a></li>
            <li><a href="/news/2013/04">April</a></li>
            <li><a href="/news/2013/03">March</a></li>
            <li><a href="/news/2013/02">February</a></li>
            <li><a href="/news/2013/01">January</a></li>
            </ul>
            <h2>2012</h2>
            <ul>
            <li><a href="/news/2012">All of 2012</a></li>
            <li><a href="/news/2012/12">December</a></li>
            <li><a href="/news/2012/11">November</a></li>
            <li><a href="/news/2012/10">October</a></li>
            <li><a href="/news/2012/09">September</a></li>
            <li><a href="/news/2012/08">August</a></li>
            <li><a href="/news/2012/07">July</a></li>
            <li><a href="/news/2012/06">June</a></li>
            <li><a href="/news/2012/05">May</a></li>
            <li><a href="/news/2012/03">March</a></li>
            <li><a href="/news/2012/01">January</a></li>
            </ul>
            <h2>2011</h2>
            <ul>
            <li><a href="/news/2011">All of 2011</a></li>
            <li><a href="/news/2011/11">November</a></li>
            <li><a href="/news/2011/10">October</a></li>
            <li><a href="/news/2011/09">September</a></li>
            <li><a href="/news/2011/08">August</a></li>
            <li><a href="/news/2011/06">June</a></li>
            <li><a href="/news/2011/05">May</a></li>
            <li><a href="/news/2011/04">April</a></li>
            <li><a href="/news/2011/03">March</a></li>
            <li><a href="/news/2011/02">February</a></li>
            <li><a href="/news/2011/01">January</a></li>
            </ul>
            <h2>2010</h2>
            <ul>
            <li><a href="/news/2010">All of 2010</a></li>
            <li><a href="/news/2010/12">December</a></li>
            <li><a href="/news/2010/11">November</a></li>
            <li><a href="/news/2010/09">September</a></li>
            <li><a href="/news/2010/08">August</a></li>
            <li><a href="/news/2010/05">May</a></li>
            <li><a href="/news/2010/03">March</a></li>
            <li><a href="/news/2010/02">February</a></li>
            </ul>
            <h2>2009</h2>
            <ul>
            <li><a href="/news/2009">All of 2009</a></li>
            <li><a href="/news/2009/12">December</a></li>
            <li><a href="/news/2009/10">October</a></li>
            <li><a href="/news/2009/08">August</a></li>
            <li><a href="/news/2009/07">July</a></li>
            </ul>
        </div>
    </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>
