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

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

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

    </head>

    <body class="">
        <div class="header default">
    <div class="l-menu-container">
<nav class="mainmenu">
    <ul>
		<!-- /start/quickstart.html || /news/2015/11/15/wicket-1.4.x-eol.html -->
    	<li class=""><a href="/start/quickstart.html">Quick Start</a></li>
		<!-- /start/download.html || /news/2015/11/15/wicket-1.4.x-eol.html -->
    	<li class=""><a href="/start/download.html">Download</a></li>
		<!-- /learn || /news/2015/11/15/wicket-1.4.x-eol.html -->
    	<li class=""><a href="/learn">Documentation</a></li>
		<!-- /help || /news/2015/11/15/wicket-1.4.x-eol.html -->
    	<li class=""><a href="/help">Support</a></li>
		<!-- /contribute || /news/2015/11/15/wicket-1.4.x-eol.html -->
    	<li class=""><a href="/contribute">Contribute</a></li>
		<!-- /community || /news/2015/11/15/wicket-1.4.x-eol.html -->
    	<li class=""><a href="/community">Community</a></li>
		<!-- /apache || /news/2015/11/15/wicket-1.4.x-eol.html -->
    	<li class=""><a href="/apache">Apache</a></li>
    </ul>
</nav>
        <div class="logo">
    <a href="/"><img src="/img/logo-apachewicket.svg" alt="Apache Wicket"></a>
</div>
    </div>
</div>
<main>
    <div class="l-container">
        <header class="l-full preamble">
            <h1>Apache Wicket 1.4.x end of life</h1>
        </header>
        <section class="left">
            <div class="l-full">
    <p class="meta">15 Nov 2015</p>
    <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.</p>
<p>This means that after 16 October 2015:</p>
<ul>
  <li>no more releases from the 1.4.x branch</li>
  <li>bugs affecting only the 1.4.x branch will not be addressed</li>
  <li>security vulnerability reports will not be checked against the 1.4.x branch</li>
  <li>releases from the 1.5.x branch are highly unlikely</li>
  <li>only security patches will be applied to the 1.5.x branch</li>
</ul>
<p>The Wicket Team</p>
</div>
        </section>
    </div>
</main>
        <footer class="l-container">
            <div class="l-full">
   	<img src="/img/asf_logo_url.svg" style="height:90px; float:left; margin-right:10px;">
    <div style="margin-top:12px;">Copyright © 2020 — The Apache Software Foundation. Apache Wicket, Wicket, Apache, the Apache feather logo, and the Apache Wicket project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.</div>
</div>
        </footer>
    </body>

</html>
