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

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

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

    </head>

    <body class="">
        <div class="header default">
    <div class="l-menu-container">
<nav class="mainmenu">
    <ul>
		<!-- /start/quickstart.html || /news/2015/07/28/wicket-7.0-released.html -->
    	<li class=""><a href="/start/quickstart.html">Quick Start</a></li>
		<!-- /start/download.html || /news/2015/07/28/wicket-7.0-released.html -->
    	<li class=""><a href="/start/download.html">Download</a></li>
		<!-- /learn || /news/2015/07/28/wicket-7.0-released.html -->
    	<li class="active"><a href="/learn">Documentation</a></li>
		<!-- /help || /news/2015/07/28/wicket-7.0-released.html -->
    	<li class=""><a href="/help">Support</a></li>
		<!-- /contribute || /news/2015/07/28/wicket-7.0-released.html -->
    	<li class=""><a href="/contribute">Contribute</a></li>
		<!-- /community || /news/2015/07/28/wicket-7.0-released.html -->
    	<li class=""><a href="/community">Community</a></li>
		<!-- /apache || /news/2015/07/28/wicket-7.0-released.html -->
    	<li class=""><a href="/apache">Apache</a></li>
    </ul>
</nav>
        <div class="logo">
    <a href="/"><img src="/img/logo-apachewicket.svg" alt="Apache Wicket"></a>
</div>
    </div>
</div>
<main>
    <div class="l-container">
        <header class="l-full preamble">
            <h1>Apache Wicket v7.0 released</h1>
        </header>
        <section class="left">
            <div class="l-full">
    <p class="meta">28 Jul 2015</p>
    <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.</p>
<p>The Apache Software Foundation (ASF), the all-volunteer developers, stewards, and incubators of nearly 150 Open Source projects and initiatives, today announced Apache™ Wicket™ v7.0, the Open Source Java web framework for high performance, scalable, component oriented web applications. 
This marks the seventh major release of the project that celebrated its 10 year anniversary last year.</p>
<p>This framework allows Java developers to write web applications using components. 
This way developers can reason about the user interface in user interface building blocks, making it easier to link specific user interactions to server-side code. 
Wicket is a high performance framework processing billions of requests daily across the world.</p>
<p>“With this release we have added a major improvement to our framework, making development with Wicket even easier.”, said Martijn Dashorst, Vice President of Apache Wicket.
“By adding ‘Component Queuing’ we have divorced the strict relationship between the Java component classes and the markup. This has been a headache for many users and sparked one of the longest discussions on our community lists. We finally put this issue to bed.”</p>
<p>“Other major improvements are the move towards Java 7, newer Java EE standards, security features and the addition of new components. Wicket now bundles a cross site request forgery (CSRF) prevention measure, and provides support for inline images using the data: protocol,” continued Martijn Dashorst.</p>
<p>Apache Wicket v7.0 reflects over 2 years of development, testing and feedback from hundreds of knowledgable users, bringing a highly stable, production ready release of the popular web framework.
The release consist of almost 300 features, improvements and fixes. In accordance with Semantic Versioning, this major release contains <a href="https://s.apache.org/wicket7migrate">several documented API breaks</a>. Following the Semantic Versioning standard, future minor releases of Wicket v7 will remain API compatible.</p>
<h3 id="availability-and-oversight">Availability and Oversight</h3>
<p>As with all Apache products, Apache Wicket software is released under the Apache License v2.0, and is overseen by a self-selected team of active contributors to the project.
A Project Management Committee (PMC) guides the Project’s day-to-day operations, including community development and product releases.
Apache Wicket release notes, source code, documentation, and related resources are available at <a href="https://wicket.apache.org">https://wicket.apache.org</a>.</p>
<h3 id="about-the-apache-software-foundation-asf">About The Apache Software Foundation (ASF)</h3>
<p>Established in 1999, the all-volunteer Foundation oversees nearly one hundred fifty leading Open Source projects, including Apache HTTP Server — the world’s most popular Web server software.
Through the ASF’s meritocratic process known as “The Apache Way,” more than 350 individual Members and 3,000 Committers successfully collaborate to develop freely available enterprise-grade software, benefiting millions of users worldwide: thousands of software solutions are distributed under the Apache License; and the community actively participates in ASF mailing lists, mentoring initiatives, and ApacheCon, the Foundation’s official user conference, trainings, and expo.
The ASF is a US 501(3)(c) not-for-profit charity, funded by individual donations and corporate sponsors including AMD, Basis Technology, Cloudera, Facebook, Google, IBM, HP, Hortonworks, Matt Mullenweg, Microsoft, PSW Group, SpringSource/VMware, and Yahoo!.
For more information, visit <a href="https://www.apache.org/">https://www.apache.org/</a>.</p>
<p>“Apache”, “Apache Wicket”, and “ApacheCon” are trademarks of The Apache Software Foundation.
All other brands and trademarks are the property of their respective owners.</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>
